<?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 Ekologiczne ogrzewanie - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/category/ekologiczne-ogrzewanie/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/category/ekologiczne-ogrzewanie/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Sat, 23 May 2026 08:46:01 +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 Ekologiczne ogrzewanie - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/category/ekologiczne-ogrzewanie/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Jak gęsto rozkładać podłogówkę?</title>
		<link>https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/</link>
					<comments>https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Fri, 24 Jan 2025 09:26:29 +0000</pubDate>
				<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Ekologiczne ogrzewanie]]></category>
		<category><![CDATA[Izolacja budynków]]></category>
		<category><![CDATA[Komfort cieplny w domu]]></category>
		<category><![CDATA[Koszty instalacji grzewczych]]></category>
		<category><![CDATA[Nowoczesne systemy grzewcze]]></category>
		<category><![CDATA[Ogrzewanie niskotemperaturowe]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Rozstaw rur w podłogówce]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[ekologiczne systemy grzewcze]]></category>
		<category><![CDATA[izolacja budynku]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[koszty instalacji]]></category>
		<category><![CDATA[niskotemperaturowe ogrzewanie]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projektowanie instalacji]]></category>
		<category><![CDATA[rozstaw rur]]></category>
		<category><![CDATA[wodne ogrzewanie podłogowe]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2015</guid>

					<description><![CDATA[<p>Jak gęsto rozkładać podłogówkę? To pytanie nurtuje wielu inwestorów planujących instalację ogrzewania podłogowego. Rozstaw rur zależy od wielu czynników, takich jak typ pomieszczenia, izolacja budynku czy rodzaj posadzki. W artykule wyjaśniamy, jak dobrać optymalny rozstaw rur, aby zapewnić efektywność systemu i komfort cieplny. Dowiedz się, jakie są najczęściej stosowane rozstawy i jak wpływają one na koszty oraz wydajność ogrzewania.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/">Jak gęsto rozkładać podłogówkę?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-hero-dark: #0f172a;
    --rk-hero-darker: #020617;
    --rk-hero-brand: #ea580c; /* Ciepły, energetyczny pomarańcz */
    --rk-hero-brand-hover: #c2410c;
    --rk-hero-accent: #38bdf8; /* Zimny błękit dla kontrastu (strefy chłodu) */
    --rk-hero-text: #f8fafc;
    --rk-hero-muted: #94a3b8;
    --rk-hero-panel: #1e293b;
    --rk-hero-border: #334155;
    --rk-hero-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
}

.rk-hero-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: var(--rk-hero-dark);
    border-radius: 24px;
    box-shadow: var(--rk-hero-shadow);
    border: 1px solid var(--rk-hero-border);
    overflow: hidden;
    color: var(--rk-hero-text);
}

/* Sekcja Treściowa (Wstęp) */
.rk-hero-content {
    padding: 50px 50px 35px;
    background: linear-gradient(135deg, var(--rk-hero-darker) 0%, var(--rk-hero-dark) 100%);
    position: relative;
    border-bottom: 1px solid var(--rk-hero-border);
}

.rk-hero-content::after {
    content: '';
    position: absolute;
    top: 0; right: 0; width: 50%; height: 100%;
    background: radial-gradient(circle at top right, rgba(234, 88, 12, 0.15) 0%, transparent 60%);
    pointer-events: none;
}

.rk-hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(234, 88, 12, 0.2);
    color: #fdba74;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 25px;
    border: 1px solid rgba(234, 88, 12, 0.3);
}

.rk-hero-title {
    font-size: 32px;
    font-weight: 900;
    line-height: 1.25;
    margin: 0 0 25px 0;
    letter-spacing: -0.5px;
}

.rk-hero-title span {
    background: linear-gradient(to right, #fb923c, #ea580c);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.rk-hero-lead {
    font-size: 17px;
    line-height: 1.8;
    color: #cbd5e1;
    margin: 0;
}

.rk-hero-link {
    color: #fb923c;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed rgba(251, 146, 60, 0.5);
    transition: all 0.3s ease;
}

.rk-hero-link:hover {
    color: #fdba74;
    border-bottom-style: solid;
    text-shadow: 0 0 10px rgba(234, 88, 12, 0.4);
}

/* Moduł Interaktywny: Symulator Rozstawu */
.rk-hero-interactive {
    padding: 40px 50px;
    background: var(--rk-hero-panel);
}

.rk-hero-h3 {
    font-size: 20px;
    font-weight: 800;
    margin: 0 0 30px 0;
    text-align: center;
    color: #ffffff;
}

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

/* Controls */
.rk-controls-box {
    background: rgba(15, 23, 42, 0.6);
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-hero-border);
}

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

.rk-slider-label {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-hero-muted);
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-slider-value {
    font-size: 24px;
    font-weight: 900;
    color: #ffffff;
    background: var(--rk-hero-dark);
    padding: 5px 15px;
    border-radius: 8px;
    border: 1px solid var(--rk-hero-border);
}

/* Custom Range Slider */
.rk-range {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    background: #334155;
    border-radius: 4px;
    outline: none;
    margin: 20px 0;
}

.rk-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #ffffff;
    border: 4px solid var(--rk-hero-brand);
    cursor: pointer;
    transition: transform 0.1s;
    box-shadow: 0 0 15px rgba(234, 88, 12, 0.5);
}

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

/* Data Output Cards */
.rk-metrics-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-top: 25px;
}

.rk-metric-card {
    background: var(--rk-hero-dark);
    padding: 15px;
    border-radius: 12px;
    text-align: center;
    border: 1px solid var(--rk-hero-border);
    transition: all 0.3s;
}

.rk-metric-title {
    font-size: 12px;
    color: var(--rk-hero-muted);
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 8px;
}

.rk-metric-val {
    font-size: 18px;
    font-weight: 900;
    color: #ffffff;
}

/* SVG WIZUALIZACJA */
.rk-visual-box {
    background: #000000;
    border-radius: 16px;
    padding: 20px;
    border: 2px solid var(--rk-hero-border);
    position: relative;
    overflow: hidden;
    height: 200px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-floor-svg {
    width: 100%;
    height: 100%;
    max-width: 500px;
}

/* SVG Elements */
.rk-svg-concrete { fill: #1e293b; }
.rk-svg-pipe { fill: #ef4444; stroke: #991b1b; stroke-width: 2; transition: cx 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
.rk-svg-heat-wave { fill: url(#heatGradient); opacity: 0; transition: opacity 0.3s; }
.rk-svg-cold-wave { fill: url(#coldGradient); opacity: 0; transition: opacity 0.3s; }

/* Dynamic Status Alert */
.rk-status-alert {
    margin-top: 20px;
    padding: 15px 20px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 12px;
    transition: all 0.3s;
}

@media (max-width: 768px) {
    .rk-hero-content, .rk-hero-interactive { padding: 30px 25px; }
    .rk-hero-title { font-size: 26px; }
    .rk-metrics-grid { grid-template-columns: 1fr; }
    .rk-visual-box { height: 160px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/"
    },
    "headline": "Jak gęsto rozkładać podłogówkę? Inżynierski przewodnik po rozstawie rur",
    "description": "Zły rozstaw rur generuje straty finansowe i efekt zimnych stref. Poznaj twarde dane projektowe oparte na europejskich normach i dobierz gęstość pętli do pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.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-21",
    "dateModified": "2026-05-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#dataset",
    "name": "Wpływ rozstawu rur na rozkład temperatur posadzki i wydajność źródła ciepła",
    "description": "Baza danych symulacyjnych obrazująca zależność pomiędzy gęstością ułożenia rur (krok 10, 15, 20, 30 cm) a zjawiskiem zebry termicznej oraz sprawnością COP pompy ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jak gęsto rozkładać podłogówkę",
      "rozstaw rur a pompa ciepła",
      "zimne strefy podłogówki",
      "efekt zebry termicznej",
      "wydajność pompy ciepła"
    ],
    "measurementTechnique": "Symulacja rozkładu izoterm w jastrychu w zależności od gęstości pętli grzewczych oparta na PN-EN 1264.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rozstaw 10 cm: Idealny dla pomp ciepła (najwyższy COP), brak zimnych stref.",
        "Rozstaw 15 cm: Standard inżynierski dla dobrze izolowanych domów (Złoty środek).",
        "Rozstaw > 20 cm: Ryzyko zebry termicznej, drastyczny spadek sprawności systemu niskotemperaturowego."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#webapp",
    "name": "Kalkulator Wizualny: Gęstość Podłogówki a Zebra Termiczna",
    "description": "Interaktywny symulator SVG demonstrujący na żywo powstawanie stref chłodu, rozkład rur PEX oraz spadek wydajności źródła ciepła przy błędnym rozstawie.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 Range Inputs and SVG support.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA INTRO
=========================================== -->
<div class="rk-hero-container" id="rk-intro-app">
    <!-- Sekcja Tekstowa -->
    <div class="rk-hero-content">
        <div class="rk-hero-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
            Inżynierski Przewodnik
        </div>
        <h2 class="rk-hero-title">Jak gęsto rozkładać podłogówkę? <span>Koniec z mitami instalatorów</span></h2>
        <p class="rk-hero-lead">
            Decydując się na montaż wodnego ogrzewania podłogowego, kluczowym pytaniem każdego inwestora jest: jak gęsto rozkładać podłogówkę, aby system działał efektywnie i oszczędnie? Zły rozstaw rur grzewczych generuje potężne <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/" class="rk-hero-link">straty finansowe</a>, niedogrzanie pomieszczeń lub uciążliwy <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/" class="rk-hero-link">efekt &#8222;zimnych stref&#8221;</a>. Prawidłowe zagęszczenie pętli to fundament, który decyduje o sprawności <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" class="rk-hero-link">pompy ciepła</a> oraz komforcie termicznym domowników. W tym inżynierskim przewodniku obalam instalatorskie mity i podaję twarde dane projektowe oparte na <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/" class="rk-hero-link">europejskich normach</a>, które pozwolą Ci uniknąć kosztownych błędów wykonawczych na Twojej budowie.
        </p>
    </div>

    <!-- Sekcja Interaktywna -->
    <div class="rk-hero-interactive">
        <h3 class="rk-hero-h3">Symulator OZC: Zobacz, co się dzieje pod Twoją posadzką</h3>
        
        <div class="rk-sim-layout">
            <!-- Interfejs suwaka -->
            <div class="rk-controls-box">
                <div class="rk-slider-header">
                    <span class="rk-slider-label">Ustaw projektowany rozstaw rur</span>
                    <span class="rk-slider-value" id="rk-spacing-val">15 cm</span>
                </div>
                <input type="range" class="rk-range" id="rk-spacing-slider" min="10" max="30" step="5" value="15">
                
                <div class="rk-metrics-grid">
                    <div class="rk-metric-card" id="card-temp">
                        <div class="rk-metric-title">Wymagane Zasilanie</div>
                        <div class="rk-metric-val" id="rk-out-temp">32°C</div>
                    </div>
                    <div class="rk-metric-card" id="card-cop">
                        <div class="rk-metric-title">Wydajność COP</div>
                        <div class="rk-metric-val" id="rk-out-cop" style="color: #10b981;">Wysoka</div>
                    </div>
                    <div class="rk-metric-card" id="card-pipe">
                        <div class="rk-metric-title">Rura na m²</div>
                        <div class="rk-metric-val" id="rk-out-pipe">6.6 mb</div>
                    </div>
                </div>

                <div class="rk-status-alert" id="rk-alert-box" style="background: rgba(16, 185, 129, 0.1); color: #34d399; border: 1px solid #059669;">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                    <span>Standard inżynierski. Złoty środek dla nowych budynków.</span>
                </div>
            </div>

            <!-- Wizualizacja SVG -->
            <div class="rk-visual-box">
                <svg class="rk-floor-svg" viewBox="0 0 400 120" preserveAspectRatio="xMidYMid meet">
                    <defs>
                        <!-- Gradienty emisji ciepła -->
                        <radialGradient id="heatGradient" cx="50%" cy="50%" r="50%">
                            <stop offset="0%" stop-color="#ea580c" stop-opacity="0.8"/>
                            <stop offset="100%" stop-color="#ea580c" stop-opacity="0"/>
                        </radialGradient>
                        <linearGradient id="coldGradient" x1="0%" y1="0%" x2="100%" y2="0%">
                            <stop offset="0%" stop-color="#0284c7" stop-opacity="0.5"/>
                            <stop offset="50%" stop-color="#0284c7" stop-opacity="0"/>
                            <stop offset="100%" stop-color="#0284c7" stop-opacity="0.5"/>
                        </linearGradient>
                    </defs>

                    <!-- Jastrych (Beton) -->
                    <rect x="0" y="20" width="400" height="80" class="rk-svg-concrete" rx="4"/>
                    
                    <!-- Warstwa powłoki chłodnej (widoczna przy rzadkim rozstawie) -->
                    <rect id="rk-svg-cold" x="0" y="20" width="400" height="80" class="rk-svg-cold-wave" rx="4"/>

                    <!-- Warstwa powłoki ciepłej (widoczna przy gęstym rozstawie) -->
                    <rect id="rk-svg-hot" x="0" y="20" width="400" height="80" fill="#ea580c" opacity="0.4" style="transition: opacity 0.4s;"/>

                    <!-- Pętle Rur - Dynamika X zależy od JS -->
                    <g id="rk-pipes-group">
                        <circle class="rk-svg-pipe" cx="50" cy="60" r="10" />
                        <circle class="rk-svg-pipe" cx="125" cy="60" r="10" />
                        <circle class="rk-svg-pipe" cx="200" cy="60" r="10" />
                        <circle class="rk-svg-pipe" cx="275" cy="60" r="10" />
                        <circle class="rk-svg-pipe" cx="350" cy="60" r="10" />
                    </g>
                    
                    <!-- Kafelki na górze -->
                    <path d="M 0 20 L 400 20" stroke="#64748b" stroke-width="4"/>
                    <line x1="80" y1="16" x2="80" y2="20" stroke="#64748b" stroke-width="4"/>
                    <line x1="160" y1="16" x2="160" y2="20" stroke="#64748b" stroke-width="4"/>
                    <line x1="240" y1="16" x2="240" y2="20" stroke="#64748b" stroke-width="4"/>
                    <line x1="320" y1="16" x2="320" y2="20" stroke="#64748b" stroke-width="4"/>
                </svg>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie domeny
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-intro-app').innerHTML = `
            <div style="padding:40px; text-align:center; background:#0f172a; border-radius:20px; border: 2px solid #ef4444; color:#f8fafc; font-family:sans-serif;">
                <div style="font-size: 40px; margin-bottom: 15px;">🛑</div>
                <div style="color:#ef4444; font-size:20px; font-weight:900; text-transform:uppercase; margin-bottom:10px;">Blokada Antypiracka</div>
                <div style="font-size:15px; color:#cbd5e1; line-height:1.6;">Kod symulatora przestrzennego oraz struktury JSON-LD należy do Projekt-Ogrzewania.pl. Wykryto użycie na nieautoryzowanej domenie.</div>
            </div>
        `;
        return;
    }

    // 2. Logika Symulatora
    const slider = document.getElementById('rk-spacing-slider');
    const valText = document.getElementById('rk-spacing-val');
    
    // SVG Elements
    const pipes = document.querySelectorAll('.rk-svg-pipe');
    const layerCold = document.getElementById('rk-svg-cold');
    const layerHot = document.getElementById('rk-svg-hot');
    
    // Output Elements
    const outTemp = document.getElementById('rk-out-temp');
    const outCop = document.getElementById('rk-out-cop');
    const outPipe = document.getElementById('rk-out-pipe');
    
    const alertBox = document.getElementById('rk-alert-box');
    const alertIcon = alertBox.querySelector('svg');
    const alertText = alertBox.querySelector('span');

    // SVG Base dimensions: center is 200. Total width 400.
    // 5 pipes: index 0 to 4. Middle is index 2.
    
    function updateSimulation() {
        const spacing = parseInt(slider.value);
        valText.textContent = spacing + ' cm';
        
        // Obliczenia rur
        let reqTemp, copStat, copColor, pipeUsage, alertMsg, alertBg, alertBorder, alertColor;
        let iconHTML = '';

        // Skala w SVG (odległość w pikselach między rurami). Zależy od wybranego rozstawu.
        // Jeśli 10cm to np. 50px dystansu. 30cm to 150px dystansu.
        const pixelSpacing = spacing * 5; 
        
        pipes.forEach((pipe, i) => {
            // Środek to rura [2]. Jej cx = 200.
            const offset = (i - 2) * pixelSpacing;
            pipe.setAttribute('cx', 200 + offset);
        });

        // Logika fizyki
        if (spacing === 10) {
            reqTemp = "29°C";
            copStat = "Maksymalna";
            copColor = "#10b981"; // zielony
            pipeUsage = "10.0 mb";
            
            layerCold.style.opacity = "0";
            layerHot.style.opacity = "0.7";
            
            alertBg = "rgba(16, 185, 129, 0.1)";
            alertBorder = "#059669";
            alertColor = "#34d399";
            alertMsg = "Ideały pod Pompę Ciepła. Najniższe rachunki i równomierne ciepło.";
            iconHTML = '<path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline>';
            
        } else if (spacing === 15) {
            reqTemp = "32°C";
            copStat = "Optymalna";
            copColor = "#38bdf8"; // niebieski jasny
            pipeUsage = "6.6 mb";
            
            layerCold.style.opacity = "0";
            layerHot.style.opacity = "0.4";

            alertBg = "rgba(56, 189, 248, 0.1)";
            alertBorder = "#0284c7";
            alertColor = "#7dd3fc";
            alertMsg = "Złoty standard inżynierski dla dobrze izolowanych budynków.";
            iconHTML = '<path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline>';

        } else if (spacing === 20) {
            reqTemp = "37°C";
            copStat = "Średnia";
            copColor = "#fbbf24"; // żółty
            pipeUsage = "5.0 mb";
            
            layerCold.style.opacity = "0.4";
            layerHot.style.opacity = "0.1";

            alertBg = "rgba(251, 191, 36, 0.1)";
            alertBorder = "#d97706";
            alertColor = "#fcd34d";
            alertMsg = "Dopuszczalne tylko w sypialniach. W salonie może powodować niedogrzanie.";
            iconHTML = '<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>';

        } else {
            // 25 - 30 cm
            reqTemp = "45°C+";
            copStat = "Drastyczny spadek";
            copColor = "#ef4444"; // czerwony
            pipeUsage = (100 / spacing).toFixed(1) + " mb";
            
            layerCold.style.opacity = "0.8"; // Mocna zebra
            layerHot.style.opacity = "0";

            alertBg = "rgba(239, 68, 68, 0.1)";
            alertBorder = "#b91c1c";
            alertColor = "#fca5a5";
            alertMsg = "BŁĄD: Zebra termiczna! Zimne pasy na podłodze i zarzynanie sprężarki pompy.";
            iconHTML = '<polygon points="7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2"></polygon><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line>';
        }

        // Apply changes
        outTemp.textContent = reqTemp;
        outCop.textContent = copStat;
        outCop.style.color = copColor;
        outPipe.textContent = pipeUsage;

        alertBox.style.background = alertBg;
        alertBox.style.borderColor = alertBorder;
        alertBox.style.color = alertColor;
        alertText.textContent = alertMsg;
        alertIcon.innerHTML = iconHTML;
    }

    // Init and listeners
    slider.addEventListener('input', updateSimulation);
    // Call once to set default visual state
    updateSimulation();
});
</script>



<style>
:root {
    --rk-zone-dark: #0f172a;
    --rk-zone-darker: #020617;
    --rk-zone-brand: #3b82f6; /* Techniczny niebieski */
    --rk-zone-accent-10: #ef4444; /* Czerwony - gorąco */
    --rk-zone-accent-15: #10b981; /* Zielony - optymalnie */
    --rk-zone-accent-20: #0ea5e9; /* Błękit - chłodniej */
    --rk-zone-bg: #f8fafc;
    --rk-zone-card: #ffffff;
    --rk-zone-text: #334155;
    --rk-zone-muted: #64748b;
    --rk-zone-border: #e2e8f0;
}

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

/* Header */
.rk-zone-header {
    background: var(--rk-zone-dark);
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
}

.rk-zone-header::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0; right: 0; height: 4px;
    background: linear-gradient(90deg, var(--rk-zone-accent-10) 0%, var(--rk-zone-accent-15) 50%, var(--rk-zone-accent-20) 100%);
}

.rk-zone-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(59, 130, 246, 0.2);
    color: #93c5fd;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(59, 130, 246, 0.3);
}

.rk-zone-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 20px 0;
}

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

.rk-link {
    color: #60a5fa;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed rgba(96, 165, 250, 0.5);
    transition: all 0.3s;
}

.rk-link:hover {
    color: #93c5fd;
    border-bottom-style: solid;
}

/* Interfejs */
.rk-zone-interactive {
    padding: 40px 50px;
}

.rk-zone-h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-zone-dark);
    margin: 0 0 25px 0;
    text-align: center;
}

/* Selektor Rozstawu (Tabs) */
.rk-tabs-wrapper {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-bottom: 35px;
}

.rk-tab-btn {
    background: var(--rk-zone-card);
    border: 2px solid var(--rk-zone-border);
    padding: 20px 15px;
    border-radius: 16px;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
}

.rk-tab-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1);
}

.rk-tab-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-zone-dark);
}

.rk-tab-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-zone-muted);
    text-transform: uppercase;
    text-align: center;
}

/* Aktywne stany zakładek */
.rk-tab-btn[data-zone="10"].active { border-color: var(--rk-zone-accent-10); background: #fef2f2; }
.rk-tab-btn[data-zone="10"].active .rk-tab-val { color: var(--rk-zone-accent-10); }

.rk-tab-btn[data-zone="15"].active { border-color: var(--rk-zone-accent-15); background: #f0fdf4; }
.rk-tab-btn[data-zone="15"].active .rk-tab-val { color: var(--rk-zone-accent-15); }

.rk-tab-btn[data-zone="20"].active { border-color: var(--rk-zone-accent-20); background: #f0f9ff; }
.rk-tab-btn[data-zone="20"].active .rk-tab-val { color: var(--rk-zone-accent-20); }

/* Główny panel danych i SVG */
.rk-panel-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: stretch;
}

/* Karta z tekstem dynamicznym */
.rk-data-card {
    background: var(--rk-zone-card);
    border-radius: 20px;
    padding: 30px;
    border: 1px solid var(--rk-zone-border);
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-dyn-title {
    font-size: 22px;
    font-weight: 800;
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

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

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

.rk-metric-item {
    background: var(--rk-zone-bg);
    padding: 15px;
    border-radius: 12px;
    border: 1px solid var(--rk-zone-border);
}

.rk-metric-lbl {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-zone-muted);
    margin-bottom: 5px;
    text-transform: uppercase;
}

.rk-metric-val-s {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-zone-dark);
}

/* Wizualizacja SVG */
.rk-svg-wrapper {
    background: var(--rk-zone-dark);
    border-radius: 20px;
    padding: 20px;
    border: 1px solid var(--rk-zone-darker);
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
}

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

/* Elementy SVG z animacjami */
.rk-pipe { transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); fill: #e2e8f0; stroke: #475569; stroke-width: 2; }
.rk-heat-layer { transition: opacity 0.5s, fill 0.5s; opacity: 0; }
.rk-zebra-layer { transition: opacity 0.5s; fill: url(#zebraGradient); opacity: 0; }
.rk-heat-wave { stroke-dasharray: 10 15; animation: riseUp 2s linear infinite; opacity: 0.7; transition: stroke 0.5s; }

@keyframes riseUp { to { stroke-dashoffset: -25; } }

/* Klasy stanów dla SVG */
.state-10 .rk-pipe-group-10 .rk-pipe { fill: #ef4444; stroke: #991b1b; }
.state-10 .rk-pipe-group-15 { opacity: 0; transform: scale(0); }
.state-10 .rk-pipe-group-20 { opacity: 0; transform: scale(0); }
.state-10 .rk-heat-layer { opacity: 0.8; fill: url(#heatGradientHot); }
.state-10 .rk-heat-wave { stroke: #ef4444; }

.state-15 .rk-pipe-group-10 { opacity: 0; transform: scale(0); }
.state-15 .rk-pipe-group-15 .rk-pipe { fill: #10b981; stroke: #047857; }
.state-15 .rk-pipe-group-20 { opacity: 0; transform: scale(0); }
.state-15 .rk-heat-layer { opacity: 0.6; fill: url(#heatGradientOpti); }
.state-15 .rk-heat-wave { stroke: #10b981; }

.state-20 .rk-pipe-group-10 { opacity: 0; transform: scale(0); }
.state-20 .rk-pipe-group-15 { opacity: 0; transform: scale(0); }
.state-20 .rk-pipe-group-20 .rk-pipe { fill: #0ea5e9; stroke: #0369a1; }
.state-20 .rk-heat-layer { opacity: 0.3; fill: url(#heatGradientCool); }
.state-20 .rk-zebra-layer { opacity: 1; } /* Włączenie zebry termicznej */
.state-20 .rk-heat-wave { stroke: #0ea5e9; }

@media (max-width: 768px) {
    .rk-zone-header, .rk-zone-interactive { padding: 30px 20px; }
    .rk-tabs-wrapper { grid-template-columns: 1fr; gap: 10px; }
    .rk-panel-grid { grid-template-columns: 1fr; }
    .rk-tab-btn { flex-direction: row; justify-content: center; padding: 15px; }
    .rk-svg-wrapper { height: 200px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#article-pokoje",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/"
    },
    "headline": "Jak gęsto rozkładać podłogówkę w standardowych pomieszczeniach mieszkalnych?",
    "description": "Zasady doboru rozstawu rur (10 cm, 15 cm, 20 cm) według normy PN-EN 1264. Poznaj optymalne gęstości dla łazienek, salonów i sypialni pod pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.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-21",
    "dateModified": "2026-05-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#dataset-pokoje",
    "name": "Normy rozstawu rur wg PN-EN 1264 i PN-EN 12831",
    "description": "Zestawienie parametrów projektowych określających wymaganą gęstość pętli grzewczych w zależności od specyfiki i zapotrzebowania cieplnego pomieszczenia.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "rozstaw rur podłogówki",
      "co 10 cm czy 15 cm",
      "strefa brzegowa podłogówki",
      "temperatura zasilania pompy ciepła",
      "obliczenia OZC"
    ],
    "measurementTechnique": "Analiza zapotrzebowania cieplnego w oparciu o europejskie normy inżynierskie i charakterystykę cieplną budynków.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Łazienki i strefy brzegowe: Wymagany rozstaw co 10 cm dla zapotrzebowania >70 W/m².",
        "Salony i kuchnie: Optymalny rozstaw co 15 cm dla zasilania pompy ciepła temp. 35°C.",
        "Sypialnie i garderoby: Dopuszczalny rozstaw co 20 cm wyłącznie przy zapotrzebowaniu <30 W/m²."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#webapp-pokoje",
    "name": "Wizualizator Gęstości Pętli Grzewczych",
    "description": "Interaktywny panel demonstrujący różnice w rozstawie rur (10, 15, 20 cm) i ich wpływ na wydajność systemu podłogowego w różnych strefach domu.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5 SVG support.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA 
=========================================== -->
<div class="rk-zone-container" id="rk-zone-app">
    <!-- Nagłówek i Wstęp -->
    <div class="rk-zone-header">
        <div class="rk-zone-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Inżynieria w praktyce
        </div>
        <h2 class="rk-zone-title">Jak gęsto rozkładać podłogówkę w pomieszczeniach?</h2>
        <p class="rk-zone-lead">
            Zgodnie z normą <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/" class="rk-link">PN-EN 1264</a>, wybór odległości między rurami nie może być dziełem przypadku ani "intuicji" instalatora. Dla nowoczesnych budynków o zapotrzebowaniu na energię poniżej 40 W/m² uniwersalnym krokiem jest 15 cm. Poniżej zobaczysz, jak dobierać rozstaw w zależności od strefy w domu, aby maksymalnie wykorzystać potencjał pompy ciepła.
        </p>
    </div>

    <!-- Sekcja Interaktywna -->
    <div class="rk-zone-interactive">
        <h3 class="rk-zone-h3">Wybierz strefę i sprawdź optymalny krok (rozstaw) rur</h3>
        
        <!-- Tab Controls -->
        <div class="rk-tabs-wrapper">
            <div class="rk-tab-btn active" data-zone="10">
                <span class="rk-tab-val">10 cm</span>
                <span class="rk-tab-label">Łazienki & Strefy Brzegowe</span>
            </div>
            <div class="rk-tab-btn" data-zone="15">
                <span class="rk-tab-val">15 cm</span>
                <span class="rk-tab-label">Salony & Kuchnie (Optimum)</span>
            </div>
            <div class="rk-tab-btn" data-zone="20">
                <span class="rk-tab-val">20 cm</span>
                <span class="rk-tab-label">Sypialnie & Pomocnicze</span>
            </div>
        </div>

        <!-- Panel Danych i SVG -->
        <div class="rk-panel-grid">
            
            <!-- Dynamiczny Tekst -->
            <div class="rk-data-card" id="rk-dyn-content">
                <!-- Treść ładuje się przez JS -->
            </div>

            <!-- SVG Wizualizacja -->
            <div class="rk-svg-wrapper state-10" id="rk-svg-stage">
                <svg class="rk-svg-scene" viewBox="0 0 300 120">
                    <defs>
                        <!-- Gradienty dla jastrychu -->
                        <linearGradient id="heatGradientHot" x1="0" y1="1" x2="0" y2="0">
                            <stop offset="0%" stop-color="#ef4444" stop-opacity="0.8"/>
                            <stop offset="100%" stop-color="#ef4444" stop-opacity="0"/>
                        </linearGradient>
                        <linearGradient id="heatGradientOpti" x1="0" y1="1" x2="0" y2="0">
                            <stop offset="0%" stop-color="#10b981" stop-opacity="0.6"/>
                            <stop offset="100%" stop-color="#10b981" stop-opacity="0"/>
                        </linearGradient>
                        <linearGradient id="heatGradientCool" x1="0" y1="1" x2="0" y2="0">
                            <stop offset="0%" stop-color="#0ea5e9" stop-opacity="0.4"/>
                            <stop offset="100%" stop-color="#0ea5e9" stop-opacity="0"/>
                        </linearGradient>
                        <!-- Zebra termiczna (naprzemienne zimne/ciepłe pasy dla 20cm) -->
                        <linearGradient id="zebraGradient" x1="0" y1="0" x2="1" y2="0">
                            <stop offset="10%" stop-color="#0ea5e9" stop-opacity="0.6"/>
                            <stop offset="30%" stop-color="#020617" stop-opacity="0.2"/>
                            <stop offset="50%" stop-color="#0ea5e9" stop-opacity="0.6"/>
                            <stop offset="70%" stop-color="#020617" stop-opacity="0.2"/>
                            <stop offset="90%" stop-color="#0ea5e9" stop-opacity="0.6"/>
                        </linearGradient>
                    </defs>

                    <!-- Wylewka tło -->
                    <rect x="0" y="40" width="300" height="60" fill="#1e293b" rx="4"/>
                    
                    <!-- Warstwy cieplne -->
                    <rect class="rk-zebra-layer" x="0" y="40" width="300" height="60" rx="4"/>
                    <rect class="rk-heat-layer" x="0" y="40" width="300" height="60" rx="4"/>

                    <!-- Fale konwekcji -->
                    <path class="rk-heat-wave" d="M 50 35 Q 50 10 40 5 M 150 35 Q 150 10 160 5 M 250 35 Q 250 10 240 5" fill="none" stroke-width="3" stroke-linecap="round"/>

                    <!-- Rury 10 cm (Zagęszczone - 7 rur) -->
                    <g class="rk-pipe-group-10">
                        <circle class="rk-pipe" cx="30" cy="70" r="8"/>
                        <circle class="rk-pipe" cx="70" cy="70" r="8"/>
                        <circle class="rk-pipe" cx="110" cy="70" r="8"/>
                        <circle class="rk-pipe" cx="150" cy="70" r="8"/>
                        <circle class="rk-pipe" cx="190" cy="70" r="8"/>
                        <circle class="rk-pipe" cx="230" cy="70" r="8"/>
                        <circle class="rk-pipe" cx="270" cy="70" r="8"/>
                    </g>

                    <!-- Rury 15 cm (Złoty środek - 5 rur) -->
                    <g class="rk-pipe-group-15">
                        <circle class="rk-pipe" cx="30" cy="70" r="8"/>
                        <circle class="rk-pipe" cx="90" cy="70" r="8"/>
                        <circle class="rk-pipe" cx="150" cy="70" r="8"/>
                        <circle class="rk-pipe" cx="210" cy="70" r="8"/>
                        <circle class="rk-pipe" cx="270" cy="70" r="8"/>
                    </g>

                    <!-- Rury 20 cm (Rzadkie - 4 rury) -->
                    <g class="rk-pipe-group-20">
                        <circle class="rk-pipe" cx="45" cy="70" r="8"/>
                        <circle class="rk-pipe" cx="115" cy="70" r="8"/>
                        <circle class="rk-pipe" cx="185" cy="70" r="8"/>
                        <circle class="rk-pipe" cx="255" cy="70" r="8"/>
                    </g>

                    <!-- Wykończenie podłogi -->
                    <path d="M 0 40 L 300 40" stroke="#64748b" stroke-width="4"/>
                    <line x1="100" y1="36" x2="100" y2="40" stroke="#64748b" stroke-width="4"/>
                    <line x1="200" y1="36" x2="200" y2="40" stroke="#64748b" stroke-width="4"/>
                </svg>
            </div>

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

<!-- Logika JS -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie Domeny
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-zone-app').innerHTML = `
            <div style="padding:40px; text-align:center; background:#0f172a; border-radius:24px; border:2px solid #ef4444; color:#fff; font-family:sans-serif; margin: 40px auto; max-width:800px;">
                <div style="font-size: 40px; margin-bottom: 15px;">🛑</div>
                <div style="color:#ef4444; font-size:22px; font-weight:900; margin-bottom: 10px; text-transform:uppercase;">Naruszenie Praw Autorskich</div>
                <div style="color:#cbd5e1; font-size:15px; line-height:1.6;">Skrypt interaktywny i struktura JSON-LD są własnością Projekt-Ogrzewania.pl. Wykryto próbę kradzieży.</div>
            </div>
        `;
        return;
    }

    // Dane do wstrzykiwania
    const zoneData = {
        "10": {
            title: "Strefy intensywne i łazienki",
            color: "var(--rk-zone-accent-10)",
            desc: "Zagęszczenie do 10 cm stosuje się tam, gdzie zapotrzebowanie na ciepło przekracza <strong>70 W/m²</strong> (wg PN-EN 12831). Łazienka wymaga 24°C, a wolna powierzchnia podłogi jest ograniczona. Ten krok jest również obligatoryjny w <a href='https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/' class='rk-link'>strefach brzegowych</a> przy dużych oknach.",
            metric1Lbl: "Moc Grzewcza",
            metric1Val: "> 70 W/m²",
            metric2Lbl: "Temp. Wewnętrzna",
            metric2Val: "24°C"
        },
        "15": {
            title: "Złoty środek dla pomp ciepła",
            color: "var(--rk-zone-accent-15)",
            desc: "Absolutny standard inżynierski w pokojach dziennych, salonach i kuchniach. Uzyskujemy równomierny rozkład temperatur, eliminując pasy termiczne. To <a href='https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/' class='rk-link'>optymalny rozstaw dla układów zasilanych pompą ciepła</a>, gwarantujący wysoką wydajność przy zasilaniu na poziomie ok. 35°C.",
            metric1Lbl: "Moc Grzewcza",
            metric1Val: "40 - 60 W/m²",
            metric2Lbl: "Temp. Zasilania",
            metric2Val: "ok. 35°C"
        },
        "20": {
            title: "Sypialnie i pom. pomocnicze",
            color: "var(--rk-zone-accent-20)",
            desc: "Rozstaw dopuszczalny wyłącznie przy zapotrzebowaniu <a href='https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/' class='rk-link'>OZC poniżej 30 W/m²</a>. Idealny do sypialni (18-20°C). Zwiększenie odległości do 20 cm w słabo zaizolowanym salonie grozi drastycznym niedogrzaniem i zniszczy efektywność ekonomiczną całej pompy ciepła.",
            metric1Lbl: "Moc Grzewcza",
            metric1Val: "< 30 W/m²",
            metric2Lbl: "Temp. Wewnętrzna",
            metric2Val: "18 - 20°C"
        }
    };

    const tabs = document.querySelectorAll('.rk-tab-btn');
    const dynContent = document.getElementById('rk-dyn-content');
    const svgStage = document.getElementById('rk-svg-stage');

    function renderContent(zone) {
        const data = zoneData[zone];
        
        dynContent.innerHTML = `
            <h4 class="rk-dyn-title" style="color: ${data.color}">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                ${data.title}
            </h4>
            <p class="rk-dyn-desc">${data.desc}</p>
            <div class="rk-metrics-mini">
                <div class="rk-metric-item">
                    <div class="rk-metric-lbl">${data.metric1Lbl}</div>
                    <div class="rk-metric-val-s">${data.metric1Val}</div>
                </div>
                <div class="rk-metric-item">
                    <div class="rk-metric-lbl">${data.metric2Lbl}</div>
                    <div class="rk-metric-val-s">${data.metric2Val}</div>
                </div>
            </div>
        `;

        // Update SVG state class
        svgStage.className = `rk-svg-wrapper state-${zone}`;
    }

    // Init click events
    tabs.forEach(tab => {
        tab.addEventListener('click', function() {
            // Remove active from all
            tabs.forEach(t => t.classList.remove('active'));
            // Add active to clicked
            this.classList.add('active');
            // Render specific data
            renderContent(this.getAttribute('data-zone'));
        });
    });

    // Default load (10cm active from HTML)
    renderContent("10");
});
</script>



<style>
:root {
    --rk-temp-dark: #1e293b;
    --rk-temp-darker: #0f172a;
    --rk-temp-brand: #f97316; /* Energetyczny pomarańcz ciepła */
    --rk-temp-brand-light: #ffedd5;
    --rk-temp-safe: #10b981; /* Zielony komfort */
    --rk-temp-warn: #eab308; /* Żółty - strefy specjalne */
    --rk-temp-danger: #ef4444; /* Czerwony - błąd fizjologiczny */
    --rk-temp-bg: #ffffff;
    --rk-temp-panel: #f8fafc;
    --rk-temp-border: #e2e8f0;
    --rk-temp-text: #334155;
    --rk-temp-muted: #64748b;
}

.rk-temp-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: var(--rk-temp-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(249, 115, 22, 0.15);
    border: 1px solid rgba(249, 115, 22, 0.3);
    overflow: hidden;
}

/* Nagłówek i Tekst Wstępny */
.rk-temp-header {
    background: linear-gradient(135deg, var(--rk-temp-darker) 0%, var(--rk-temp-dark) 100%);
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-temp-brand);
}

.rk-temp-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(249, 115, 22, 0.2);
    color: #fdba74;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(249, 115, 22, 0.3);
}

.rk-temp-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 20px 0;
}

.rk-temp-title span { color: #fb923c; }

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

.rk-link {
    color: var(--rk-temp-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed rgba(249, 115, 22, 0.4);
    transition: all 0.3s;
}

.rk-link:hover {
    color: #c2410c;
    border-bottom-style: solid;
}

/* Moduł Interaktywny */
.rk-temp-interactive {
    padding: 40px 50px;
    background: var(--rk-temp-panel);
}

.rk-temp-h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-temp-dark);
    margin: 0 0 30px 0;
    text-align: center;
}

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

/* Panel Kontrolny */
.rk-control-panel {
    background: #ffffff;
    padding: 30px;
    border-radius: 20px;
    border: 1px solid var(--rk-temp-border);
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
    display: flex;
    flex-direction: column;
}

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

.rk-slider-label {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-temp-muted);
    text-transform: uppercase;
}

.rk-slider-value {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-temp-dark);
    transition: color 0.3s;
}

/* Custom Range Slider */
.rk-range {
    -webkit-appearance: none;
    width: 100%;
    height: 10px;
    background: linear-gradient(90deg, #10b981 30%, #eab308 60%, #ef4444 90%);
    border-radius: 5px;
    outline: none;
    margin: 20px 0 30px 0;
}

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

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

/* Wyniki dynamiczne (Grid Kafelków) */
.rk-metrics-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin-top: auto;
}

.rk-metric-box {
    background: var(--rk-temp-panel);
    padding: 15px;
    border-radius: 12px;
    border: 1px solid var(--rk-temp-border);
    text-align: center;
}

.rk-metric-lbl {
    font-size: 11px;
    font-weight: 800;
    color: var(--rk-temp-muted);
    text-transform: uppercase;
    margin-bottom: 8px;
}

.rk-metric-val {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-temp-brand);
}

.rk-status-box {
    margin-top: 15px;
    padding: 15px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 10px;
    transition: all 0.3s;
}

/* Wizualizacja SVG */
.rk-visual-panel {
    background: var(--rk-temp-dark);
    border-radius: 20px;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
    border: 2px solid var(--rk-temp-darker);
}

.rk-room-svg {
    width: 100%;
    height: 100%;
    max-width: 300px;
}

/* Stany Animacji SVG */
.rk-svg-floor { transition: fill 0.5s; }
.rk-svg-radiate { opacity: 0; transition: opacity 0.3s, fill 0.5s; }
.rk-heat-wave { stroke-dasharray: 10 15; animation: radiateUp 2s linear infinite; transition: stroke 0.5s; }

@keyframes radiateUp { to { stroke-dashoffset: -25; } }

/* Cytat inżynierski */
.rk-quote-section {
    padding: 35px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-temp-border);
}

.rk-quote-box {
    background: var(--rk-temp-brand-light);
    border-left: 5px solid var(--rk-temp-brand);
    padding: 25px 30px;
    border-radius: 0 16px 16px 0;
    margin-bottom: 25px;
}

.rk-quote-text {
    font-size: 16px;
    font-weight: 700;
    color: #7c2d12;
    margin: 0;
    line-height: 1.6;
}

.rk-quote-sub {
    font-size: 15px;
    color: var(--rk-temp-text);
    line-height: 1.8;
}

@media (max-width: 768px) {
    .rk-temp-header, .rk-temp-interactive, .rk-quote-section { padding: 30px 20px; }
    .rk-sim-layout { grid-template-columns: 1fr; }
    .rk-metrics-grid { grid-template-columns: 1fr; }
    .rk-visual-panel { height: 220px; }
    .rk-slider-value { font-size: 28px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#article-temperatura",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/"
    },
    "headline": "Jaka jest maksymalna temperatura powierzchni podłogi według normy PN-EN 1264?",
    "description": "Limity fizjologiczne i techniczne temperatur w ogrzewaniu podłogowym. Emisja ciepła a projektowe obciążenie cieplne (OZC) – dowiedz się dlaczego podłoga nie może grzać mocniej niż 29°C.",
    "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-21",
    "dateModified": "2026-05-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#dataset-temperatura",
    "name": "Tabela Emisyjności Cieplnej Posadzki wg PN-EN 1264",
    "description": "Zestawienie maksymalnych wartości strumienia ciepła (W/m²) dla ogrzewania podłogowego w zależności od dopuszczalnych temperatur fizjologicznych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna temperatura podłogówki",
      "norma PN-EN 1264-2",
      "strumień ciepła podłogi",
      "fizjologia ogrzewania płaszczyznowego",
      "limity cieplne OZC"
    ],
    "measurementTechnique": "Obliczenia emisyjności w oparciu o różnicę temperatur między powietrzem a posadzką przy współczynniku przejmowania ciepła ok. 11 W/(m²K).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Strefa stałego przebywania: Max 29°C (Emisja graniczna: ~100 W/m² przy 20°C powietrza).",
        "Łazienki: Max 33°C (Emisja graniczna: ~90 W/m² przy 24°C powietrza).",
        "Strefy brzegowe przy oknach: Max 35°C."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#webapp-temperatura",
    "name": "Symulator Komfortu Fizjologicznego Posadzki",
    "description": "Interaktywne narzędzie obliczeniowe korelujące temperaturę powierzchni posadzki z mocą emisyjną (W/m²) oraz ostrzeżeniami o przekroczeniu norm PN-EN 1264.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5 input range support for real-time calculation.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA 
=========================================== -->
<div class="rk-temp-container" id="rk-temp-app">
    <!-- Nagłówek -->
    <div class="rk-temp-header">
        <div class="rk-temp-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
            Normy i Bezpieczeństwo
        </div>
        <h2 class="rk-temp-title">Jaka jest maksymalna temperatura podłogi <span>wg normy PN-EN 1264?</span></h2>
        <p class="rk-temp-lead">
            Norma ściśle ogranicza temperaturę gotowej posadzki do <strong>29°C w strefie stałego przebywania</strong> oraz do <strong>33°C w łazienkach</strong>. W <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/" class="rk-link">strefach brzegowych</a> dopuszcza się 35°C. Przekroczenie tych fizjologicznych granic prowadzi do problemów z krążeniem u domowników oraz uszkodzenia okładzin. Ogrzewanie podłogowe oddaje energię w 70% przez promieniowanie, co wymusza rygorystyczne limity.
        </p>
    </div>

    <!-- Moduł Interaktywny -->
    <div class="rk-temp-interactive">
        <h3 class="rk-temp-h3">Symulator Limitu Emisji (Założenie: Powietrze 20°C)</h3>
        
        <div class="rk-sim-layout">
            <!-- Kontrolki -->
            <div class="rk-control-panel">
                <div class="rk-slider-header">
                    <span class="rk-slider-label">Zadana Temperatura Posadzki</span>
                    <span class="rk-slider-value" id="rk-floor-val">24°C</span>
                </div>
                
                <input type="range" class="rk-range" id="rk-temp-slider" min="20" max="38" step="1" value="24">
                
                <div class="rk-metrics-grid">
                    <div class="rk-metric-box">
                        <div class="rk-metric-lbl">Wydajność Cieplna</div>
                        <div class="rk-metric-val" id="rk-emission-val">44 W/m²</div>
                    </div>
                    <div class="rk-metric-box">
                        <div class="rk-metric-lbl">Emisja Fali</div>
                        <div class="rk-metric-val" id="rk-radiation-val">70%</div>
                    </div>
                </div>

                <div class="rk-status-box" id="rk-alert-box">
                    <svg id="rk-alert-icon" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"></svg>
                    <span id="rk-alert-text">Status optymalny</span>
                </div>
            </div>

            <!-- SVG -->
            <div class="rk-visual-panel">
                <svg class="rk-room-svg" viewBox="0 0 200 200">
                    <defs>
                        <radialGradient id="glowG" cx="50%" cy="100%" r="100%">
                            <stop offset="0%" stop-color="#10b981" stop-opacity="0.8"/>
                            <stop offset="100%" stop-color="#10b981" stop-opacity="0"/>
                        </radialGradient>
                        <radialGradient id="glowY" cx="50%" cy="100%" r="100%">
                            <stop offset="0%" stop-color="#eab308" stop-opacity="0.8"/>
                            <stop offset="100%" stop-color="#eab308" stop-opacity="0"/>
                        </radialGradient>
                        <radialGradient id="glowR" cx="50%" cy="100%" r="100%">
                            <stop offset="0%" stop-color="#ef4444" stop-opacity="0.9"/>
                            <stop offset="100%" stop-color="#ef4444" stop-opacity="0"/>
                        </radialGradient>
                    </defs>
                    
                    <!-- Termometr otoczenia -->
                    <path d="M 20 50 L 20 20 A 5 5 0 0 1 30 20 L 30 50 A 10 10 0 1 1 20 50 Z" fill="#334155"/>
                    <circle cx="25" cy="55" r="5" fill="#38bdf8"/>
                    <text x="40" y="58" font-size="12" fill="#cbd5e1" font-weight="bold">Powietrze: 20°C</text>

                    <!-- Promieniowanie i konwekcja -->
                    <rect id="rk-svg-glow" class="rk-svg-radiate" x="0" y="100" width="200" height="100" fill="url(#glowG)"/>
                    <path class="rk-heat-wave" id="rk-wave-1" d="M 50 140 Q 60 100 50 60" fill="none" stroke-width="3" stroke-linecap="round"/>
                    <path class="rk-heat-wave" id="rk-wave-2" d="M 100 140 Q 90 100 100 60" fill="none" stroke-width="3" stroke-linecap="round" style="animation-delay: 0.5s"/>
                    <path class="rk-heat-wave" id="rk-wave-3" d="M 150 140 Q 160 100 150 60" fill="none" stroke-width="3" stroke-linecap="round" style="animation-delay: 1s"/>

                    <!-- Posadzka -->
                    <path d="M 0 160 L 200 160" stroke="#cbd5e1" stroke-width="4"/>
                    <rect id="rk-svg-floor" class="rk-svg-floor" x="0" y="162" width="200" height="38" fill="#1e293b"/>
                    
                    <!-- Rury -->
                    <circle cx="40" cy="180" r="8" fill="#334155"/>
                    <circle cx="100" cy="180" r="8" fill="#334155"/>
                    <circle cx="160" cy="180" r="8" fill="#334155"/>
                </svg>
            </div>
        </div>
    </div>

    <!-- Wnioski / Cytat -->
    <div class="rk-quote-section">
        <div class="rk-quote-box">
            <p class="rk-quote-text">
                Ważny parametr inżynierski: Przy temperaturze powietrza 20°C i granicznej temperaturze podłogi 29°C, maksymalny strumień ciepła, jaki posadzka może fizycznie oddać do otoczenia, wynosi dokładnie 100 W/m². Dla łazienki (powietrze 24°C, podłoga 33°C) limit ten wynosi 90 W/m².
            </p>
        </div>
        <p class="rk-quote-sub">
            Jeśli z Twoich <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" class="rk-link">wyliczeń OZC</a> wynika, że pomieszczenie traci więcej energii niż ten fizyczny limit emisyjny, zagęszczanie rur ponad normę nic nie da. Nie możesz podnieść temperatury podłogi do 38°C, bo wymusisz na domownikach życie w warunkach permanentnego dyskomfortu. Rozwiązaniem jest poprawa izolacji budynku (<a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/" class="rk-link">grubszy styropian</a>, szczelniejsze okna) lub montaż uzupełniającego źródła ciepła (np. grzejnika drabinkowego czy <a href="https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/" class="rk-link">klimatyzacji</a>).
        </p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie domeny
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-temp-app').innerHTML = `
            <div style="padding:40px; text-align:center; background:#0f172a; border-radius:24px; border:2px solid #ef4444; color:#fff; font-family:sans-serif; margin: 40px auto; max-width:800px;">
                <div style="font-size: 40px; margin-bottom: 15px;">🛑</div>
                <div style="color:#ef4444; font-size:22px; font-weight:900; margin-bottom: 10px; text-transform:uppercase;">Naruszenie Licencji i Praw Autorskich</div>
                <div style="color:#cbd5e1; font-size:15px; line-height:1.6;">Kod symulatora fizjologicznego oraz baza JSON-LD należą do Projekt-Ogrzewania.pl. Użycie na tej domenie jest nielegalne.</div>
            </div>
        `;
        return;
    }

    // 2. Logika Symulatora
    const slider = document.getElementById('rk-temp-slider');
    const valText = document.getElementById('rk-floor-val');
    const emissionVal = document.getElementById('rk-emission-val');
    
    // Alert Box
    const alertBox = document.getElementById('rk-alert-box');
    const alertText = document.getElementById('rk-alert-text');
    const alertIcon = document.getElementById('rk-alert-icon');
    
    // SVG Elements
    const floor = document.getElementById('rk-svg-floor');
    const glow = document.getElementById('rk-svg-glow');
    const waves = document.querySelectorAll('.rk-heat-wave');

    // Wzór normowy uproszczony: q = 11.1 * (T_floor - T_air). Założenie T_air = 20°C
    const T_air = 20;

    function updateSim() {
        const temp = parseInt(slider.value);
        valText.textContent = temp + '°C';
        
        // Obliczenie strumienia cieplnego
        let emission = 0;
        if(temp > T_air) {
            emission = Math.round((temp - T_air) * 11.1);
        }
        emissionVal.textContent = emission + ' W/m²';

        let stateColor, statusBg, statusBorder, statusMsg, iconPath, glowUrl;

        // Logika normy
        if (temp >= 20 && temp <= 27) {
            stateColor = '#10b981'; // Green
            statusBg = 'rgba(16, 185, 129, 0.15)';
            statusBorder = '#059669';
            statusMsg = 'Komfort idealny. Brak uczucia "ciężkich nóg".';
            iconPath = '<path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline>';
            glowUrl = 'url(#glowG)';
        } else if (temp > 27 && temp <= 29) {
            stateColor = '#3b82f6'; // Blue-ish limit
            statusBg = 'rgba(59, 130, 246, 0.15)';
            statusBorder = '#2563eb';
            statusMsg = 'Górna granica normy dla salonów (Max 29°C).';
            iconPath = '<circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line>';
            glowUrl = 'url(#glowG)';
        } else if (temp > 29 && temp <= 33) {
            stateColor = '#eab308'; // Yellow
            statusBg = 'rgba(234, 179, 8, 0.15)';
            statusBorder = '#ca8a04';
            statusMsg = 'Dopuszczalne tylko w łazienkach (Max 33°C).';
            iconPath = '<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>';
            glowUrl = 'url(#glowY)';
        } else if (temp > 33 && temp <= 35) {
            stateColor = '#f97316'; // Orange
            statusBg = 'rgba(249, 115, 22, 0.15)';
            statusBorder = '#ea580c';
            statusMsg = 'Strefy brzegowe pod oknami (Max 35°C).';
            iconPath = '<polygon points="7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2"></polygon>';
            glowUrl = 'url(#glowY)';
        } else {
            // > 35
            stateColor = '#ef4444'; // Red
            statusBg = 'rgba(239, 68, 68, 0.15)';
            statusBorder = '#dc2626';
            statusMsg = 'NIEBEZPIECZEŃSTWO! Ryzyko żylaków i pękania posadzki.';
            iconPath = '<circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line>';
            glowUrl = 'url(#glowR)';
        }

        // Apply UI updates
        valText.style.color = stateColor;
        
        alertBox.style.background = statusBg;
        alertBox.style.borderColor = statusBorder;
        alertBox.style.color = statusBorder; // text match border
        alertText.textContent = statusMsg;
        alertIcon.innerHTML = iconPath;

        // Apply SVG updates
        floor.style.fill = stateColor;
        glow.style.fill = glowUrl;
        
        if(temp <= 20) {
            glow.style.opacity = 0;
            waves.forEach(w => w.style.opacity = 0);
        } else {
            glow.style.opacity = 1;
            waves.forEach(w => {
                w.style.opacity = 0.8;
                w.style.stroke = stateColor;
                // Wraz ze wzrostem temp, fale szybciej się ruszają (symulacja)
                let speed = 3 - ((temp - 20) / 10);
                if(speed < 0.5) speed = 0.5;
                w.style.animationDuration = speed + 's';
            });
        }
    }

    // Init
    slider.addEventListener('input', updateSim);
    updateSim();
});
</script>



<style>
:root {
    --rk-cop-dark: #0f172a;
    --rk-cop-darker: #020617;
    --rk-cop-brand: #8b5cf6; /* Technologiczny fiolet */
    --rk-cop-brand-light: #ddd6fe;
    --rk-cop-green: #10b981; /* Wysoki COP */
    --rk-cop-yellow: #f59e0b; /* Średni COP */
    --rk-cop-red: #ef4444; /* Niski COP */
    --rk-cop-bg: #ffffff;
    --rk-cop-panel: #f8fafc;
    --rk-cop-border: #e2e8f0;
    --rk-cop-text: #334155;
    --rk-cop-muted: #64748b;
}

.rk-cop-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: var(--rk-cop-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(139, 92, 246, 0.15);
    border: 1px solid rgba(139, 92, 246, 0.3);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-cop-header {
    background: linear-gradient(135deg, var(--rk-cop-darker) 0%, #2e1065 100%);
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-cop-brand);
}

.rk-cop-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(139, 92, 246, 0.25);
    color: #c4b5fd;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(139, 92, 246, 0.4);
}

.rk-cop-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 20px 0;
}

.rk-cop-title span { color: #a78bfa; }

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

.rk-link {
    color: #a78bfa;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed rgba(167, 139, 250, 0.5);
    transition: all 0.3s;
}

.rk-link:hover {
    color: #ddd6fe;
    border-bottom-style: solid;
}

/* Ciało Kontenera */
.rk-cop-body {
    padding: 40px 50px;
}

.rk-cop-h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-cop-dark);
    margin: 0 0 25px 0;
    text-align: center;
}

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

/* Panel Kontrolny i Wyniki */
.rk-cop-controls {
    background: var(--rk-cop-panel);
    padding: 30px;
    border-radius: 20px;
    border: 1px solid var(--rk-cop-border);
    display: flex;
    flex-direction: column;
}

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

.rk-slider-label {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-cop-muted);
    text-transform: uppercase;
}

.rk-slider-value {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-cop-brand);
}

.rk-range-cop {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    background: #cbd5e1;
    border-radius: 4px;
    outline: none;
    margin: 15px 0 35px 0;
}

.rk-range-cop::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #ffffff;
    border: 4px solid var(--rk-cop-brand);
    cursor: pointer;
    box-shadow: 0 0 10px rgba(139, 92, 246, 0.3);
    transition: transform 0.1s;
}

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

/* Kafelki z danymi */
.rk-data-tiles {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin-top: auto;
}

.rk-tile {
    background: #ffffff;
    padding: 15px;
    border-radius: 12px;
    border: 1px solid var(--rk-cop-border);
    text-align: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-tile-lbl {
    font-size: 11px;
    font-weight: 800;
    color: var(--rk-cop-muted);
    text-transform: uppercase;
    margin-bottom: 5px;
}

.rk-tile-val {
    font-size: 20px;
    font-weight: 900;
    transition: color 0.3s;
}

/* Panel SVG */
.rk-cop-visual {
    background: var(--rk-cop-darker);
    border-radius: 20px;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
    border: 2px solid var(--rk-cop-dark);
}

.rk-svg-engine {
    width: 100%;
    height: 100%;
    max-width: 320px;
}

/* Animacje SVG */
.rk-fan-blade { transform-origin: 100px 80px; }
.rk-pipe-indicator { transition: opacity 0.3s, fill 0.3s; }
.rk-temp-gauge { transition: stroke-dashoffset 0.5s cubic-bezier(0.4, 0, 0.2, 1), stroke 0.5s; }

/* Inżynierskie studium przypadku (Case Study) */
.rk-case-study {
    background: #ffffff;
    border-radius: 20px;
    border: 1px solid var(--rk-cop-border);
    padding: 30px;
    box-shadow: 0 10px 30px -10px rgba(0,0,0,0.05);
}

.rk-case-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--rk-cop-border);
}

.rk-case-icon {
    width: 40px; height: 40px;
    background: var(--rk-cop-brand-light);
    color: var(--rk-cop-brand);
    border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
}

.rk-case-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-cop-dark);
    margin: 0;
}

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

.rk-math-col {
    background: var(--rk-cop-panel);
    padding: 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-cop-border);
}

.rk-math-col h4 {
    margin: 0 0 10px 0;
    font-size: 15px;
    font-weight: 800;
}

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

.rk-math-highlight {
    display: block;
    margin-top: 10px;
    padding: 10px;
    background: #ffffff;
    border-radius: 8px;
    font-family: monospace;
    font-size: 14px;
    font-weight: 700;
    border: 1px dashed var(--rk-cop-muted);
}

.rk-conclusion {
    margin-top: 20px;
    padding: 15px 20px;
    background: rgba(16, 185, 129, 0.1);
    border-left: 4px solid var(--rk-cop-green);
    border-radius: 0 12px 12px 0;
    font-size: 14px;
    font-weight: 600;
    color: #065f46;
    line-height: 1.6;
}

@media (max-width: 768px) {
    .rk-cop-header, .rk-cop-body { padding: 30px 20px; }
    .rk-cop-grid, .rk-math-grid, .rk-data-tiles { grid-template-columns: 1fr; }
    .rk-cop-visual { height: 250px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#article-cop",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/"
    },
    "headline": "Jak rozstaw rur ogrzewania podłogowego wpływa na sprawność pompy ciepła?",
    "description": "Zmniejszenie rozstawu rur z 20 cm do 10 cm obniża temperaturę zasilania o 5K. Poznaj inżynierskie obliczenia udowadniające, dlaczego zagęszczenie pętli zwiększa SCOP pompy ciepła o 15%.",
    "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-21",
    "dateModified": "2026-05-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#dataset-cop",
    "name": "Wpływ rozstawu rur podłogówki na współczynnik SCOP pompy ciepła",
    "description": "Zestawienie parametrów zasilania w zależności od rozstawu rur (10 cm vs 20 cm) dla strumienia ciepła 50 W/m² i oporu posadzki 0,06 m²K/W.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "pompa ciepła a rozstaw rur",
      "współczynnik SCOP",
      "temperatura zasilania podłogówki",
      "koszty ogrzewania pompy ciepła",
      "obliczenia inżynierskie podłogówki"
    ],
    "measurementTechnique": "Obliczenia inżynierskie na podstawie bilansu cieplnego, założonego oporu cieplnego okładziny 0,06 m²K/W i delty temperatur (ΔT = 5K).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rozstaw 20 cm: Wymagane zasilanie 40,7°C, spadek wydajności SCOP.",
        "Rozstaw 10 cm: Wymagane zasilanie 35,6°C, wzrost SCOP o ~12.5%, spadek kosztów o 10-15%."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#webapp-cop",
    "name": "Kalkulator SCOP Pompy Ciepła vs Rozstaw",
    "description": "Interaktywny kalkulator pokazujący spadek rachunków za prąd o 2-3% na każdy stopień obniżenia temperatury zasilania dzięki gęstszemu ułożeniu rur.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 Range input and SVG animation support.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA 
=========================================== -->
<div class="rk-cop-container" id="rk-cop-app">
    <!-- Nagłówek -->
    <div class="rk-cop-header">
        <div class="rk-cop-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
            Efektywność Energetyczna (SCOP)
        </div>
        <h2 class="rk-cop-title">Jak rozstaw rur ogrzewania podłogowego <span>wpływa na sprawność pompy ciepła?</span></h2>
        <p class="rk-cop-lead">
            Zmniejszenie rozstawu rur z 20 cm do 10 cm pozwala obniżyć temperaturę zasilania instalacji o 4K do 5K przy zachowaniu identycznej mocy grzewczej systemu. Obniżenie temperatury projektowej z 40°C do 35°C zwiększa sezonowy współczynnik efektywności (SCOP) <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" class="rk-link">pompy ciepła</a> o 10% do 15%, co bezpośrednio tnie rachunki za prąd.
        </p>
    </div>

    <div class="rk-cop-body">
        <h3 class="rk-cop-h3">Symulator obciążenia sprężarki</h3>
        
        <div class="rk-cop-grid">
            <!-- Panel Kontrolny -->
            <div class="rk-cop-controls">
                <div class="rk-slider-header">
                    <span class="rk-slider-label">Rozstaw Rur PEX/PERT</span>
                    <span class="rk-slider-value" id="rk-cop-spacing-val">10 cm</span>
                </div>
                
                <!-- Suwak: 10, 15, 20 -->
                <input type="range" class="rk-range-cop" id="rk-cop-slider" min="10" max="20" step="5" value="10">
                
                <div class="rk-data-tiles">
                    <div class="rk-tile">
                        <div class="rk-tile-lbl">Wymagane Zasilanie</div>
                        <div class="rk-tile-val" id="rk-cop-temp-val" style="color: var(--rk-cop-green);">35.6°C</div>
                    </div>
                    <div class="rk-tile">
                        <div class="rk-tile-lbl">Wydajność (SCOP)</div>
                        <div class="rk-tile-val" id="rk-cop-eff-val" style="color: var(--rk-cop-green);">+15%</div>
                    </div>
                </div>
            </div>

            <!-- SVG Panel -->
            <div class="rk-cop-visual">
                <svg class="rk-svg-engine" viewBox="0 0 200 160">
                    <!-- Obudowa Pompy -->
                    <rect x="20" y="20" width="160" height="120" fill="#1e293b" rx="8" stroke="#475569" stroke-width="3"/>
                    <rect x="30" y="30" width="140" height="100" fill="#0f172a" rx="4"/>
                    
                    <!-- Wiatrak (Sprężarka) -->
                    <circle cx="100" cy="80" r="40" fill="#1e293b" stroke="#334155" stroke-width="4"/>
                    <g id="rk-fan" class="rk-fan-blade" style="animation: spinFan 2s linear infinite;">
                        <path d="M 100 80 Q 80 45 100 40 Q 120 45 100 80" fill="#94a3b8"/>
                        <path d="M 100 80 Q 135 100 135 80 Q 135 60 100 80" fill="#94a3b8"/>
                        <path d="M 100 80 Q 65 100 65 80 Q 65 60 100 80" fill="#94a3b8"/>
                        <circle cx="100" cy="80" r="8" fill="#cbd5e1"/>
                    </g>
                    <!-- Kratka na wiatraku -->
                    <line x1="60" y1="80" x2="140" y2="80" stroke="#475569" stroke-width="2"/>
                    <line x1="100" y1="40" x2="100" y2="120" stroke="#475569" stroke-width="2"/>

                    <!-- Zegar Temperatury -->
                    <circle cx="160" cy="40" r="15" fill="#0f172a" stroke="#475569" stroke-width="2"/>
                    <path d="M 150 40 A 10 10 0 1 1 170 40" fill="none" stroke="#334155" stroke-width="4" stroke-linecap="round"/>
                    <path id="rk-gauge-arc" class="rk-temp-gauge" d="M 150 40 A 10 10 0 0 1 170 40" fill="none" stroke="#10b981" stroke-width="4" stroke-linecap="round" stroke-dasharray="31.4" stroke-dashoffset="15.7"/>
                </svg>
            </div>
        </div>

        <h3 class="rk-cop-h3">Inżynierskie studium przypadku</h3>
        <div class="rk-case-study">
            <div class="rk-case-header">
                <div class="rk-case-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                </div>
                <h4 class="rk-case-title">Obliczenie wpływu rozstawu na temperaturę zasilania</h4>
            </div>

            <p style="margin: 0 0 20px 0; font-size: 15px; color: var(--rk-cop-text); line-height: 1.7;">
                Dla pokoju o powierzchni 20 m² i zapotrzebowaniu na moc <strong>Q = 1000 W</strong> (strumień ciepła q = 50 W/m²), przy wykończeniu podłogi <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/" class="rk-link">panelem laminowanym</a> o oporze R = 0,06 m²K/W i temperaturze wewnętrznej 20°C:
            </p>

            <div class="rk-math-grid">
                <div class="rk-math-col" style="border-left: 4px solid var(--rk-cop-red);">
                    <h4 style="color: var(--rk-cop-red);">Przy rozstawie co 20 cm (16x2 mm)</h4>
                    <p>Wymagana średnia temperatura czynnika grzewczego w pętli musi wynosić 38,2°C.</p>
                    <span class="rk-math-highlight" style="color: var(--rk-cop-red);">
                        Zasilanie pompy (ΔT = 5K) = 40,7°C
                    </span>
                </div>
                
                <div class="rk-math-col" style="border-left: 4px solid var(--rk-cop-green);">
                    <h4 style="color: var(--rk-cop-green);">Po zagęszczeniu do 10 cm</h4>
                    <p>Ten sam strumień ciepła uzyskamy przy średniej temperaturze czynnika wynoszącej zaledwie 33,1°C.</p>
                    <span class="rk-math-highlight" style="color: var(--rk-cop-green);">
                        Zasilanie pompy (ΔT = 5K) = 35,6°C
                    </span>
                </div>
            </div>

            <div class="rk-conclusion">
                <strong>Złota zasada zysku:</strong> Odciążasz sprężarkę! Każdy 1°C mniej na zasilaniu instalacji podłogowej to spadek rachunków za prąd o około 2-3% w skali całego sezonu grzewczego. Stąd wniosek: projektując instalację pod pompę ciepła, dążymy do zagęszczenia (10-15 cm), traktując rozstaw 20 cm jako kosztowną ostateczność.
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domeny
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-cop-app').innerHTML = `
            <div style="padding:40px; text-align:center; background:#0f172a; border-radius:24px; border:2px solid #ef4444; color:#fff; font-family:sans-serif; margin: 40px auto; max-width:800px;">
                <div style="font-size: 40px; margin-bottom: 15px;">🛑</div>
                <div style="color:#ef4444; font-size:22px; font-weight:900; margin-bottom: 10px; text-transform:uppercase;">Naruszenie Praw Autorskich</div>
                <div style="color:#cbd5e1; font-size:15px; line-height:1.6;">Interaktywny symulator COP i zaszyte dane inżynierskie stanowią własność Projekt-Ogrzewania.pl. Użycie zabronione.</div>
            </div>
        `;
        return;
    }

    // 2. Logika symulatora
    const slider = document.getElementById('rk-cop-slider');
    const valText = document.getElementById('rk-cop-spacing-val');
    const tempVal = document.getElementById('rk-cop-temp-val');
    const effVal = document.getElementById('rk-cop-eff-val');
    
    // SVG Elements
    const fan = document.getElementById('rk-fan');
    const gauge = document.getElementById('rk-gauge-arc');

    // Wstrzyknięcie klatek kluczowych rotacji, jeśli ich nie ma w CSS globalnie
    if (!document.getElementById('rk-spin-style')) {
        const style = document.createElement('style');
        style.id = 'rk-spin-style';
        style.innerHTML = `@keyframes spinFan { 100% { transform: rotate(360deg); } }`;
        document.head.appendChild(style);
    }

    function updateSimulation() {
        const spacing = parseInt(slider.value);
        valText.textContent = spacing + ' cm';
        
        let reqTemp, effStatus, colorHex, fanSpeed, gaugeOffset;

        if (spacing === 10) {
            reqTemp = "35.6°C";
            effStatus = "+15%";
            colorHex = "var(--rk-cop-green)";
            fanSpeed = "3s"; // Sprężarka pracuje na luzie
            gaugeOffset = "23"; // Mniej wypełniony zegar
        } else if (spacing === 15) {
            reqTemp = "38.1°C";
            effStatus = "+6%";
            colorHex = "var(--rk-cop-yellow)";
            fanSpeed = "1.2s"; // Średnie obciążenie
            gaugeOffset = "12";
        } else {
            // 20 cm
            reqTemp = "40.7°C";
            effStatus = "BAZA (0%)";
            colorHex = "var(--rk-cop-red)";
            fanSpeed = "0.4s"; // Sprężarka wyje (duże obciążenie)
            gaugeOffset = "0"; // Zegar pełny
        }

        // Aktualizacja UI tekstowego
        tempVal.textContent = reqTemp;
        tempVal.style.color = colorHex;
        effVal.textContent = effStatus;
        effVal.style.color = colorHex;

        // Aktualizacja SVG
        fan.style.animationDuration = fanSpeed;
        gauge.style.stroke = colorHex;
        gauge.style.strokeDashoffset = gaugeOffset;
    }

    slider.addEventListener('input', updateSimulation);
    updateSimulation(); // init
});
</script>



<style>
:root {
    --rk-algo-dark: #0f172a;
    --rk-algo-panel: #1e293b;
    --rk-algo-brand: #0ea5e9;
    --rk-algo-brand-dark: #0284c7;
    --rk-algo-accent: #38bdf8;
    --rk-algo-text: #f8fafc;
    --rk-algo-muted: #94a3b8;
    --rk-algo-border: #334155;
    --rk-algo-bg: #0b1120;
    --rk-algo-glow: rgba(14, 165, 233, 0.4);
}

.rk-algo-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: var(--rk-algo-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(14, 165, 233, 0.15);
    border: 1px solid var(--rk-algo-border);
    overflow: hidden;
    color: var(--rk-algo-text);
}

/* Nagłówek */
.rk-algo-header {
    background: linear-gradient(135deg, #020617 0%, var(--rk-algo-dark) 100%);
    padding: 45px 50px;
    position: relative;
    border-bottom: 2px solid var(--rk-algo-border);
}

.rk-algo-header::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; height: 100%;
    background-image: linear-gradient(var(--rk-algo-border) 1px, transparent 1px), linear-gradient(90deg, var(--rk-algo-border) 1px, transparent 1px);
    background-size: 30px 30px;
    opacity: 0.1;
    pointer-events: none;
}

.rk-algo-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(14, 165, 233, 0.15);
    color: var(--rk-algo-accent);
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 20px;
    border: 1px solid rgba(14, 165, 233, 0.3);
}

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

.rk-algo-title span { color: var(--rk-algo-accent); }

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

.rk-link {
    color: var(--rk-algo-accent);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed rgba(56, 189, 248, 0.5);
    transition: all 0.3s;
}

.rk-link:hover {
    color: #bae6fd;
    border-bottom-style: solid;
}

/* Główny układ: Procedura (Lewo) + Kalkulator (Prawo) */
.rk-algo-body {
    padding: 40px 50px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    background: var(--rk-algo-dark);
}

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

/* Lista kroków (Procedura inżynierska) */
.rk-steps-list {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-step-item {
    background: var(--rk-algo-panel);
    border: 1px solid var(--rk-algo-border);
    border-radius: 16px;
    padding: 20px;
    position: relative;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

.rk-step-header {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    margin-bottom: 10px;
}

.rk-step-num {
    background: var(--rk-algo-brand);
    color: #ffffff;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 900;
    flex-shrink: 0;
    box-shadow: 0 0 10px var(--rk-algo-glow);
}

.rk-step-title {
    font-size: 15px;
    font-weight: 700;
    color: #e2e8f0;
    line-height: 1.4;
    margin: 0;
}

.rk-step-desc {
    font-size: 13px;
    color: var(--rk-algo-muted);
    line-height: 1.6;
    margin: 0 0 10px 43px;
}

.rk-formula {
    background: #000000;
    border: 1px solid var(--rk-algo-border);
    padding: 10px 15px;
    border-radius: 8px;
    font-family: 'Courier New', Courier, monospace;
    font-weight: 700;
    color: var(--rk-algo-accent);
    margin-left: 43px;
    font-size: 14px;
    text-align: center;
    letter-spacing: 0.5px;
}

/* Interaktywny Kalkulator Algorytmiczny */
.rk-calc-box {
    background: var(--rk-algo-panel);
    border-radius: 20px;
    padding: 30px;
    border: 1px solid var(--rk-algo-brand);
    box-shadow: 0 0 30px rgba(14, 165, 233, 0.1);
    display: flex;
    flex-direction: column;
}

.rk-calc-group {
    margin-bottom: 25px;
}

.rk-calc-lbl {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-algo-muted);
    text-transform: uppercase;
    margin-bottom: 10px;
}

.rk-calc-val {
    color: #ffffff;
    font-size: 18px;
}

/* NOWA KLASA DLA SUWAKÓW ABY UNIKNĄĆ KONFLIKTU */
.rk-algo-range {
    -webkit-appearance: none;
    width: 100%;
    height: 6px;
    background: var(--rk-algo-border);
    border-radius: 3px;
    outline: none;
}

.rk-algo-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-algo-brand);
    cursor: pointer;
    box-shadow: 0 0 10px var(--rk-algo-glow);
    transition: transform 0.1s;
}

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

/* Wyniki Kalkulatora */
.rk-results-panel {
    background: #000000;
    border-radius: 16px;
    padding: 20px;
    margin-top: auto;
    border: 1px solid var(--rk-algo-border);
}

.rk-res-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px dashed var(--rk-algo-border);
}
.rk-res-row:last-child { border-bottom: none; }

.rk-res-name {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-algo-muted);
}

.rk-res-data {
    font-size: 18px;
    font-weight: 900;
    color: #ffffff;
}

.rk-res-highlight {
    font-size: 24px;
    color: var(--rk-algo-accent);
}

/* SVG Wizualizacja Przekroju */
.rk-svg-viewport {
    background: #000000;
    border-radius: 16px;
    padding: 15px;
    margin-top: 25px;
    border: 1px solid var(--rk-algo-border);
    height: 120px;
    display: flex;
    align-items: center;
    justify-content: center;
}

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

.rk-bp-concrete { fill: #1e293b; stroke: #334155; stroke-width: 2; }
.rk-bp-pipe { fill: var(--rk-algo-bg); stroke: var(--rk-algo-accent); stroke-width: 3; }
.rk-bp-dim { stroke: var(--rk-algo-muted); stroke-width: 1; stroke-dasharray: 2 2; }
.rk-bp-text { fill: var(--rk-algo-muted); font-size: 12px; font-family: monospace; }

/* Grupy rur ukrywane przez JS */
.rk-group-10, .rk-group-15, .rk-group-20 { opacity: 0; transition: opacity 0.4s ease; }
.rk-group-10.active, .rk-group-15.active, .rk-group-20.active { opacity: 1; }

@media (max-width: 768px) {
    .rk-algo-header, .rk-algo-body { padding: 30px 20px; }
    .rk-algo-body { grid-template-columns: 1fr; gap: 30px; }
    .rk-step-desc, .rk-formula { margin-left: 0; margin-top: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#article-algorytm",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/"
    },
    "headline": "Jak obliczyć optymal rozstaw rur podłogówki?",
    "description": "Profesjonalny algorytm obliczeniowy doboru rozstawu rur w ogrzewaniu podłogowym krok po kroku. Kalkulacja gęstości strumienia cieplnego wg PN-EN 12831.",
    "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-21",
    "dateModified": "2026-05-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#dataset-algorytm",
    "name": "Algorytm inżynierski wyznaczania gęstości strumienia cieplnego q",
    "description": "Zestawienie wzorów matematycznych i limitów normowych służących do projektowania rozstawu pętli ogrzewania płaszczyznowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "obliczenia OZC podłogówki",
      "wzór na rozstaw rur",
      "gęstość strumienia cieplnego q",
      "norma PN-EN 12831",
      "projektowanie instalacji podłogowej"
    ],
    "measurementTechnique": "Algorytm 5 kroków obliczeniowych (Q_obl -> q -> t_m -> dt_ln -> b) wyznaczający gęstość ułożenia rur na bazie bilansu cieplnego OZC.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Krok 1: Skorygowanie mocy (Q_obl = Q_OZC * 1.15).",
        "Krok 2: Wyznaczenie gęstości strumienia z pow. netto (q = Q_obl / A_eff).",
        "Krok 5: Przypisanie rozstawu. q > 60 W/m² = 10 cm; q = 35-60 W/m² = 15 cm; q < 35 W/m² = 20 cm."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#webapp-algorytm",
    "name": "Kalkulator Algorytmu OZC dla Podłogówki",
    "description": "Interaktywny kalkulator inżynierski przeliczający wartość obciążenia cieplnego OZC oraz powierzchnię na niezbędny strumień cieplny q i optymalny rozstaw pętli.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5 input range for algorithmic calculations.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-algo-container" id="rk-algo-app">
    <div class="rk-algo-header">
        <div class="rk-algo-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"><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>
            Procedura Obliczeniowa
        </div>
        <h2 class="rk-algo-title">Jak obliczyć optymalny rozstaw <span>rur podłogówki?</span></h2>
        <p class="rk-algo-lead">
            Aby prawidłowo wyliczyć rozstaw rur, należy bezwzględnie oprzeć się na jednostkowym zapotrzebowaniu na ciepło <strong>q</strong> (W/m²), wyznaczonym z certyfikowanego bilansu OZC (zgodnego z normą <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/" class="rk-link">PN-EN 12831</a>). Projektant dopasowuje rozstaw tak, aby opór cieplny okładziny nie zablokował strumienia ciepła. Poznaj algorytm stosowany w biurach inżynierskich.
        </p>
    </div>

    <div class="rk-algo-body">
        
        <div class="rk-algo-steps">
            <h3 class="rk-algo-h3">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="4 14 10 14 10 20"></polyline><polyline points="20 10 14 10 14 4"></polyline><line x1="14" y1="10" x2="21" y2="3"></line><line x1="3" y1="21" x2="10" y2="14"></line></svg>
                Algorytm Krok po Kroku
            </h3>
            
            <div class="rk-steps-list">
                <div class="rk-step-item">
                    <div class="rk-step-header">
                        <div class="rk-step-num">1</div>
                        <h4 class="rk-step-title">Wyznaczenie projektowego obciążenia cieplnego pomieszczenia (Q_obl)</h4>
                    </div>
                    <p class="rk-step-desc">Wartość pobieramy z <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" class="rk-link">arkusza OZC</a> i korygujemy o inżynierski naddatek (15%) na szybkie podgrzanie po wietrzeniu.</p>
                    <div class="rk-formula">Q_obl = Q_OZC × 1.15</div>
                </div>

                <div class="rk-step-item">
                    <div class="rk-step-header">
                        <div class="rk-step-num">2</div>
                        <h4 class="rk-step-title">Obliczenie gęstości strumienia cieplnego posadzki (q)</h4>
                    </div>
                    <p class="rk-step-desc">Dzielimy moc przez pow. grzewczą netto (bez stałej zabudowy). <em>Przykład: 800W / 12m² = 66,67 W/m².</em></p>
                    <div class="rk-formula">q = Q_obl / A_eff</div>
                </div>

                <div class="rk-step-item">
                    <div class="rk-step-header">
                        <div class="rk-step-num">3</div>
                        <h4 class="rk-step-title">Wyznaczenie temperatur (t_m oraz dt_ln)</h4>
                    </div>
                    <p class="rk-step-desc">Obliczamy średnią temperaturę czynnika oraz logarytmiczną różnicę temperatur między wodą a powietrzem.</p>
                    <div class="rk-formula">t_m = t_z - (ΔT / 2)</div>
                </div>

                <div class="rk-step-item" style="border-color: var(--rk-algo-brand);">
                    <div class="rk-step-header">
                        <div class="rk-step-num">4</div>
                        <h4 class="rk-step-title">Dobór rozstawu rur (b) z funkcji przewodzenia</h4>
                    </div>
                    <p class="rk-step-desc">Jeśli strumień <strong>q > 60 W/m²</strong>, bezwzględnie krok 10 cm. W przedziale <strong>35-60 W/m²</strong> stosuje się krok 15 cm. Poniżej <strong>35 W/m²</strong> to <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/" class="rk-link">krok 20 cm</a>.</p>
                    <div class="rk-formula">b = [ λ_jastrych × (t_m - t_f) ] / (q × ψ)</div>
                </div>
            </div>
        </div>

        <div class="rk-calc-box">
            <h3 class="rk-algo-h3" style="color: var(--rk-algo-accent); margin-bottom: 30px;">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="2" width="16" height="20" rx="2" ry="2"></rect><line x1="8" y1="6" x2="16" y2="6"></line><line x1="16" y1="14" x2="16.01" y2="14"></line><line x1="12" y1="14" x2="12.01" y2="14"></line><line x1="8" y1="14" x2="8.01" y2="14"></line><line x1="16" y1="18" x2="16.01" y2="18"></line><line x1="12" y1="18" x2="12.01" y2="18"></line><line x1="8" y1="18" x2="8.01" y2="18"></line><line x1="16" y1="10" x2="16.01" y2="10"></line><line x1="12" y1="10" x2="12.01" y2="10"></line><line x1="8" y1="10" x2="8.01" y2="10"></line></svg>
                Symulator Kroków 1 i 2
            </h3>

            <div class="rk-calc-group">
                <div class="rk-calc-lbl">
                    <span>Moc z OZC (Q_OZC)</span>
                    <span class="rk-calc-val" id="rk-val-ozc">800 W</span>
                </div>
                <input type="range" class="rk-algo-range" id="rk-slider-ozc" min="200" max="1500" step="50" value="800">
            </div>

            <div class="rk-calc-group">
                <div class="rk-calc-lbl">
                    <span>Pow. Netto Pętli (A_eff)</span>
                    <span class="rk-calc-val" id="rk-val-area">12 m²</span>
                </div>
                <input type="range" class="rk-algo-range" id="rk-slider-area" min="5" max="25" step="1" value="12">
            </div>

            <div class="rk-results-panel">
                <div class="rk-res-row">
                    <span class="rk-res-name">Moc skorygowana (Q_obl):</span>
                    <span class="rk-res-data" id="rk-res-qobl">920 W</span>
                </div>
                <div class="rk-res-row">
                    <span class="rk-res-name">Gęstość strumienia (q):</span>
                    <span class="rk-res-data" id="rk-res-q" style="color: #fcd34d;">76.7 W/m²</span>
                </div>
                <div class="rk-res-row" style="margin-top: 10px; border: none;">
                    <span class="rk-res-name">Wynikowy rozstaw (b):</span>
                    <span class="rk-res-data rk-res-highlight" id="rk-res-spacing">10 cm</span>
                </div>
            </div>

            <div class="rk-svg-viewport">
                <svg class="rk-svg-blueprint" viewBox="0 0 200 60">
                    <rect x="0" y="20" width="200" height="40" class="rk-bp-concrete" rx="2"/>
                    <line x1="0" y1="20" x2="200" y2="20" stroke="#475569" stroke-width="2"/>
                    
                    <g class="rk-group-10" id="rk-bp-10">
                        <circle cx="25" cy="40" r="5" class="rk-bp-pipe"/>
                        <circle cx="50" cy="40" r="5" class="rk-bp-pipe"/>
                        <circle cx="75" cy="40" r="5" class="rk-bp-pipe"/>
                        <circle cx="100" cy="40" r="5" class="rk-bp-pipe"/>
                        <circle cx="125" cy="40" r="5" class="rk-bp-pipe"/>
                        <circle cx="150" cy="40" r="5" class="rk-bp-pipe"/>
                        <circle cx="175" cy="40" r="5" class="rk-bp-pipe"/>
                        <line x1="75" y1="10" x2="100" y2="10" class="rk-bp-dim"/>
                        <line x1="75" y1="5" x2="75" y2="15" stroke="#94a3b8"/>
                        <line x1="100" y1="5" x2="100" y2="15" stroke="#94a3b8"/>
                        <text x="87.5" y="8" class="rk-bp-text" text-anchor="middle">10cm</text>
                    </g>

                    <g class="rk-group-15" id="rk-bp-15">
                        <circle cx="20" cy="40" r="5" class="rk-bp-pipe"/>
                        <circle cx="60" cy="40" r="5" class="rk-bp-pipe"/>
                        <circle cx="100" cy="40" r="5" class="rk-bp-pipe"/>
                        <circle cx="140" cy="40" r="5" class="rk-bp-pipe"/>
                        <circle cx="180" cy="40" r="5" class="rk-bp-pipe"/>
                        <line x1="60" y1="10" x2="100" y2="10" class="rk-bp-dim"/>
                        <line x1="60" y1="5" x2="60" y2="15" stroke="#94a3b8"/>
                        <line x1="100" y1="5" x2="100" y2="15" stroke="#94a3b8"/>
                        <text x="80" y="8" class="rk-bp-text" text-anchor="middle">15cm</text>
                    </g>

                    <g class="rk-group-20" id="rk-bp-20">
                        <circle cx="35" cy="40" r="5" class="rk-bp-pipe"/>
                        <circle cx="80" cy="40" r="5" class="rk-bp-pipe"/>
                        <circle cx="125" cy="40" r="5" class="rk-bp-pipe"/>
                        <circle cx="170" cy="40" r="5" class="rk-bp-pipe"/>
                        <line x1="80" y1="10" x2="125" y2="10" class="rk-bp-dim"/>
                        <line x1="80" y1="5" x2="80" y2="15" stroke="#94a3b8"/>
                        <line x1="125" y1="5" x2="125" y2="15" stroke="#94a3b8"/>
                        <text x="102.5" y="8" class="rk-bp-text" text-anchor="middle">20cm</text>
                    </g>
                </svg>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domeny (Brak H2/H3 w Alercie)
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-algo-app').innerHTML = `
            <div style="padding:40px; text-align:center; background:#0f172a; border-radius:24px; border:2px solid #ef4444; color:#fff; font-family:sans-serif; margin:40px auto; max-width:800px;">
                <div style="font-size: 40px; margin-bottom: 15px;">🛑</div>
                <div style="color:#ef4444; font-size:22px; font-weight:900; margin-bottom:10px; text-transform:uppercase;">Naruszenie Praw Autorskich</div>
                <div style="color:#cbd5e1; font-size:15px; line-height:1.6;">Skrypt algorytmu oraz znaczników JSON-LD jest własnością Projekt-Ogrzewania.pl. Użycie zabronione.</div>
            </div>
        `;
        return;
    }

    // 2. Logika Algorytmu OZC
    const sliderOzc = document.getElementById('rk-slider-ozc');
    const valOzc = document.getElementById('rk-val-ozc');
    const sliderArea = document.getElementById('rk-slider-area');
    const valArea = document.getElementById('rk-val-area');
    
    const resQobl = document.getElementById('rk-res-qobl');
    const resQ = document.getElementById('rk-res-q');
    const resSpacing = document.getElementById('rk-res-spacing');
    
    // SVG Grupy
    const bp10 = document.getElementById('rk-bp-10');
    const bp15 = document.getElementById('rk-bp-15');
    const bp20 = document.getElementById('rk-bp-20');

    function calculateAlgorithm() {
        const q_ozc = parseInt(sliderOzc.value);
        const a_eff = parseFloat(sliderArea.value);
        
        // Aktualizacja labeli
        valOzc.textContent = q_ozc + ' W';
        valArea.textContent = a_eff + ' m²';

        // Matematyka inżynierska
        const q_obl = Math.round(q_ozc * 1.15); // +15%
        const q_strumien = (q_obl / a_eff).toFixed(1);

        // Wyniki text
        resQobl.textContent = q_obl + ' W';
        resQ.textContent = q_strumien + ' W/m²';

        // Warunki doboru (krok 5)
        let spacingResult = "15 cm";
        let activeLayer = bp15;
        let color = "#10b981"; // Green (Optimum)

        if (q_strumien > 60) {
            spacingResult = "10 cm";
            activeLayer = bp10;
            color = "#ef4444"; // Red (High load)
        } else if (q_strumien < 35) {
            spacingResult = "20 cm";
            activeLayer = bp20;
            color = "#0ea5e9"; // Blue (Low load)
        }

        resQ.style.color = color;
        resSpacing.textContent = spacingResult;

        // Aktualizacja SVG wizualizacji (z użyciem transition)
        bp10.classList.remove('active');
        bp15.classList.remove('active');
        bp20.classList.remove('active');
        activeLayer.classList.add('active');
    }

    // Nasłuchiwacze
    sliderOzc.addEventListener('input', calculateAlgorithm);
    sliderArea.addEventListener('input', calculateAlgorithm);
    
    // Inicjalizacja
    calculateAlgorithm();
});
</script>



<ol start="1" class="wp-block-list">
<li></li>
</ol>



<style>
:root {
    --rk-pcalc-dark: #0f172a;
    --rk-pcalc-brand: #3b82f6;
    --rk-pcalc-accent: #60a5fa;
    --rk-pcalc-bg: #ffffff;
    --rk-pcalc-text: #334155;
    --rk-pcalc-muted: #64748b;
    --rk-pcalc-border: #e2e8f0;
}

.rk-pcalc-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: var(--rk-pcalc-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(59, 130, 246, 0.15);
    border: 1px solid rgba(59, 130, 246, 0.3);
    overflow: hidden;
}

/* Nagłówek */
.rk-pcalc-header {
    background: linear-gradient(135deg, var(--rk-pcalc-dark) 0%, #1e3a8a 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-pcalc-brand);
}

.rk-pcalc-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(59, 130, 246, 0.25);
    color: #93c5fd;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(59, 130, 246, 0.3);
}

.rk-pcalc-title {
    font-size: 30px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 20px 0;
}

.rk-pcalc-title span { color: var(--rk-pcalc-accent); }

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

.rk-link {
    color: var(--rk-pcalc-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed rgba(59, 130, 246, 0.4);
    transition: all 0.3s;
}

.rk-link:hover { color: #2563eb; border-bottom-style: solid; }

/* Moduł zawartości */
.rk-pcalc-interactive {
    padding: 40px 50px;
    background: #f8fafc;
}

/* Tabela Responsywna */
.rk-table-section { margin-top: 10px; }

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

.rk-table-header { display: none; }

.rk-table-row {
    background: #ffffff;
    border: 1px solid var(--rk-pcalc-border);
    border-radius: 16px;
    padding: 20px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    display: grid;
    gap: 12px;
}

.rk-cell {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 14px;
    border-bottom: 1px dashed var(--rk-pcalc-border);
    padding-bottom: 8px;
}
.rk-cell:last-child { border-bottom: none; padding-bottom: 0; }

.rk-cell-lbl { font-weight: 700; color: var(--rk-pcalc-muted); }
.rk-cell-val { font-weight: 900; color: var(--rk-pcalc-dark); font-size: 16px; }
.rk-cell-val.main { color: var(--rk-pcalc-brand); font-size: 18px; }

/* Case Study */
.rk-case-study {
    background: #ffffff;
    border-left: 4px solid var(--rk-pcalc-brand);
    padding: 25px 30px;
    border-radius: 0 16px 16px 0;
    margin-top: 40px;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
}

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

.rk-math-block {
    background: var(--rk-pcalc-dark);
    color: #ffffff;
    padding: 15px 20px;
    border-radius: 12px;
    font-family: monospace;
    font-size: 14px;
    margin-bottom: 15px;
}

.rk-math-block span { color: var(--rk-pcalc-accent); font-weight: bold; }

.rk-alert-red {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    background: rgba(239, 68, 68, 0.08);
    color: #b91c1c;
    padding: 16px 20px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.6;
    margin-top: 15px;
    border: 1px solid rgba(239, 68, 68, 0.2);
}

@media (min-width: 850px) {
    .rk-grid-table {
        background: #ffffff;
        border: 1px solid var(--rk-pcalc-border);
        border-radius: 16px;
        overflow: hidden;
        gap: 0;
    }
    .rk-table-header {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr 1.2fr 1.2fr;
        background: var(--rk-pcalc-dark);
        color: #ffffff;
        padding: 15px 20px;
        font-size: 12px;
        font-weight: 800;
        text-transform: uppercase;
        text-align: center;
    }
    .rk-table-row {
        grid-template-columns: 1fr 1fr 1fr 1.2fr 1.2fr;
        border: none;
        border-bottom: 1px solid var(--rk-pcalc-border);
        border-radius: 0;
        padding: 15px 20px;
        box-shadow: none;
        align-items: center;
        text-align: center;
    }
    .rk-table-row:last-child { border-bottom: none; }
    .rk-cell { display: block; border: none; padding: 0; }
    .rk-cell-lbl { display: none; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#article-rura",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/"
    },
    "headline": "Ile rury PEX/PERT potrzeba na m² ogrzewania podłogowego?",
    "description": "Zestawienie zużycia rury 16x2 mm dla rozstawów 10, 15 i 20 cm. Parametry techniczne i obliczanie pętli grzewczych.",
    "author": { "@type": "Person", "name": "Robert Kucharski" },
    "datePublished": "2026-05-21",
    "dateModified": "2026-05-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#dataset-rura",
    "name": "Parametry techniczno-hydrauliczne rury PEX-Al-PEX 16x2 mm",
    "description": "Tabela zużycia materiałów: mb na m², pojemność wodna i waga jastrychu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": { "@type": "Person", "name": "Robert Kucharski" },
    "keywords": ["zużycie rury PEX", "pojemność wodna podłogówki", "waga jastrychu"],
    "measurementTechnique": "Obliczenia geometryczne zapotrzebowania z 5% naddatkiem montażowym.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rozstaw 10 cm: 10 mb/m²",
        "Rozstaw 15 cm: 6.67 mb/m²",
        "Rozstaw 20 cm: 5.0 mb/m²"
      ]
    }
  }
]
</script>

<div class="rk-pcalc-container">
    <div class="rk-pcalc-header">
        <div class="rk-pcalc-badge">Zestawienie Materiałowe</div>
        <h2 class="rk-pcalc-title">Ile rury PEX/PERT potrzeba <span>na m² ogrzewania?</span></h2>
        <p class="rk-pcalc-lead">
            Dla rozstawu rur co 10 cm zużycie materiału wynosi dokładnie 10 mb/m², dla 15 cm jest to 6,67 mb/m², a dla 20 cm spada do 5 mb/m². Do wartości czysto geometrycznych należy doliczyć od <strong>5% do 10% naddatku</strong> na podejścia do <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/" class="rk-link-light">rozdzielacza</a>.
        </p>
    </div>

    <div class="rk-pcalc-interactive">
        <div class="rk-table-section">
            <div class="rk-grid-table">
                <div class="rk-table-header">
                    <div>Rozstaw rur</div>
                    <div>Zużycie [mb/m²]</div>
                    <div>Pojemność [l/m²]</div>
                    <div>Max obszar pętli [m²]</div>
                    <div>Waga posadzki [kg/m²]</div>
                </div>
                <div class="rk-table-row">
                    <div class="rk-cell"><span class="rk-cell-lbl">Rozstaw rur:</span> <span class="rk-cell-val main">10 cm</span></div>
                    <div class="rk-cell"><span class="rk-cell-lbl">Zużycie:</span> <span class="rk-cell-val">10.0 mb/m²</span></div>
                    <div class="rk-cell"><span class="rk-cell-lbl">Pojemność:</span> <span class="rk-cell-val">1.13 l/m²</span></div>
                    <div class="rk-cell"><span class="rk-cell-lbl">Max obszar:</span> <span class="rk-cell-val">10.0 m²</span></div>
                    <div class="rk-cell"><span class="rk-cell-lbl">Waga posadzki:</span> <span class="rk-cell-val">145 kg/m²</span></div>
                </div>
                <div class="rk-table-row">
                    <div class="rk-cell"><span class="rk-cell-lbl">Rozstaw rur:</span> <span class="rk-cell-val main">15 cm</span></div>
                    <div class="rk-cell"><span class="rk-cell-lbl">Zużycie:</span> <span class="rk-cell-val">6.67 mb/m²</span></div>
                    <div class="rk-cell"><span class="rk-cell-lbl">Pojemność:</span> <span class="rk-cell-val">0.75 l/m²</span></div>
                    <div class="rk-cell"><span class="rk-cell-lbl">Max obszar:</span> <span class="rk-cell-val">15.0 m²</span></div>
                    <div class="rk-cell"><span class="rk-cell-lbl">Waga posadzki:</span> <span class="rk-cell-val">142 kg/m²</span></div>
                </div>
                <div class="rk-table-row">
                    <div class="rk-cell"><span class="rk-cell-lbl">Rozstaw rur:</span> <span class="rk-cell-val main">20 cm</span></div>
                    <div class="rk-cell"><span class="rk-cell-lbl">Zużycie:</span> <span class="rk-cell-val">5.0 mb/m²</span></div>
                    <div class="rk-cell"><span class="rk-cell-lbl">Pojemność:</span> <span class="rk-cell-val">0.57 l/m²</span></div>
                    <div class="rk-cell"><span class="rk-cell-lbl">Max obszar:</span> <span class="rk-cell-val">20.0 m²</span></div>
                    <div class="rk-cell"><span class="rk-cell-lbl">Waga posadzki:</span> <span class="rk-cell-val">140 kg/m²</span></div>
                </div>
            </div>
        </div>

        <div class="rk-case-study">
            <h4 style="font-size: 18px; font-weight: 800; color: var(--rk-pcalc-dark); margin: 0 0 15px 0;">Obliczenie i podział na pętle w praktyce</h4>
            <p>Wyobraźmy sobie duży salon o powierzchni <strong>40 m²</strong>. Planujemy ułożyć rury co <strong>15 cm</strong>.</p>
            <div class="rk-math-block">
                1. Długość bazowa: 40 m² × 6,67 mb/m² = <span>266,8 mb</span><br>
                2. Z naddatkiem 5%: 266,8 × 1,05 = <span>280,1 mb rury</span>
            </div>
            <p>Ponieważ <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/" class="rk-link">maksymalna długość pętli</a> dla rury 16 mm wynosi 100 mb, dzielimy salon na <strong>3 niezależne obwody</strong>.</p>
            <div class="rk-alert-red">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                <span>Próba ułożenia tego na dwóch pętlach po 140 mb skończyłaby się katastrofą hydrauliczną (<a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/" style="color: inherit; text-decoration: underline; white-space: nowrap;">za długa pętla</a>).</span>
            </div>
        </div>
    </div>
</div>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-panel: #1e293b;
    --rk-err-danger: #ef4444; /* Czerwony - Błędy / Przeciążenie */
    --rk-err-warn: #f59e0b;   /* Żółty - Ostrzeżenie */
    --rk-err-success: #10b981; /* Zielony - Optymalnie */
    --rk-err-cold: #3b82f6;   /* Niebieski - Niedogrzanie */
    --rk-err-bg: #f8fafc;
    --rk-err-border: #e2e8f0;
    --rk-err-text: #334155;
    --rk-err-muted: #64748b;
}

.rk-err-container {
    max-width: 950px;
    margin: 50px 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(15, 23, 42, 0.15);
    border: 1px solid var(--rk-err-border);
    overflow: hidden;
}

/* Nagłówek */
.rk-err-header {
    background: linear-gradient(135deg, var(--rk-err-dark) 0%, #3f1d38 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-err-danger);
}

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

.rk-err-title {
    font-size: 30px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 20px 0;
}

.rk-err-title span { color: #f87171; }

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

.rk-link {
    color: #fca5a5;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed rgba(252, 165, 165, 0.5);
    transition: all 0.3s;
}

.rk-link:hover {
    color: #fef2f2;
    border-bottom-style: solid;
}

/* Interaktywny Symulator Błędów */
.rk-err-interactive {
    padding: 40px 50px;
}

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

.rk-err-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 30px;
    margin-bottom: 40px;
}

/* Panel Suwaka */
.rk-sim-controls {
    background: #ffffff;
    border-radius: 20px;
    padding: 30px;
    border: 1px solid var(--rk-err-border);
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
    display: flex;
    flex-direction: column;
}

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

.rk-ctrl-lbl {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-err-muted);
    text-transform: uppercase;
}

.rk-ctrl-val {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-err-dark);
}

/* Unikalna klasa dla suwaka */
.rk-err-range {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    background: linear-gradient(90deg, #ef4444 0%, #10b981 50%, #3b82f6 100%);
    border-radius: 4px;
    outline: none;
    margin-bottom: 30px;
}

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

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

/* Wskaźniki parametrów */
.rk-param-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: auto;
}

.rk-param-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 15px;
    background: var(--rk-err-bg);
    border-radius: 10px;
    font-size: 14px;
    border: 1px solid var(--rk-err-border);
}

.rk-param-item span:first-child { font-weight: 700; color: var(--rk-err-muted); }
.rk-param-item span:last-child { font-weight: 900; }

/* Panel Wizualizacji SVG */
.rk-viz-board {
    background: var(--rk-err-dark);
    border-radius: 20px;
    border: 2px solid #334155;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}

.rk-viz-status {
    position: absolute;
    top: 20px; left: 20px; right: 20px;
    background: rgba(0,0,0,0.6);
    backdrop-filter: blur(4px);
    padding: 15px;
    border-radius: 12px;
    color: #ffffff;
    font-weight: 800;
    font-size: 15px;
    text-align: center;
    z-index: 10;
    border: 1px solid rgba(255,255,255,0.1);
}

.rk-svg-layer {
    width: 100%;
    height: 100%;
    min-height: 250px;
    display: none; /* Przełączane przez JS */
}
.rk-svg-layer.active { display: block; }

/* Animacje SVG */
.rk-anim-laminar { stroke-dasharray: 20 10; animation: flowSlow 4s linear infinite; }
.rk-anim-turbulent { stroke-dasharray: 5 10 15 5; animation: flowFast 1s linear infinite; }
.rk-anim-pump-shake { animation: shakeError 0.3s ease-in-out infinite; transform-origin: center; }
.rk-anim-zebra { opacity: 0; animation: pulseZebra 3s infinite alternate; }

@keyframes flowSlow { to { stroke-dashoffset: -60; } }
@keyframes flowFast { to { stroke-dashoffset: -100; } }
@keyframes pulseZebra { from { opacity: 0.2; } to { opacity: 0.8; } }
@keyframes shakeError {
    0%, 100% { transform: translate(0, 0) rotate(0deg); }
    25% { transform: translate(-2px, 2px) rotate(-2deg); }
    50% { transform: translate(2px, -2px) rotate(2deg); }
    75% { transform: translate(-2px, -2px) rotate(-1deg); }
}

/* Karty Skutków Błędów */
.rk-effects-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 40px;
}

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

.rk-effect-card.dense { border-top: 4px solid var(--rk-err-danger); }
.rk-effect-card.sparse { border-top: 4px solid var(--rk-err-cold); }

.rk-effect-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-err-dark);
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-effect-list {
    margin: 0; padding: 0; list-style: none;
}

.rk-effect-list li {
    font-size: 14px;
    color: var(--rk-err-text);
    line-height: 1.6;
    margin-bottom: 10px;
    padding-left: 20px;
    position: relative;
}

.rk-effect-list li::before {
    content: '→';
    position: absolute;
    left: 0; top: 0;
    color: var(--rk-err-muted);
    font-weight: bold;
}

/* Case Study - Obliczenia */
.rk-case-block {
    background: var(--rk-err-panel);
    border-radius: 20px;
    padding: 30px;
    color: #ffffff;
}

.rk-case-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--rk-err-border);
}

.rk-case-header svg { color: var(--rk-err-warn); }

.rk-case-text {
    font-size: 15px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0 0 20px 0;
}

.rk-case-math {
    background: #000000;
    padding: 20px;
    border-radius: 12px;
    font-family: 'Courier New', Courier, monospace;
    font-size: 14px;
    color: #38bdf8;
    border: 1px dashed #334155;
    margin-bottom: 20px;
}

.rk-case-math span { color: #f87171; font-weight: bold; }

.rk-alert-box {
    background: rgba(239, 68, 68, 0.15);
    border-left: 4px solid var(--rk-err-danger);
    padding: 15px 20px;
    border-radius: 0 10px 10px 0;
    font-size: 14px;
    font-weight: 600;
    color: #fca5a5;
    line-height: 1.6;
}

@media (max-width: 850px) {
    .rk-err-header, .rk-err-interactive { padding: 30px 20px; }
    .rk-err-grid, .rk-effects-grid { grid-template-columns: 1fr; }
    .rk-viz-board { height: 280px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/"
    },
    "headline": "Jakie są konsekwencje błędów w gęstości układania podłogówki?",
    "description": "Analiza skutków błędnego rozstawu rur w ogrzewaniu podłogowym. Dowiedz się, dlaczego zbyt gęsty rozstaw niszczy pompę obiegową, a zbyt rzadki wywołuje zebrę termiczną.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.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-21",
    "dateModified": "2026-05-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#dataset-bledy",
    "name": "Parametry hydrauliczne i termiczne błędów montażowych O.P.",
    "description": "Zestawienie porównawcze konsekwencji skrajnych rozstawów rur: opory hydrauliczne (kPa), liczba Reynoldsa i zjawiska termiczne posadzki.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "skutki złego rozstawu rur",
      "przepływ laminarny podłogówka",
      "opór hydrauliczny pompy obiegowej",
      "efekt zebry termicznej",
      "błędy montażu ogrzewania podłogowego"
    ],
    "measurementTechnique": "Obliczenia hydrauliczne spadku ciśnienia, przepływu masowego (m = Q / (cp * ΔT)) oraz liczby Reynoldsa (Re > 4000 dla przepływu turbulentnego).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zbyt gęsty rozstaw (<10cm): Opory hydrauliczne > 35 kPa, przeciążenie pompy obiegowej, przepływ laminarny.",
        "Zbyt rzadki rozstaw (>20cm): Zebra termiczna na posadzce, spadek sprawności emisyjnej o 20%, wzrost rachunków o 15-24%."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#webapp-bledy",
    "name": "Symulator Błędów Hydraulicznych",
    "description": "Interaktywna animacja SVG diagnozująca problemy instalacyjne. Zmieniając rozstaw rur, użytkownik obserwuje powstawanie przepływu laminarnego lub zjawiska zebry termicznej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5 range input.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="rk-err-app">
    <div class="rk-err-header">
        <div class="rk-err-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="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>
            Demaskujemy Błędy Instalatorów
        </div>
        <h2 class="rk-err-title">Jakie są konsekwencje błędów <span>w gęstości układania podłogówki?</span></h2>
        <p class="rk-err-lead">
            Zbyt rzadki rozstaw rur (powyżej 20 cm) powoduje spadek sprawności emisyjnej o ponad 20% i powstawanie odczuwalnych różnic temperatur (tzw. zebra termiczna). Z kolei bezmyślne zagęszczanie (np. co 5 cm w całym domu) generuje potężne opory hydrauliczne przeciążające <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/" class="rk-link">pompę obiegową</a>, doprowadzając do wysoce niekorzystnego przepływu laminarnego zamiast turbulentnego.
        </p>
    </div>

    <div class="rk-err-interactive">
        <h3 class="rk-err-h3">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 8v4l3 3"></path></svg>
            Symulator Diagnostyczny Układu
        </h3>

        <div class="rk-err-grid">
            
            <div class="rk-sim-controls">
                <div class="rk-ctrl-header">
                    <span class="rk-ctrl-lbl">Rozstaw Rur na posadzce</span>
                    <span class="rk-ctrl-val" id="rk-val-display">15 cm</span>
                </div>
                
                <input type="range" class="rk-err-range" id="rk-err-slider" min="5" max="30" step="5" value="15">
                
                <div class="rk-param-list">
                    <div class="rk-param-item">
                        <span>Rodzaj przepływu:</span>
                        <span id="rk-stat-flow" style="color: var(--rk-err-success);">Turbulentny</span>
                    </div>
                    <div class="rk-param-item">
                        <span>Liczba Reynoldsa:</span>
                        <span id="rk-stat-re" style="color: var(--rk-err-success);">Re > 4000</span>
                    </div>
                    <div class="rk-param-item">
                        <span>Opór / Pompa:</span>
                        <span id="rk-stat-pump" style="color: var(--rk-err-success);">Optymalne (15 kPa)</span>
                    </div>
                </div>
            </div>

            <div class="rk-viz-board">
                <div class="rk-viz-status" id="rk-viz-alert">Wszystkie parametry w normie. Idealne oddawanie ciepła.</div>
                
                <svg class="rk-svg-layer" id="rk-scene-dense" viewBox="0 0 300 200" preserveAspectRatio="xMidYMid slice">
                    <rect x="20" y="80" width="260" height="40" fill="none" stroke="#64748b" stroke-width="4" rx="4"/>
                    <line x1="30" y1="90" x2="270" y2="90" stroke="#3b82f6" stroke-width="3" stroke-linecap="round" class="rk-anim-laminar"/>
                    <line x1="30" y1="100" x2="270" y2="100" stroke="#2563eb" stroke-width="3" stroke-linecap="round" class="rk-anim-laminar" style="animation-duration: 3s;"/>
                    <line x1="30" y1="110" x2="270" y2="110" stroke="#1d4ed8" stroke-width="3" stroke-linecap="round" class="rk-anim-laminar" style="animation-duration: 5s;"/>
                    <g class="rk-anim-pump-shake" transform="translate(150, 45)">
                        <circle cx="0" cy="0" r="25" fill="#ef4444" stroke="#7f1d1d" stroke-width="4"/>
                        <path d="M -10 -10 L 10 10 M 10 -10 L -10 10" stroke="#ffffff" stroke-width="4" stroke-linecap="round"/>
                    </g>
                </svg>

                <svg class="rk-svg-layer active" id="rk-scene-optimal" viewBox="0 0 300 200" preserveAspectRatio="xMidYMid slice">
                    <rect x="20" y="80" width="260" height="40" fill="none" stroke="#64748b" stroke-width="4" rx="4"/>
                    <path d="M 30 100 Q 60 85 90 100 T 150 100 T 210 100 T 270 100" fill="none" stroke="#10b981" stroke-width="4" class="rk-anim-turbulent"/>
                    <path d="M 30 100 Q 60 115 90 100 T 150 100 T 210 100 T 270 100" fill="none" stroke="#34d399" stroke-width="3" class="rk-anim-turbulent" style="animation-direction: reverse;"/>
                    
                    <g transform="translate(150, 45)">
                        <circle cx="0" cy="0" r="25" fill="#10b981" stroke="#065f46" stroke-width="4"/>
                        <polyline points="-10,0 0,10 15,-10" fill="none" stroke="#ffffff" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
                    </g>
                </svg>

                <svg class="rk-svg-layer" id="rk-scene-sparse" viewBox="0 0 300 200" preserveAspectRatio="xMidYMid slice">
                    <rect x="0" y="100" width="300" height="60" fill="#1e293b"/>
                    <circle cx="50" cy="130" r="10" fill="#ef4444"/>
                    <circle cx="250" cy="130" r="10" fill="#ef4444"/>
                    
                    <rect x="0" y="90" width="100" height="10" fill="#f87171" class="rk-anim-zebra"/>
                    <rect x="100" y="90" width="100" height="10" fill="#3b82f6" class="rk-anim-zebra" style="animation-delay: 1.5s;"/>
                    <rect x="200" y="90" width="100" height="10" fill="#f87171" class="rk-anim-zebra"/>

                    <text x="150" y="70" fill="#93c5fd" font-size="14" font-weight="bold" text-anchor="middle">STREFA CHŁODU (ZEBRA)</text>
                </svg>
            </div>
        </div>

        <h3 class="rk-err-h3">Skutki techniczno-finansowe w praktyce</h3>
        
        <div class="rk-effects-grid">
            <div class="rk-effect-card dense">
                <h4 class="rk-effect-title"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-err-danger)" stroke-width="3"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg> Zbyt gęsty rozstaw (< 10 cm wszędzie)</h4>
                <ul class="rk-effect-list">
                    <li><strong>Drastyczny wzrost kosztów inwestycyjnych:</strong> Zużywasz dwa razy więcej rury PEX oraz plastyfikatorów do betonu.</li>
                    <li><strong>Przewymiarowany rozdzielacz:</strong> Zamiast 6 sekcji, potrzebujesz drogiego modelu na 12 sekcji.</li>
                    <li><strong>Spadek prędkości wody:</strong> Przez opory hydrauliczne pompa obiegowa zwalnia, przepływ staje się laminarny i pogarsza się proces oddawania ciepła do jastrychu.</li>
                </ul>
            </div>

            <div class="rk-effect-card sparse">
                <h4 class="rk-effect-title"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-err-cold)" stroke-width="3"><line x1="5" y1="12" x2="19" y2="12"></line></svg> Zbyt rzadki rozstaw (25 - 30 cm)</h4>
                <ul class="rk-effect-list">
                    <li><strong>Nierównomierne nagrzewanie:</strong> Stopa człowieka wyczuwa gorące pasy nad rurą i lodowate przestrzenie pomiędzy nimi.</li>
                    <li><strong>Wzrost rachunków za ogrzewanie:</strong> Aby dogrzać dom, inwestor podnosi temperaturę na pompie o 5-8°C.</li>
                    <li><strong>Utrata efektywności:</strong> Spadek <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/" class="rk-link" style="color: var(--rk-err-text); border-color: var(--rk-err-muted);">delty temperatur (ΔT)</a> generuje wzrost kosztów prądu o 15-24% w skali całego roku.</li>
                </ul>
            </div>
        </div>

        <div class="rk-case-block">
            <div class="rk-case-header">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
                <h4 style="margin: 0; font-size: 18px;">Przykład z inżynierskiego biurka</h4>
            </div>
            
            <p class="rk-case-text">
                Aby w rurze grzewczej zachodziła efektywna wymiana ciepła, ruch wody musi mieć charakter turbulentny (burzliwy), co odpowiada liczbie Reynoldsa <strong>Re > 4000</strong>. Przyjrzyjmy się konkretnym wyliczeniom dla całego domu o zapotrzebowaniu na moc <strong>Q = 11,5 kW</strong>, przy standardowym spadku temperatury ΔT = 5K:
            </p>

            <div class="rk-case-math">
                // Obliczenie masowego przepływu czynnika:<br>
                m = Q / (cp * ΔT)<br>
                m = 11.5 kW / (1.16 * 5K)<br>
                Wymagany przepływ (m) = <span>1,98 m³/h</span>
            </div>

            <div class="rk-alert-box">
                Jeśli instalator zignoruje wyliczenia i zagęści rury "na oko" (np. co 5 cm), całkowity opór hydrauliczny instalacji łatwo <strong>przekroczy 35 kPa</strong>. Standardowa pompa obiegowa wbudowana w pompę ciepła (o wysokości podnoszenia 6 m słupa wody) "uklęknie" pod takim oporem. W efekcie podłogówka będzie zimna, mimo że rachunki za prąd będą rosły, a urządzenie będzie pracować na 100% mocy!
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domeny (Brak tagów nagłówkowych w alercie)
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-err-app').innerHTML = `
            <div style="padding:40px; text-align:center; background:#0f172a; border-radius:24px; border:2px solid #ef4444; color:#fff; font-family:sans-serif; margin:40px auto; max-width:800px;">
                <div style="font-size: 40px; margin-bottom: 15px;">🛑</div>
                <div style="color:#ef4444; font-size:22px; font-weight:900; margin-bottom:10px; text-transform:uppercase;">Naruszenie Praw Autorskich</div>
                <div style="color:#cbd5e1; font-size:15px; line-height:1.6;">Interaktywny symulator błędów oraz JSON-LD są własnością Projekt-Ogrzewania.pl. Użycie nielegalne.</div>
            </div>
        `;
        return;
    }

    // 2. Logika symulatora
    const slider = document.getElementById('rk-err-slider');
    const valDisplay = document.getElementById('rk-val-display');
    
    // Pola tekstowe
    const statFlow = document.getElementById('rk-stat-flow');
    const statRe = document.getElementById('rk-stat-re');
    const statPump = document.getElementById('rk-stat-pump');
    const alertBox = document.getElementById('rk-viz-alert');

    // Sceny SVG
    const sceneDense = document.getElementById('rk-scene-dense');
    const sceneOpti = document.getElementById('rk-scene-optimal');
    const sceneSparse = document.getElementById('rk-scene-sparse');

    function updateSimulator() {
        const val = parseInt(slider.value);
        valDisplay.textContent = val + " cm";

        // Ukrycie wszystkich scen
        sceneDense.classList.remove('active');
        sceneOpti.classList.remove('active');
        sceneSparse.classList.remove('active');

        // Kolory zdefiniowane w CSS
        const colorDanger = 'var(--rk-err-danger)';
        const colorWarn = 'var(--rk-err-warn)';
        const colorSuccess = 'var(--rk-err-success)';
        const colorCold = 'var(--rk-err-cold)';

        if (val < 10) {
            // ZBYT GĘSTO
            statFlow.textContent = "Laminarny (BŁĄD)";
            statFlow.style.color = colorDanger;
            
            statRe.textContent = "Re < 2000";
            statRe.style.color = colorDanger;
            
            statPump.textContent = "Krytyczne (>35 kPa)";
            statPump.style.color = colorDanger;

            alertBox.textContent = "BŁĄD: Przepływ laminarny. Pompa zablokowana przez potężny opór hydrauliczny!";
            alertBox.style.color = "#fca5a5";
            alertBox.style.borderColor = "#ef4444";

            sceneDense.classList.add('active');

        } else if (val >= 10 && val <= 15) {
            // OPTYMALNIE
            statFlow.textContent = "Turbulentny (Burzliwy)";
            statFlow.style.color = colorSuccess;
            
            statRe.textContent = "Re > 4000";
            statRe.style.color = colorSuccess;
            
            statPump.textContent = "Optymalne (15-20 kPa)";
            statPump.style.color = colorSuccess;

            alertBox.textContent = "IDEALNIE: Woda skutecznie odbiera ciepło. Pompa pracuje na luzie.";
            alertBox.style.color = "#6ee7b7";
            alertBox.style.borderColor = "#10b981";

            sceneOpti.classList.add('active');

        } else {
            // ZBYT RZADKO (20-30)
            statFlow.textContent = "Mieszany";
            statFlow.style.color = colorWarn;
            
            statRe.textContent = "Re ~ 3000";
            statRe.style.color = colorWarn;
            
            statPump.textContent = "Niskie (<10 kPa)";
            statPump.style.color = colorCold;

            alertBox.textContent = "BŁĄD: Zjawisko Zebry Termicznej. Podłoga ogrzewa się strefowo i niedogrzewa domu.";
            alertBox.style.color = "#93c5fd";
            alertBox.style.borderColor = "#3b82f6";

            sceneSparse.classList.add('active');
        }
    }

    // Nasłuch
    slider.addEventListener('input', updateSimulator);
    
    // Inicjalizacja domyślnego stanu (15cm)
    updateSimulator();
});
</script>



<style>
:root {
    --rk-slab-dark: #0f172a;
    --rk-slab-darker: #020617;
    --rk-slab-border: #334155;
    --rk-slab-text: #334155;
    --rk-slab-muted: #64748b;
    --rk-slab-bg: #ffffff;
    --rk-slab-panel: #f8fafc;
    
    /* Kolory warstw budowlanych */
    --rk-color-anhydrite: #f59e0b; /* Bursztynowy jastrych */
    --rk-color-cement: #94a3b8;    /* Betonowy szary */
    --rk-color-eps: #e2e8f0;       /* Styropian biały/szary */
    --rk-color-pir: #dae5d0;       /* Płyta PIR miętowa */
    --rk-color-heat: #ef4444;      /* Intensywne ciepło */
}

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

/* Nagłówek i Wstęp */
.rk-slab-header {
    background: linear-gradient(135deg, var(--rk-slab-darker) 0%, var(--rk-slab-dark) 100%);
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-color-anhydrite);
}

.rk-slab-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(245, 158, 11, 0.15);
    color: #fcd34d;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(245, 158, 11, 0.3);
}

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

.rk-slab-title span { color: var(--rk-color-anhydrite); }

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

.rk-link {
    color: var(--rk-color-anhydrite);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed rgba(245, 158, 11, 0.5);
    transition: all 0.3s;
}

.rk-link:hover {
    color: #fcd34d;
    border-bottom-style: solid;
}

/* Panel sterowania i wizualizacji */
.rk-slab-body {
    padding: 40px 50px;
    display: grid;
    grid-template-columns: 360px 1fr;
    gap: 35px;
    background: #ffffff;
}

/* Lewa Kolumna: Kontrolki */
.rk-slab-controls {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-ctrl-group {
    background: var(--rk-slab-panel);
    border: 1px solid #e2e8f0;
    padding: 25px;
    border-radius: 20px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-ctrl-label {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-slab-muted);
    text-transform: uppercase;
    margin-bottom: 15px;
    display: block;
    letter-spacing: 0.5px;
}

/* Przełącznik Jastrychu (Tabs) */
.rk-screed-tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.rk-screed-btn {
    padding: 14px 10px;
    border: 2px solid #e2e8f0;
    background: #ffffff;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-slab-muted);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    text-align: center;
}

.rk-screed-btn:hover { border-color: #cbd5e1; }
.rk-screed-btn.active[data-screed="anhydrite"] { border-color: var(--rk-color-anhydrite); background: #fefce8; color: #b45309; }
.rk-screed-btn.active[data-screed="cement"] { border-color: #64748b; background: #f1f5f9; color: #1e293b; }

/* Suwak Izolacji */
.rk-ins-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
}
.rk-ins-val { font-size: 20px; font-weight: 900; color: var(--rk-slab-dark); }

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

.rk-slab-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--rk-slab-dark);
    cursor: pointer;
    box-shadow: 0 0 10px rgba(0,0,0,0.15);
    border: 4px solid #ffffff;
    transition: transform 0.1s;
}
.rk-slab-range::-webkit-slider-thumb:hover { transform: scale(1.15); }

/* Parametry Wynikowe */
.rk-slab-outputs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-out-card {
    background: var(--rk-slab-panel);
    border: 1px solid #e2e8f0;
    padding: 15px;
    border-radius: 14px;
    text-align: center;
}

.rk-out-lbl { font-size: 11px; font-weight: 700; color: var(--rk-slab-muted); text-transform: uppercase; margin-bottom: 5px; }
.rk-out-val { font-size: 18px; font-weight: 900; color: var(--rk-slab-dark); }

/* Prawa Kolumna: Wizualizacja Przekroju SVG */
.rk-viz-board {
    background: var(--rk-slab-darker);
    border-radius: 20px;
    padding: 25px;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--rk-slab-border);
    box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
    position: relative;
}

.rk-svg-viewport {
    width: 100%;
    height: auto;
    margin-top: auto;
}

/* Elementy i klasy dynamiczne SVG */
.rk-svg-layer { transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); }
.rk-svg-pipe { fill: #ef4444; stroke: #b91c1c; stroke-width: 2; transition: all 0.5s; }
.rk-svg-text { fill: #94a3b8; font-size: 12px; font-family: monospace; transition: fill 0.5s; }
.rk-svg-dim { stroke: #475569; stroke-width: 1; stroke-dasharray: 2 2; transition: all 0.5s; }

/* Fale Transferu Ciepła (Radiacja boczna vs pionowa) */
.rk-wave-line { fill: none; stroke: var(--rk-color-heat); stroke-width: 2; stroke-linecap: round; opacity: 0.6; }
.rk-wave-group { opacity: 0; transform-origin: bottom; transition: all 0.5s; }
.rk-wave-group.active { opacity: 1; }

.rk-wave-lateral { stroke-dasharray: 6 6; animation: lateralMove 2s linear infinite; }
.rk-wave-vertical { stroke-dasharray: 6 6; animation: verticalMove 1.5s linear infinite; }

@keyframes lateralMove { to { stroke-dashoffset: -20; } }
@keyframes verticalMove { to { stroke-dashoffset: -20; } }

/* Blok Podsumowania struktury posadzki */
.rk-structural-alert {
    grid-column: 1 / -1;
    background: var(--rk-slab-panel);
    border: 1px solid #e2e8f0;
    border-radius: 20px;
    padding: 30px;
    margin-top: 10px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.01);
}

.rk-struct-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-slab-dark);
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

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

.rk-blueprint-card {
    background: var(--rk-slab-dark);
    border: 1px solid var(--rk-slab-border);
    border-radius: 12px;
    padding: 20px;
    color: #ffffff;
    font-size: 14px;
    line-height: 1.6;
    margin-top: 20px;
}

.rk-bp-row {
    display: flex;
    justify-content: space-between;
    border-bottom: 1px dashed var(--rk-slab-border);
    padding: 8px 0;
}
.rk-bp-row:last-child { border-bottom: none; }
.rk-bp-lbl { color: #94a3b8; font-weight: 500; }
.rk-bp-val { font-weight: 700; color: #f1f5f9; }
.rk-bp-val span { color: var(--rk-color-anhydrite); }

@media (max-width: 850px) {
    .rk-slab-header, .rk-slab-body { padding: 30px 20px; }
    .rk-slab-body { grid-template-columns: 1fr; gap: 30px; }
    .rk-slab-outputs { grid-template-columns: 1fr; }
    .rk-structural-alert { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#article-wylewka",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/"
    },
    "headline": "Jak grubość styropianu i rodzaj wylewki wpływają na efektywność rozstawu rur?",
    "description": "Analiza wpływu oporu cieplnego styropianu EPS/PIR oraz przewodności jastrychu anhydrytowego na rozstaw rur grzewczych. Wytyczne 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": "2026-05-21",
    "dateModified": "2026-05-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#dataset-wylewka",
    "name": "Korelacja przewodności jastrychu i oporu termicznego izolacji podłogowej",
    "description": "Zbiór danych technicznych odwzorowujący wpływ przewodnictwa cieplnego lambda (W/mK) wylewek oraz grubości izolacji na czas bezwładności i dopuszczalny krok rur.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wylewka na ogrzewanie podłogowe",
      "ile styropianu pod ogrzewanie podłogowe",
      "jastrych anhydrytowy przewodność",
      "opór cieplny izolacji R",
      "bezwładność cieplna podłogówki"
    ],
    "measurementTechnique": "Modelowanie pól temperatur i strumieni przewodzenia posadzki płaskiej zgodnie z normami PN-EN 1264-2 oraz PN-EN 12831.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Jastrych anhydrytowy: Lambda = 1.8 W/(mK), grubość nad rurą 35 mm, bezwładność cieplna 1.5-2h. Pozwala zwiększyć rozstaw o 2-3 cm.",
        "Jastrych cementowy: Lambda = 1.2 W/(mK), grubość nad rurą 45 mm, bezwładność cieplna 4-5h.",
        "Izolacja normowa: Minimum 15 cm EPS 100 lub 12 cm PIR dla zachowania oporu R >= 4.5 m²K/W."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#webapp-wylewka",
    "name": "Interaktywny Przekrój Płyty Grzewczej i Symulator Akumulacji",
    "description": "Aplikacja webowa symulująca kierunki rozchodzenia się strumienia ciepła (boczny transfer vs straty w grunt) w zależności od struktury fizycznej jastrychu i grubości izolacji EPS.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5 Canvas/SVG dynamic rendering support.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-slab-container" id="rk-wylewka-slab">
    <div class="rk-slab-header">
        <div class="rk-slab-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="3" y1="15" x2="21" y2="15"></line></svg>
            Fizyka Przewodzenia i Akumulacji
        </div>
        <h2 class="rk-slab-title">Jak grubość styropianu i rodzaj wylewki <span>wpływają na rozstaw rur?</span></h2>
        <p class="rk-slab-lead">
            Grubość izolacji podłogi na gruncie musi wynosić minimum 15 cm styropianu klasy EPS 100 (lub 12 cm PIR), aby opór cieplny warstwy przekroczył wartość **R = 4,5 m²K/W**. Rodzaj wylewki bezpośrednio modyfikuje dynamikę oddawania ciepła: jastrych anhydrytowy o wysokiej przewodności **λ = 1,8 W/(m·K)** pozwala na bezpieczne zwiększenie projektowanego rozstawu rur o 2-3 cm w stosunku do tradycyjnej wylewki cementowej **(λ = 1,2 W/(m·K))**, zachowując identyczną temperaturę powierzchni posadzki.
        </p>
    </div>

    <div class="rk-slab-body">
        
        <div class="rk-slab-controls">
            <div class="rk-ctrl-group">
                <span class="rk-ctrl-label">1. Wybierz rodzaj wylewki</span>
                <div class="rk-screed-tabs">
                    <button class="rk-screed-btn active" data-screed="anhydrite">Anhydryt</button>
                    <button class="rk-screed-btn" data-screed="cement">Cementowa</button>
                </div>
            </div>

            <div class="rk-ctrl-group">
                <div class="rk-ins-header">
                    <span class="rk-ctrl-label" style="margin:0;">2. Grubość Izolacji (EPS)</span>
                    <span class="rk-ins-val" id="rk-ins-display">15 cm</span>
                </div>
                <input type="range" class="rk-slab-range" id="rk-ins-slider" min="5" max="25" step="5" value="15">
            </div>

            <div class="rk-slab-outputs">
                <div class="rk-out-card">
                    <div class="rk-out-lbl">Przewodność λ</div>
                    <div class="rk-out-val" id="rk-out-lambda" style="color: var(--rk-color-anhydrite);">1.8 W/mK</div>
                </div>
                <div class="rk-out-card">
                    <div class="rk-out-card-inner">
                        <div class="rk-out-lbl">Opór Termiczny R</div>
                        <div class="rk-out-val" id="rk-out-r">4.15 m²K/W</div>
                    </div>
                </div>
                <div class="rk-out-card">
                    <div class="rk-out-lbl">Bezwładność</div>
                    <div class="rk-out-val" id="rk-out-inertia">1.5 - 2.0 h</div>
                </div>
                <div class="rk-out-card">
                    <div class="rk-out-lbl">Zalecany krok b</div>
                    <div class="rk-out-val" id="rk-out-step" style="color: #10b981;">15 cm</div>
                </div>
            </div>
        </div>

        <div class="rk-viz-board">
            <div class="rk-viz-status">Techniczny Przekrój Płyty Grzewczej (Skala dynamiczna)</div>
            
            <div class="rk-svg-viewport">
                <svg viewBox="0 0 400 240" fill="none" id="rk-blueprint-svg">
                    <rect x="20" y="20" width="360" height="8" fill="#475569" rx="1"/>
                    
                    <rect id="svg-screed-layer" x="20" y="28" width="360" height="51" fill="url(#screedGradAnhydrite)"/>
                    
                    <rect id="svg-insulation-layer" x="20" y="79" width="360" height="60" fill="var(--rk-color-eps)" stroke="#cbd5e1" stroke-width="1"/>
                    
                    <rect id="svg-base-layer" x="20" y="139" width="360" height="40" fill="#334155"/>
                    <text id="svg-base-text" x="200" y="163" class="rk-svg-text" text-anchor="middle" fill="#64748b" font-weight="bold">BETON KONTRAKTOWY / GRUNT</text>

                    <g id="svg-waves-anhydrite" class="rk-wave-group active">
                        <path class="rk-wave-line rk-wave-lateral" d="M 100 55 Q 100 35 120 32 T 140 32"/>
                        <path class="rk-wave-line rk-wave-lateral" d="M 100 55 Q 100 35 80 32 T 60 32"/>
                        <path class="rk-wave-line rk-wave-lateral" d="M 260 55 Q 260 35 280 32 T 300 32"/>
                        <path class="rk-wave-line rk-wave-lateral" d="M 260 55 Q 260 35 240 32 T 220 32"/>
                    </g>
                    <g id="svg-waves-cement" class="rk-wave-group">
                        <path class="rk-wave-line rk-wave-vertical" d="M 80 65 L 80 32 M 100 65 L 100 32 M 120 65 L 120 32"/>
                        <path class="rk-wave-line rk-wave-vertical" d="M 240 75 L 240 32 M 260 75 L 260 32 M 280 75 L 280 32"/>
                    </g>

                    <g id="svg-pipes-container">
                        </g>

                    <g id="svg-dimensions">
                        <line id="dim-screed-line" x1="385" y1="28" x2="385" y2="79" stroke="#94a3b8" stroke-width="1"/>
                        <text id="dim-screed-text" x="390" y="58" fill="#94a3b8" font-size="11" font-family="monospace">51mm</text>

                        <line id="dim-ins-line" x1="385" y1="79" x2="385" y2="139" stroke="#94a3b8" stroke-width="1"/>
                        <text id="dim-ins-text" x="390" y="113" fill="#94a3b8" font-size="11" font-family="monospace">15cm</text>
                    </g>

                    <defs>
                        <linearGradient id="screedGradAnhydrite" x1="0" y1="0" x2="0" y2="1">
                            <stop offset="0%" stop-color="#fef08a"/>
                            <stop offset="100%" stop-color="#b45309"/>
                        </linearGradient>
                        <linearGradient id="screedGradCement" x1="0" y1="0" x2="0" y2="1">
                            <stop offset="0%" stop-color="#cbd5e1"/>
                            <stop offset="100%" stop-color="#475569"/>
                        </linearGradient>
                    </defs>
                </svg>
            </div>
        </div>

        <div class="rk-structural-alert">
            <h4 class="rk-struct-title">
                <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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.73l-7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path></svg>
                Inżynierski model uwarstwienia radiatora podłogowego
            </h4>
            <p class="rk-struct-desc">
                Wylewka pełni funkcję płaszczyznowego radiatora. Jastrych anhydrytowy ma strukturę płynną podczas aplikacji, dzięki czemu całkowicie otula rury grzewcze, eliminując mikroskopijne pustki powietrzne będące izolatorem. Wyższa przewodność i redukcja grubości sprawiają, że układ anhydrytowy cechuje się skrajnie niską bezwładnością. Reaguje na zmianę parametrów automatyki pokojowej dwukrotnie szybciej niż gruby, porowaty beton cementowy z miksokreta.
            </p>

            <div class="rk-blueprint-card">
                <div class="rk-bp-row">
                    <span class="rk-bp-lbl">Warstwa 1: Wykończenie Posadzki</span>
                    <span class="rk-bp-val">Płytki ceramiczne lub panele dedykowane</span>
                </div>
                <div class="rk-bp-row">
                    <span class="rk-bp-lbl">Warstwa 2: Radiator Przekazujący</span>
                    <span class="rk-bp-val" id="rk-bp-layer2">Jastrych Anhydrytowy (λ = <span>1.8 W/mK</span>)</span>
                </div>
                <div class="rk-bp-row">
                    <span class="rk-bp-lbl">Warstwa 3: Rdzeń Emisyjny</span>
                    <span class="rk-bp-val" id="rk-bp-layer3">Rura PEX-Al-PEX Ø 16 mm w rozstawie co <span>15 cm</span></span>
                </div>
                <div class="rk-bp-row">
                    <span class="rk-bp-lbl">Warstwa 4: Blokada Termiczna (Straty w grunt)</span>
                    <span class="rk-bp-val" id="rk-bp-layer4">Styropian EPS 100 (Grubość: <span>15 cm</span>)</span>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Domain Lock) - Brak tagów H2/H3 w strukturze błędu
    const currentDomain = window.location.hostname;
    const trustedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!trustedDomains.includes(currentDomain)) {
        const mainApp = document.getElementById('rk-wylewka-slab');
        if (mainApp) {
            mainApp.innerHTML = `
                <div style="padding: 45px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif; max-width: 800px; margin: 40px auto;">
                    <div style="font-size: 45px; margin-bottom: 20px;">🛑</div>
                    <div style="font-size: 19px; font-weight: 900; margin-bottom: 12px; text-transform: uppercase; letter-spacing: 0.5px;">Wykryto Naruszenie Licencji Inżynierskiej</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 550px; margin: 0 auto; line-height: 1.6;">
                        Interaktywny kontener fizyki struktur grzewczych oraz powiązana struktura danych Dataset/WebApplication stanowią chronioną własność serwisu Projekt-Ogrzewania.pl. Kod został zablokowany.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora Dynamicznego
    const btnAnhydrite = document.querySelector('.rk-screed-btn[data-screed="anhydrite"]');
    const btnCement = document.querySelector('.rk-screed-btn[data-screed="cement"]');
    const insSlider = document.getElementById('rk-ins-slider');
    const insDisplay = document.getElementById('rk-ins-display');

    // Pola tekstowe UI
    const outLambda = document.getElementById('rk-out-lambda');
    const outR = document.getElementById('rk-out-r');
    const outInertia = document.getElementById('rk-out-inertia');
    const outStep = document.getElementById('rk-out-step');

    // Pola tekstowe struktury dolnej
    const bpLayer2 = document.getElementById('rk-bp-layer2');
    const bpLayer3 = document.getElementById('rk-bp-layer3');
    const bpLayer4 = document.getElementById('rk-bp-layer4');

    // Elementy dynamiczne SVG
    const svgScreed = document.getElementById('svg-screed-layer');
    const svgInsulation = document.getElementById('svg-insulation-layer');
    const svgBase = document.getElementById('svg-base-layer');
    const svgBaseText = document.getElementById('svg-base-text');
    const svgPipesContainer = document.getElementById('svg-pipes-container');
    const dimScreedLine = document.getElementById('dim-screed-line');
    const dimScreedText = document.getElementById('dim-screed-text');
    const dimInsLine = document.getElementById('dim-ins-line');
    const dimInsText = document.getElementById('dim-ins-text');

    const wavesAnhydrite = document.getElementById('svg-waves-anhydrite');
    const wavesCement = document.getElementById('svg-waves-cement');

    let selectedScreed = 'anhydrite'; // stan początkowy

    function updateSlabSimulation() {
        const thicknessCm = parseInt(insSlider.value);
        insDisplay.textContent = thicknessCm + ' cm';
        
        // Przeliczenie oporu R (Styropian EPS 100: lambda = 0.036 W/mK)
        const R_value = (thicknessCm / 100 / 0.036).toFixed(2);
        outR.textContent = R_value + ' m²K/W';

        // Konfiguracja zmiennych w zależności od wybranego jastrychu
        let lambdaText, inertiaText, stepText, screedHeightPx, screedFill, dimScreedLabel;
        let pipePoints = [];

        // Przelicznik cm izolacji na piksele w SVG (1cm = 4px)
        const insHeightPx = thicknessCm * 4;

        if (selectedScreed === 'anhydrite') {
            lambdaText = '1.8 W/mK';
            inertiaText = '1.5 - 2.0 h';
            stepText = '15 cm';
            screedHeightPx = 51; // 35mm nad rurą + 16mm rura
            screedFill = 'url(#screedGradAnhydrite)';
            dimScreedLabel = '51mm';
            
            outLambda.style.color = 'var(--rk-color-anhydrite)';
            outStep.style.color = '#10b981';
            wavesAnhydrite.classList.add('active');
            wavesCement.classList.remove('active');

            // 2 rury dla rozstawu 15cm w przekroju
            pipePoints = [110, 290];

            bpLayer2.innerHTML = 'Jastrych Anhydrytowy (λ = <span style="color:var(--rk-color-anhydrite);">1.8 W/mK</span>)';
            bpLayer3.innerHTML = 'Rura PEX-Al-PEX Ø 16 mm w rozstawie co <span style="color:#10b981;">15 cm</span>';
        } else {
            lambdaText = '1.2 W/mK';
            inertiaText = '4.0 - 5.0 h';
            stepText = '12 cm';
            screedHeightPx = 61; // 45mm nad rurą + 16mm rura
            screedFill = 'url(#screedGradCement)';
            dimScreedLabel = '61mm';
            
            outLambda.style.color = '#64748b';
            outStep.style.color = 'var(--rk-color-warn)';
            wavesAnhydrite.classList.remove('active');
            wavesCement.classList.add('active');

            // 4 rury dla rozstawu 12cm w przekroju
            pipePoints = [60, 150, 240, 330];

            bpLayer2.innerHTML = 'Wylewka Cementowa / Miksokret (λ = <span style="color:#94a3b8;">1.2 W/mK</span>)';
            bpLayer3.innerHTML = 'Rura PEX-Al-PEX Ø 16 mm w rozstawie co <span style="color:var(--rk-color-warn);">12 cm</span>';
        }

        // Aktualizacja danych tekstowych UI
        outLambda.textContent = lambdaText;
        outInertia.textContent = inertiaText;
        outStep.textContent = stepText;
        bpLayer4.innerHTML = 'Styropian EPS 100 (Grubość: <span style="color:#10b981;">' + thicknessCm + ' cm</span> | R = ' + R_value + ' m²K/W)';

        // Pozycjonowanie i wymiarowanie dynamicznych warstw SVG
        svgScreed.setAttribute('height', screedHeightPx);
        svgScreed.setAttribute('fill', screedFill);

        // Izolacja zaczyna się tam, gdzie kończy jastrych (28 + screedHeightPx)
        const insY = 28 + screedHeightPx;
        svgInsulation.setAttribute('y', insY);
        svgInsulation.setAttribute('height', insHeightPx);

        // Baza pod izolacją
        const baseY = insY + insHeightPx;
        svgBase.setAttribute('y', baseY);
        svgBaseText.setAttribute('y', baseY + 24);

        // Aktualizacja rur wewnątrz jastrychu (cy lokowane przy dnie jastrychu minus promień 8px)
        const pipeCy = insY - 8;
        let pipesHTML = '';
        pipePoints.forEach(cx => {
            pipesHTML += `<circle class="rk-svg-pipe" cx="${cx}" cy="${pipeCy}" r="8"/>`;
            pipesHTML += `<circle cx="${cx}" cy="${pipeCy}" r="3" fill="#ffffff"/>`;
        });
        svgPipesContainer.innerHTML = pipesHTML;

        // Aktualizacja linii wymiarowych po prawej stronie przekroju
        dimScreedLine.setAttribute('y1', 28);
        dimScreedLine.setAttribute('y2', insY);
        dimScreedText.setAttribute('y', 28 + (screedHeightPx / 2) + 4);
        dimScreedText.textContent = dimScreedLabel;

        dimInsLine.setAttribute('y1', insY);
        dimInsLine.setAttribute('y2', baseY);
        dimInsText.setAttribute('y', insY + (insHeightPx / 2) + 4);
        dimInsText.textContent = thicknessCm + 'cm';
    }

    // Eventy przełączania jastrychów
    btnAnhydrite.addEventListener('click', function() {
        btnCement.classList.remove('active');
        this.classList.add('active');
        selectedScreed = 'anhydrite';
        updateSlabSimulation();
    });

    btnCement.addEventListener('click', function() {
        btnAnhydrite.classList.remove('active');
        this.classList.add('active');
        selectedScreed = 'cement';
        updateSlabSimulation();
    });

    // Event suwaka izolacji
    insSlider.addEventListener('input', updateSlabSimulation);

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



<style>
:root {
    --rk-proj-dark: #0f172a;
    --rk-proj-darker: #020617;
    --rk-proj-blue: #2563eb;
    --rk-proj-accent: #38bdf8;
    --rk-proj-text: #334155;
    --rk-proj-muted: #64748b;
    --rk-proj-border: #e2e8f0;
    --rk-proj-bg: #ffffff;
    --rk-proj-panel: #f8fafc;
    
    /* Kolory systemów */
    --rk-col-ozc: #ef4444;       /* OZC / Ciepło */
    --rk-col-vent: #10b981;      /* Rekuperacja / Powietrze */
    --rk-col-hydr: #3b82f6;      /* Hydraulika / Rotametry */
}

.rk-proj-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: var(--rk-proj-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(37, 99, 235, 0.12);
    border: 1px solid var(--rk-proj-border);
    overflow: hidden;
    color: #1e293b;
}

/* Sekcja Nagłówkowa */
.rk-proj-header {
    background: linear-gradient(135deg, var(--rk-proj-darker) 0%, var(--rk-proj-dark) 100%);
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-proj-blue);
}

.rk-proj-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(37, 99, 235, 0.2);
    color: #93c5fd;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(37, 99, 235, 0.3);
}

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

.rk-proj-title span { color: var(--rk-proj-accent); }

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

.rk-link {
    color: var(--rk-proj-accent);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed rgba(56, 189, 248, 0.5);
    transition: all 0.3s;
}

.rk-link:hover {
    color: #93c5fd;
    border-bottom-style: solid;
}

/* Interaktywny Panel */
.rk-proj-body {
    padding: 40px 50px;
    background: var(--rk-proj-panel);
    display: grid;
    grid-template-columns: 340px 1fr;
    gap: 35px;
}

/* Kontrolki (Przełączniki Systemowe) */
.rk-proj-controls {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

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

.rk-sys-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
}

.rk-sys-icon {
    width: 42px; height: 42px;
    border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    background: #f1f5f9;
    color: var(--rk-proj-muted);
    transition: all 0.3s;
    flex-shrink: 0;
}

.rk-sys-info { display: flex; flex-direction: column; }
.rk-sys-name { font-size: 15px; font-weight: 800; color: var(--rk-proj-dark); margin-bottom: 2px; }
.rk-sys-lbl { font-size: 11px; font-weight: 700; color: var(--rk-proj-muted); text-transform: uppercase; }

/* Stany aktywne dla przełączników */
.rk-sys-card.active[data-sys="ozc"] { border-color: var(--rk-col-ozc); background: #fef2f2; }
.rk-sys-card.active[data-sys="ozc"] .rk-sys-icon { background: var(--rk-col-ozc); color: white; }

.rk-sys-card.active[data-sys="reku"] { border-color: var(--rk-col-vent); background: #f0fdf4; }
.rk-sys-card.active[data-sys="reku"] .rk-sys-icon { background: var(--rk-col-vent); color: white; }

.rk-sys-card.active[data-sys="hydr"] { border-color: var(--rk-col-hydr); background: #eff6ff; }
.rk-sys-card.active[data-sys="hydr"] .rk-sys-icon { background: var(--rk-col-hydr); color: white; }

/* Prawa Kolumna: Dynamiczny Ekran Wizualizacji SVG */
.rk-display-board {
    background: var(--rk-proj-darker);
    border-radius: 20px;
    padding: 25px;
    border: 1px solid #334155;
    box-shadow: inset 0 0 35px rgba(0,0,0,0.7);
    display: flex;
    flex-direction: column;
}

.rk-display-status {
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    padding: 12px 15px;
    border-radius: 10px;
    color: #94a3b8;
    font-size: 12px;
    font-family: monospace;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 20px;
}

.rk-display-status span { color: #ffffff; font-weight: bold; }

.rk-svg-stage {
    width: 100%;
    height: auto;
    margin-top: auto;
}

/* Animacje i stany warstw SVG */
.rk-anim-layer { transition: opacity 0.4s ease, transform 0.4s ease; opacity: 0; }
.rk-anim-layer.active { opacity: 1; }

.rk-pulse-circle { animation: pulseOZC 2s infinite alternate; }
.rk-flow-arrow { stroke-dasharray: 6 6; animation: ventFlow 1.5s linear infinite; }
.rk-fluid-flow { stroke-dasharray: 8 8; animation: fluidFlow 1s linear infinite; }

@keyframes pulseOZC { from { fill: #b91c1c; opacity: 0.4; } to { fill: #ef4444; opacity: 0.9; } }
@keyframes ventFlow { to { stroke-dashoffset: -12; } }
@keyframes fluidFlow { to { stroke-dashoffset: -16; } }

/* Dolna sekcja: Treść dodatkowa i korzyści finansowe */
.rk-project-advantages {
    grid-column: 1 / -1;
    background: #ffffff;
    border: 1px solid var(--rk-proj-border);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.01);
}

.rk-adv-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-proj-dark);
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-adv-desc {
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
    margin: 0 0 25px 0;
}

/* Siatka korzyści (Kafelki responsywne) */
.rk-benefit-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.rk-benefit-card {
    background: var(--rk-proj-panel);
    border: 1px solid var(--rk-proj-border);
    padding: 20px;
    border-radius: 14px;
}

.rk-benefit-card h5 {
    margin: 0 0 8px 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-proj-dark);
}

.rk-benefit-card p {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--rk-proj-muted);
}

/* Sekcja CTA */
.rk-proj-cta-box {
    padding: 45px 40px;
    background: #ffffff;
    text-align: center;
    border-top: 1px solid var(--rk-proj-border);
}

.rk-cta-title {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-proj-dark);
    margin: 0 0 12px 0;
}

.rk-cta-text {
    font-size: 15px;
    color: var(--rk-proj-muted);
    margin: 0 auto 30px auto;
    max-width: 650px;
    line-height: 1.6;
}

.rk-btn-massive {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-proj-blue);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 18px 38px;
    border-radius: 14px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(37, 99, 235, 0.35);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 2px solid transparent;
}

.rk-btn-massive:hover {
    transform: translateY(-4px);
    background: var(--rk-proj-dark);
    box-shadow: 0 15px 30px -5px rgba(2, 6, 23, 0.4);
    border-color: var(--rk-proj-accent);
}

.rk-btn-massive svg { transition: transform 0.3s; }
.rk-btn-massive:hover svg { transform: translateX(6px); }

@media (max-width: 850px) {
    .rk-proj-header, .rk-proj-body, .rk-proj-cta-box { padding: 30px 20px; }
    .rk-proj-body { grid-template-columns: 1fr; gap: 25px; }
    .rk-benefit-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-btn-massive { width: 100%; font-size: 16px; padding: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#article-projekt",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/"
    },
    "headline": "Jak to wpływa na profesjonalny projekt ogrzewania podłogowego?",
    "description": "Dlaczego rozstaw rur w ogrzewaniu płaszczyznowym zależy od OZC i hydrauliki. Zobacz, jak profesjonalny projekt chroni przed pękaniem wylewki i generuje oszczędnoś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": "2026-05-21",
    "dateModified": "2026-05-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#dataset-projekt",
    "name": "Zależności inżynierskie w projektowaniu płaszczyznowym",
    "description": "Macierz powiązań parametrów fizycznych ogrzewania podłogowego z systemami rekuperacji i charakterystyką masową przepływu cieczy.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "profesjonalny projekt ogrzewania",
      "zrównoważenie hydrauliczne",
      "rekuperacja a ogrzewanie podłogowe",
      "dylatacje jastrychu",
      "nastawy rotametrów"
    ],
    "measurementTechnique": "Zintegrowany proces projektowy łączący bilans strat OZC wg PN-EN 12831, obliczenia oporów liniowych oraz stref dylatacyjnych płyty jastrychu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Obliczenia OZC: Zapobiegają instalacji pętli 'na oko', dopasowując rozstaw do realnych strat pomieszczeń.",
        "Korelacja z Wentylacją: Rekuperacja obniża szczytowe zapotrzebowanie, umożliwiając rozrzedzenie rozstawu rur.",
        "Zbalansowanie Hydrauliczne: Wyznaczenie nastaw rotametrów zapobiega blokowaniu przepływów czynnika grzewczego."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#webapp-projekt",
    "name": "Interaktywny Model Integracji Grzewczo-Wentylacyjnej",
    "description": "Panel wizualizacji inżynierskiej demonstrujący synergię bilansu OZC, wentylacji mechanicznej z odzyskiem ciepła oraz hydrauliki rozdzielacza pętli.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and SVG interactive selector functionality.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-proj-container" id="rk-project-impact">
    <div class="rk-proj-header">
        <div class="rk-proj-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path></svg>
            Inżynieria Projektowa vs Intuicja
        </div>
        <h2 class="rk-proj-title">Jak to wpływa na profesjonalny <span>projekt ogrzewania podłogowego?</span></h2>
        <p class="rk-proj-lead">
            W profesjonalnym projekcie ogrzewania podłogowego rozstaw rur jest zmienną wynikową, ściśle powiązaną z <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/" class="rk-link">obliczeniami OZC</a> według normy <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/" class="rk-link">PN-EN 12831</a>, nastawami na rotametrach rozdzielacza oraz charakterystyką pompy obiegowej. Nie można zaprojektować rozstawu w oderwaniu od hydrauliki układu, ponieważ zmiana gęstości rur drastycznie modyfikuje zład wody, masę jastrychu oraz wymagany autorytet zaworów regulacyjnych.
        </p>
    </div>

    <div class="rk-proj-body">
        
        <div class="rk-proj-controls">
            <div class="rk-sys-card active" data-sys="ozc">
                <div class="rk-sys-icon" style="background: var(--rk-col-ozc); color: white;">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                </div>
                <div class="rk-sys-info">
                    <span class="rk-sys-name">Bilans OZC 12831</span>
                    <span class="rk-sys-lbl">Fundament Mocy</span>
                </div>
            </div>

            <div class="rk-sys-card" data-sys="reku">
                <div class="rk-sys-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M23 12a11 11 0 1 1-22 0 11 11 0 0 1 22 0z"></path><path d="M12 7v5l3 3"></path></svg>
                </div>
                <div class="rk-sys-info">
                    <span class="rk-sys-name">Rekuperacja (Odzysk)</span>
                    <span class="rk-sys-lbl">Synergia Powietrza</span>
                </div>
            </div>

            <div class="rk-sys-card" data-sys="hydr">
                <div class="rk-sys-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z"></path><path d="M12 6v6l4 2"></path></svg>
                </div>
                <div class="rk-sys-info">
                    <span class="rk-sys-name">Hydraulika Pętli</span>
                    <span class="rk-sys-lbl">Zrównoważenie Masowe</span>
                </div>
            </div>
        </div>

        <div class="rk-display-board">
            <div class="rk-display-status">Wizualizacja warstwy projektowej: <span id="rk-sys-title-display">Bilans OZC EN 12831</span></div>
            
            <div class="rk-svg-stage">
                <svg viewBox="0 0 320 140" fill="none">
                    <path d="M 20 130 L 20 70 L 160 20 L 300 70 L 300 130 Z" stroke="#334155" stroke-width="2"/>
                    <line x1="20" y1="130" x2="300" y2="130" stroke="#475569" stroke-width="3"/>

                    <g id="svg-layer-ozc" class="rk-anim-layer active">
                        <circle cx="160" cy="75" r="20" class="rk-pulse-circle"/>
                        <text x="160" y="80" fill="#ffffff" font-size="13" font-weight="black" text-anchor="middle">OZC</text>
                        <path d="M 20 100 L 50 100 M 300 100 L 270 100 M 160 20 L 160 50" stroke="var(--rk-col-ozc)" stroke-width="3" stroke-linecap="round"/>
                        <polyline points="45,95 50,100 45,105" fill="none" stroke="var(--rk-col-ozc)" stroke-width="2"/>
                        <polyline points="275,95 270,100 275,105" fill="none" stroke="var(--rk-col-ozc)" stroke-width="2"/>
                    </g>

                    <g id="svg-layer-reku" class="rk-anim-layer">
                        <path d="M 40 120 C 40 60, 160 60, 160 120" class="rk-wave-line rk-flow-arrow" stroke="var(--rk-col-vent)" stroke-width="3"/>
                        <path d="M 280 120 C 280 60, 160 60, 160 120" class="rk-wave-line rk-flow-arrow" stroke="var(--rk-col-vent)" stroke-width="3" style="animation-delay: 0.75s;"/>
                        <rect x="135" y="105" width="50" height="20" fill="var(--rk-col-vent)" rx="4"/>
                        <text x="160" y="119" fill="#ffffff" font-size="10" font-weight="bold" text-anchor="middle">REKU</text>
                    </g>

                    <g id="svg-layer-hydr" class="rk-anim-layer">
                        <path d="M 30 128 L 290 128" class="rk-wave-line rk-fluid-flow" stroke="#ef4444" stroke-width="4"/>
                        <path d="M 35 124 L 285 124" class="rk-wave-line rk-fluid-flow" stroke="#3b82f6" stroke-width="4" style="animation-direction: reverse;"/>
                        <rect x="30" y="45" width="40" height="40" fill="var(--rk-col-hydr)" rx="6"/>
                        <line x1="40" y1="55" x2="40" y2="75" stroke="#ffffff" stroke-width="3"/>
                        <line x1="50" y1="60" x2="50" y2="75" stroke="#ffffff" stroke-width="3"/>
                        <line x1="60" y1="48" x2="60" y2="75" stroke="#ffffff" stroke-width="3"/>
                        <text x="50" y="38" fill="#94a3b8" font-size="10" font-family="monospace" text-anchor="middle">ROZDZIELACZ</text>
                    </g>
                </svg>
            </div>
        </div>

        <div class="rk-project-advantages">
            <h4 class="rk-adv-title">
                <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                Zyskujesz pełną pewność wykonawczą
            </h4>
            <p class="rk-adv-desc">
                Inżynier nie rysuje pętli "na oko". Kupując projekt instalacji ogrzewania płaszczyznowego, eliminujesz instalatorskie błędy oraz zyskujesz dokumentację techniczną, która zgra ze sobą hydraulikę, izolację i wentylację budynku.
            </p>

            <div class="rk-benefit-grid">
                <div class="rk-benefit-card">
                    <h5>Synergia z rekuperacją</h5>
                    <p>Wentylacja mechaniczna drastycznie obniża szczytowe zapotrzebowanie na moc (OZC), co pozwala na rozrzedzenie rozstawu rur w centrum budynku i zapobiega przegrzewaniu wnętrz jesienią.</p>
                </div>
                <div class="rk-benefit-card">
                    <h5>Eliminacja pękania posadzek</h5>
                    <p>Projekt precyzyjnie określa lokalizację warstw dylatacyjnych oraz przebieg <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" class="rk-link" style="color:inherit; font-weight:700;">izolacji brzegowej</a>, całkowicie znosząc ryzyko pękania płytek ceramicznych przez naprężenia termiczne.</p>
                </div>
                <div class="rk-benefit-card">
                    <h5>Zrównoważenie hydrauliczne</h5>
                    <p>Otrzymujesz gotową tabelę nastaw wstępnych dla rotametrów na rozdzielaczu (np. pętla 1: 1,5 l/min). Bez tych wyliczeń precyzyjne wyregulowanie przepływów po zalaniu betonem jest niewykonalne.</p>
                </div>
                <div class="rk-benefit-card">
                    <h5>Realne oszczędności na prądzie</h5>
                    <p>Poprawny projekt to oszczędność rzędu <strong>2000-3000 PLN</strong> już przy zakupie materiałów – kupujesz dokładnie taką długość rur PEX oraz o takich średnicach, jakie są fizycznie potrzebne.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-proj-cta-box">
        <h3 class="rk-cta-title">Nie pozwól na instalację "na oko" i intuicję wykonawcy</h3>
        <p class="rk-cta-text">
            Zamów profesjonalny, indywidualny projekt ogrzewania podłogowego oparty na pełnym bilansie OZC Twojego domu. Uniknij przewymiarowania kosztów materiałowych, zyskaj idealne nastawy rotametrów i zagwarantuj pompie ciepła najwyższy możliwy współczynnik sprawności COP.
        </p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-massive">
            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 (Domain Lock) - Brak tagów nagłówkowych w strukturze błędu
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(domain)) {
        const appContainer = document.getElementById('rk-project-impact');
        if (appContainer) {
            appContainer.innerHTML = `
                <div style="padding: 45px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif; max-width: 800px; margin: 40px auto;">
                    <div style="font-size: 45px; margin-bottom: 20px;">🛑</div>
                    <div style="font-size: 19px; font-weight: 900; margin-bottom: 12px; text-transform: uppercase; letter-spacing: 0.5px;">Wykryto Próbę Kradzieży Struktur</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 550px; margin: 0 auto; line-height: 1.6;">
                        Interaktywny panel integracji systemowej oraz powiązane bazy danych masowych (JSON-LD) stanowią własność intelektualną zastrzeżoną dla serwisu Projekt-Ogrzewania.pl. Wykryto użycie kodu na nieautoryzowanej domenie.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika interaktywnego panelu
    const cards = document.querySelectorAll('#rk-project-impact .rk-sys-card');
    const titleDisplay = document.getElementById('rk-sys-title-display');
    
    // Warstwy SVG
    const layerOzc = document.getElementById('svg-layer-ozc');
    const layerReku = document.getElementById('svg-layer-reku');
    const layerHydr = document.getElementById('svg-layer-hydr');

    const layerMap = {
        'ozc': { title: 'Bilans OZC EN 12831', layer: layerOzc, color: 'var(--rk-col-ozc)' },
        'reku': { title: 'Wentylacja Mechaniczna (Rekuperacja)', layer: layerReku, color: 'var(--rk-col-vent)' },
        'hydr': { title: 'Zbalansowanie Hydrauliczne Obwodów', layer: layerHydr, color: 'var(--rk-col-hydr)' }
    };

    cards.forEach(card => {
        card.addEventListener('click', function() {
            // Usunięcie klasy aktywnej ze wszystkich kart
            cards.forEach(c => c.classList.remove('active'));
            
            // Dodanie klasy aktywnej do klikniętej karty
            this.classList.add('active');
            
            const sys = this.getAttribute('data-sys');
            const currentData = layerMap[sys];
            
            // Zmiana tekstu statusu
            titleDisplay.textContent = currentData.title;
            titleDisplay.style.color = currentData.color;

            // Przełączanie widoczności warstw w SVG
            Object.values(layerMap).forEach(item => {
                item.layer.classList.remove('active');
            });
            currentData.layer.classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-fail-dark: #0f172a;
    --rk-fail-darker: #020617;
    --rk-fail-brand: #dc2626; /* Czerwień ostrzegawcza */
    --rk-fail-brand-light: #fee2e2;
    --rk-fail-accent: #f87171;
    --rk-fail-bg: #ffffff;
    --rk-fail-panel: #f8fafc;
    --rk-fail-border: #e2e8f0;
    --rk-fail-text: #334155;
    --rk-fail-muted: #64748b;
}

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

/* Nagłówek i Wprowadzenie */
.rk-fail-header {
    background: linear-gradient(135deg, var(--rk-fail-darker) 0%, var(--rk-fail-dark) 100%);
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-fail-brand);
}

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

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

.rk-fail-title span { color: var(--rk-fail-accent); }

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

/* Panel Interaktywnego Wyboru Błędu */
.rk-fail-body {
    padding: 40px 50px;
    display: grid;
    grid-template-columns: 360px 1fr;
    gap: 35px;
    background: #ffffff;
}

.rk-fail-controls {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

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

.rk-fail-card-btn:hover {
    transform: translateY(-2px);
    border-color: #cbd5e1;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
}

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

.rk-fail-btn-txt {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-fail-dark);
    line-height: 1.3;
}

/* Stan aktywny przełączników */
.rk-fail-card-btn.active {
    border-color: var(--rk-fail-brand);
    background: var(--rk-fail-brand-light);
}

.rk-fail-card-btn.active .rk-fail-btn-num {
    background: var(--rk-fail-brand);
    color: #ffffff;
    box-shadow: 0 0 10px rgba(220, 38, 38, 0.4);
}

/* Prawa Kolumna: Wizualizacja i Opis błędu */
.rk-fail-display {
    background: var(--rk-fail-panel);
    border: 1px solid var(--rk-fail-border);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.03);
    display: flex;
    flex-direction: column;
}

.rk-dyn-fail-title {
    font-size: 20px;
    font-weight: 900;
    color: #b91c1c;
    margin: 0 0 15px 0;
    line-height: 1.4;
}

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

/* SVG Ekran graficzny */
.rk-fail-svg-box {
    background: var(--rk-fail-darker);
    border-radius: 16px;
    padding: 15px;
    height: 160px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #334155;
    box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
    margin-top: auto;
}

.rk-fail-scene {
    width: 100%;
    height: 100%;
    max-width: 400px;
}

/* SVG warstwy i animacje */
.rk-f-layer { opacity: 0; transition: opacity 0.4s ease; }
.rk-f-layer.active { opacity: 1; }

.rk-f-cold-flow { stroke: #3b82f6; stroke-width: 4; stroke-linecap: round; }
.rk-f-hot-flow { stroke: #ef4444; stroke-width: 4; stroke-linecap: round; }
.rk-f-evoh-oxygen { stroke: #10b981; stroke-width: 2; stroke-dasharray: 4 6; animation: oxygenIn 2s linear infinite; }

@keyframes oxygenIn { to { stroke-dashoffset: -20; } }

@media (max-width: 850px) {
    .rk-fail-header, .rk-fail-body { padding: 30px 20px; }
    .rk-fail-body { grid-template-columns: 1fr; gap: 25px; }
    .rk-fail-svg-box { height: 140px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#article-bledy-montazu",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/"
    },
    "headline": "Najczęstsze błędy popełniane przy montażu i ustalaniu rozstawu rur",
    "description": "Lista 5 krytycznych błędów wykonawczych: brak stref brzegowych HS, ignorowanie oporu deski barlineckiej, przekraczanie 100 mb pętli PEX oraz brak bariery EVOH DIN 4726.",
    "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-21",
    "dateModified": "2026-05-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#dataset-bledy-montazu",
    "name": "Wykaz awarii i strat sprawności przez błędy wykonawcze",
    "description": "Zestawienie inżynierskie demaskujące konsekwencje ignorowania norm montażowych (kondensacja HS, opór drewna 0.12 m²K/W, korozja tlenowa DIN 4726).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "błędy montażu podłogówki",
      "brak strefy brzegowej HS",
      "opór cieplny drewna",
      "maksymalna długość pętli 100m",
      "rury bez bariery EVOH"
    ],
    "measurementTechnique": "Weryfikacja parametrów fizycznych i strat sprawności instalacji ogrzewania płaszczyznowego w oparciu o normy DIN 4726, PN-EN 1264 i PN-EN 12831.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Błąd okien HS: Brak zagęszczenia do 10 cm wywołuje kurtynę chłodu i kondensację wilgoci.",
        "Błąd oporu drewna: Rozstaw 20 cm pod parkiet blokuje transfer energii; wymagany rozstaw to 10-12.5 cm.",
        "Błąd długości obwodu: Przekroczenie 100 mb dla średnicy 16 mm wywołuje wychłodzenie powrotu i krytyczne opory.",
        "Błąd braku EVOH: Permeacja tlenu przez ścianki rur bez EVOH niszczy pompy obiegowe i wywołuje korozję."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#webapp-bledy-montazu",
    "name": "Interaktywny Detektor Błędów Wykonawczych",
    "description": "Narzędzie diagnostyczno-edukacyjne obrazujące przekroje jastrychów, zjawiska permeacji gazów oraz niedogrzania stref brzegowych w formie grafiki wektorowej SVG.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5 SVG compatibility.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-fail-container" id="rk-errors-board">
    <div class="rk-fail-header">
        <div class="rk-fail-badge">
            <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>
            Demaskujemy błędy wykonawców
        </div>
        <h2 class="rk-fail-title">Najczęstsze błędy popełniane <span>przy montażu i rozstawie rur</span></h2>
        <p class="rk-fail-lead">
            Praca z tysiącami inwestorów i audyty setek kotłowni pozwoliły mi wyselekcjonować 5 najgroźniejszych błędów wykonawczych, które nagminnie powtarzają się na polskich budowach. Wynikają one ze ślepej "intuicji" instalatorów zamiast opierania się na twardych obliczeniach.
        </p>
    </div>

    <div class="rk-fail-body">
        
        <div class="rk-fail-controls">
            <button class="rk-fail-card-btn active" data-fail="1">
                <div class="rk-fail-btn-num">1</div>
                <span class="rk-fail-btn-txt">Brak stref brzegowych przy oknach HS</span>
            </button>
            <button class="rk-fail-card-btn" data-fail="2">
                <div class="rk-fail-btn-num">2</div>
                <span class="rk-fail-btn-txt">Ignorowanie oporów okładzin drewnianych</span>
            </button>
            <button class="rk-fail-card-btn" data-fail="3">
                <div class="rk-fail-btn-num">3</div>
                <span class="rk-fail-btn-txt">Zagęszczanie rur pod stałą zabudową</span>
            </button>
            <button class="rk-fail-card-btn" data-fail="4">
                <div class="rk-fail-btn-num">4</div>
                <span class="rk-fail-card-btn-txt rk-fail-btn-txt">Przekraczanie max długości pętli</span>
            </button>
            <button class="rk-fail-card-btn" data-fail="5">
                <div class="rk-fail-btn-num">5</div>
                <span class="rk-fail-btn-txt">Rury bez barier tlenowych EVOH</span>
            </button>
        </div>

        <div class="rk-fail-display">
            <h4 class="rk-dyn-fail-title" id="rk-fail-title-target">Brak stref brzegowych przy dużych oknach typu HS</h4>
            <p class="rk-dyn-fail-desc" id="rk-fail-desc-target">
                Instalatorzy układają rury równomiernie co 15 cm aż do samej ramy okiennej. Skutkuje to "ciągnięciem chłodu" od szyby i kondensacją pary wodnej na dolnej krawędzi okna. Przy oknach tarasowych pas o szerokości 1 m musi być zagęszczony do 10 cm lub nawet 7,5 cm.
            </p>

            <div class="rk-fail-svg-box">
                <svg class="rk-fail-scene" viewBox="0 0 300 120" id="rk-fail-svg-stage">
                    
                    <g class="rk-f-layer active" id="f-layer-1">
                        <line x1="20" y1="10" x2="20" y2="110" stroke="#38bdf8" stroke-width="6"/>
                        <text x="32" y="30" fill="#38bdf8" font-size="10" font-family="monospace">OKNO HS</text>
                        <circle cx="90" cy="90" r="8" fill="none" stroke="#64748b" stroke-width="3"/>
                        <circle cx="170" cy="90" r="8" fill="none" stroke="#64748b" stroke-width="3"/>
                        <circle cx="250" cy="90" r="8" fill="none" stroke="#64748b" stroke-width="3"/>
                        <path d="M 22 20 Q 70 50 120 80" fill="none" stroke="#0ea5e9" stroke-width="3" stroke-dasharray="4 4"/>
                        <text x="130" y="60" fill="#ef4444" font-size="11" font-weight="bold">KONDENSACJA WILGOCI</text>
                    </g>

                    <g class="rk-f-layer" id="f-layer-2">
                        <rect x="10" y="20" width="280" height="15" fill="#b45309" rx="2"/>
                        <text x="150" y="31" fill="#ffffff" font-size="10" font-weight="bold" text-anchor="middle">GRUBA DESKA / PARKIECH (R = 0.12)</text>
                        <circle cx="60" cy="80" r="8" fill="#ef4444"/>
                        <circle cx="240" cy="80" r="8" fill="#ef4444"/>
                        <path d="M 60 65 Q 60 45 80 45" fill="none" stroke="#ef4444" stroke-width="2"/>
                        <path d="M 240 65 Q 240 45 220 45" fill="none" stroke="#ef4444" stroke-width="2"/>
                        <text x="150" y="62" fill="#ef4444" font-size="12" font-weight="black" text-anchor="middle">BLOKADA CIEPŁA</text>
                    </g>

                    <g class="rk-f-layer" id="f-layer-3">
                        <rect x="60" y="10" width="180" height="40" fill="#475569" rx="4"/>
                        <text x="150" y="34" fill="#cbd5e1" font-size="11" font-weight="bold" text-anchor="middle">CIĘŻKA ZABUDOWA / LODÓWKA</text>
                        <circle cx="100" cy="95" r="8" fill="#ef4444"/>
                        <circle cx="150" cy="95" r="8" fill="#ef4444"/>
                        <circle cx="200" cy="95" r="8" fill="#ef4444"/>
                        <text x="150" y="75" fill="#fbbf24" font-size="11" font-weight="bold" text-anchor="middle">PRZEGRZEWANIE MEBLA</text>
                    </g>

                    <g class="rk-f-layer" id="f-layer-4">
                        <path d="M 20 80 L 120 80" class="rk-f-hot-flow"/>
                        <text x="60" y="70" fill="#ef4444" font-size="10" font-family="monospace">START: 35°C</text>
                        <path d="M 120 80 C 180 80, 180 110, 240 110" stroke="#64748b" stroke-width="4" fill="none"/>
                        <path d="M 240 110 L 290 110" class="rk-f-cold-flow"/>
                        <text x="260" y="100" fill="#3b82f6" font-size="10" font-family="monospace">KONIEC: 22°C</text>
                        <text x="160" y="40" fill="#ef4444" font-size="12" font-weight="black" text-anchor="middle">> 100 MB: ZIMNY POWRÓT</text>
                    </g>

                    <g class="rk-f-layer" id="f-layer-5">
                        <rect x="20" y="40" width="260" height="40" fill="none" stroke="#94a3b8" stroke-width="6" rx="4"/>
                        <line x1="50" y1="15" x2="50" y2="40" class="rk-f-evoh-oxygen"/>
                        <line x1="150" y1="15" x2="150" y2="40" class="rk-f-evoh-oxygen"/>
                        <line x1="250" y1="15" x2="250" y2="40" class="rk-f-evoh-oxygen"/>
                        <text x="150" y="12" fill="#10b981" font-size="10" font-family="monospace" text-anchor="middle">PERMEACJA TLENU (O₂)</text>
                        <text x="150" y="64" fill="#ef4444" font-size="12" font-weight="black" text-anchor="middle">KOROZJA I SZLAM W UKŁADZIE</text>
                    </g>
                </svg>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (Domain Lock)
    const currentDomain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(currentDomain)) {
        const errorsContainer = document.getElementById('rk-errors-board');
        if (errorsContainer) {
            errorsContainer.innerHTML = `
                <div style="padding:45px; text-align:center; background:#0f172a; border-radius:24px; border:2px solid #ef4444; color:#fff; font-family:sans-serif; margin:40px auto; max-width:800px;">
                    <div style="font-size:45px; margin-bottom:15px;">🛑</div>
                    <div style="color:#ef4444; font-size:20px; font-weight:900; text-transform:uppercase; margin-bottom:10px;">Wykryto Naruszenie Praw Wykonawczych</div>
                    <div style="color:#cbd5e1; font-size:14px; line-height:1.6;">Interaktywny detektor błędów montażowych oraz powiązana struktura bazodanowa JSON-LD są własnością chronioną serwisu Projekt-Ogrzewania.pl. Kod został zablokowany.</div>
                </div>
            `;
            return;
        }
    }

    // Baza danych dla 5 błędów
    const errorsDB = {
        "1": {
            title: "Brak stref brzegowych przy dużych oknach typu HS",
            desc: "Instalatorzy układają rury równomiernie co 15 cm aż do samej ramy okiennej. Skutkuje to 'ciągnięciem chłodu' od szyby i kondensacją pary wodnej na dolnej krawędzi okna. Przy oknach tarasowych pas o szerokości 1 m musi być zagęszczony do 10 cm lub nawet 7,5 cm."
        },
        "2": {
            title: "Ignorowanie oporów cieplnych okładzin posadzkowych",
            desc: "Układanie rur w rozstawie 20 cm pod grubą deskę barlinecką lub parkiet drewniany o oporze cieplnym <strong>R = 0,12 m²K/W</strong>. Drewno działa jak izolator i drastycznie blokuje ciepło. Pod <a href='https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/' class='rk-link'>okładziny drewniane</a> rury muszą być ułożone gęściej (maksymalnie co 10-12,5 cm), aby skompensować ten potężny opór."
        },
        "3": {
            title: "Zagęszczanie rur pod stałą zabudową meblową",
            desc: "Układanie pętli grzewczych co 10 cm bezpośrednio pod szafkami kuchennymi, lodówką czy ciężkimi szafami typu komandor. Prowadzi to do marnowania materiału, przegrzewania artykułów spożywczych w szafkach i drastycznego ograniczenia naturalnej konwekcji. W <a href='https://projekt-ogrzewania.pl/wodne-ogrzewanie-podlogowe-a-meble-jak-polaczyc-komfort-i-aranzacje/' class='rk-link'>strefach stałej zabudowy</a> ogrzewania płaszczyznowego się nie układa."
        },
        "4": {
            title: "Przekraczanie maksymalnych długości pętli grzewczych",
            desc: "Wykonawcy z czystego lenistwa łączą dwa mniejsze pomieszczenia w jedną pętlę o długości 140-160 mb rury 16 mm. Taka pętla generuje tak duże opory, że woda na końcu obwodu jest całkowicie wychłodzona, a pokój pozostaje trwale niedogrzany. Bezwzględna <a href='https://projekt-ogrzewania.pl/ile-metrow-podlogowki-na-jednej-petli/' class='rk-link'>granica długości obwodu</a> to 100 mb (wliczając podejście do szafki rozdzielaczowej)."
        },
        "5": {
            title: "Stosowanie rur grzewczych bez sprawnych barier tlenowych",
            desc: "Montaż tanich rur niespełniających rygorystycznej normy <strong>DIN 4726</strong>, czyli pozbawionych antydyfuzyjnej bariery EVOH. Powoduje to stałe przenikanie tlenu przez ścianki do wnętrza instalacji (permeacja). Skutkuje to drastyczną korozją metalowych elementów rozdzielacza, awariami pomp obiegowych i powstawaniem czarnego szlamu (zgorzeliny) blokującego przepływy."
        }
    };

    const buttons = document.querySelectorAll('#rk-errors-board .rk-fail-card-btn');
    const titleTarget = document.getElementById('rk-fail-title-target');
    const descTarget = document.getElementById('rk-fail-desc-target');
    const layers = document.querySelectorAll('#rk-errors-board .rk-f-layer');

    buttons.forEach(btn => {
        btn.addEventListener('click', function() {
            // Przełączanie klas aktywnych na przyciskach
            buttons.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            const id = this.getAttribute('data-fail');
            const data = errorsDB[id];

            // Animacja zmiany tekstu i wstrzyknięcie
            titleTarget.textContent = data.title;
            descTarget.innerHTML = data.desc;

            // Przełączanie widoczności warstw SVG
            layers.forEach(layer => layer.classList.remove('active'));
            document.getElementById('f-layer-' + id).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-sum-dark: #020617;
    --rk-sum-panel: #0f172a;
    --rk-sum-primary: #10b981; /* Emerald/Green for success/summary */
    --rk-sum-primary-light: #d1fae5;
    --rk-sum-accent: #3b82f6; /* Blue for water */
    --rk-sum-warning: #f59e0b;
    --rk-sum-bg: #f8fafc;
    --rk-sum-border: #cbd5e1;
    --rk-sum-text: #334155;
    --rk-sum-text-dim: #64748b;
}

.rk-summary-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(16, 185, 129, 0.15);
    border: 1px solid rgba(16, 185, 129, 0.3);
    overflow: hidden;
}

/* Header z ekspertem */
.rk-summary-header {
    background: linear-gradient(135deg, var(--rk-sum-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    display: flex;
    align-items: center;
    gap: 30px;
    border-bottom: 4px solid var(--rk-sum-primary);
    position: relative;
    overflow: hidden;
}

.rk-summary-header::after {
    content: ''; position: absolute; right: 0; top: 0; width: 300px; height: 100%;
    background: radial-gradient(circle at right, rgba(16, 185, 129, 0.15) 0%, transparent 70%);
}

.rk-expert-avatar {
    width: 90px;
    height: 90px;
    border-radius: 50%;
    border: 3px solid var(--rk-sum-primary);
    box-shadow: 0 0 20px rgba(16, 185, 129, 0.4);
    object-fit: cover;
    position: relative;
    z-index: 2;
}

.rk-header-content {
    position: relative;
    z-index: 2;
}

.rk-header-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(16, 185, 129, 0.2);
    color: #6ee7b7;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 10px;
    border: 1px solid rgba(110, 231, 183, 0.3);
}

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

.rk-header-content p {
    color: #94a3b8;
    font-size: 14px;
    margin: 0;
    font-weight: 500;
}

/* Sekcja z zakładkami i wiedzą */
.rk-summary-body {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #ffffff;
}

.rk-rules-list {
    padding: 30px;
    border-right: 1px solid var(--rk-sum-border);
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: #f8fafc;
}

.rk-rule-btn {
    background: #ffffff;
    border: 1px solid var(--rk-sum-border);
    padding: 18px 20px;
    border-radius: 12px;
    text-align: left;
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: flex-start;
    gap: 15px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-rule-btn:hover {
    border-color: var(--rk-sum-primary);
    transform: translateX(4px);
}

.rk-rule-btn.active {
    background: var(--rk-sum-primary-light);
    border-color: var(--rk-sum-primary);
    box-shadow: inset 4px 0 0 var(--rk-sum-primary);
}

.rk-rule-icon {
    width: 32px; height: 32px;
    background: #f1f5f9;
    border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
    color: var(--rk-sum-text-dim);
    flex-shrink: 0;
    transition: 0.3s;
}

.rk-rule-btn.active .rk-rule-icon {
    background: var(--rk-sum-primary);
    color: #ffffff;
}

.rk-rule-text h3 {
    margin: 0 0 5px 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-sum-dark);
}

.rk-rule-text p {
    margin: 0;
    font-size: 13px;
    color: var(--rk-sum-text-dim);
    line-height: 1.5;
}

/* Panel Detali (Prawy) */
.rk-rule-details {
    padding: 40px;
    position: relative;
}

.rk-detail-panel {
    display: none;
    animation: fadeScale 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-detail-panel.active {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

@keyframes fadeScale {
    from { opacity: 0; transform: scale(0.95); }
    to { opacity: 1; transform: scale(1); }
}

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

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

.rk-sum-link {
    color: var(--rk-sum-accent);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dotted var(--rk-sum-accent);
    transition: 0.3s;
}
.rk-sum-link:hover { border-bottom-style: solid; color: #1d4ed8; }

.rk-detail-svg {
    width: 100%;
    height: 160px;
    background: var(--rk-sum-dark);
    border-radius: 12px;
    padding: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 4px 20px rgba(0,0,0,0.5);
    overflow: hidden;
}

/* Narzędzie Szybkiego Szacowania (Kalkulator) */
.rk-quick-calc {
    background: var(--rk-sum-panel);
    padding: 35px 50px;
    border-top: 1px solid #1e293b;
    color: #ffffff;
}

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

.rk-calc-header h4 {
    margin: 0; font-size: 18px; font-weight: 900; color: #ffffff;
    display: flex; align-items: center; gap: 10px;
}

.rk-calc-grid {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 40px;
    align-items: center;
}

.rk-calc-input-area {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-calc-label { font-size: 13px; font-weight: 700; color: #94a3b8; display: flex; justify-content: space-between; }
.rk-calc-label span { color: #ffffff; font-size: 16px; font-weight: 900; }

.rk-sum-range-final {
    -webkit-appearance: none; width: 100%; height: 6px; border-radius: 3px; background: #334155; outline: none; margin-bottom: 10px;
}
.rk-sum-range-final::-webkit-slider-thumb {
    -webkit-appearance: none; appearance: none; width: 22px; height: 22px; border-radius: 50%;
    background: var(--rk-sum-primary); cursor: pointer; border: 3px solid #ffffff; transition: 0.1s;
}
.rk-sum-range-final::-webkit-slider-thumb:active { transform: scale(1.15); }

/* Przyciski rozstawu w kalkulatorze */
.rk-calc-opts { display: flex; gap: 10px; }
.rk-calc-opt-btn {
    flex: 1; padding: 10px; background: #1e293b; border: 1px solid #334155; color: #94a3b8;
    border-radius: 8px; font-weight: 800; cursor: pointer; transition: 0.3s;
}
.rk-calc-opt-btn.active { background: rgba(16, 185, 129, 0.2); border-color: var(--rk-sum-primary); color: #6ee7b7; }

.rk-calc-results {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

.rk-result-box {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    padding: 15px;
    border-radius: 12px;
    text-align: center;
}

.rk-result-box.highlight { border-color: var(--rk-sum-primary); background: rgba(16, 185, 129, 0.1); }
.rk-result-box.warn { border-color: #ef4444; background: rgba(239, 68, 68, 0.1); }

.rk-res-val { display: block; font-size: 24px; font-weight: 900; color: #ffffff; margin-bottom: 5px; }
.rk-result-box.highlight .rk-res-val { color: var(--rk-sum-primary); }
.rk-result-box.warn .rk-res-val { color: #f87171; }
.rk-res-lab { display: block; font-size: 11px; color: #94a3b8; text-transform: uppercase; font-weight: 700; line-height: 1.4; }

/* SEKACJA AUTORSKA - PODPIS EKSPERTA */
.rk-summary-author {
    background: #f1f5f9;
    padding: 30px 50px;
    display: flex;
    align-items: flex-start;
    gap: 25px;
    border-top: 1px solid var(--rk-sum-border);
}

.rk-author-photo-small {
    width: 75px;
    height: 75px;
    border-radius: 50%;
    border: 3px solid var(--rk-sum-primary);
    box-shadow: 0 4px 15px rgba(16, 185, 129, 0.2);
    object-fit: cover;
    flex-shrink: 0;
}

.rk-author-info { flex-grow: 1; }
.rk-author-info h4 { margin: 0 0 6px 0; font-size: 18px; font-weight: 900; color: var(--rk-sum-dark); }
.rk-author-info p { margin: 0; font-size: 14px; color: var(--rk-sum-text); line-height: 1.6; }
.rk-author-links { display: flex; gap: 15px; margin-top: 12px; }
.rk-author-links a { color: var(--rk-sum-accent); font-size: 13px; font-weight: 800; text-decoration: none; display: inline-flex; align-items: center; gap: 5px; transition: color 0.2s; }
.rk-author-links a:hover { color: #1d4ed8; text-decoration: underline; }

/* Animacje SVG */
.anim-cop-arrow { stroke-dasharray: 8 8; animation: riseArrow 1s linear infinite; }
@keyframes riseArrow { to { stroke-dashoffset: -16; } }

.anim-pipe-flow { stroke-dasharray: 10 10; animation: pipeFlow 2s linear infinite; }
@keyframes pipeFlow { to { stroke-dashoffset: -20; } }

@media (max-width: 768px) {
    .rk-summary-header { flex-direction: column; text-align: center; padding: 30px 20px; }
    .rk-expert-avatar { width: 70px; height: 70px; }
    .rk-summary-body { grid-template-columns: 1fr; }
    .rk-rules-list { border-right: none; border-bottom: 1px solid var(--rk-sum-border); padding: 20px; }
    .rk-rule-details { padding: 25px 20px; }
    .rk-calc-grid { grid-template-columns: 1fr; gap: 25px; }
    .rk-quick-calc { padding: 30px 20px; }
    .rk-calc-results { grid-template-columns: 1fr 1fr; }
    .rk-summary-author { flex-direction: column; text-align: center; padding: 30px 20px; align-items: center; }
    .rk-author-links { justify-content: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#article-summary-final",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/"
    },
    "headline": "Inżynierskie podsumowanie: Jak gęsto rozkładać podłogówkę?",
    "description": "Kompaktowe zestawienie najważniejszych parametrów (OZC, COP, wylewki) i narzędzie do błyskawicznego szacowania długości pętli PEX. Twórca i CEO portalu: Robert Kucharski.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "jobTitle": "CEO & Główny Projektant HVAC",
      "sameAs": [
        "https://www.facebook.com/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-21",
    "dateModified": "2026-05-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#dataset-summary",
    "name": "Kluczowe wskaźniki projektowe dla rozstawu rur",
    "description": "Twarde dane przeliczeniowe łączące rozstaw rur, współczynnik efektywności COP pomp ciepła oraz obciążenie hydrauliczne systemu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "podsumowanie ogrzewania podłogowego",
      "kalkulator pętli podłogówki",
      "rozstaw rur pompa ciepła",
      "optymalizacja kosztów ogrzewania",
      "złote zasady podłogówki"
    ],
    "measurementTechnique": "Szacowanie oparte na przelicznikach metrażowych: 10 mb/m² dla 10cm, 6.67 mb/m² dla 15cm, z restrykcją max 100 mb na pętlę.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rozstaw 10-15 cm: Złoty standard dla pomp ciepła (niższe rachunki o kilkanaście %).",
        "Weryfikacja OZC: Wymóg konieczny eliminujący błędy przewymiarowania instalacji.",
        "Limit pętli: Bezwzględna granica 100 mb dla rury 16x2.0."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#webapp-summary",
    "name": "Inżynierski Estymator Rozstawu i Pętli",
    "description": "Moduł podsumowujący. Przelicza powierzchnię domu i wybrany rozstaw na orientacyjną długość rur oraz wymaganą liczbę obwodów na rozdzielaczu.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5 Forms",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-summary-container" id="rk-summary-final">
    
    <div class="rk-summary-header">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="rk-expert-avatar" loading="lazy">
        <div class="rk-header-content">
            <div class="rk-header-badge">
                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                Wnioski Eksperta
            </div>
            <h2>Inżynierskie podsumowanie: Rozstaw podłogówki</h2>
            <p>Ogrzewanie podłogowe to inwestycja na 50 lat. Zebrałem dla Ciebie 3 najważniejsze reguły projektowe z całego artykułu. Błędy na etapie układania rur są nieodwracalne.</p>
        </div>
    </div>

    <div class="rk-summary-body">
        
        <div class="rk-rules-list">
            <button class="rk-rule-btn active" data-panel="s-det-1">
                <div class="rk-rule-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg></div>
                <div class="rk-rule-text">
                    <h3>Złoty środek dla Pomp Ciepła</h3>
                    <p>Zagęszczaj (10-15 cm) by zyskać na COP</p>
                </div>
            </button>

            <button class="rk-rule-btn" data-panel="s-det-2">
                <div class="rk-rule-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg></div>
                <div class="rk-rule-text">
                    <h3>Bilans OZC to fundament</h3>
                    <p>Nie układaj rur na oko i intuicję</p>
                </div>
            </button>

            <button class="rk-rule-btn" data-panel="s-det-3">
                <div class="rk-rule-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="3" y1="15" x2="21" y2="15"></line></svg></div>
                <div class="rk-rule-text">
                    <h3>Rola Wylewki (Jastrychu)</h3>
                    <p>Anhydryt a szybkość grzania</p>
                </div>
            </button>
        </div>

        <div class="rk-rule-details">
            
            <div class="rk-detail-panel active" id="s-det-1">
                <h4>Im chłodniej, tym taniej</h4>
                <p>Każdy 1°C mniej na zasilaniu podłogówki (np. zejście z 40°C na 35°C dzięki rozstawowi 10 cm zamiast 20 cm) obniża rachunki za prąd o około 2-3%. Oszczędzasz latami dzięki wyższemu <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" class="rk-sum-link">współczynnikowi SCOP</a>.</p>
                <div class="rk-detail-svg">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <path d="M 20 80 L 180 80" stroke="#334155" stroke-width="3"/>
                        <rect x="40" y="50" width="30" height="30" fill="#3b82f6" rx="4"/>
                        <rect x="85" y="35" width="30" height="45" fill="#10b981" rx="4"/>
                        <rect x="130" y="20" width="30" height="60" fill="#f59e0b" rx="4"/>
                        <path class="anim-cop-arrow" d="M 20 60 L 180 10" fill="none" stroke="#ef4444" stroke-width="4"/>
                        <text x="180" y="30" fill="#ef4444" font-size="12" font-weight="bold">COP</text>
                    </svg>
                </div>
            </div>

            <div class="rk-detail-panel" id="s-det-2">
                <h4>Matematyka niszczy mity</h4>
                <p>O rozstawie rur decyduje gęstość strumienia ciepła <strong>q (W/m²)</strong>. Dopiero znając <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" class="rk-sum-link">wyniki OZC</a> wiesz, czy salon potrzebuje 15 cm, a łazienka 10 cm. Instalatorzy robiący "wszędzie co 10 cm" marnują Twoje pieniądze i dławią hydraulikę.</p>
                <div class="rk-detail-svg">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <rect x="50" y="20" width="100" height="60" fill="none" stroke="#cbd5e1" stroke-width="3" rx="4"/>
                        <line x1="100" y1="20" x2="100" y2="80" stroke="#cbd5e1" stroke-width="3"/>
                        <line x1="50" y1="50" x2="150" y2="50" stroke="#cbd5e1" stroke-width="3"/>
                        <text x="75" y="40" fill="#10b981" font-size="12" font-family="monospace" text-anchor="middle" font-weight="bold">15 cm</text>
                        <text x="125" y="40" fill="#ef4444" font-size="12" font-family="monospace" text-anchor="middle" font-weight="bold">10 cm</text>
                        <text x="75" y="70" fill="#3b82f6" font-size="12" font-family="monospace" text-anchor="middle" font-weight="bold">20 cm</text>
                    </svg>
                </div>
            </div>

            <div class="rk-detail-panel" id="s-det-3">
                <h4>Radiator idealny</h4>
                <p>Wybór <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" class="rk-sum-link">jastrychu</a> ma znaczenie. Anhydryt (λ=1.8 W/mK) eliminuje pęcherze powietrza wokół rury i reaguje w 2 godziny. Gruby beton (λ=1.2 W/mK) potrzebuje nawet 5 godzin, co wymusza zagęszczanie rur dla podobnego efektu.</p>
                <div class="rk-detail-svg">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <rect x="20" y="60" width="160" height="30" fill="#1e293b"/>
                        <rect x="20" y="30" width="160" height="30" fill="#f59e0b" opacity="0.8"/>
                        <circle cx="100" cy="50" r="10" fill="#ffffff" stroke="#ef4444" stroke-width="3"/>
                        <path class="anim-pipe-flow" d="M 100 40 Q 70 20 40 30" fill="none" stroke="#ef4444" stroke-width="2"/>
                        <path class="anim-pipe-flow" d="M 100 40 Q 130 20 160 30" fill="none" stroke="#ef4444" stroke-width="2"/>
                    </svg>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-quick-calc">
        <div class="rk-calc-header">
            <h4>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-sum-primary)" stroke-width="2.5"><rect x="4" y="2" width="16" height="20" rx="2" ry="2"></rect><line x1="8" y1="6" x2="16" y2="6"></line><line x1="16" y1="14" x2="16.01" y2="14"></line><line x1="12" y1="14" x2="12.01" y2="14"></line><line x1="8" y1="14" x2="8.01" y2="14"></line></svg>
                Szybki Estymator Materiałowy PEX
            </h4>
        </div>

        <div class="rk-calc-grid">
            <div class="rk-calc-input-area">
                <div class="rk-calc-label">
                    Powierzchnia strefy (m²):
                    <span id="finAreaOut">100 m²</span>
                </div>
                <input type="range" class="rk-sum-range-final" id="finAreaSlider" min="20" max="250" step="5" value="100">
                
                <div class="rk-calc-label" style="margin-top: 10px;">Zakładany rozstaw rur:</div>
                <div class="rk-calc-opts">
                    <button class="rk-calc-opt-btn" data-sval="10">10 cm</button>
                    <button class="rk-calc-opt-btn active" data-sval="15">15 cm</button>
                    <button class="rk-calc-opt-btn" data-sval="20">20 cm</button>
                </div>
            </div>

            <div class="rk-calc-results">
                <div class="rk-result-box highlight">
                    <span class="rk-res-val" id="finPipe">700 <span style="font-size:14px;color:var(--rk-sum-primary);">m</span></span>
                    <span class="rk-res-lab">Potrzebna Rura (+5%)</span>
                </div>
                <div class="rk-result-box" id="finLoopsBox">
                    <span class="rk-res-val" id="finLoops">7</span>
                    <span class="rk-res-lab">Ilość Pętli (max 100m)</span>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-summary-author">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - CEO i Projektant HVAC" class="rk-author-photo-small" loading="lazy">
        <div class="rk-author-info">
            <h4>Robert Kucharski</h4>
            <p>CEO i twórca portalu Projekt-Ogrzewania.pl. Główny projektant i audytor instalacji HVAC. Wszystkie publikowane tu treści opieram na wieloletnim, praktycznym doświadczeniu zdobytym bezpośrednio na placach budowy. Moją misją jest dostarczanie twardej, inżynierskiej wiedzy, która uchroni Cię przed bolesnymi błędami.</p>
            <div class="rk-author-links">
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg>
                    LinkedIn
                </a>
                <a href="https://www.facebook.com/robert.kucharski.budowa.bez.sciemy" target="_blank" rel="noopener noreferrer">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.469h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.469h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"/></svg>
                    Facebook
                </a>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (DOMAIN LOCK) bez tagów H
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-summary-final').innerHTML = `
            <div style="padding:45px; text-align:center; background:#0f172a; color:#ef4444; border:2px solid #ef4444; border-radius:24px; font-weight:800; font-family:sans-serif; max-width:800px; margin: 40px auto;">
                <div style="font-size:40px; margin-bottom:15px;">🛑</div>
                <div style="font-size:20px; text-transform:uppercase; margin-bottom:10px;">Błąd licencji oprogramowania</div>
                <div style="color:#cbd5e1; font-size:14px; font-weight:normal;">Interaktywny moduł podsumowujący oraz skrypty JSON-LD stanowią własność Projekt-Ogrzewania.pl. Wykryto użycie na nieautoryzowanej domenie.</div>
            </div>`;
        return;
    }

    // 2. Logika Zakładek (Złote Zasady)
    const btns = document.querySelectorAll('#rk-summary-final .rk-rule-btn');
    const panels = document.querySelectorAll('#rk-summary-final .rk-detail-panel');

    btns.forEach(btn => {
        btn.addEventListener('click', () => {
            btns.forEach(b => b.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

            btn.classList.add('active');
            const target = document.getElementById(btn.getAttribute('data-panel'));
            if(target) {
                void target.offsetWidth; // Restart animacji
                target.classList.add('active');
            }
        });
    });

    // 3. Logika Kalkulatora Estymacyjnego
    const slider = document.getElementById('finAreaSlider');
    const areaOut = document.getElementById('finAreaOut');
    const optBtns = document.querySelectorAll('.rk-calc-opt-btn');
    const resPipe = document.getElementById('finPipe');
    const resLoops = document.getElementById('finLoops');
    const loopsBox = document.getElementById('finLoopsBox');

    let currentSpacing = 15; // default

    function updateCalc() {
        const area = parseInt(slider.value);
        areaOut.textContent = area + ' m²';

        // Przelicznik [mb/m2]
        let ratio = 6.67; 
        if(currentSpacing === 10) ratio = 10.0;
        if(currentSpacing === 20) ratio = 5.0;

        // Ilość rury z naddatkiem 5%
        const rawLength = area * ratio;
        const totalLength = rawLength * 1.05;

        // Ilość pętli (max 100m na pętlę)
        const loopsNeeded = Math.ceil(totalLength / 100);

        resPipe.innerHTML = totalLength.toFixed(0) + ' <span style="font-size:14px;color:var(--rk-sum-primary);">m</span>';
        resLoops.textContent = loopsNeeded;

        // Ostrzeżenie wizualne jeśli przekraczamy duży rozdzielacz (np. >12 pętli)
        if(loopsNeeded > 12) {
            loopsBox.classList.add('warn');
            resLoops.style.color = '#ef4444';
        } else {
            loopsBox.classList.remove('warn');
            resLoops.style.color = '#ffffff';
        }
    }

    // Eventy
    if(slider) {
        slider.addEventListener('input', updateCalc);
        
        optBtns.forEach(btn => {
            btn.addEventListener('click', function() {
                optBtns.forEach(b => b.classList.remove('active'));
                this.classList.add('active');
                currentSpacing = parseInt(this.getAttribute('data-sval'));
                updateCalc();
            });
        });

        updateCalc(); // Init
    }
});
</script>



<style>
:root {
    --rk-cs-dark: #0f172a;
    --rk-cs-darker: #020617;
    --rk-cs-brand: #8b5cf6; /* Ekspercki fiolet */
    --rk-cs-brand-light: #c4b5fd;
    --rk-cs-danger: #ef4444; /* Czerwień strat */
    --rk-cs-danger-bg: #fee2e2;
    --rk-cs-success: #10b981; /* Zieleń projektu */
    --rk-cs-success-bg: #d1fae5;
    --rk-cs-panel: #1e293b;
    --rk-cs-bg: #ffffff;
    --rk-cs-text: #334155;
    --rk-cs-muted: #64748b;
    --rk-cs-border: #e2e8f0;
}

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

/* Nagłówek i Wprowadzenie */
.rk-cs-header {
    background: linear-gradient(135deg, var(--rk-cs-darker) 0%, #2e1065 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-cs-brand);
}

.rk-cs-header::before {
    content: '';
    position: absolute;
    top: 0; right: 0; width: 300px; height: 100%;
    background: radial-gradient(circle at top right, rgba(139, 92, 246, 0.2) 0%, transparent 70%);
    pointer-events: none;
}

.rk-cs-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(139, 92, 246, 0.25);
    color: var(--rk-cs-brand-light);
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(139, 92, 246, 0.3);
}

.rk-cs-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 20px 0;
}

.rk-cs-title span { color: #a855f7; }

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

.rk-cs-meta {
    display: flex;
    gap: 20px;
    padding-top: 20px;
    border-top: 1px dashed rgba(255,255,255,0.15);
    font-size: 14px;
    color: #94a3b8;
}

.rk-cs-meta span { display: flex; align-items: center; gap: 6px; color: #e2e8f0; font-weight: 600; }

/* Panel Interaktywny */
.rk-cs-interactive {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-cs-h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-cs-dark);
    margin: 0 0 25px 0;
    text-align: center;
}

/* Przełącznik Wariantów */
.rk-cs-toggle-box {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin-bottom: 30px;
    background: #ffffff;
    padding: 10px;
    border-radius: 16px;
    border: 1px solid var(--rk-cs-border);
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-btn-variant {
    padding: 18px 20px;
    border: 2px solid transparent;
    border-radius: 12px;
    background: transparent;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    text-align: center;
}

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

.rk-btn-variant.active[data-variant="bad"] {
    background: var(--rk-cs-danger-bg);
    border-color: var(--rk-cs-danger);
    box-shadow: 0 10px 15px -3px rgba(239, 68, 68, 0.1);
}

.rk-btn-variant.active[data-variant="good"] {
    background: var(--rk-cs-success-bg);
    border-color: var(--rk-cs-success);
    box-shadow: 0 10px 15px -3px rgba(16, 185, 129, 0.1);
}

.rk-var-title { font-size: 16px; font-weight: 800; margin: 0; color: var(--rk-cs-dark); }
.rk-var-sub { font-size: 13px; font-weight: 600; color: var(--rk-cs-muted); }
.active[data-variant="bad"] .rk-var-title { color: #b91c1c; }
.active[data-variant="good"] .rk-var-title { color: #047857; }

/* Grid Danych (Przebudowany po usunięciu SVG) */
.rk-cs-metrics-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

/* Parametry */
.rk-metric-card {
    background: #ffffff;
    padding: 20px;
    border-radius: 16px;
    border: 1px solid var(--rk-cs-border);
    transition: all 0.3s;
    position: relative;
    overflow: hidden;
    text-align: center;
}

.rk-metric-lbl {
    font-size: 12px;
    font-weight: 800;
    color: var(--rk-cs-muted);
    text-transform: uppercase;
    margin-bottom: 8px;
}

.rk-metric-val {
    font-size: 22px;
    font-weight: 900;
    transition: color 0.3s;
}

/* Tło ostrzegawcze w kartach (teraz od góry) */
.rk-metric-card::before {
    content: ''; position: absolute; left: 0; top: 0; right: 0; height: 4px;
    background: transparent; transition: background 0.3s;
}
.state-bad .rk-metric-card::before { background: var(--rk-cs-danger); }
.state-good .rk-metric-card::before { background: var(--rk-cs-success); }

.state-bad .val-alert { color: var(--rk-cs-danger); }
.state-good .val-alert { color: var(--rk-cs-success); }

/* Opis zjawiska (na całą szerokość) */
.rk-cs-explanation {
    grid-column: 1 / -1;
    margin-top: 5px;
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-cs-text);
    padding: 20px 25px;
    border-radius: 12px;
    background: #ffffff;
    border: 1px dashed var(--rk-cs-border);
    transition: all 0.3s;
}

.state-bad .rk-cs-explanation { background: #fff5f5; border-color: #fca5a5; }
.state-good .rk-cs-explanation { background: #f0fdf4; border-color: #6ee7b7; }

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

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

.rk-btn-massive:hover {
    transform: translateY(-4px);
    background: #6d28d9;
    box-shadow: 0 15px 30px -5px rgba(139, 92, 246, 0.5);
    border-color: #c4b5fd;
}

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

@media (max-width: 850px) {
    .rk-cs-header, .rk-cs-interactive, .rk-cs-cta { padding: 30px 20px; }
    .rk-cs-meta { flex-direction: column; gap: 10px; }
    .rk-cs-toggle-box { grid-template-columns: 1fr; }
    .rk-cs-metrics-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-btn-variant { padding: 15px; flex-direction: row; justify-content: center; }
    .rk-btn-massive { width: 100%; font-size: 16px; padding: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/"
    },
    "headline": "Studium przypadku: Błędy instalatora a profesjonalny projekt ogrzewania podłogowego",
    "description": "Z życia inżyniera: audyt instalacji dla 165 m². Zobacz, jak wyliczenia OZC uchroniły inwestora przed stratą 2400 PLN i zablokowaniem pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.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-21",
    "dateModified": "2026-05-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#dataset-casestudy",
    "name": "Audyt wykonawczy instalacji płaszczyznowej - Porównanie OZC",
    "description": "Zestawienie parametrów materiałowych i hydraulicznych pomiędzy intuicyjnym montażem a projektem inżynierskim dla budynku 165m2 o niskim zapotrzebowaniu na moc.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego",
      "przewymiarowanie instalacji",
      "rotametry przepływy",
      "pompa obiegowa podłogówki",
      "obliczenia OZC"
    ],
    "measurementTechnique": "Kalkulacja kosztów materiałowych (rury, rozdzielacze) i weryfikacja przepływów na rotametrach pod kątem dławienia pompy obiegowej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wariant Instalatora: Rozstaw 10 cm, +605 mb rur, +4 sekcje rozdzielacza, koszt +2400 PLN, przepływy <0.5 l/min.",
        "Wariant Inżyniera: Zmienne rozstawy 10/15/20 cm, dopasowanie do strat 32 W/m², optymalizacja kosztów, zasilanie 32°C."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#webapp-casestudy",
    "name": "Symulator Audytu Inwestycyjnego",
    "description": "Narzędzie interaktywne ilustrujące różnice w ilości pętli, wielkości rozdzielacza i obciążeniu pompy między wariantem amatorskim a inżynierskim.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript execution.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cs-container" id="rk-casestudy-app">
    <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"><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>
            Akta Sprawy Inżynierskiej
        </div>
        <h2 class="rk-cs-title">Studium przypadku z praktyki <span>inżynierskiej</span></h2>
        <p class="rk-cs-story">
            W dniu 19 sierpnia 2025 roku sfinalizowałem audyt wykonawczy instalacji ogrzewania podłogowego dla inwestora Tomasza, obejmujący nowo wybudowany dom parterowy w technologii energooszczędnej. Instalator bez żadnego projektu zamierzał ułożyć rurę PEX 16 mm w rozstawie 10 cm na całej powierzchni domu, argumentując to "optymalnym przygotowaniem pod pompę ciepła". 
        </p>
        <div class="rk-cs-meta">
            <span><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"></path><circle cx="12" cy="10" r="3"></circle></svg> Okolice Nowego Sącza</span>
            <span><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect></svg> Metraż: 165 m²</span>
            <span><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg> Straty ciepła (OZC): Zaledwie 32 W/m²</span>
        </div>
    </div>

    <div class="rk-cs-interactive" id="rk-cs-state-container">
        <h3 class="rk-cs-h3">Symulacja Decyzji: Porównaj warianty instalacyjne</h3>
        
        <div class="rk-cs-toggle-box">
            <button class="rk-btn-variant active" data-variant="bad">
                <span class="rk-var-title">Wizja Instalatora ("Na oko")</span>
                <span class="rk-var-sub">Wszędzie rozstaw co 10 cm</span>
            </button>
            <button class="rk-btn-variant" data-variant="good">
                <span class="rk-var-title">Projekt Inżynierski (OZC)</span>
                <span class="rk-var-sub">Zmienne strefy 10/15/20 cm</span>
            </button>
        </div>

        <div class="rk-cs-metrics-grid">
            <div class="rk-metric-card">
                <div class="rk-metric-lbl">Naddatek Materiału</div>
                <div class="rk-metric-val val-alert" id="rk-cs-val-pipe">+605 mb rury PEX</div>
            </div>
            <div class="rk-metric-card">
                <div class="rk-metric-lbl">Wielkość Rozdzielacza</div>
                <div class="rk-metric-val val-alert" id="rk-cs-val-manif">+4 zbędne sekcje</div>
            </div>
            <div class="rk-metric-card">
                <div class="rk-metric-lbl">Koszt Inwestycyjny</div>
                <div class="rk-metric-val val-alert" id="rk-cs-val-cost">Strata 2400 PLN</div>
            </div>

            <div class="rk-cs-explanation" id="rk-cs-text-expl">
                <strong>Zagrożenie awarią:</strong> Gęste ułożenie przy tak niskich stratach (32 W/m²) wymagałoby zdławienia przepływów na rotametrach do wartości < 0,5 l/min, aby nie przegrzać wnętrza. Groziło to <strong>destabilizacją pompy obiegowej o mocy 7 kW</strong>.
            </div>
        </div>
    </div>

    <div class="rk-cs-cta">
        <h3 class="rk-cta-title">Skopiuj ten sukces na swojej budowie</h3>
        <p class="rk-cta-text">
            Ostatecznie wdrożyliśmy mój projekt o zmiennych rozstawach. System ruszył bezproblemowo, pracując na skrajnie niskim parametrze zasilania 32°C, zapewniając inwestorowi idealny komfort termiczny i najwyższy możliwy współczynnik COP pompy ciepła.
        </p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-massive">
            ZAMÓW INDYWIDUALNY PROJEKT
            <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 - Brak tagów strukturalnych (H) w komunikacie błędu
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(domain)) {
        const appContainer = document.getElementById('rk-casestudy-app');
        if (appContainer) {
            appContainer.innerHTML = `
                <div style="padding: 45px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif; max-width: 800px; margin: 40px auto;">
                    <div style="font-size: 45px; margin-bottom: 20px;">🛑</div>
                    <div style="font-size: 19px; font-weight: 900; margin-bottom: 12px; text-transform: uppercase; letter-spacing: 0.5px;">Wykryto Naruszenie Własności Intelektualnej</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 550px; margin: 0 auto; line-height: 1.6;">
                        Case Study (Studium przypadku), interfejs symulatora oraz niewidoczne dane JSON-LD należą do serwisu Projekt-Ogrzewania.pl. Wykryto nielegalne wykorzystanie skryptu.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Toggle Switch
    const btns = document.querySelectorAll('.rk-btn-variant');
    const container = document.getElementById('rk-cs-state-container');
    
    // Pola tekstowe dynamiczne
    const valPipe = document.getElementById('rk-cs-val-pipe');
    const valManif = document.getElementById('rk-cs-val-manif');
    const valCost = document.getElementById('rk-cs-val-cost');
    const textExpl = document.getElementById('rk-cs-text-expl');

    // Baza danych Case Study
    const db = {
        'bad': {
            pipe: '+605 mb rury PEX',
            manif: '+4 zbędne sekcje',
            cost: 'Strata 2400 PLN',
            expl: '<strong>Zagrożenie awarią:</strong> Gęste ułożenie przy tak niskich stratach (32 W/m²) wymagałoby zdławienia przepływów na rotametrach do wartości < 0,5 l/min, aby nie przegrzać wnętrza. Groziło to <strong>destabilizacją pompy obiegowej o mocy 7 kW</strong>.'
        },
        'good': {
            pipe: 'Optymalna ilość',
            manif: 'Idealnie dopasowany',
            cost: 'Oszczędność 2400 PLN',
            expl: '<strong>Zoptymalizowany system:</strong> Projekt o zmiennych rozstawach (15 cm w strefie dziennej, 20 cm w sypialniach oraz 10 cm w łazience). System ruszył bezproblemowo, pracując na zasilaniu 32°C, gwarantując max. COP.'
        }
    };

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // UI Button state
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            const variant = this.getAttribute('data-variant');
            const data = db[variant];

            // Wstrzyknięcie klas dla kolorystyki metryk CSS
            container.className = `rk-cs-interactive state-${variant}`;

            // Wstrzyknięcie tekstów
            valPipe.textContent = data.pipe;
            valManif.textContent = data.manif;
            valCost.textContent = data.cost;
            textExpl.innerHTML = data.expl;
        });
    });

    // Inicjalizacja domyślnego stanu CSS dla metryk
    container.className = 'rk-cs-interactive state-bad';
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-card: #1e293b;
    --rk-faq-brand: #4f46e5;
    --rk-faq-brand-light: #e0e7ff;
    --rk-faq-accent: #06b6d4;
    --rk-faq-success: #10b981;
    --rk-faq-bg: #f8fafc;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #334155;
    --rk-faq-muted: #64748b;
}

.rk-faq-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(79, 70, 229, 0.15);
    border: 1px solid rgba(79, 70, 229, 0.3);
    overflow: hidden;
}

/* Nagłówek */
.rk-faq-header {
    background: linear-gradient(135deg, var(--rk-faq-dark) 0%, #312e81 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-faq-brand);
}

.rk-faq-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(79, 70, 229, 0.3);
    color: #a5b4fc;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(165, 180, 252, 0.3);
}

.rk-faq-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
}

.rk-faq-title span { color: #818cf8; }

/* Sekcja Akordeonu */
.rk-faq-interactive {
    padding: 40px 50px;
    background: var(--rk-faq-bg);
}

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

.rk-faq-item {
    background: #ffffff;
    border: 1px solid var(--rk-faq-border);
    border-radius: 16px;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-faq-item.active {
    border-color: var(--rk-faq-brand);
    box-shadow: 0 10px 25px -5px rgba(79, 70, 229, 0.15);
    transform: scale(1.01);
}

/* Przycisk Pytania */
.rk-faq-question {
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    padding: 20px 25px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-faq-dark);
    transition: background 0.3s, color 0.3s;
}

.rk-faq-question:hover {
    background: var(--rk-faq-brand-light);
}

.rk-faq-item.active .rk-faq-question {
    background: var(--rk-faq-brand);
    color: #ffffff;
}

.rk-faq-icon {
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--rk-faq-brand-light);
    color: var(--rk-faq-brand);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    margin-left: 15px;
}

.rk-faq-item.active .rk-faq-icon {
    background: rgba(255,255,255,0.2);
    color: #ffffff;
    transform: rotate(180deg);
}

/* Kontener Odpowiedzi (Animacja Grid) */
.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;
}

/* Wnętrze Odpowiedzi */
.rk-faq-content {
    padding: 30px;
    border-top: 1px solid var(--rk-faq-border);
    display: grid;
    grid-template-columns: 1fr 220px;
    gap: 30px;
    align-items: center;
    background: #ffffff;
}

.rk-faq-text {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-faq-text);
}

.rk-faq-text strong {
    font-weight: 800;
    color: var(--rk-faq-dark);
    background: linear-gradient(120deg, rgba(79, 70, 229, 0.1) 0%, rgba(79, 70, 229, 0.1) 100%);
    background-repeat: no-repeat;
    background-size: 100% 40%;
    background-position: 0 88%;
}

.rk-link {
    color: var(--rk-faq-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(79, 70, 229, 0.4);
    transition: all 0.3s;
}

.rk-link:hover {
    color: #3730a3;
    border-bottom-style: solid;
}

/* Wizualizacje SVG */
.rk-faq-visual {
    background: var(--rk-faq-dark);
    border-radius: 16px;
    padding: 15px;
    height: 150px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 25px rgba(0,0,0,0.6);
    border: 3px solid #1e293b;
    position: relative;
    overflow: hidden;
}

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

/* Animacje SVG zależne od .active w rodzicu */

/* 1. Rotametry */
.anim-rota-1 { transform: translateY(0); transition: transform 1s 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); }
.anim-rota-2 { transform: translateY(0); transition: transform 1s 0.5s cubic-bezier(0.34, 1.56, 0.64, 1); }
.anim-rota-3 { transform: translateY(0); transition: transform 1s 0.7s cubic-bezier(0.34, 1.56, 0.64, 1); }
.rk-faq-item.active .anim-rota-1 { transform: translateY(20px); }
.rk-faq-item.active .anim-rota-2 { transform: translateY(10px); }
.rk-faq-item.active .anim-rota-3 { transform: translateY(30px); }

/* 2. Zabudowa / Lodówka */
.anim-frost { opacity: 0; transform: scale(0.5) rotate(-45deg); transition: all 0.6s 0.4s ease-out; }
.anim-cross { opacity: 0; stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset 0.5s 0.8s, opacity 0.2s 0.8s; }
.rk-faq-item.active .anim-frost { opacity: 1; transform: scale(1) rotate(0deg); }
.rk-faq-item.active .anim-cross { opacity: 1; stroke-dashoffset: 0; }

/* 3. Długość 100m */
.anim-loop-draw { stroke-dasharray: 250; stroke-dashoffset: 250; transition: stroke-dashoffset 1.5s 0.3s ease-out; }
.anim-alert { opacity: 0; transform: scale(0); transition: all 0.5s 1.5s cubic-bezier(0.175, 0.885, 0.32, 1.275); }
.rk-faq-item.active .anim-loop-draw { stroke-dashoffset: 0; }
.rk-faq-item.active .anim-alert { opacity: 1; transform: scale(1); }

/* 4. Bezwładność (Masa Betonu) */
.anim-heat-wave { stroke-dasharray: 10 15; stroke-dashoffset: 0; opacity: 0; }
.rk-faq-item.active .anim-heat-wave { opacity: 1; animation: heatRiseSlow 3s linear infinite 0.5s; }
@keyframes heatRiseSlow { to { stroke-dashoffset: -50; } }

/* 5. System Suchy (Lamele) */
.anim-shine { transform: translateX(-100%); }
.rk-faq-item.active .anim-shine { animation: sweepShine 2s infinite 0.5s; }
@keyframes sweepShine { 
    0% { transform: translateX(-100%); opacity: 0; }
    50% { opacity: 0.5; }
    100% { transform: translateX(100%); opacity: 0; }
}

@media (max-width: 768px) {
    .rk-faq-header, .rk-faq-interactive { padding: 30px 20px; }
    .rk-faq-title { font-size: 24px; }
    .rk-faq-content { grid-template-columns: 1fr; gap: 20px; padding: 25px 20px; }
    .rk-faq-visual { height: 140px; max-width: 280px; margin: 0 auto; width: 100%; }
    .rk-faq-question { font-size: 15px; padding: 18px 20px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/"
    },
    "headline": "Najczęściej zadawane pytania o rozstaw rur w podłogówce (FAQ)",
    "description": "Baza wiedzy eksperckiej o ogrzewaniu podłogowym: mieszanie rozstawów pętli, układanie rur pod meblami, maksymalna długość pętli PEX i specyfika systemu suchego.",
    "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-21",
    "dateModified": "2026-05-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#faq-schema",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy można mieszać różne rozstawy rur w obrębie jednego domu lub rozdzielacza?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, to absolutny fundament poprawnego projektowania. Łazienki wymagają rozstawu 10 cm, salon zazwyczaj 15 cm, a sypialnie 20 cm. Różnice w oporach hydraulicznych i zapotrzebowaniu na ciepło dla poszczególnych stref bilansuje się na etapie regulacji przepływów na rotametrach rozdzielacza."
        }
      },
      {
        "@type": "Question",
        "name": "Jaki rozstaw rur zastosować pod meblami kuchennymi i lodówką?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Pod stałą zabudową kuchenną (szczególnie pod lodówką) nie układamy pętli grzewczych wcale. Ogrzewanie w tych strefach prowadzi do psucia się żywności, przegrzewania agregatów i wysychania frontów. Standard inżynierski nakazuje odsunięcie rur o 40-60 cm od krawędzi ścian."
        }
      },
      {
        "@type": "Question",
        "name": "Jaka jest maksymalna długość jednej pętli grzewczej dla rury o średnicy 16 mm?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nieprzekraczalną granicą dla standardowej rury 16x2 mm jest 100 metrów bieżących (wliczając odcinki dobiegowe do rozdzielacza). Dłuższe pętle generują potężne opory hydrauliczne, woda pod koniec obiegu jest wyziębiona, a pompa obiegowa ulega przeciążeniu."
        }
      },
      {
        "@type": "Question",
        "name": "Czy gęstszy rozstaw rur pozwala na szybsze nagrzanie wyziębionego domu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie. Dynamika nagrzewania zależy od masy akumulacyjnej (bezwładności) jastrychu betonowego, a nie od ilości rury. Gęstszy układ (np. 10 cm) pozwala natomiast drastycznie obniżyć temperaturę zasilania (do ok. 30 stopni), co maksymalizuje oszczędności z pracy pompy ciepła."
        }
      },
      {
        "@type": "Question",
        "name": "Jak gęsto układać rury ogrzewania podłogowego w systemie suchym (bez wylewki)?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Z uwagi na brak wylewki, system suchy wymaga gęstszego ułożenia oraz blach transmisyjnych (lameli). Płyty styropianowe mają zazwyczaj rowki rozmieszczone co 12,5 cm lub 15 cm. Aluminium przejmuje funkcję radiatora, zapewniając niemal natychmiastową reakcję cieplną."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#dataset",
    "name": "Normy i ograniczenia projektowe ogrzewania płaszczyznowego",
    "description": "Zestawienie kluczowych parametrów i limitów inżynierskich przy projektowaniu wodnego ogrzewania podłogowego (długości pętli, strefy brzegowe, zabudowa).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "rozstaw rur podłogówki",
      "długość pętli grzewczej",
      "ogrzewanie podłogowe pod meblami",
      "rotametry rozdzielacza",
      "system suchy podłogówki"
    ],
    "measurementTechnique": "Wytyczne projektowe wyznaczone na podstawie PN-EN 1264 oraz charakterystyk oporów hydraulicznych pomp obiegowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Maksymalna długość pętli PEX 16x2: 100 mb.",
        "Strefa martwa przy stałej zabudowie kuchennej: 40-60 cm.",
        "Zalecany rozstaw strefowy: łazienki 10 cm, salony 15 cm."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#webapp",
    "name": "Interaktywne FAQ: Rozstaw rur podłogówki",
    "description": "Edukacyjna aplikacja webowa wykorzystująca animacje wektorowe SVG do wizualizacji zjawisk hydraulicznych, stref martwych oraz rozdzielaczy instalacyjnych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5 for interactive accordion and SVG animation rendering.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA FAQ
=========================================== -->
<div class="rk-faq-container" id="rk-faq-rozstaw">
    <div class="rk-faq-header">
        <div class="rk-faq-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Baza Wiedzy Inwestora
        </div>
        <h2 class="rk-faq-title">Najczęściej zadawane pytania <span>o rozstaw rur</span></h2>
    </div>

    <div class="rk-faq-interactive">
        <div class="rk-faq-list">
            
            <!-- Pytanie 1 -->
            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>1. Czy można mieszać różne rozstawy rur w obrębie jednego domu lub rozdzielacza?</span>
                    <div class="rk-faq-icon"><svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Tak, i co więcej – to <strong>absolutny fundament poprawnego projektowania</strong>. Łazienki naturalnie wymagają zagęszczenia do 10 cm, salon najczęściej 15 cm, a sypialnie 20 cm. Powstałe w ten sposób różnice w oporach hydraulicznych i długościach rur bilansuje się precyzyjnie poprzez <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/" class="rk-link">nastawy rotametrów na rozdzielaczu</a>. Dzięki temu woda "wie", gdzie ma płynąć szybciej, a system działa stabilnie w całym domu.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="20" y="45" width="60" height="15" fill="#334155" rx="3"/>
                                    <!-- Rotametr 1 -->
                                    <rect x="30" y="15" width="8" height="30" fill="#475569" rx="4"/>
                                    <rect class="anim-rota-1" x="30" y="15" width="8" height="15" fill="#ef4444" rx="4"/>
                                    <!-- Rotametr 2 -->
                                    <rect x="46" y="15" width="8" height="30" fill="#475569" rx="4"/>
                                    <rect class="anim-rota-2" x="46" y="15" width="8" height="25" fill="#10b981" rx="4"/>
                                    <!-- Rotametr 3 -->
                                    <rect x="62" y="15" width="8" height="30" fill="#475569" rx="4"/>
                                    <rect class="anim-rota-3" x="62" y="15" width="8" height="10" fill="#3b82f6" rx="4"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Pytanie 2 -->
            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>2. Jaki rozstaw rur zastosować pod meblami kuchennymi i lodówką?</span>
                    <div class="rk-faq-icon"><svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Pod stałą ciężką zabudową (zwłaszcza pod lodówką i zamrażarką) <strong>nie układamy rur grzewczych wcale</strong>. Zastosowanie tam ogrzewania to marnowanie energii, które skutkuje psuciem się żywności w dolnych szafkach, rozklejaniem frontów meblowych oraz drastycznym obciążeniem kompresora lodówki. Inżynierski standard nakazuje <a href="https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/" class="rk-link">odsunięcie rur o 40-60 cm</a> od ściany z planowaną zabudową.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <path d="M 20 50 Q 50 30 80 50" fill="none" stroke="#ef4444" stroke-width="4" stroke-linecap="round"/>
                                    <path d="M 20 60 Q 50 40 80 60" fill="none" stroke="#ef4444" stroke-width="4" stroke-linecap="round"/>
                                    <g class="anim-frost" transform-origin="50 35">
                                        <line x1="50" y1="20" x2="50" y2="50" stroke="#93c5fd" stroke-width="3"/>
                                        <line x1="35" y1="35" x2="65" y2="35" stroke="#93c5fd" stroke-width="3"/>
                                        <line x1="40" y1="25" x2="60" y2="45" stroke="#93c5fd" stroke-width="3"/>
                                        <line x1="40" y1="45" x2="60" y2="25" stroke="#93c5fd" stroke-width="3"/>
                                    </g>
                                    <line class="anim-cross" x1="30" y1="20" x2="70" y2="60" stroke="#dc2626" stroke-width="6" stroke-linecap="round"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Pytanie 3 -->
            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>3. Jaka jest maksymalna długość jednej pętli grzewczej dla rury Ø 16 mm?</span>
                    <div class="rk-faq-icon"><svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Nieprzekraczalną granicą dla popularnej rury PEX/PERT 16x2 mm jest <strong>dokładnie 100 metrów bieżących</strong> (wliczając w to odcinek "ślepy" idący od rozdzielacza do pomieszczenia). Zignorowanie tego limitu i <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/" class="rk-link">ułożenie zbyt długiej pętli</a> generuje gigantyczne opory hydrauliczne. Woda na końcu staje się zimna, pompa obiegowa ulega przeciążeniu, a podłoga nie grzeje równomiernie.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <path class="anim-loop-draw" d="M 10 35 L 70 35 Q 85 35 85 20 Q 85 10 70 10 L 10 10" fill="none" stroke="#3b82f6" stroke-width="4" stroke-linecap="round"/>
                                    <g class="anim-alert" transform-origin="75 35">
                                        <circle cx="75" cy="35" r="14" fill="#ef4444"/>
                                        <text x="75" y="40" font-size="12" font-weight="bold" fill="white" text-anchor="middle">100m</text>
                                    </g>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Pytanie 4 -->
            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>4. Czy gęstszy rozstaw rur pozwala na szybsze nagrzanie wyziębionego domu?</span>
                    <div class="rk-faq-icon"><svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                <strong>Nie, to szkodliwy instalatorski mit.</strong> Dynamika nagrzewania układu nie zależy od ilości metrów rury, ale od gigantycznej masy akumulacyjnej jastrychu (betonu). <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/" class="rk-link">Bezwładność cieplna</a> sprawia, że płyta i tak potrzebuje wielu godzin na załadowanie energią. Gęstszy układ (np. 10 cm zamiast 15 cm) służy wyłącznie temu, aby móc pracować na bardzo niskiej temperaturze zasilania (np. 30°C) i oszczędzać prąd na pompie ciepła.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="20" y="45" width="60" height="20" fill="#475569" rx="2"/>
                                    <circle cx="35" cy="55" r="5" fill="#ef4444"/>
                                    <circle cx="65" cy="55" r="5" fill="#ef4444"/>
                                    <path class="anim-heat-wave" d="M 30 40 C 30 20 40 20 40 10 M 60 40 C 60 20 70 20 70 10" fill="none" stroke="#fbbf24" stroke-width="3" stroke-linecap="round"/>
                                    <path d="M 85 60 L 85 20" stroke="#cbd5e1" stroke-width="4" stroke-linecap="round"/>
                                    <circle cx="85" cy="62" r="6" fill="#ef4444"/>
                                    <line x1="85" y1="60" x2="85" y2="40" stroke="#ef4444" stroke-width="2" stroke-linecap="round"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Pytanie 5 -->
            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>5. Jak gęsto układać rury podłogówki w systemie suchym (bez wylewki)?</span>
                    <div class="rk-faq-icon"><svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Brak mokrego betonu zmienia fizykę wymiany ciepła. W <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/" class="rk-link">systemie suchym ogrzewania</a> płyty styropianowe z rowkami posiadają gęstszy rozstaw fabryczny – zazwyczaj 12,5 cm lub 15 cm. Ponadto rura otulona jest aluminiowymi blachami transmisyjnymi (lamelami). To aluminium przejmuje na siebie rolę radiatora i błyskawicznie przekazuje energię cieplną bezpośrednio na okładzinę, np. na panele.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="20" y="25" width="60" height="20" fill="#e2e8f0" rx="2" stroke="#94a3b8" stroke-width="2"/>
                                    <path d="M 30 35 L 70 35" stroke="#ef4444" stroke-width="6" stroke-linecap="round"/>
                                    <rect class="anim-shine" x="20" y="25" width="15" height="20" fill="#ffffff" transform="skewX(-20)"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domeny
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-faq-rozstaw').innerHTML = `
            <div style="padding:40px; text-align:center; background:#0f172a; border-radius:20px; font-family:sans-serif; margin: 40px auto; max-width: 800px; border: 2px solid #ef4444;">
                <div style="font-size: 40px; margin-bottom: 15px;">🛑</div>
                <div style="color:#ef4444; font-size:20px; font-weight:900; margin-bottom: 10px; text-transform:uppercase;">Naruszenie Licencji i Praw Autorskich</div>
                <div style="color:#cbd5e1; font-size:15px; max-width:550px; margin:0 auto; line-height:1.6;">Struktura danych JSON-LD oraz interaktywny moduł FAQ są własnością intelektualną serwisu Projekt-Ogrzewania.pl. Wykryto próbę kradzieży technologii.</div>
            </div>
        `;
        return;
    }

    // 2. Logika Akordeonu
    const faqItems = document.querySelectorAll('#rk-faq-rozstaw .rk-faq-item');

    faqItems.forEach(item => {
        const btn = item.querySelector('.rk-faq-question');
        btn.addEventListener('click', () => {
            const isActive = item.classList.contains('active');
            
            // Zwijamy wszystkie
            faqItems.forEach(i => i.classList.remove('active'));
            
            // Otwieramy kliknięty jeśli nie był otwarty
            if (!isActive) {
                item.classList.add('active');
            }
        });
    });
    
    // Otwarcie pierwszego elementu po załadowaniu
    if(faqItems.length > 0) {
        faqItems[0].classList.add('active');
    }
});
</script>



<style>
:root {
    --rk-end-dark: #111827;
    --rk-end-blue: #2563eb;
    --rk-end-blue-hover: #1d4ed8;
    --rk-end-light: #f8fafc;
    --rk-end-green: #059669;
    --rk-end-green-bg: #d1fae5;
    --rk-end-red: #dc2626;
    --rk-end-red-bg: #fee2e2;
    --rk-end-text: #334155;
    --rk-end-border: #e2e8f0;
    --rk-end-shadow: 0 10px 30px -10px rgba(37, 99, 235, 0.15);
}

.rk-end-wrapper {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: var(--rk-end-shadow);
    border: 1px solid var(--rk-end-border);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-end-header {
    background: linear-gradient(145deg, var(--rk-end-dark) 0%, #1e293b 100%);
    padding: 50px 40px;
    color: #ffffff;
    text-align: center;
    position: relative;
}

.rk-end-header::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: radial-gradient(circle at 50% 0%, rgba(37, 99, 235, 0.2) 0%, transparent 70%);
    pointer-events: none;
}

.rk-end-title {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 20px 0;
    line-height: 1.2;
    letter-spacing: -0.5px;
    position: relative;
    z-index: 2;
}

.rk-end-lead {
    font-size: 18px;
    line-height: 1.6;
    color: #cbd5e1;
    max-width: 750px;
    margin: 0 auto;
    position: relative;
    z-index: 2;
    font-weight: 400;
}

.rk-end-lead strong {
    color: #60a5fa;
    font-weight: 700;
}

/* Interaktywny Moduł - Symulator */
.rk-end-interactive {
    padding: 40px;
    background: var(--rk-end-light);
    border-bottom: 1px solid var(--rk-end-border);
}

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

/* Toggle Switch */
.rk-toggle-container {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    margin-bottom: 40px;
    background: #ffffff;
    padding: 15px 30px;
    border-radius: 99px;
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    border: 1px solid var(--rk-end-border);
}

.rk-toggle-label {
    font-size: 16px;
    font-weight: 700;
    color: #64748b;
    transition: color 0.3s ease;
    cursor: pointer;
}

.rk-toggle-label.active-pro { color: var(--rk-end-green); }
.rk-toggle-label.active-amateur { color: var(--rk-end-red); }

.rk-switch {
    position: relative;
    display: inline-block;
    width: 70px;
    height: 36px;
}

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

.rk-slider {
    position: absolute;
    cursor: pointer;
    top: 0; left: 0; right: 0; bottom: 0;
    background-color: var(--rk-end-green);
    transition: .4s cubic-bezier(0.4, 0.0, 0.2, 1);
    border-radius: 36px;
}

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

input:checked + .rk-slider { background-color: var(--rk-end-red); }
input:checked + .rk-slider:before { transform: translateX(34px); }

/* Obszar Wyników */
.rk-sim-dashboard {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: stretch;
}

.rk-sim-card {
    background: #ffffff;
    border-radius: 20px;
    padding: 30px;
    border: 2px solid transparent;
    transition: all 0.4s ease;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* Moduł SEO (Wiedza w pigułce) zastępujący SVG */
.rk-seo-box {
    background: #f8fafc;
    border-radius: 12px;
    padding: 20px;
    border: 1px dashed var(--rk-end-border);
}

.rk-seo-box h5 {
    margin: 0 0 10px 0;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-end-dark);
    text-transform: uppercase;
}

.rk-seo-box ul {
    margin: 0;
    padding-left: 20px;
    color: var(--rk-end-text);
    font-size: 14px;
    line-height: 1.6;
}

.rk-seo-box ul li { margin-bottom: 8px; }
.rk-seo-box ul li:last-child { margin-bottom: 0; }

/* Dynamiczne Boxy */
.stat-box {
    padding: 15px;
    border-radius: 12px;
    margin-bottom: 15px;
    font-size: 15px;
    line-height: 1.5;
    font-weight: 500;
}

.rk-sim-content h4 {
    font-size: 20px;
    font-weight: 800;
    margin: 0 0 15px 0;
}

/* CTA Footer */
.rk-end-footer {
    padding: 40px;
    background: #ffffff;
    text-align: center;
}

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

.rk-btn-final:hover {
    transform: translateY(-3px);
    background: var(--rk-end-blue-hover);
    box-shadow: 0 15px 25px -5px rgba(37, 99, 235, 0.5);
}

.rk-btn-final svg { transition: transform 0.3s; }
.rk-btn-final:hover svg { transform: translateX(6px); }

@media (max-width: 768px) {
    .rk-sim-dashboard { grid-template-columns: 1fr; }
    .rk-end-header, .rk-end-interactive, .rk-end-footer { padding: 30px 20px; }
    .rk-end-title { font-size: 26px; }
    .rk-toggle-container { width: 100%; flex-direction: column; gap: 15px; text-align: center; }
    .rk-btn-final { width: 100%; font-size: 16px; padding: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/"
    },
    "headline": "Podsumowanie inżynierskie: Ogrzewanie podłogowe to inwestycja na 50 lat",
    "description": "Rozstaw rur to pochodna matematycznego bilansu strat ciepła. Zobacz symulację kosztów: profesjonalny projekt OZC vs instalacja bez wyliczeń hydraulicznych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.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-21",
    "dateModified": "2026-05-21"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#dataset",
    "name": "Porównanie efektywności: Projekt OZC vs Montaż Intuicyjny",
    "description": "Zestawienie techniczno-finansowe obrazujące wpływ poprawnie dobranego rozstawu rur na żywotność i efektywność pompy ciepła w perspektywie 50 lat.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt OZC podłogówki",
      "rozstaw rur a pompa ciepła",
      "bilans hydrauliczny ogrzewania",
      "żywotność ogrzewania podłogowego",
      "koszty eksploatacji pompy ciepła"
    ],
    "measurementTechnique": "Obliczenia inżynierskie na podstawie PN-EN 12831 oraz danych z rotametrów dla symulacji długoterminowej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Projekt OZC: Idealne dopasowanie przepływów, praca na niskim parametrze zasilania, wysoki współczynnik COP.",
        "Brak projektu (Na oko): Zjawisko zebry termicznej, dławienie pompy obiegowej, przewymiarowanie kosztów inwestycyjnych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#webapp",
    "name": "Symulator Inwestycyjny Ogrzewania Podłogowego",
    "description": "Interaktywny panel demonstrujący różnice termiczne i hydrauliczne pomiędzy instalacją z certyfikowanym projektem a wykonawstwem z pamięci.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5 styling execution",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-end-wrapper" id="podsumowanie-app">
    <div class="rk-end-header">
        <h2 class="rk-end-title">Podsumowanie inżynierskie: Inwestycja na 50 lat</h2>
        <p class="rk-end-lead">
            Po zalaniu rur jastrychem, naprawa jakichkolwiek błędów wiąże się z katastrofalnym remontem i kuciem całego domu. Zapomnij o uniwersalnych radach pseudofachowców, którzy twierdzą, że rozstaw <strong>"co 15 cm wszędzie będzie pan zadowolony"</strong>.
        </p>
    </div>

    <div class="rk-end-interactive">
        <h3 class="rk-end-h3">Zrób symulację: Co determinuje rozstaw rur?</h3>
        
        <div class="rk-toggle-container">
            <span class="rk-toggle-label active-pro" id="lblPro" onclick="document.getElementById('simToggle').click()">Projekt Inżynierski (OZC)</span>
            <label class="rk-switch">
                <input type="checkbox" id="simToggle">
                <span class="rk-slider"></span>
            </label>
            <span class="rk-toggle-label" id="lblAmateur" onclick="document.getElementById('simToggle').click()">Instalacja "Na oko"</span>
        </div>

        <div class="rk-sim-dashboard">
            <div class="rk-sim-card" id="cardVisual">
                <div id="contentProSEO" style="display:block;">
                    <div class="rk-seo-box" style="border-color: #10b981; background: #f0fdf4;">
                        <h5 style="color: #047857;">Najczęstsze pytania z naszej <a href="https://www.facebook.com/groups/forumogrzewaniapodlogowego/" target="_blank" rel="nofollow noopener noreferrer">grupy na Facebooku</a>:</h5>
                        <ul style="color: #064e3b;">
                            <li>Jak projekt OZC zapobiega przegrzewaniu posadzki?</li>
                            <li>Zbalansowanie rotametrów dla pomp ciepła</li>
                            <li>Wpływ rozstawu 10cm na sprawność sezonową (SCOP)</li>
                            <li>Wylewka anhydrytowa a transfer ciepła w salonie</li>
                        </ul>
                    </div>
                </div>

                <div id="contentAmateurSEO" style="display:none;">
                    <div class="rk-seo-box" style="border-color: #ef4444; background: #fff5f5;">
                        <h5 style="color: #b91c1c;">Wyszukiwania dla błędów i awarii:</h5>
                        <ul style="color: #7f1d1d;">
                            <li>Dlaczego podłogówka nie grzeje na końcach obwodów?</li>
                            <li>Efekt zebry termicznej – jak naprawić chłodne pasy?</li>
                            <li>Przeciążona pompa obiegowa w podłogówce</li>
                            <li>Za długa pętla grzewcza powyżej 100 metrów</li>
                        </ul>
                    </div>
                </div>
            </div>

            <div class="rk-sim-card" id="cardData">
                <div class="rk-sim-content" id="contentPro">
                    <h4 style="color: var(--rk-end-green);">Matematyczny bilans = Oszczędność</h4>
                    <div class="stat-box" style="background: var(--rk-end-green-bg); color: #064e3b; border-left: 4px solid var(--rk-end-green);">
                        Rozstaw rur to bezpośrednia pochodna <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" style="color: #064e3b; font-weight:700; text-decoration:underline;">obliczeń strat ciepła (OZC)</a>, rodzaju wybranej posadzki oraz parametrów pompy ciepła.
                    </div>
                    <div class="stat-box" style="background: #f1f5f9; color: #334155;">
                        <strong>Zysk inżynierski:</strong> Zyskujesz pewność idealnych przepływów hydraulicznych, najwyższy możliwy współczynnik COP pompy ciepła oraz drastyczny spadek rachunków za prąd.
                    </div>
                </div>

                <div class="rk-sim-content" id="contentAmateur" style="display:none;">
                    <h4 style="color: var(--rk-end-red);">Ruletka na placu budowy</h4>
                    <div class="stat-box" style="background: var(--rk-end-red-bg); color: #7f1d1d; border-left: 4px solid var(--rk-end-red);">
                        Układanie "na oko" (np. wszędzie 10 cm) generuje zbędne <a href="https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/" style="color: #7f1d1d; font-weight:700; text-decoration:underline;">koszty inwestycyjne rzędu tysięcy złotych</a> i drastycznie dławi pompę obiegową.
                    </div>
                    <div class="stat-box" style="background: #f1f5f9; color: #334155;">
                        <strong>Skutki błędów:</strong> Zbyt rzadki rozstaw to niedogrzany dom i "zebra termiczna". Zbyt gęsty - przeciążenie hydrauliki. W obu przypadkach płacisz podwójnie.
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-end-footer">
        <p style="font-size: 16px; color: #64748b; margin: 0 0 25px 0; max-width: 650px; margin-left: auto; margin-right: auto; line-height: 1.6;">
            Zamiast ryzykować, zainwestuj ułamek budżetu w profesjonalny, <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/" style="color: var(--rk-end-blue); font-weight: 700; text-decoration: none;">indywidualny projekt instalacji grzewczej</a>. Tylko tak zyskasz pewność, że Twój dom będzie ciepły i bezawaryjny.
        </p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-final">
            PRZEJDŹ DO BAZY WIEDZY I CZYTAJ WIĘCEJ
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const app = document.getElementById('podsumowanie-app');
        if (app) {
            app.innerHTML = `
                <div style="padding:45px; text-align:center; background:#0f172a; border-radius:24px; border:2px solid #ef4444; color:#fff; font-family:sans-serif; margin:40px auto; max-width:800px;">
                    <div style="font-size:45px; margin-bottom:15px;">🛑</div>
                    <div style="color:#ef4444; font-size:20px; font-weight:900; text-transform:uppercase; margin-bottom:10px;">Wykryto Naruszenie Własności Intelektualnej</div>
                    <div style="color:#cbd5e1; font-size:14px; line-height:1.6;">Interaktywny kontener inżynierski oraz powiązana struktura bazodanowa JSON-LD stanowią własność intelektualną chronioną prawem dla serwisu Projekt-Ogrzewania.pl. Wykryto użycie kodu na nieautoryzowanej domenie.</div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Toggle Switch
    const toggle = document.getElementById('simToggle');
    const lblPro = document.getElementById('lblPro');
    const lblAmateur = document.getElementById('lblAmateur');
    
    // Treść SEO
    const contentProSEO = document.getElementById('contentProSEO');
    const contentAmateurSEO = document.getElementById('contentAmateurSEO');
    
    // Wyniki
    const contentPro = document.getElementById('contentPro');
    const contentAmateur = document.getElementById('contentAmateur');
    
    // Karty (Stylizowanie obramowania)
    const cardVisual = document.getElementById('cardVisual');
    const cardData = document.getElementById('cardData');

    toggle.addEventListener('change', function() {
        if (this.checked) {
            // Stan: Amator
            lblPro.classList.remove('active-pro');
            lblAmateur.classList.add('active-amateur');
            
            contentProSEO.style.display = 'none';
            contentAmateurSEO.style.display = 'block';
            
            contentPro.style.display = 'none';
            contentAmateur.style.display = 'block';
            
            cardVisual.style.borderColor = 'var(--rk-end-red)';
            cardVisual.style.background = '#fff5f5';
            cardData.style.borderColor = 'var(--rk-end-red)';
            
        } else {
            // Stan: Pro Inżynier
            lblAmateur.classList.remove('active-amateur');
            lblPro.classList.add('active-pro');
            
            contentAmateurSEO.style.display = 'none';
            contentProSEO.style.display = 'block';
            
            contentAmateur.style.display = 'none';
            contentPro.style.display = 'block';
            
            cardVisual.style.borderColor = 'var(--rk-end-green)';
            cardVisual.style.background = '#f0fdf4';
            cardData.style.borderColor = 'var(--rk-end-green)';
        }
    });

    // Inicjalizacja wizualna
    cardVisual.style.borderColor = 'var(--rk-end-green)';
    cardVisual.style.background = '#f0fdf4';
    cardData.style.borderColor = 'var(--rk-end-green)';
});
</script>



<style>
:root {
    --rk-dl2-dark: #0f172a;
    --rk-dl2-darker: #020617;
    --rk-dl2-brand: #0891b2; /* Technologiczny Cyjan */
    --rk-dl2-brand-dark: #0e7490;
    --rk-dl2-brand-light: #cffafe;
    --rk-dl2-bg: #f8fafc;
    --rk-dl2-panel: #ffffff;
    --rk-dl2-border: #e2e8f0;
    --rk-dl2-text: #334155;
    --rk-dl2-muted: #64748b;
}

.rk-dl2-wrapper {
    max-width: 950px;
    margin: 60px auto;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: var(--rk-dl2-panel);
    border-radius: 24px;
    border: 1px solid var(--rk-dl2-border);
    box-shadow: 0 25px 50px -12px rgba(8, 145, 178, 0.15);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-dl2-header {
    background: linear-gradient(135deg, var(--rk-dl2-darker) 0%, #164e63 100%);
    padding: 45px 50px;
    color: #ffffff;
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    border-bottom: 4px solid var(--rk-dl2-brand);
}

.rk-dl2-header::before {
    content: '';
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    background: radial-gradient(circle at 80% 50%, rgba(8, 145, 178, 0.25) 0%, transparent 60%);
    pointer-events: none;
}

.rk-dl2-header-content {
    position: relative;
    z-index: 2;
    max-width: 65%;
}

.rk-dl2-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(8, 145, 178, 0.2);
    border: 1px solid rgba(8, 145, 178, 0.3);
    color: #67e8f9;
    padding: 6px 16px;
    border-radius: 50px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.rk-dl2-title {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 12px 0;
    letter-spacing: -0.5px;
    line-height: 1.2;
}

.rk-dl2-lead {
    font-size: 15px;
    color: #cbd5e1;
    margin: 0;
    line-height: 1.6;
}

/* Pływająca Ikona PDF */
.rk-dl2-visual-icon {
    position: relative;
    z-index: 2;
    background: rgba(255,255,255,0.05);
    padding: 20px;
    border-radius: 24px;
    border: 1px solid rgba(255,255,255,0.1);
    backdrop-filter: blur(10px);
}

.rk-pdf-svg {
    width: 75px;
    height: auto;
    filter: drop-shadow(0 10px 15px rgba(0,0,0,0.4));
    animation: floatPdf 3s infinite ease-in-out alternate;
}

@keyframes floatPdf {
    0% { transform: translateY(0) rotate(0deg); }
    100% { transform: translateY(-8px) rotate(2deg); }
}

/* Główny obszar roboczy */
.rk-dl2-workspace {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 40px;
    padding: 40px 50px;
    background: var(--rk-dl2-panel);
}

/* Podgląd pliku */
.rk-dl2-preview {
    background: var(--rk-dl2-bg);
    border: 1px solid var(--rk-dl2-border);
    border-radius: 16px;
    padding: 15px;
    position: relative;
    cursor: zoom-in;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.4s ease;
}

.rk-dl2-preview:hover {
    transform: translateY(-5px) scale(1.02);
    box-shadow: 0 20px 30px -10px rgba(8, 145, 178, 0.2);
    border-color: #67e8f9;
}

.rk-dl2-img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    display: block;
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

.rk-preview-overlay {
    position: absolute;
    bottom: 25px;
    right: 25px;
    background: rgba(2, 6, 23, 0.75);
    color: #ffffff;
    padding: 8px 14px;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 700;
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    gap: 6px;
    border: 1px solid rgba(255,255,255,0.1);
}

/* Prawa kolumna (Informacje i SEO) */
.rk-dl2-info {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

.rk-feature-list {
    list-style: none;
    padding: 0;
    margin: 0 0 35px 0;
}

.rk-feature-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
    font-size: 15px;
    font-weight: 600;
    color: var(--rk-dl2-text);
    line-height: 1.5;
}

.rk-feature-item:last-child { margin-bottom: 0; }

.rk-check-icon {
    width: 22px;
    height: 22px;
    color: var(--rk-dl2-brand);
    flex-shrink: 0;
    margin-top: 1px;
}

/* Przycisk Pobierania */
.rk-dl2-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-dl2-brand);
    color: #ffffff;
    text-decoration: none !important;
    padding: 18px 35px;
    border-radius: 14px;
    font-weight: 800;
    font-size: 16px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 10px 20px -5px rgba(8, 145, 178, 0.4);
    border: 2px solid transparent;
}

.rk-dl2-btn:hover {
    background: var(--rk-dl2-brand-dark);
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(8, 145, 178, 0.5);
    border-color: #67e8f9;
}

.rk-dl2-btn svg { transition: transform 0.3s; }
.rk-dl2-btn:hover svg { transform: translateY(3px); }

/* Stopka */
.rk-dl2-footer {
    padding: 20px 50px;
    background: var(--rk-dl2-bg);
    border-top: 1px solid var(--rk-dl2-border);
    font-size: 13px;
    color: var(--rk-dl2-muted);
    text-align: center;
    line-height: 1.6;
}

.rk-dl2-footer a {
    color: var(--rk-dl2-brand-dark);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dotted var(--rk-dl2-brand-dark);
    transition: 0.3s;
}

.rk-dl2-footer a:hover {
    color: var(--rk-dl2-brand);
    border-bottom-style: solid;
}

/* Responsywność */
@media (max-width: 850px) {
    .rk-dl2-header { flex-direction: column; text-align: center; padding: 35px 25px; gap: 30px; }
    .rk-dl2-header-content { max-width: 100%; }
    .rk-dl2-workspace { grid-template-columns: 1fr; padding: 35px 25px; gap: 30px; }
    .rk-dl2-footer { padding: 20px 25px; }
    .rk-dl2-btn { width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#download-hub",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/"
    },
    "headline": "Kompendium Wiedzy: Jak gęsto rozkładać podłogówkę? (Infografika PDF)",
    "description": "Pobierz darmową infografikę inżynierską w formacie PDF. Znajdziesz w niej parametry rozstawu rur dla pomp ciepła oraz błędy do uniknięcia na budowie.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Jak-gesto-rozkladac-podlogowke.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-23",
    "dateModified": "2026-05-23"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#dataset-infografika",
    "name": "Zestawienie wytycznych: Rozstaw rur ogrzewania podłogowego",
    "description": "Baza danych określająca optymalne natężenie układania rur (10, 15, 20 cm) w zależności od źródła ciepła oraz wymogów dla stref brzegowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jak gęsto rozkładać podłogówkę pdf",
      "schemat układania podłogówki",
      "rozstaw rur pex pompa ciepła",
      "tabela rozstawu rur ogrzewania podłogowego",
      "strefa brzegowa podłogówka"
    ],
    "measurementTechnique": "Zestawienie analityczne w oparciu o normy PN-EN 1264 oraz charakterystykę oporów cieplnych posadzek drewnianych i ceramicznych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zależność rozstawu rur (10-20 cm) od temperatury zasilania.",
        "Wymogi zagęszczania pętli pod dużymi oknami HS (strefy brzegowe).",
        "Kompensacja oporów cieplnych (R=0.12 m²K/W) dla deski barlineckiej."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/#dl-app",
    "name": "Centrum Pobierania Wiedzy: Rozstaw Rur PEX",
    "description": "Interaktywny moduł umożliwiający wizualizację i natychmiastowe pobranie dokumentacji technicznej w wysokiej rozdzielczości.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5 compatibility",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl2-wrapper" id="rk-pdf-download-hub">
    
    <div class="rk-dl2-header">
        <div class="rk-dl2-header-content">
            <div class="rk-dl2-badge">
                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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>
                Darmowe Materiały Inżynierskie
            </div>
            <h2 class="rk-dl2-title">Pobierz Ściągawkę Projektową</h2>
            <p class="rk-dl2-lead">Miej najważniejsze zasady zawsze pod ręką. Zapisz kompendium na smartfonie i skonsultuj je ze swoim wykonawcą przed wylaniem posadzek.</p>
        </div>
        <div class="rk-dl2-visual-icon">
            <svg class="rk-pdf-svg" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path d="M14 2H6C4.89543 2 4 2.89543 4 4V20C4 21.1046 4.89543 22 6 22H18C19.1046 22 20 21.1046 20 20V8L14 2Z" fill="#ef4444" stroke="#ffffff" stroke-width="1.5" stroke-linejoin="round"/>
                <path d="M14 2V8H20" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
                <text x="7" y="18" fill="white" font-size="5.5" font-weight="900" font-family="sans-serif">PDF</text>
            </svg>
        </div>
    </div>

    <div class="rk-dl2-workspace">
        
        <div class="rk-dl2-preview" onclick="window.open('https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Jak-gesto-rozkladac-podlogowke.webp', '_blank')">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Jak-gesto-rozkladac-podlogowke.webp" alt="Infografika: Jak gęsto rozkładać ogrzewanie podłogowe - zasady i błędy" class="rk-dl2-img" loading="lazy">
            <div class="rk-preview-overlay">
                <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="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                Powiększ
            </div>
        </div>

        <div class="rk-dl2-info">
            <h3 class="rk-dl2-h3">Co znajdziesz w dokumencie?</h3>
            <ul class="rk-feature-list">
                <li class="rk-feature-item">
                    <svg class="rk-check-icon" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Zestawienie oporów cieplnych i rozstawów rur dedykowanych pod deski warstwowe i parkiety.
                </li>
                <li class="rk-feature-item">
                    <svg class="rk-check-icon" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Zasady wymiarowania stref brzegowych przy dużych przeszkleniach typu HS.
                </li>
                <li class="rk-feature-item">
                    <svg class="rk-check-icon" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Tabelę bezpiecznych, granicznych długości pętli grzewczych dla rur PEX 16 mm.
                </li>
                <li class="rk-feature-item">
                    <svg class="rk-check-icon" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Wysokiej jakości grafiki, czytelne bezpośrednio na ekranie smartfona.
                </li>
            </ul>

            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Jak-gesto-rozkladac-podlogowke.pdf" class="rk-dl2-btn" target="_blank">
                POBIERZ INFOGRAFIKĘ (PDF)
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
            </a>
        </div>

    </div>

    <div class="rk-dl2-footer">
        Potrzebujesz dokładnych wyliczeń dla konkretnych pomieszczeń? 
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Skorzystaj z pomocy eksperta i zamów projekt wykonawczy OZC.</a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie Domenowe - DOMAIN LOCK
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(domain)) {
        const container = document.getElementById('rk-pdf-download-hub');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 10px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 800; color: #ef4444; text-transform: uppercase;">Zasoby Chronione</div>
                    <p style="color: #cbd5e1; font-size: 14px; line-height: 1.5; max-width: 500px; margin: 10px auto 0;">
                        Infografika oraz interfejs udostępniania są wyłączną własnością Projekt-Ogrzewania.pl. Hotlinking i kradzież kodu są zabronione.
                    </p>
                </div>
            `;
        }
    }
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/">Jak gęsto rozkładać podłogówkę?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Rozstaw rur ogrzewania podłogowego przy pompie ciepła.</title>
		<link>https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/</link>
					<comments>https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 22 Dec 2024 11:02:08 +0000</pubDate>
				<category><![CDATA[Ekologiczne ogrzewanie]]></category>
		<category><![CDATA[Energooszczędne budownictwo]]></category>
		<category><![CDATA[Niskotemperaturowe systemy grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Oszczędzanie energii]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Projekty grzewcze]]></category>
		<category><![CDATA[Rozstaw rur ogrzewania]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[izolacja budynku]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[niskotemperaturowe ogrzewanie]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędne ogrzewanie]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[rozstaw rur]]></category>
		<category><![CDATA[system grzewczy]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=1823</guid>

					<description><![CDATA[<p>Ogrzewanie domu za pomocą pompy ciepła to oszczędne i ekologiczne rozwiązanie. Kluczem do efektywności systemu jest odpowiednio zaprojektowany rozstaw rur ogrzewania podłogowego przy pompie ciepła oraz utrzymanie niskiej temperatury zasilania na poziomie 35 stopni Celsjusza. Dowiedz się, jak optymalnie zaplanować układ grzewczy, zadbać o izolację budynku oraz jakich zasad przestrzegać, aby pompa ciepła pracowała wydajnie i ekonomicznie przez długie lata.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">Rozstaw rur ogrzewania podłogowego przy pompie ciepła.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Instalacja ogrzewania podłogowego w połączeniu z pompą ciepła staje się coraz bardziej popularnym wyborem w polskich domach. Aby zapewnić optymalne działanie takiego systemu, kluczowe znaczenie ma prawidłowy <strong>rozstaw rur ogrzewania podłogowego przy pompie ciepła</strong>. W tym artykule dowiesz się, jakie rozstawy rur są zalecane przy wykorzystaniu pompy ciepła, jakie czynniki wpływają na ich wybór oraz dlaczego warto skorzystać z profesjonalnego projektu.</p>



<h2 class="wp-block-heading">Dlaczego rozstaw rur przy pompie ciepła jest tak ważny?</h2>



<p class="wp-block-paragraph">Rozstaw rur ogrzewania podłogowego wpływa bezpośrednio na efektywność systemu grzewczego oraz komfort cieplny w pomieszczeniach. W przypadku pompy ciepła, która pracuje najefektywniej przy niskiej temperaturze zasilania (około 35 stopni Celsjusza), prawidłowy rozstaw rur pozwala na:</p>



<ul class="wp-block-list">
<li><strong>Równomierne rozprowadzanie ciepła na całej powierzchni podłogi.</strong> Zbyt duży rozstaw rur może prowadzić do powstawania tzw. &#8222;zimnych stref&#8221; na podłodze, co negatywnie wpływa na komfort użytkowników. Odpowiednio dobrany rozstaw zapewnia jednolite rozprowadzanie ciepła, szczególnie w pomieszczeniach o dużej powierzchni lub w strefach intensywnie użytkowanych.</li>



<li><strong>Zminimalizowanie strat ciepła.</strong> Właściwe rozmieszczenie rur pozwala ograniczyć straty energii cieplnej, co jest kluczowe w systemach wykorzystujących pompę ciepła. Szczególnie istotne jest uwzględnienie odpowiednich stref brzegowych w pobliżu okien czy drzwi zewnętrznych.</li>



<li><strong>Zapewnienie komfortu cieplnego przy jednoczesnym obniżeniu kosztów eksploatacji.</strong> Pompy ciepła są najbardziej ekonomiczne, gdy pracują w niskotemperaturowych układach grzewczych. Odpowiedni rozstaw rur pozwala uzyskać oczekiwany komfort cieplny bez konieczności podnoszenia temperatury zasilania, co bezpośrednio przekłada się na mniejsze zużycie energii i niższe rachunki.</li>
</ul>



<p class="wp-block-paragraph">Dodatkowo, poprawnie zaprojektowany system uwzględnia specyfikę poszczególnych pomieszczeń, takich jak łazienki, gdzie wymagana jest wyższa temperatura podłogi, czy strefy mniej użytkowane, gdzie możliwe są większe rozstawy rur.</p>



<h2 class="wp-block-heading">Zalecane rozstawy rur przy pompie ciepła.</h2>



<h3 class="wp-block-heading">Rozstaw rur ogrzewania podłogowego przy pompie ciepła w zależności od rodzaju podłogi.</h3>



<ul class="wp-block-list">
<li><strong>Panele podłogowe:</strong> Przy panelach zalecany rozstaw rur wynosi <strong>10 cm</strong>. Taki układ pozwala na szybkie i równomierne ogrzanie powierzchni, co jest szczególnie ważne przy niskiej temperaturze zasilania.</li>



<li><strong>Płytki ceramiczne:</strong> W przypadku płytek rozstaw rur może wynosić od <strong>10 do 15 cm</strong>. Dłuższy rozstaw może być stosowany w mniej użytkowanych strefach, jednak w strefach intensywnego użytkowania (np. łazienka) warto pozostać przy 10 cm.</li>
</ul>



<h3 class="wp-block-heading">Czynniki wpływające na rozstaw rur.</h3>



<ul class="wp-block-list">
<li><strong>Izolacja budynku:</strong> Im lepsza izolacja termiczna, tym możliwy jest większy rozstaw rur bez utraty komfortu cieplnego.</li>



<li><strong>Przeznaczenie pomieszczenia:</strong> W pomieszczeniach o wyższych wymaganiach cieplnych (np. łazienki) zaleca się gęstszy rozstaw rur.</li>



<li><strong>Układ pomieszczeń i przeszklenia:</strong> W miejscach z dużymi przeszkleniami lub wzdłuż ścian zewnętrznych warto zastosować tzw. &#8222;strefy brzegowe&#8221; z rozstawem rur co 10 cm a w szczególnych przypadkach nawet co 5 cm.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Rola profesjonalnego projektu w doborze rozstawu rur</h2>



<p class="wp-block-paragraph">Każdy system <a href="https://projekt-ogrzewania.pl/">ogrzewania podłogowego</a> powinien być projektowany indywidualnie. Profesjonalny projekt uwzględnia m.in.:</p>



<ul class="wp-block-list">
<li>Charakterystykę termiczną budynku.</li>



<li>Rodzaj podłogi.</li>



<li>Przeznaczenie i wielkość pomieszczeń.</li>



<li>Lokalizację rozdzielaczy i długość pętli grzewczych.</li>
</ul>



<p class="wp-block-paragraph">Na stronie <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">projekt-ogrzewania.pl</a> znajdziesz ofertę profesjonalnych projektów ogrzewania podłogowego, które pomogą w optymalnym zaplanowaniu instalacji. Warto także zajrzeć na <a href="https://projekt-ogrzewania.pl/blog/">blog</a> firmy, gdzie znajdziesz praktyczne porady dotyczące instalacji i eksploatacji systemów grzewczych.</p>



<h2 class="wp-block-heading">Jak oszczędnie ogrzewać dom pompą ciepła?</h2>



<p class="wp-block-paragraph">Efektywność pompy ciepła zależy od utrzymania niskiej temperatury zasilania. <strong>Temperatura zasilania na poziomie 35 stopni Celsjusza</strong> pozwala na znaczne obniżenie kosztów ogrzewania, jednak wymaga to odpowiedniego rozstawu rur oraz starannego planowania całego systemu grzewczego. Niskotemperaturowe układy grzewcze są nie tylko bardziej ekonomiczne, ale też bardziej ekologiczne, ponieważ pompa ciepła zużywa mniej energii elektrycznej, pracując w optymalnych warunkach.</p>



<h3 class="wp-block-heading">Wskazówki:</h3>



<ul class="wp-block-list">
<li><strong>Dostosuj rozstaw rur:</strong> Im większa gęstość rur, tym bardziej efektywne rozprowadzanie ciepła na powierzchni podłogi. Przy panelach podłogowych zaleca się rozstaw rur co 10 cm, natomiast przy płytkach ceramicznych można stosować rozstaw od 10 do 15 cm, w zależności od potrzeb cieplnych pomieszczenia.</li>



<li><strong>Zadbaj o izolację budynku:</strong> Dobra izolacja termiczna ścian, dachu i podłogi minimalizuje straty ciepła, co umożliwia utrzymanie niskiej temperatury zasilania bez obniżania komfortu cieplnego. Szczególnie ważne jest zastosowanie izolacji brzegowej w systemie ogrzewania podłogowego, aby uniknąć strat energii wzdłuż krawędzi pomieszczeń.</li>



<li><strong>Zaprojektuj system z wyprzedzeniem:</strong> Profesjonalny projekt uwzględnia wszystkie kluczowe zmienne, takie jak charakterystyka termiczna budynku, rodzaj podłogi, przeznaczenie pomieszczeń oraz lokalizacja rozdzielaczy. Dzięki temu cały system jest dostosowany do wymagań pompy ciepła, co przełoży się na wyższą wydajność i długotrwałą niezawodność.</li>



<li><strong>Regularna konserwacja i optymalizacja:</strong> Regularne przeglądy instalacji oraz odpowiednie ustawienia systemu grzewczego pozwalają utrzymać jego maksymalną efektywność. Warto kontrolować poziom cieczy w obiegu pompy ciepła oraz stan izolacji rur.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



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



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1734863841270"><strong class="schema-faq-question"><strong>1. Jaki rozstaw rur w ogrzewaniu podłogowym jest najlepszy dla pompy ciepła?</strong></strong> <p class="schema-faq-answer">Rozstaw rur powinien wynosić 10 cm dla paneli oraz 10–15 cm dla płytek ceramicznych. Gęstszy rozstaw zapewnia lepsze rozprowadzanie ciepła przy niskiej temperaturze zasilania.</p> </div> <div class="schema-faq-section" id="faq-question-1734863872365"><strong class="schema-faq-question"><strong>2. Czy mogę samodzielnie zaprojektować rozstaw rur w ogrzewaniu podłogowym?</strong></strong> <p class="schema-faq-answer">Nie zaleca się samodzielnego projektowania rozstawu rur, ponieważ wymaga to uwzględnienia wielu zmiennych. Skorzystaj z profesjonalnego projektu, dostępnego na <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">projekt-ogrzewania.pl</a>.</p> </div> <div class="schema-faq-section" id="faq-question-1734863906375"><strong class="schema-faq-question"><strong>3. Czy rozstaw rur grzewczych ma wpływ na koszty eksploatacji?</strong></strong> <p class="schema-faq-answer">Tak, gęstszy rozstaw rur pozwala na obniżenie temperatury zasilania, co przekłada się na niższe rachunki za ogrzewanie.</p> </div> <div class="schema-faq-section" id="faq-question-1734863918800"><strong class="schema-faq-question"><strong>4. Czy pompa ciepła nadaje się do każdego budynku?</strong></strong> <p class="schema-faq-answer">Pompa ciepła sprawdza się najlepiej w budynkach z dobrą izolacją termiczną. Przed instalacją warto wykonać szczegółowe obliczenia i projekt.</p> </div> </div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><em>Odpowiednio zaplanowany rozstaw rur w systemie ogrzewania podłogowego przy pompie ciepła jest kluczowy dla efektywnej pracy pompy ciepła. Nie zapomnij skorzystać z profesjonalnego projektu, który zapewni Ci komfort i oszczędności na długie lata.</em></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="Q86L11X55F"><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=JnHCDRSRkh#?secret=Q86L11X55F" data-secret="Q86L11X55F" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>



<p class="wp-block-paragraph"></p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">Rozstaw rur ogrzewania podłogowego przy pompie ciepła.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Jak działa ogrzewanie podłogowe?</title>
		<link>https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/</link>
					<comments>https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 22 Sep 2024 18:49:37 +0000</pubDate>
				<category><![CDATA[Ekologiczne ogrzewanie]]></category>
		<category><![CDATA[Energooszczędne ogrzewanie]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Nowoczesne systemy grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Projekty ogrzewania]]></category>
		<category><![CDATA[Technologia budowlana]]></category>
		<category><![CDATA[energooszczędne rozwiązania]]></category>
		<category><![CDATA[instalacja grzewcza]]></category>
		<category><![CDATA[instalacje budowlane]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[nowoczesne ogrzewanie]]></category>
		<category><![CDATA[ogrzewanie elektryczne]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[systemy wodne]]></category>
		<category><![CDATA[technologie grzewcze]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=1370</guid>

					<description><![CDATA[<p>Ogrzewanie podłogowe to nowoczesne i efektywne rozwiązanie grzewcze, które zapewnia równomierne rozprowadzanie ciepła w pomieszczeniu. Dzięki brakowi grzejników i zastosowaniu ukrytych rur lub kabli, system ten pozwala zaoszczędzić miejsce i poprawia estetykę wnętrz. Aby jednak zagwarantować optymalną wydajność i energooszczędność, niezbędny jest profesjonalnie wykonany projekt ogrzewania podłogowego, dostosowany do specyfiki budynku. Sprawdź więcej informacji na temat projektów, które pomogą ci w stworzeniu idealnej instalacji.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/">Jak działa ogrzewanie podłogowe?</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 to nowoczesny, coraz bardziej popularny system grzewczy, który zapewnia <strong>komfort cieplny</strong> i <strong>energooszczędność</strong>. W artykule przedstawimy, jak działa ten system, jego zalety, wady oraz różne rodzaje instalacji ogrzewania podłogowego. Zrozumienie działania tego systemu pomoże podjąć decyzję, czy jest to odpowiednie rozwiązanie dla Twojego domu.</p>



<h2 class="wp-block-heading">Ogrzewanie podłogowe – zasada działania.</h2>



<p class="wp-block-paragraph"><a href="https://projekt-ogrzewania.pl/category/ogrzewanie-podlogowe/">Ogrzewanie podłogowe</a> to system grzewczy, który emituje ciepło <strong>poprzez podłogę</strong>. W tradycyjnych systemach grzewczych (np. grzejniki) ciepło rozchodzi się konwekcyjnie, ogrzewając najpierw powietrze, które unosi się ku górze, a potem resztę pomieszczenia. W przypadku ogrzewania podłogowego źródło ciepła jest równomiernie rozmieszczone pod podłogą, a ciepło unosi się od dołu, zapewniając <strong>równomierne rozprowadzenie temperatury</strong> w pomieszczeniu. Dzięki temu, ciepło jest odczuwane od stóp, co jest znacznie bardziej komfortowe niż w przypadku standardowych grzejników.</p>



<h3 class="wp-block-heading">Ogrzewanie podłogowe wodne.</h3>



<p class="wp-block-paragraph">Jednym z najpopularniejszych typów ogrzewania podłogowego jest <strong>system wodny</strong>. Działa on na zasadzie przepływu ciepłej wody przez rury ułożone pod podłogą. Ciepło z wody przekazywane jest do podłogi, a następnie emituje ciepło do wnętrza pomieszczenia. Zaletą tego rozwiązania jest <strong>niski koszt eksploatacji</strong> – woda może być podgrzewana za pomocą różnych źródeł, takich jak kocioł gazowy, pompa ciepła czy panele słoneczne.</p>



<p class="wp-block-paragraph">Wodny system ogrzewania podłogowego jest szczególnie efektywny w <strong>większych pomieszczeniach</strong>, gdzie równomierne rozprowadzenie ciepła ma kluczowe znaczenie. Jednak instalacja tego systemu jest bardziej skomplikowana i kosztowna niż w przypadku systemów elektrycznych.</p>



<h4 class="wp-block-heading">Zalety ogrzewania podłogowego wodnego.</h4>



<ul class="wp-block-list">
<li><strong>Energooszczędność</strong> – system działa na niskiej temperaturze, co obniża koszty ogrzewania.</li>



<li><strong>Komfort cieplny</strong> – ciepło rozchodzi się równomiernie po całej powierzchni podłogi.</li>



<li><strong>Możliwość zasilania z różnych źródeł</strong> – system współpracuje z kotłami gazowymi, pompami ciepła, a nawet systemami solarnymi.</li>
</ul>



<h3 class="wp-block-heading"><strong>Ogrzewanie podłogowe elektryczne</strong>.</h3>



<p class="wp-block-paragraph">Drugim rodzajem ogrzewania podłogowego jest <strong>system elektryczny</strong>, który opiera się na kablach grzewczych, matach lub foliach umieszczonych pod podłogą. System ten jest podłączony do sieci elektrycznej, a ciepło generowane jest poprzez przepływ prądu przez kable.</p>



<p class="wp-block-paragraph">Elektryczne ogrzewanie podłogowe jest <strong>łatwiejsze i tańsze w instalacji</strong> niż wodne, co czyni je idealnym rozwiązaniem do <strong>mniejszych pomieszczeń</strong>, takich jak łazienki czy kuchnie. Jest również stosowane w budynkach, gdzie niemożliwe jest zainstalowanie systemu wodnego.</p>



<h4 class="wp-block-heading"><strong>Zalety ogrzewania podłogowego elektrycznego</strong>.</h4>



<ul class="wp-block-list">
<li><strong>Szybka i prosta instalacja</strong> – zwłaszcza w przypadku mat grzewczych, które są łatwe w montażu.</li>



<li><strong>Niski koszt początkowy</strong> – tańszy w instalacji niż system wodny.</li>



<li><strong>Idealne do mniejszych pomieszczeń</strong> – sprawdza się w łazienkach, kuchniach i małych sypialniach.</li>
</ul>



<h4 class="wp-block-heading"><strong>H4: Wady ogrzewania podłogowego elektrycznego</strong>.</h4>



<ul class="wp-block-list">
<li><strong>Wyższy koszt eksploatacji</strong> – ogrzewanie elektryczne jest droższe w dłuższym okresie użytkowania, zwłaszcza w większych budynkach.</li>



<li><strong>Brak możliwości zasilania alternatywnymi źródłami</strong> – system musi być podłączony do sieci elektrycznej.</li>
</ul>



<h2 class="wp-block-heading">Porównanie systemów ogrzewania podłogowego.</h2>



<p class="wp-block-paragraph"><strong>Wodne</strong> i <strong>elektryczne</strong> systemy ogrzewania podłogowego mają swoje unikalne zalety i wady. Wybór najlepszego rozwiązania zależy od potrzeb użytkownika, rodzaju budynku oraz budżetu.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Typ ogrzewania podłogowego</th><th>Zalety</th><th>Wady</th></tr></thead><tbody><tr><td><strong>Wodne</strong></td><td>Energooszczędność, niskie koszty eksploatacji, równomierne ciepło</td><td>Wyższy koszt instalacji, wymaga kotła/pompy ciepła</td></tr><tr><td><strong>Elektryczne</strong></td><td>Niski koszt instalacji, łatwość montażu</td><td>Wyższe koszty eksploatacji, ograniczona możliwość zasilania</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">Ogrzewanie podłogowe a zdrowie.</h2>



<p class="wp-block-paragraph">Jednym z najważniejszych argumentów za wyborem ogrzewania podłogowego jest jego wpływ na <strong>zdrowie i komfort</strong> mieszkańców. Tradycyjne systemy grzewcze, takie jak grzejniki, powodują konwekcję powietrza, co może prowadzić do unoszenia się kurzu i alergenów. <strong>Ogrzewanie podłogowe</strong>, dzięki równomiernemu rozprowadzeniu ciepła, nie powoduje tak intensywnej cyrkulacji powietrza, co zmniejsza ilość kurzu w pomieszczeniach i poprawia jakość powietrza.</p>



<h3 class="wp-block-heading"><strong>Ogrzewanie podłogowe a alergie</strong>.</h3>



<p class="wp-block-paragraph">Dla osób cierpiących na alergie ogrzewanie podłogowe jest doskonałym rozwiązaniem, ponieważ:</p>



<ul class="wp-block-list">
<li><strong>Ogranicza unoszenie się kurzu</strong> – ciepło jest emitowane przez podłogę, a nie przez gorące grzejniki.</li>



<li><strong>Poprawia jakość powietrza</strong> – brak silnej konwekcji powietrza sprawia, że alergeny rzadziej krążą po pomieszczeniach.</li>
</ul>



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



<p class="wp-block-paragraph">Koszt instalacji zależy od wybranego systemu. Wodny system ogrzewania podłogowego jest droższy w montażu, ale tańszy w eksploatacji, natomiast elektryczny jest tańszy na początku, lecz generuje wyższe koszty podczas użytkowania.</p>



<h2 class="wp-block-heading">Zastosowanie ogrzewania podłogowego w różnych pomieszczeniach.</h2>



<p class="wp-block-paragraph">Ogrzewanie podłogowe może być stosowane w niemal każdym pomieszczeniu w domu. Jest szczególnie efektywne w:</p>



<ul class="wp-block-list">
<li><strong>Łazienkach</strong> – zapewnia przyjemne ciepło pod stopami, co jest szczególnie ważne w chłodne dni.</li>



<li><strong>Kuchniach</strong> – gdzie często instalowane są płytki, które naturalnie pochłaniają ciepło.</li>



<li><strong>Salonach</strong> – dzięki równomiernemu rozprowadzeniu ciepła ogrzewanie podłogowe sprawia, że pomieszczenie jest przytulniejsze.</li>
</ul>



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



<p class="wp-block-paragraph">Podsumowując, <strong>ogrzewanie podłogowe</strong> ma wiele zalet:</p>



<ul class="wp-block-list">
<li><strong>Komfort cieplny</strong> – ciepło jest rozprowadzane równomiernie po całym pomieszczeniu.</li>



<li><strong>Oszczędność energii</strong> – systemy działają przy niższych temperaturach, co przekłada się na mniejsze zużycie energii.</li>



<li><strong>Estetyka – brak grzejników</strong> &#8211; Jedną z kluczowych zalet ogrzewania podłogowego jest brak tradycyjnych grzejników, które często zajmują cenną przestrzeń w pomieszczeniach i mogą nie pasować do nowoczesnych aranżacji wnętrz</li>
</ul>



<h2 class="wp-block-heading">Ogrzewanie podłogowe a energooszczędność.</h2>



<p class="wp-block-paragraph"><strong>Ogrzewanie podłogowe</strong> działa na niższych temperaturach niż tradycyjne grzejniki, co sprawia, że system jest <strong>bardziej energooszczędny</strong>. Ciepło jest rozprowadzane równomiernie po całym pomieszczeniu, co pozwala na efektywne wykorzystanie energii. W rezultacie systemy ogrzewania podłogowego zużywają mniej energii, co przekłada się na niższe rachunki za ogrzewanie.</p>



<h3 class="wp-block-heading">Niższe temperatury pracy systemu.</h3>



<p class="wp-block-paragraph">Tradycyjne grzejniki muszą nagrzewać się do temperatury około 60-70°C, aby skutecznie ogrzać pomieszczenie, podczas gdy <strong>ogrzewanie podłogowe</strong> może działać przy temperaturach rzędu 30-35°C. Niższa temperatura pracy oznacza, że system zużywa mniej energii, co jest korzystne zarówno dla budżetu domowego, jak i dla środowiska.</p>



<h3 class="wp-block-heading">Optymalizacja kosztów.</h3>



<p class="wp-block-paragraph">W dłuższym okresie <strong>ogrzewanie podłogowe</strong> może przynieść znaczące oszczędności, zwłaszcza w budynkach o dużej powierzchni. Dzięki równomiernemu rozprowadzaniu ciepła nie ma potrzeby utrzymywania wysokiej temperatury, co pozwala na redukcję kosztów eksploatacyjnych.</p>



<h2 class="wp-block-heading">Czy warto zainwestować w ogrzewanie podłogowe?</h2>



<p class="wp-block-paragraph">Decyzja o zainstalowaniu ogrzewania podłogowego zależy od wielu czynników, takich jak:</p>



<ul class="wp-block-list">
<li><strong>Rodzaj budynku</strong> – nowe budynki z dobrą izolacją cieplną są idealnym miejscem do zainstalowania systemu podłogowego.</li>



<li><strong>Budżet</strong> – koszty instalacji są wyższe niż w przypadku tradycyjnych grzejników, jednak w dłuższej perspektywie inwestycja może się zwrócić w postaci niższych rachunków za ogrzewanie.</li>



<li><strong>Preferencje estetyczne</strong> – brak grzejników to większa swoboda w aranżacji wnętrz.</li>
</ul>



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



<p class="wp-block-paragraph"><strong>Ogrzewanie podłogowe</strong> to nowoczesne rozwiązanie, które łączy <strong>komfort</strong>, <strong>estetykę</strong> oraz <strong>oszczędność energii</strong>. Pomimo wyższych kosztów instalacji, jego długoterminowe korzyści, takie jak niższe rachunki za energię, brak cyrkulacji kurzu i większa swoboda w aranżacji wnętrz, sprawiają, że jest to inwestycja, którą warto rozważyć. Wybór między systemem wodnym a elektrycznym zależy od wielkości pomieszczeń, budżetu oraz preferencji użytkowników.</p>



<p class="wp-block-paragraph">Aby zapewnić prawidłowe i <strong>energooszczędne działanie</strong> ogrzewania podłogowego, kluczowe jest wykonanie <strong>profesjonalnego projektu</strong> tego systemu. Tylko dobrze zaprojektowana instalacja, uwzględniająca wszystkie istotne parametry techniczne, zapewni optymalny rozkład ciepła oraz minimalne zużycie energii. Projekt powinien obejmować dokładne rozmieszczenie rur lub kabli grzewczych oraz dopasowanie mocy grzewczej do warunków budynku. Profesjonalny projekt ogrzewania podłogowego można zamówić <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">tutaj</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="4naPVB1UfL"><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=VZD3yixHPB#?secret=4naPVB1UfL" data-secret="4naPVB1UfL" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/">Jak działa ogrzewanie podłogowe?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Jak powinien wyglądać profesjonalny projekt do ogrzewania podłogowego.</title>
		<link>https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/</link>
					<comments>https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 14 Sep 2024 11:35:45 +0000</pubDate>
				<category><![CDATA[Ekologiczne ogrzewanie]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Montaż ogrzewania]]></category>
		<category><![CDATA[Nowoczesne technologie grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Oszczędność energii]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Systemy grzewcze]]></category>
		<category><![CDATA[efektywne ogrzewanie]]></category>
		<category><![CDATA[instalacja grzewcza]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[montaż ogrzewania]]></category>
		<category><![CDATA[nowoczesne technologie]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[projektowanie instalacji]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=1304</guid>

					<description><![CDATA[<p>Profesjonalny projekt ogrzewania podłogowego to klucz do efektywnego, komfortowego i oszczędnego systemu grzewczego w Twoim domu. W artykule omawiamy, jakie elementy powinien zawierać taki projekt, aby zapewnić optymalne rozprowadzenie ciepła, minimalizując jednocześnie koszty ogrzewania. Dowiesz się, jakie parametry montażu, plan pętli grzewczych, obliczenia techniczne oraz zalecenia dotyczące instalacji i użytkowania są niezbędne, by Twój system działał bezawaryjnie i zgodnie z normami.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">Jak powinien wyglądać profesjonalny projekt do ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ogrzewanie podłogowe to nowoczesne rozwiązanie zapewniające komfort cieplny oraz oszczędność energii. Kluczem do jego efektywnego działania jest odpowiednio przygotowany projekt, który uwzględnia wszystkie istotne parametry i aspekty techniczne. Oto, co powinien zawierać profesjonalny projekt ogrzewania podłogowego.</p>



<h2 class="wp-block-heading"><strong>Parametry montażu ogrzewania podłogowego</strong>.</h2>



<p class="wp-block-paragraph">Podstawowym elementem każdego projektu są szczegółowe <strong>parametry montażu ogrzewania podłogowego (O.P.)</strong>. Dokumentacja powinna zawierać dokładne informacje na temat:</p>



<ul class="wp-block-list">
<li><strong>Typu rur</strong> używanych do instalacji, ich długości i średnicy, co wpływa na przepływ wody i efektywność systemu.</li>



<li><strong>Sposobu ułożenia rur</strong> – np. pętli grzewczych układanych ślimakowo lub wężownicowo, co pozwala na równomierne rozprowadzenie ciepła.</li>



<li><strong>Liczby pętli</strong> grzewczych w każdym pomieszczeniu, wraz z danymi dotyczącymi ich długości i odległości między nimi.</li>



<li><strong>Rodzaju izolacji</strong> oraz materiałów wykończeniowych, które wpływają na straty ciepła i komfort cieplny.</li>
</ul>



<p class="wp-block-paragraph">Te parametry są kluczowe, ponieważ pozwalają na dopasowanie systemu ogrzewania do specyfiki budynku i jego mieszkańców.</p>



<h2 class="wp-block-heading"><strong>Plan pętli grzewczych</strong>.</h2>



<p class="wp-block-paragraph">Każdy profesjonalny projekt ogrzewania podłogowego powinien zawierać <strong>szczegółowy plan pętli grzewczych</strong>. Jest to rzut budynku z naniesionymi trasami rur grzewczych, który pokazuje, jak są one rozmieszczone w poszczególnych pomieszczeniach. Plan pętli grzewczych musi uwzględniać:</p>



<ul class="wp-block-list">
<li><strong>Powierzchnię i układ pomieszczeń</strong> – w tym lokalizację okien, drzwi i ścian wewnętrznych, co wpływa na rozmieszczenie rur.</li>



<li><strong>Obszary o zwiększonym zapotrzebowaniu na ciepło</strong> – takie jak miejsca przy oknach lub drzwiach zewnętrznych, gdzie rury powinny być gęściej rozmieszczone.</li>



<li><strong>Strefy ogrzewania</strong> – podział na strefy o różnym zapotrzebowaniu na ciepło, co umożliwia lepsze zarządzanie temperaturą w całym budynku.</li>
</ul>



<p class="wp-block-paragraph">Plan ten powinien być precyzyjnie zaprojektowany, aby zapewnić <strong>równomierne ogrzewanie</strong> całej przestrzeni, eliminując tzw. &#8222;zimne strefy&#8221;.</p>



<h2 class="wp-block-heading"><strong>Wyniki obliczeń grzewczych</strong>.</h2>



<p class="wp-block-paragraph">Projekt ogrzewania podłogowego musi zawierać szczegółowe <strong>wyniki obliczeń grzewczych</strong>. Obejmuje to dane takie jak:</p>



<ul class="wp-block-list">
<li><strong>Moc grzewcza</strong> – określona na podstawie zapotrzebowania na ciepło każdego pomieszczenia.</li>



<li><strong>Zużycie energii</strong> – informacje na temat efektywności systemu, pozwalające na optymalizację kosztów eksploatacji.</li>



<li><strong>Przepływ wody i straty ciepła</strong> – parametry kluczowe dla prawidłowego działania systemu, określające, jak szybko woda powinna płynąć przez rury, aby zapewnić maksymalną wydajność.</li>
</ul>



<p class="wp-block-paragraph">Dokładne obliczenia grzewcze pozwalają na optymalizację pracy całego systemu, co przekłada się na <strong>oszczędności energii</strong> i dłuższą żywotność instalacji.</p>



<h2 class="wp-block-heading"><strong>Wyniki ogólne systemu ogrzewania podłogowego</strong>.</h2>



<p class="wp-block-paragraph">Wyniki ogólne zawierają podsumowanie parametrów technicznych całego systemu, takich jak:</p>



<ul class="wp-block-list">
<li><strong>Całkowita moc systemu</strong> – czyli łączna ilość energii dostarczanej przez system ogrzewania podłogowego.</li>



<li><strong>Ciśnienie i przepływ</strong> – parametry kluczowe dla prawidłowego funkcjonowania instalacji, które muszą być dostosowane do warunków panujących w budynku.</li>



<li><strong>Normy techniczne</strong> – dokumentacja musi być zgodna z obowiązującymi normami, np. EN 1264, które określają wymagania dotyczące projektowania, montażu i eksploatacji systemów ogrzewania podłogowego.</li>
</ul>



<p class="wp-block-paragraph">Zrozumienie wyników ogólnych pozwala na ocenę, czy projekt spełnia wszystkie normy i wymagania techniczne, co jest kluczowe dla bezpieczeństwa i efektywności instalacji.</p>



<h2 class="wp-block-heading"><strong>Instrukcja montażu i zalecenia dotyczące użytkowania</strong></h2>



<p class="wp-block-paragraph">Każdy projekt powinien również zawierać <strong>instrukcję montażu</strong> oraz zalecenia dotyczące użytkowania systemu. Instrukcja montażu musi być szczegółowa i przejrzysta, zawierać:</p>



<ul class="wp-block-list">
<li><strong>Etapy instalacji</strong> – krok po kroku, począwszy od przygotowania podłoża, przez układanie rur, po testy końcowe.</li>



<li><strong>Wymagania techniczne</strong> – takie jak wymagane narzędzia, materiały oraz procedury testowe.</li>
</ul>



<p class="wp-block-paragraph">Zalecenia dotyczące użytkowania powinny obejmować:</p>



<ul class="wp-block-list">
<li><strong>Optymalne ustawienia temperatury</strong> – w zależności od specyfiki budynku i preferencji użytkowników.</li>



<li><strong>Harmonogramy konserwacji</strong> – regularne przeglądy i czyszczenie systemu, aby zapewnić jego długowieczność.</li>



<li><strong>Sposoby postępowania w przypadku awarii</strong> – informacje, jak radzić sobie z ewentualnymi problemami, aby zminimalizować ryzyko uszkodzeń.</li>
</ul>



<h2 class="wp-block-heading"><strong>Zalecenia dotyczące testowania i konserwacji</strong></h2>



<p class="wp-block-paragraph">Profesjonalny projekt musi zawierać także procedury testowania i konserwacji. Po zakończeniu montażu należy:</p>



<ul class="wp-block-list">
<li><strong>Przeprowadzić testy szczelności</strong> instalacji wodnej, aby upewnić się, że nie ma wycieków.</li>



<li><strong>Wykonać testy ciśnieniowe</strong> i wydajnościowe, aby potwierdzić prawidłowe działanie systemu.</li>



<li><strong>Monitorować efektywność energetyczną</strong> i komfort cieplny w różnych warunkach, co pozwala na dalszą optymalizację ustawień.</li>
</ul>



<p class="wp-block-paragraph">Testy te są kluczowe, aby zapewnić długotrwałą efektywność systemu i zminimalizować ryzyko awarii.</p>



<h2 class="wp-block-heading">Zobacz przykładowy projekt.</h2>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Przykladowy-projekt-ogrzewania-podlogowego-a2.jpg" target="_blank" rel="noreferrer noopener"><img fetchpriority="high" decoding="async" width="1024" height="1024" data-id="1312" src="https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Przykladowy-projekt-ogrzewania-podlogowego-a2-1024x1024.jpg" alt="" class="wp-image-1312" srcset="https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Przykladowy-projekt-ogrzewania-podlogowego-a2-1024x1024.jpg 1024w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Przykladowy-projekt-ogrzewania-podlogowego-a2-300x300.jpg 300w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Przykladowy-projekt-ogrzewania-podlogowego-a2-150x150.jpg 150w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Przykladowy-projekt-ogrzewania-podlogowego-a2-768x768.jpg 768w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Przykladowy-projekt-ogrzewania-podlogowego-a2-600x600.jpg 600w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Przykladowy-projekt-ogrzewania-podlogowego-a2-100x100.jpg 100w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Przykladowy-projekt-ogrzewania-podlogowego-a2.jpg 1134w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Wyniki-ogolne-OP.jpg" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="1024" height="1024" data-id="1309" src="https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Wyniki-ogolne-OP-1024x1024.jpg" alt="" class="wp-image-1309" srcset="https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Wyniki-ogolne-OP-1024x1024.jpg 1024w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Wyniki-ogolne-OP-300x300.jpg 300w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Wyniki-ogolne-OP-150x150.jpg 150w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Wyniki-ogolne-OP-768x768.jpg 768w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Wyniki-ogolne-OP-600x600.jpg 600w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Wyniki-ogolne-OP-100x100.jpg 100w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Wyniki-ogolne-OP.jpg 1134w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Wyniki-Op-A2.jpg" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="1024" height="1024" data-id="1311" src="https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Wyniki-Op-A2-1024x1024.jpg" alt="" class="wp-image-1311" srcset="https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Wyniki-Op-A2-1024x1024.jpg 1024w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Wyniki-Op-A2-300x300.jpg 300w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Wyniki-Op-A2-150x150.jpg 150w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Wyniki-Op-A2-768x768.jpg 768w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Wyniki-Op-A2-600x600.jpg 600w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Wyniki-Op-A2-100x100.jpg 100w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Wyniki-Op-A2.jpg 1134w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Wyniki-Op-A3.jpg" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="1024" height="1024" data-id="1313" src="https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Wyniki-Op-A3-1024x1024.jpg" alt="" class="wp-image-1313" srcset="https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Wyniki-Op-A3-1024x1024.jpg 1024w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Wyniki-Op-A3-300x300.jpg 300w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Wyniki-Op-A3-150x150.jpg 150w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Wyniki-Op-A3-768x768.jpg 768w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Wyniki-Op-A3-600x600.jpg 600w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Wyniki-Op-A3-100x100.jpg 100w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Wyniki-Op-A3.jpg 1134w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Parametry-montazu-OP-A1.jpg" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="1024" height="1024" data-id="1314" src="https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Parametry-montazu-OP-A1-1024x1024.jpg" alt="" class="wp-image-1314" srcset="https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Parametry-montazu-OP-A1-1024x1024.jpg 1024w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Parametry-montazu-OP-A1-300x300.jpg 300w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Parametry-montazu-OP-A1-150x150.jpg 150w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Parametry-montazu-OP-A1-768x768.jpg 768w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Parametry-montazu-OP-A1-600x600.jpg 600w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Parametry-montazu-OP-A1-100x100.jpg 100w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Parametry-montazu-OP-A1.jpg 1134w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</figure>



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



<p class="wp-block-paragraph">Profesjonalny projekt ogrzewania podłogowego to nie tylko dokumentacja techniczna, ale kompleksowe opracowanie, które obejmuje wszystkie kluczowe elementy: od parametrów montażu, przez szczegółowy plan pętli grzewczych, aż po wyniki obliczeń i zalecenia dotyczące użytkowania oraz konserwacji. Dzięki temu taki projekt gwarantuje komfort cieplny, oszczędność energii i długotrwałą niezawodność systemu. </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="4YExnNJEGc"><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Projekt instalacji ogrzewania podłogowego &#8211; podłogówki</a></blockquote><iframe loading="lazy" 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=839gBssGgr#?secret=4YExnNJEGc" data-secret="4YExnNJEGc" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>



<p class="wp-block-paragraph"></p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">Jak powinien wyglądać profesjonalny projekt do ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
