<?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 Technologie budowlane - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/category/technologie-budowlane/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/category/technologie-budowlane/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Tue, 01 Sep 2026 14:07:43 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa Technologie budowlane - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/category/technologie-budowlane/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Frezowanie ogrzewania podłogowego w starym domu.</title>
		<link>https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 07 Apr 2026 09:03:02 +0000</pubDate>
				<category><![CDATA[Budowa i remont]]></category>
		<category><![CDATA[Budowa i remonty]]></category>
		<category><![CDATA[Frezowanie posadzki]]></category>
		<category><![CDATA[Modernizacja instalacji]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Porady budowlane]]></category>
		<category><![CDATA[Porady dla domu]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Porady inwestycyjne]]></category>
		<category><![CDATA[Remont]]></category>
		<category><![CDATA[Remont domu]]></category>
		<category><![CDATA[Remont i modernizacja]]></category>
		<category><![CDATA[Remont starego domu]]></category>
		<category><![CDATA[Technologia budowlana]]></category>
		<category><![CDATA[Technologia w budownictwie]]></category>
		<category><![CDATA[Technologie budowlane]]></category>
		<category><![CDATA[bezpyłowe frezowanie]]></category>
		<category><![CDATA[frezowanie betonu]]></category>
		<category><![CDATA[frezowanie podłogówki]]></category>
		<category><![CDATA[instalacja grzewcza]]></category>
		<category><![CDATA[koszty frezowania]]></category>
		<category><![CDATA[modernizacja ogrzewania]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[podłogówka w starym domu]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[remont]]></category>
		<category><![CDATA[remont starego domu]]></category>
		<category><![CDATA[stara wylewka]]></category>
		<category><![CDATA[system suchy]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=4152</guid>

					<description><![CDATA[<p>Remont starego budynku często wiąże się z trudnymi decyzjami, a jedną z najważniejszych jest wybór odpowiedniego systemu grzewczego. Wiele osób marzy o komfortowej, ciepłej podłodze, jednak przeraża je wizja skuwania starych wylewek, wywożenia ton gruzu i drastycznego podnoszenia poziomu posadzki, co niesie za sobą konieczność przerabiania progów czy skracania drzwi. Na szczęście istnieje nowoczesna, znacznie mniej inwazyjna alternatywa. Frezowanie ogrzewania podłogowego w starym domu to innowacyjna metoda, która pozwala ukryć rury grzewcze bezpośrednio w istniejącym już betonie. W tym obszernym poradniku przyjrzymy się z bliska, jak krok po kroku przebiega ten proces. Sprawdzimy, z jakimi realnymi kosztami musisz się liczyć, czy prace faktycznie przebiegają bezpyłowo oraz w jakich sytuacjach ta technologia sprawdzi się najlepiej.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/">Frezowanie ogrzewania podłogowego w starym domu.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #082f49; /* Głęboki granat */
    --rk-intro-brand: #06b6d4; /* Techniczny cyjan */
    --rk-intro-brand-light: #cffafe;
    --rk-intro-accent: #f43f5e; /* Róż/Czerwień do pokazania "starego" */
    --rk-intro-bg: #f8fafc;
    --rk-intro-card: #ffffff;
    --rk-intro-text: #334155;
    --rk-intro-border: #e2e8f0;
}

.rk-intro-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-intro-card);
    border-radius: 20px;
    box-shadow: 0 15px 35px -10px rgba(8, 47, 73, 0.15);
    border: 1px solid rgba(6, 182, 212, 0.3);
    overflow: hidden;
}

/* Sekcja Wprowadzająca (Header & Text) */
.rk-intro-header {
    background: linear-gradient(145deg, var(--rk-intro-dark) 0%, #0f172a 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
}

.rk-intro-header::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: linear-gradient(90deg, var(--rk-intro-brand) 0%, #3b82f6 100%);
}

.rk-intro-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(6, 182, 212, 0.2);
    color: #22d3ee;
    padding: 6px 16px;
    border-radius: 99px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 25px;
    border: 1px solid rgba(34, 211, 238, 0.3);
}

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

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

.rk-intro-paragraph strong {
    color: #ffffff;
    font-weight: 700;
}

.rk-intro-link {
    color: var(--rk-intro-brand);
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-intro-brand);
    transition: all 0.3s;
}

.rk-intro-link:hover {
    color: #67e8f9;
    border-bottom-style: solid;
}

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

.rk-sim-controls {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 35px;
}

.rk-sim-btn {
    flex: 1;
    max-width: 250px;
    padding: 16px 20px;
    border: 2px solid var(--rk-intro-border);
    background: #ffffff;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-intro-text);
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

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

.rk-sim-btn.active[data-mode="old"] {
    border-color: var(--rk-intro-accent);
    background: #fff1f2;
    color: #9f1239;
    box-shadow: 0 10px 20px -5px rgba(244, 63, 94, 0.15);
}

.rk-sim-btn.active[data-mode="new"] {
    border-color: var(--rk-intro-brand);
    background: var(--rk-intro-brand-light);
    color: var(--rk-intro-dark);
    box-shadow: 0 10px 20px -5px rgba(6, 182, 212, 0.2);
}

/* Ekran Symulatora (Grid: Lewo animacja, Prawo parametry) */
.rk-sim-screen {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 30px;
    background: #ffffff;
    border: 1px solid var(--rk-intro-border);
    border-radius: 16px;
    padding: 30px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.02);
}

/* Część wizualna (SVG) */
.rk-sim-visual {
    background: var(--rk-intro-dark);
    border-radius: 12px;
    padding: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    height: 100%;
    min-height: 180px;
}

.rk-svg-layer {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transition: opacity 0.4s ease, transform 0.4s ease;
}

.rk-svg-layer.hidden {
    opacity: 0;
    pointer-events: none;
    transform: scale(0.95);
}

/* Animacje SVG - Kucie (Old) */
.anim-shake { animation: jackhammer 0.1s infinite; transform-origin: bottom center; }
.anim-debris { animation: flyDebris 1s infinite linear; }
@keyframes jackhammer { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes flyDebris { 0% { transform: translate(0,0) rotate(0deg); opacity: 1; } 100% { transform: translate(30px, -30px) rotate(180deg); opacity: 0; } }

/* Animacje SVG - Frezowanie (New) - NAPRAWIONY SKACZĄCY EFEKT */
.anim-spin { 
    animation: spinBlade 0.8s linear infinite; 
    /* Sztywny matematyczny środek obrotu dla cx=0 cy=0 */
    transform-origin: 0px 0px; 
    transform-box: fill-box;
}
.anim-cut-line { stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset 2s ease-out; }
.rk-sim-btn.active[data-mode="new"] ~ .rk-sim-screen .anim-cut-line { stroke-dashoffset: 0; }
@keyframes spinBlade { 
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); } 
}

/* Część z parametrami (Grid) */
.rk-param-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.rk-param-box {
    background: var(--rk-intro-bg);
    padding: 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-intro-border);
    transition: all 0.3s;
}

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

.rk-param-value {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    display: flex;
    align-items: baseline;
    gap: 5px;
}

.rk-param-value.alert { color: var(--rk-intro-accent); }
.rk-param-value.success { color: var(--rk-intro-brand); }

/* Opisy pod kafelkami */
.rk-sim-desc {
    grid-column: 1 / -1;
    font-size: 14px;
    color: var(--rk-intro-text);
    line-height: 1.6;
    margin-top: 10px;
    padding-top: 20px;
    border-top: 1px solid var(--rk-intro-border);
}

@media (max-width: 768px) {
    .rk-intro-header, .rk-intro-interactive { padding: 30px 25px; }
    .rk-sim-controls { flex-direction: column; }
    .rk-sim-btn { max-width: 100%; }
    .rk-sim-screen { grid-template-columns: 1fr; }
    .rk-sim-visual { min-height: 150px; }
    .rk-param-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-intro-title { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/"
    },
    "headline": "Frezowanie ogrzewania podłogowego – Bezpyłowa technologia modernizacji",
    "description": "Przełom w inżynierii instalacyjnej. Technologia wycinania kanałów pod rury grzewcze eliminuje potrzebę skuwania wylewek i radykalnie zmniejsza bezwładność cieplną.",
    "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-17",
    "dateModified": "2026-05-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#dataset-tech-compare",
    "name": "Analiza porównawcza: Frezowanie vs Kucie starej wylewki",
    "description": "Zestawienie parametrów operacyjnych i czasowych dla procesu modernizacji systemu grzewczego na układ niskotemperaturowy.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "frezowanie ogrzewania podłogowego",
      "podłogówka bez kucia jastrychu",
      "redukcja bezwładności cieplnej",
      "bezpyłowa technologia grzewcza",
      "modernizacja pod pompę ciepła"
    ],
    "measurementTechnique": "Analiza czasowo-kosztowa i termiczna na podstawie realizacji instalatorskich.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Metoda tradycyjna: Wymaga skuwania, generuje gruz, czas nagrzewania ok. 4 godzin.",
        "Metoda bezpyłowa (frezowanie): Brak gruzu, rury w nacięciach, czas nagrzewania poniżej 45 minut."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#webapp-simulator",
    "name": "Symulator Modernizacji Podłogi",
    "description": "Narzędzie pozwalające przełączać i porównywać inżynierskie parametry kucia starej wylewki z innowacyjną technologią frezowania diamentowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="rk-tech-compare-app">
    <div class="rk-intro-header">
        <div class="rk-intro-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 20V10"></path><path d="M18 20V4"></path><path d="M6 20v-4"></path></svg>
            Technologia
        </div>
        <h2 class="rk-intro-title">Frezowanie ogrzewania podłogowego w starym domu</h2>
        <p class="rk-intro-paragraph">
            To <strong>bezpyłowa technologia modernizacji instalacji grzewczej</strong>, polegająca na wycinaniu kanałów montażowych bezpośrednio w istniejącym podłożu betonowym lub anhydrytowym w celu ułożenia rur grzewczych bez podnoszenia poziomu podłogi. 
        </p>
        <p class="rk-intro-paragraph" style="margin-top: 15px;">
            Metoda ta pozwala na <a href="https://projekt-ogrzewania.pl/zalety-ogrzewania-podlogowego-w-porownaniu-do-tradycyjnych-grzejnikow/" class="rk-intro-link">eliminację tradycyjnych grzejników wysokotemperaturowych</a> w budynkach poddawanych termomodernizacji, umożliwiając efektywną współpracę z pompami ciepła. Rozwiązanie to drastycznie skraca czas remontu, <strong>redukuje bezwładność cieplną układu</strong> i eliminuje konieczność kłopotliwego skuwania starych wylewek, co stanowi przełom w inżynierii instalacyjnej dla obiektów poddawanych remontom kapitalnym.
        </p>
    </div>

    <div class="rk-intro-interactive">
        <div class="rk-sim-controls">
            <button class="rk-sim-btn" data-mode="old" onclick="rkSwitchTech('old')">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
                Tradycyjne Kucie
            </button>
            <button class="rk-sim-btn active" data-mode="new" onclick="rkSwitchTech('new')">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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>
                Frezowanie Bezpyłowe
            </button>
        </div>

        <div class="rk-sim-screen">
            <div class="rk-sim-visual">
                <svg id="rk-svg-old" class="rk-svg-layer hidden" viewBox="0 0 100 100">
                    <rect x="10" y="70" width="80" height="20" fill="#475569" rx="2"/>
                    <path d="M 30 70 L 40 90 M 50 70 L 60 90 M 70 70 L 55 90" stroke="#1e293b" stroke-width="3" stroke-linecap="round"/>
                    <g class="anim-shake">
                        <path d="M 45 30 L 55 30 L 52 70 L 48 70 Z" fill="#94a3b8"/>
                        <rect x="40" y="20" width="20" height="10" fill="#f43f5e" rx="2"/>
                        <rect x="35" y="10" width="30" height="10" fill="#334155" rx="2"/>
                    </g>
                    <circle class="anim-debris" cx="50" cy="70" r="3" fill="#cbd5e1"/>
                    <circle class="anim-debris" cx="55" cy="70" r="2" fill="#cbd5e1" style="animation-delay: 0.2s;"/>
                    <circle class="anim-debris" cx="45" cy="70" r="4" fill="#64748b" style="animation-delay: 0.4s;"/>
                </svg>

                <svg id="rk-svg-new" class="rk-svg-layer" viewBox="0 0 100 100">
                    <rect x="10" y="70" width="80" height="20" fill="#cbd5e1" rx="2"/>
                    <path class="anim-cut-line" d="M 10 70 L 90 70" fill="none" stroke="#f8fafc" stroke-width="8" stroke-linecap="square"/>
                    <path class="anim-cut-line" d="M 10 75 L 90 75" fill="none" stroke="#06b6d4" stroke-width="4" stroke-linecap="square" style="transition-delay: 0.2s;"/>
                    
                    <g transform="translate(50, 60)">
                        <g class="anim-spin">
                            <circle cx="0" cy="0" r="25" fill="none" stroke="#06b6d4" stroke-width="6" stroke-dasharray="15.7 15.7"/>
                            <circle cx="0" cy="0" r="8" fill="#082f49"/>
                            <circle cx="0" cy="0" r="3" fill="#ffffff"/>
                        </g>
                        <path d="M -35 0 C -35 -25 -15 -35 0 -35 L 0 -10 Z" fill="#334155" opacity="0.9"/>
                        <rect x="-35" y="-60" width="12" height="40" fill="#475569" rx="2"/>
                    </g>
                </svg>
            </div>

            <div class="rk-param-data">
                <div class="rk-param-grid" id="rk-data-old" style="display: none;">
                    <div class="rk-param-box">
                        <div class="rk-param-label">Gruz i Pył</div>
                        <div class="rk-param-value alert">~150 kg/m²</div>
                    </div>
                    <div class="rk-param-box">
                        <div class="rk-param-label">Bezwładność po wylaniu</div>
                        <div class="rk-param-value alert">> 4 godziny</div>
                    </div>
                    <div class="rk-param-box">
                        <div class="rk-param-label">Wysokość posadzki</div>
                        <div class="rk-param-value alert">+ 65 mm</div>
                    </div>
                    <div class="rk-param-box">
                        <div class="rk-param-label">Ryzyko inwestycyjne</div>
                        <div class="rk-param-value alert">Wysokie</div>
                    </div>
                    <div class="rk-sim-desc">
                        Decyzja o <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/" class="rk-intro-link">rozkuwaniu starych wylewek</a> wiąże się z ogromnym nakładem pracy, potężną ilością gruzu i często nieoczekiwanymi kosztami po zerwaniu podłoża (np. uszkodzeniem rur kanalizacyjnych).
                    </div>
                </div>

                <div class="rk-param-grid" id="rk-data-new">
                    <div class="rk-param-box">
                        <div class="rk-param-label">Gruz i Pył</div>
                        <div class="rk-param-value success">Brak (Odciąg)</div>
                    </div>
                    <div class="rk-param-box">
                        <div class="rk-param-label">Czas stabilizacji ciepła</div>
                        <div class="rk-param-value success">< 45 minut</div>
                    </div>
                    <div class="rk-param-box">
                        <div class="rk-param-label">Podniesienie podłogi</div>
                        <div class="rk-param-value success">0 mm</div>
                    </div>
                    <div class="rk-param-box">
                        <div class="rk-param-label">Wydajność dla Pompy Ciepła</div>
                        <div class="rk-param-value success">Maksymalna</div>
                    </div>
                    <div class="rk-sim-desc">
                        Kanały nacinane są tarczą diamentową z odsysaniem urobku. Cienkowarstwowe przykrycie rury (<a href="https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/" class="rk-intro-link">drastyczny spadek bezwładności</a>) sprawia, że podłoga reaguje na sygnał z termostatu błyskawicznie, jak w systemach lekkich suchych.
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
// 1. Zabezpieczenie przed kradzieżą (bez H2/H3 w alercie)
document.addEventListener('DOMContentLoaded', function() {
    var loc = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (allowedDomains.indexOf(loc) === -1) {
        var wrap = document.getElementById('rk-tech-compare-app');
        if (wrap) {
            wrap.innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#f43f5e; border-radius:20px; border: 2px solid #f43f5e; font-weight:800; font-family:sans-serif;">Wykryto naruszenie licencji. Kod udostępniony wyłącznie dla domeny projekt-ogrzewania.pl.</div>';
        }
    }
});

// 2. Logika przełączania symulatora
function rkSwitchTech(mode) {
    // Buttons
    var btns = document.querySelectorAll('.rk-sim-btn');
    btns.forEach(function(btn) { btn.classList.remove('active'); });
    document.querySelector('.rk-sim-btn[data-mode="' + mode + '"]').classList.add('active');

    // SVG
    document.getElementById('rk-svg-old').classList.add('hidden');
    document.getElementById('rk-svg-new').classList.add('hidden');
    
    // Data Grids
    document.getElementById('rk-data-old').style.display = 'none';
    document.getElementById('rk-data-new').style.display = 'none';

    // Activate selected
    if (mode === 'old') {
        document.getElementById('rk-svg-old').classList.remove('hidden');
        document.getElementById('rk-data-old').style.display = 'grid';
    } else {
        // Mały delay na reset animacji rysowania rury (stroke-dashoffset)
        var newSvg = document.getElementById('rk-svg-new');
        newSvg.classList.remove('hidden');
        var line = newSvg.querySelector('.anim-cut-line');
        if(line) {
            line.style.transition = 'none';
            line.style.strokeDashoffset = '100';
            setTimeout(function() {
                line.style.transition = 'stroke-dashoffset 2s ease-out';
                line.style.strokeDashoffset = '0';
            }, 50);
        }
        document.getElementById('rk-data-new').style.display = 'grid';
    }
}
</script>



<style>
:root {
    --rk-diag-dark: #111827;
    --rk-diag-card: #ffffff;
    --rk-diag-brand: #3b82f6; /* Inżynierski niebieski */
    --rk-diag-success: #10b981; /* Bezpieczna wylewka */
    --rk-diag-warning: #f59e0b; /* Wylewka na styk */
    --rk-diag-danger: #ef4444; /* Krytycznie cienka */
    --rk-diag-bg: #f3f4f6;
    --rk-diag-text: #374151;
    --rk-diag-border: #e5e7eb;
}

.rk-diag-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-diag-card);
    border-radius: 20px;
    box-shadow: 0 15px 35px -5px rgba(17, 24, 39, 0.1);
    border: 1px solid rgba(59, 130, 246, 0.2);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-diag-header {
    background: var(--rk-diag-dark);
    background-image: radial-gradient(circle at top right, #1f2937 0%, transparent 50%);
    padding: 40px 50px 30px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-diag-brand);
}

.rk-diag-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: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 20px;
    border: 1px solid rgba(147, 197, 253, 0.2);
}

.rk-diag-title {
    font-size: 26px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 15px 0;
}

.rk-diag-title span { color: var(--rk-diag-brand); }

.rk-diag-intro {
    font-size: 15px;
    line-height: 1.8;
    color: #9ca3af;
    margin: 0;
}

.rk-diag-intro strong {
    color: #f3f4f6;
    font-weight: 700;
}

.rk-diag-link {
    color: #60a5fa;
    text-decoration: none;
    border-bottom: 1px dashed #60a5fa;
    transition: all 0.3s;
}

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

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

.rk-diag-sim-wrapper {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 30px;
    background: #ffffff;
    border: 1px solid var(--rk-diag-border);
    border-radius: 16px;
    padding: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
}

/* SVG Wizualizacja */
.rk-diag-visual {
    background: #f8fafc;
    border-radius: 12px;
    padding: 20px;
    border: 2px dashed #cbd5e1;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 220px;
    overflow: hidden;
}

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

/* Elementy SVG z CSS Transitions */
.svg-screed-bottom { transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1); }
.svg-crack { opacity: 0; transition: opacity 0.3s; stroke-dasharray: 50; stroke-dashoffset: 50; }
.svg-blade { animation: spinBladeDiag 1s linear infinite; transform-origin: 50px 30px; transform-box: fill-box; }
.svg-measure-text { font-family: monospace; font-weight: bold; font-size: 12px; transition: fill 0.3s; }
.svg-measure-line { transition: stroke 0.3s; }

@keyframes spinBladeDiag { to { transform: rotate(360deg); } }
@keyframes drawCrack { to { stroke-dashoffset: 0; } }

/* Stany Symulatora (Kontrolowane przez klasę rodzica) */
/* 1. Danger (< 30mm) */
#rk-sim-core.state-danger .svg-screed-bottom { transform: translateY(-20px); }
#rk-sim-core.state-danger .svg-crack { opacity: 1; animation: drawCrack 0.5s 0.6s forwards; }
#rk-sim-core.state-danger .svg-measure-text { fill: var(--rk-diag-danger); }
#rk-sim-core.state-danger .svg-measure-line { stroke: var(--rk-diag-danger); }
#rk-sim-core.state-danger .rk-diag-visual { border-color: var(--rk-diag-danger); background: #fef2f2; }

/* 2. Warning (35mm) */
#rk-sim-core.state-warning .svg-screed-bottom { transform: translateY(-10px); }
#rk-sim-core.state-warning .svg-measure-text { fill: var(--rk-diag-warning); }
#rk-sim-core.state-warning .svg-measure-line { stroke: var(--rk-diag-warning); }
#rk-sim-core.state-warning .rk-diag-visual { border-color: var(--rk-diag-warning); background: #fffbeb; }

/* 3. Success (> 50mm) */
#rk-sim-core.state-success .svg-screed-bottom { transform: translateY(10px); }
#rk-sim-core.state-success .svg-measure-text { fill: var(--rk-diag-success); }
#rk-sim-core.state-success .svg-measure-line { stroke: var(--rk-diag-success); }
#rk-sim-core.state-success .rk-diag-visual { border-color: var(--rk-diag-success); background: #ecfdf5; }

/* Panel Kontrolny */
.rk-diag-controls {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-diag-btn {
    width: 100%;
    padding: 16px 20px;
    border: 2px solid var(--rk-diag-border);
    background: #ffffff;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-diag-text);
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

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

.rk-diag-btn.active[data-state="danger"] { border-color: var(--rk-diag-danger); background: #fef2f2; color: #991b1b; }
.rk-diag-btn.active[data-state="warning"] { border-color: var(--rk-diag-warning); background: #fffbeb; color: #92400e; }
.rk-diag-btn.active[data-state="success"] { border-color: var(--rk-diag-success); background: #ecfdf5; color: #065f46; }

.rk-sim-feedback {
    margin-top: 15px;
    padding: 15px;
    border-radius: 8px;
    font-size: 13px;
    line-height: 1.6;
    display: none;
}

#rk-sim-core.state-danger .feedback-danger { display: block; background: #fee2e2; color: #991b1b; border-left: 4px solid var(--rk-diag-danger); }
#rk-sim-core.state-warning .feedback-warning { display: block; background: #fef3c7; color: #92400e; border-left: 4px solid var(--rk-diag-warning); }
#rk-sim-core.state-success .feedback-success { display: block; background: #d1fae5; color: #065f46; border-left: 4px solid var(--rk-diag-success); }

/* Kafelki Informacyjne */
.rk-diag-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    padding: 0 50px 40px;
}

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

.rk-diag-box h4 {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-diag-dark);
    margin: 0 0 12px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-diag-box h4 svg { color: var(--rk-diag-brand); }
.rk-diag-box p { font-size: 13px; line-height: 1.6; color: #4b5563; margin: 0; }

@media (max-width: 768px) {
    .rk-diag-header, .rk-diag-interactive { padding: 30px 20px; }
    .rk-diag-sim-wrapper { grid-template-columns: 1fr; padding: 20px; }
    .rk-diag-grid { grid-template-columns: 1fr; padding: 0 20px 30px; gap: 15px; }
    .rk-diag-visual { min-height: 180px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#article-wylewka-test",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/"
    },
    "headline": "Czy istniejąca wylewka nadaje się pod frezowanie? Wymagania techniczne",
    "description": "Poznaj inżynieryjne wytyczne dotyczące grubości (min. 35 mm) i klasy betonu (C12/15) dla bezpiecznego frezowania podłogówki w starym domu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.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-17",
    "dateModified": "2026-05-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#dataset-nośność",
    "name": "Wymagania nośności i geometrii jastrychu dla frezowania (PN-EN 13813)",
    "description": "Parametry graniczne określające przydatność istniejącej wylewki betonowej i anhydrytowej pod instalacje płaszczyznowe w technologii bezpyłowej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "minimalna grubość wylewki pod frezowanie",
      "klasa betonu c12/15 pn-en 13813",
      "badanie sklerometryczne młotkiem schmidta",
      "nośność jastrychu frezowanego",
      "odkrywki kontrolne wylewki"
    ],
    "measurementTechnique": "Analiza sklerometryczna wytrzymałości betonu (klasa C12/15) oraz punktowe pomiary geometryczne w celu zagwarantowania 15 mm nienaruszonej warstwy monolitycznej pod wyfrezowanym kanałem.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Grubość krytyczna: Poniżej 30 mm bezwzględny zakaz frezowania.",
        "Grubość normatywna: 35 mm całkowitej grubości, zapewniająca 15 mm buforu bezpieczeństwa nad warstwą chudego betonu lub styropianu."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#webapp-screed-test",
    "name": "Symulator Przekroju i Nośności Wylewki",
    "description": "Interaktywne narzędzie edukacyjne obrazujące ryzyko uszkodzenia i pękania jastrychu w zależności od wyjściowej grubości podłoża podczas cięcia na głębokość 20 mm.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-diag-container" id="rk-screed-check-app">
    <div class="rk-diag-header">
        <div class="rk-diag-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
            Analiza Podłoża
        </div>
        <h2 class="rk-diag-title">Czy istniejąca wylewka nadaje się pod frezowanie?</h2>
        <p class="rk-diag-intro">
            W starym budownictwie wylewka nadaje się pod frezowanie, pod warunkiem że jej <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/" class="rk-diag-link">całkowita grubość wynosi minimum 35 mm</a>, a wytrzymałość na ściskanie odpowiada klasie co najmniej <strong>C12/15 (norma PN-EN 13813)</strong>. Kanały pod rury nacinane są zazwyczaj na 20–22 mm, więc pod dnem musi zostać <strong>minimum 15 mm nienaruszonej warstwy</strong>, by zapobiec pękaniu.
        </p>
    </div>

    <div class="rk-diag-interactive">
        <div id="rk-sim-core" class="rk-diag-sim-wrapper state-success">
            <div class="rk-diag-visual">
                <svg class="rk-diag-svg" viewBox="0 0 100 100">
                    <rect x="10" y="80" width="80" height="20" fill="#d1d5db"/>
                    <path d="M 10 80 L 90 80" stroke="#9ca3af" stroke-width="2" stroke-dasharray="2 2"/>
                    
                    <g class="svg-screed-bottom">
                        <rect x="10" y="30" width="80" height="50" fill="#e5e7eb"/>
                        <path d="M 10 30 L 90 30" stroke="#cbd5e1" stroke-width="2"/>
                        <path d="M 40 30 L 40 50 L 60 50 L 60 30" fill="#f8fafc" stroke="#cbd5e1" stroke-width="2"/>
                        
                        <path class="svg-crack" d="M 42 50 L 38 65 L 45 80 M 58 50 L 62 60 L 55 80" fill="none" stroke="#ef4444" stroke-width="2" stroke-linecap="round"/>
                        
                        <line class="svg-measure-line" x1="65" y1="50" x2="65" y2="80" stroke="#10b981" stroke-width="2" stroke-dasharray="2 2"/>
                        <text class="svg-measure-text" x="70" y="68" fill="#10b981">BUFOR</text>
                    </g>
                    
                    <rect x="10" y="28" width="80" height="2" fill="#9ca3af"/>
                    
                    <g class="svg-blade">
                        <circle cx="50" cy="30" r="18" fill="none" stroke="#374151" stroke-width="4" stroke-dasharray="10 4"/>
                        <circle cx="50" cy="30" r="4" fill="#374151"/>
                    </g>
                </svg>
            </div>

            <div class="rk-diag-controls">
                <h3 style="margin: 0 0 10px; font-size: 15px; color: var(--rk-diag-dark);">Symulacja cięcia (głębokość 20 mm)</h3>
                
                <button class="rk-diag-btn active" data-state="success" onclick="rkSetThickness('success')">
                    Grubość 50+ mm (Optymalna) <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"></polyline></svg>
                </button>
                <button class="rk-diag-btn" data-state="warning" onclick="rkSetThickness('warning')">
                    Grubość ~35 mm (Minimum) <svg width="18" height="18" 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>
                </button>
                <button class="rk-diag-btn" data-state="danger" onclick="rkSetThickness('danger')">
                    Grubość < 30 mm (Krucha) <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
                </button>

                <div class="rk-sim-feedback feedback-success">
                    <strong>Bezpieczny zapas!</strong> Ostrze diamentowe swobodnie nacina beton. Pozostała warstwa (bufor) w pełni chroni ułożoną rurę i zapewnia nośność stropu.
                </div>
                <div class="rk-sim-feedback feedback-warning">
                    <strong>Wymaga ostrożności.</strong> Pozostaje minimalny bufor 15 mm. Należy bezwzględnie sprawdzić, czy pod wylewką nie ma pustek lub luźnego piasku.
                </div>
                <div class="rk-sim-feedback feedback-danger">
                    <strong>Ryzyko zniszczenia!</strong> Frezarka przebija wylewkę na wylot lub uszkadza folię. Brak bufora nośnego powoduje zapadanie się rur i łamanie jastrychu pod ciężarem mebli.
                </div>
            </div>
        </div>
    </div>

    <div class="rk-diag-grid">
        <div class="rk-diag-box">
            <h4><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="2" width="20" height="20" rx="2" ry="2"></rect><line x1="8" y1="2" x2="8" y2="22"></line><line x1="16" y1="2" x2="16" y2="22"></line></svg> Młotek Schmidta</h4>
            <p>
                Weryfikacja przydatności podłoża powinna być przeprowadzona za pomocą sklerometru. Rozwarstwiony lub kruchy jastrych dyskwalifikuje obiekt z frezowania do czasu iniekcji żywicami.
            </p>
        </div>
        <div class="rk-diag-box">
            <h4><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg> Odkrywki kontrolne</h4>
            <p>
                Starsze budynki mają nierówną grubość posadzek. Odkrywki należy wykonywać w strefach brzegowych i środkowych. Natrafienie maszyny na piasek powoduje wstrzymanie prac.
            </p>
        </div>
        <div class="rk-diag-box">
            <h4><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polygon points="7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2"></polygon><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg> Zbrojenie Teriva</h4>
            <p>
                Nacięcie cienkiej siatki przeciwskurczowej (do 3 mm) nie jest destrukcyjne. Jednak <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/" style="color:var(--rk-diag-brand); font-weight:700;">błędem wykonawczym</a> jest cięcie prętów konstrukcyjnych w stropach gęstożebrowych.
            </p>
        </div>
    </div>
</div>

<script>
// 1. Zabezpieczenie na poziomie domeny (Bez elementów H2/H3 w Alercie)
document.addEventListener('DOMContentLoaded', function() {
    var h = window.location.hostname;
    var a = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (a.indexOf(h) === -1) {
        var box = document.getElementById('rk-screed-check-app');
        if (box) {
            box.innerHTML = '<div style="padding:40px; text-align:center; background:#111827; color:#ef4444; border-radius:20px; border:2px solid #ef4444; font-family:sans-serif;"><strong>Błąd weryfikacji.</strong> Skrypt symulatora przypisany jest wyłącznie do autoryzowanej domeny projekt-ogrzewania.pl.</div>';
        }
    }
});

// 2. Logika przełączania symulatora
function rkSetThickness(stateClass) {
    var core = document.getElementById('rk-sim-core');
    
    // Reset klas głównych
    core.classList.remove('state-success', 'state-warning', 'state-danger');
    
    // Dodaj nową klasę do wrappera (steruje to całym CSSem, SVG i komunikatami)
    core.classList.add('state-' + stateClass);

    // Zmiana aktywnych przycisków
    var btns = document.querySelectorAll('.rk-diag-btn');
    btns.forEach(function(btn) { btn.classList.remove('active'); });
    document.querySelector('.rk-diag-btn[data-state="' + stateClass + '"]').classList.add('active');
}
</script>



<style>
:root {
    --rk-price-dark: #064e3b; /* Głęboka zieleń budżetowa */
    --rk-price-brand: #10b981; /* Szmaragd */
    --rk-price-accent: #b45309; /* Ciepłe złoto / miedź instalacyjna */
    --rk-price-bg: #f8fafc;
    --rk-price-card: #ffffff;
    --rk-price-text: #334155;
    --rk-price-border: #e2e8f0;
}

.rk-price-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-price-card);
    border-radius: 20px;
    box-shadow: 0 15px 35px -10px rgba(6, 78, 59, 0.15);
    border: 1px solid rgba(16, 185, 129, 0.2);
    overflow: hidden;
}

/* Nagłówek sekcji */
.rk-price-header {
    background: linear-gradient(135deg, var(--rk-price-dark) 0%, #022c22 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
}

.rk-price-header::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: linear-gradient(90deg, var(--rk-price-brand) 0%, var(--rk-price-accent) 100%);
}

.rk-price-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(16, 185, 129, 0.2);
    color: #a7f3d0;
    padding: 6px 16px;
    border-radius: 99px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 25px;
    border: 1px solid rgba(167, 243, 208, 0.3);
}

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

.rk-price-intro {
    font-size: 16px;
    line-height: 1.8;
    color: #d1fae5;
    margin: 0;
}

.rk-price-intro strong {
    color: #ffffff;
}

.rk-price-link {
    color: #34d399;
    text-decoration: none;
    border-bottom: 1px dashed #34d399;
    transition: all 0.3s;
}

.rk-price-link:hover {
    color: #6ee7b7;
    border-bottom-style: solid;
}

/* Część Interaktywna - Suwak i Kalkulator */
.rk-price-interactive {
    padding: 40px 50px;
    background: var(--rk-price-bg);
}

.rk-calc-box {
    background: #ffffff;
    border: 1px solid var(--rk-price-border);
    border-radius: 16px;
    padding: 30px;
    margin-bottom: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

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

.rk-slider-label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-price-dark);
    margin-bottom: 15px;
}

.rk-slider-label span {
    font-size: 24px;
    color: var(--rk-price-accent);
}

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

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

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

/* Grid Wyników */
.rk-cost-display-grid {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 30px;
    align-items: center;
}

/* SVG Wykres pierścieniowy dynamiczny */
.rk-cost-visual-box {
    position: relative;
    width: 100%;
    height: 220px;
    background: #0f172a;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-chart-svg {
    width: 100%;
    height: 100%;
    max-width: 180px;
}

.rk-chart-circle-bg { fill: none; stroke: #334155; stroke-width: 8; }
.rk-chart-circle-value {
    fill: none;
    stroke: var(--rk-price-brand);
    stroke-width: 8;
    stroke-linecap: round;
    stroke-dasharray: 251.2;
    stroke-dashoffset: 251.2;
    transform: rotate(-90deg);
    transform-origin: center;
    transition: stroke-dashoffset 0.5s ease-out;
}

.rk-chart-center-text {
    position: absolute;
    text-align: center;
    color: #ffffff;
}

.rk-chart-total { font-size: 20px; font-weight: 900; color: #34d399; }
.rk-chart-lbl { font-size: 11px; color: #94a3b8; text-transform: uppercase; }

/* Kafelki składowe kosztów */
.rk-breakdown-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-breakdown-item {
    background: var(--rk-price-bg);
    border: 1px solid var(--rk-price-border);
    padding: 15px 20px;
    border-radius: 10px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rk-item-title { font-size: 13px; color: var(--rk-price-text); font-weight: 600; }
.rk-item-value { font-size: 15px; color: var(--rk-price-dark); font-weight: 800; }

/* Porównanie metod na dole na mobile jedna pod drugą */
.rk-compare-box {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.rk-compare-card {
    background: #ffffff;
    border: 1px solid var(--rk-price-border);
    border-radius: 12px;
    padding: 25px;
    position: relative;
}

.rk-compare-card.pro-method { border-left: 4px solid var(--rk-price-brand); }
.rk-compare-card.old-method { border-left: 4px solid #ef4444; }

.rk-comp-h { font-size: 16px; font-weight: 800; color: var(--rk-price-dark); margin: 0 0 10px 0; }
.rk-comp-p { font-size: 13px; line-height: 1.6; color: #64748b; margin: 0; }

@media (max-width: 768px) {
    .rk-price-header, .rk-price-interactive { padding: 30px 25px; }
    .rk-cost-display-grid { grid-template-columns: 1fr; }
    .rk-breakdown-list { grid-template-columns: 1fr; }
    .rk-compare-box { grid-template-columns: 1fr; gap: 15px; }
    .rk-price-title { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#article-koszty",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/"
    },
    "headline": "Koszty frezowania ogrzewania podłogowego w starym domu – Cennik 2026",
    "description": "Szczegółowa analiza budżetowa modernizacji instalacji. Sprawdź cennik robocizny, materiałów (PEX 14mm) oraz mas cementowych C2TE dla powierzchni 100 m².",
    "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-17",
    "dateModified": "2026-05-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#dataset-koszty",
    "name": "Zestawienie kosztów składowych modernizacji instalacji płaszczyznowej",
    "description": "Dane finansowo-techniczne kosztów robocizny, materiałów instalacyjnych i próby szczelności dla powierzchni bazowej 100 m² netto.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "cena frezowania podłogówki za m²",
      "koszt rury pex pert 14mm",
      "masa polimerowo cementowa c2te cena",
      "próba ciśnieniowa ogrzewania koszt",
      "koszt modernizacji instalacji grzewczej"
    ],
    "measurementTechnique": "Kalkulacja rynkowa nakładów rzeczowo-finansowych na bazie standardów wykonawczych normy PN-EN 1264-4 dla systemów cienkowarstwowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Frezowanie i rury: Szacunkowo od 120 PLN do 180 PLN za m² netto.",
        "Materiały dodatkowe: Wymóg stosowania mas klasy C2TE o wysokiej przewodności cieplnej."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#webapp-kalkulator",
    "name": "Dynamiczny Kalkulator Budżetu Frezowania",
    "description": "Narzędzie matematyczne automatycznie obliczające wydatki na bazie metrażu z uwzględnieniem podziału na rury, robociznę, rozdzielacze i masę zalewową.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-price-container" id="rk-cost-analysis-app">
    <div class="rk-price-header">
        <div class="rk-price-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="1" x2="12" y2="23"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Analiza Budżetu
        </div>
        <h2 class="rk-price-title">Ile kosztuje frezowanie ogrzewania podłogowego w starym domu za m²?</h2>
        <p class="rk-price-intro">
            Średni koszt wykonania frezowania ogrzewania podłogowego w starym domu wynosi od <strong>120 PLN do 180 PLN za m² netto</strong> za samą usługę nacinania kanałów wraz z dostawą i montażem rury oraz rozdzielacza. Przyjmując kompleksową modernizację powierzchni wynoszącej dokładnie <strong>100 m²</strong>, całkowity budżet inwestycji, uwzględniający chemię montażową, <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/" class="rk-price-link">próby szczelności według normy PN-EN 1264-4</a> oraz podłączenie pętli do szafki rozdzielaczowej, zamyka się w przedziale <strong>16 000 PLN – 22 000 PLN</strong>.
        </p>
    </div>

    <div class="rk-price-interactive">
        <div class="rk-calc-box">
            <div class="rk-slider-group">
                <label class="rk-slider-label">
                    Wybierz powierzchnię modernizacji:
                    <span id="rk-area-val">100 m²</span>
                </label>
                <input type="range" min="30" max="200" value="100" class="rk-range-input" id="rkAreaRange" oninput="rkUpdateCosts(this.value)">
            </div>

            <div class="rk-cost-display-grid">
                <div class="rk-cost-visual-box">
                    <svg class="rk-chart-svg" viewBox="0 0 100 100">
                        <circle class="rk-chart-circle-bg" cx="50" cy="50" r="40"/>
                        <circle class="rk-chart-circle-value" id="rkChartCircle" cx="50" cy="50" r="40"/>
                    </svg>
                    <div class="rk-chart-center-text">
                        <div class="rk-chart-total" id="rk-total-price">19 000 zł</div>
                        <div class="rk-chart-lbl">Suma Netto</div>
                    </div>
                </div>

                <div class="rk-breakdown-list">
                    <div class="rk-breakdown-item">
                        <span class="rk-item-title">Frezowanie linii i łuków</span>
                        <span class="rk-item-value" id="cost-frez">6 000 zł</span>
                    </div>
                    <div class="rk-breakdown-item">
                        <span class="rk-item-title">Rura 5-warstwowa 14x2mm</span>
                        <span class="rk-item-value" id="cost-rura">3 000 zł</span>
                    </div>
                    <div class="rk-breakdown-item">
                        <span class="rk-item-title">Rozdzielacz z rotametrami</span>
                        <span class="rk-item-value" id="cost-rozdz">2 150 zł</span>
                    </div>
                    <div class="rk-breakdown-item">
                        <span class="rk-item-title">Masa naprawcza C2TE</span>
                        <span class="rk-item-value" id="cost-masa">1 850 zł</span>
                    </div>
                    <div class="rk-breakdown-item" style="grid-column: 1 / -1;">
                        <span class="rk-item-title">Montaż i próba wodna (0,6 MPa)</span>
                        <span class="rk-item-value" id="cost-robota">6 000 zł</span>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-compare-box">
            <div class="rk-compare-card pro-method">
                <h4 class="rk-comp-h">Technologia frezowania jastrychu</h4>
                <p class="rk-comp-p">
                    Wylewka o grubości min. 35 mm z betonu klasy C12/15 pozwala zaoszczędzić około <strong>40% nakładów finansowych</strong>. Czas realizacji skraca się do zaledwie 3 dni roboczych, zachowując nienaruszone poziomy progów i drzwi.
                </p>
            </div>
            <div class="rk-compare-card old-method">
                <h4 class="rk-comp-h">Tradycyjna metoda &#8222;Mokra&#8221;</h4>
                <p class="rk-comp-p">
                    Skuwanie betonu, wywóz ton gruzu, nowy <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/" class="rk-price-link">styropian 100 mm</a> oraz wylewanie nowego jastrychu generuje koszty rzędu 220–310 PLN/m² (bez rur i rozdzielacza) oraz wyłącza dom z użytku na 4 tygodnie.
                </p>
            </div>
        </div>
    </div>
</div>

<script>
// 1. Zabezpieczenie przed nieautoryzowanym użyciem (bez znaczników nagłówkowych)
document.addEventListener('DOMContentLoaded', function() {
    var domainName = window.location.hostname;
    var validDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (validDomains.indexOf(domainName) === -1) {
        var el = document.getElementById('rk-cost-analysis-app');
        if (el) {
            el.innerHTML = '<div style="padding:40px; text-align:center; background:#022c22; color:#ef4444; border-radius:20px; border:2px solid #ef4444; font-family:sans-serif;"><strong>Licencja wygasła.</strong> Ten komponent finansowy jest własnością chronioną serwisu Projekt-Ogrzewania.pl.</div>';
        }
    }
    // Inicjalizacja koła na starcie
    rkUpdateCosts(100);
});

// 2. Logika dynamicznego przeliczania kosztów w czasie rzeczywistym
function rkUpdateCosts(area) {
    area = parseInt(area);
    document.getElementById('rk-area-val').innerText = area + ' m²';

    // Przeliczniki bazowe na bazie tekstu inżynierskiego
    var frez = Math.round(area * 60); 
    var rura = Math.round(area * 30);
    var rozdz = Math.round(1800 + (area * 3.5)); // Skalowanie wielkości rozdzielacza
    var masa = Math.round(area * 18.5);
    var robota = Math.round(area * 37.5 + 2250);

    var total = frez + rura + rozdz + masa + robota;

    // Aktualizacja pól tekstowych
    document.getElementById('cost-frez').innerText = frez.toLocaleString('pl-PL') + ' zł';
    document.getElementById('cost-rura').innerText = rura.toLocaleString('pl-PL') + ' zł';
    document.getElementById('cost-rozdz').innerText = rozdz.toLocaleString('pl-PL') + ' zł';
    document.getElementById('cost-masa').innerText = masa.toLocaleString('pl-PL') + ' zł';
    document.getElementById('cost-robota').innerText = robota.toLocaleString('pl-PL') + ' zł';
    document.getElementById('rk-total-price').innerText = total.toLocaleString('pl-PL') + ' zł';

    // Aktualizacja animacji okręgu SVG (Obwód wynosi 251.2)
    var circle = document.getElementById('rkChartCircle');
    var maxTotal = 40000; // Punkt odniesienia dla 100% obwodu
    var percentage = total / maxTotal;
    if(percentage > 1) percentage = 1;
    var offset = 251.2 - (percentage * 251.2);
    circle.style.strokeDashoffset = offset;
}
</script>



<style>
:root {
    --rk-hydro-dark: #1e1b4b; /* Głębokie indygo */
    --rk-hydro-brand: #3b82f6; /* Wodny błękit */
    --rk-hydro-brand-light: #dbeafe;
    --rk-hydro-accent: #f97316; /* Ostrzegawczy pomarańcz */
    --rk-hydro-success: #10b981; /* Szmaragd */
    --rk-hydro-bg: #f8fafc;
    --rk-hydro-card: #ffffff;
    --rk-hydro-text: #334155;
    --rk-hydro-border: #e2e8f0;
}

.rk-hydro-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-hydro-card);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(30, 27, 75, 0.15);
    border: 1px solid rgba(59, 130, 246, 0.2);
    overflow: hidden;
}

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

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

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

.rk-hydro-title span { color: #60a5fa; }

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

.rk-hydro-link {
    color: #93c5fd;
    text-decoration: none;
    border-bottom: 1px dashed #93c5fd;
    transition: color 0.3s, border-color 0.3s;
}

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

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

.rk-hydro-sim-layout {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 30px;
    background: #ffffff;
    border: 1px solid var(--rk-hydro-border);
    border-radius: 16px;
    padding: 10px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

/* Przełączniki (Toggle) */
.rk-hydro-controls {
    display: flex;
    gap: 10px;
    background: var(--rk-hydro-bg);
    padding: 10px;
    border-radius: 12px 12px 0 0;
    border-bottom: 1px solid var(--rk-hydro-border);
}

.rk-hydro-btn {
    flex: 1;
    padding: 14px 20px;
    border: 2px solid transparent;
    background: #ffffff;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-hydro-text);
    cursor: pointer;
    transition: all 0.3s;
    text-align: center;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

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

.rk-hydro-btn.active[data-pipe="14"] {
    background: var(--rk-hydro-brand-light);
    border-color: var(--rk-hydro-brand);
    color: #1e3a8a;
}

.rk-hydro-btn.active[data-pipe="16"] {
    background: #ffedd5;
    border-color: var(--rk-hydro-accent);
    color: #7c2d12;
}

/* Lewa Strona: Dane i Wzory */
.rk-hydro-data-panel {
    padding: 20px;
}

.rk-math-box {
    background: #f8fafc;
    border-left: 4px solid var(--rk-hydro-brand);
    padding: 15px 20px;
    border-radius: 0 8px 8px 0;
    margin-bottom: 25px;
    font-family: monospace;
    font-size: 14px;
    color: #334155;
    line-height: 1.6;
}

.rk-math-box strong { color: var(--rk-hydro-dark); font-size: 15px; }

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

.rk-data-card {
    background: #ffffff;
    border: 1px solid var(--rk-hydro-border);
    padding: 15px;
    border-radius: 10px;
    transition: all 0.3s;
}

.rk-data-lbl { font-size: 12px; color: #64748b; font-weight: 700; text-transform: uppercase; margin-bottom: 5px; }
.rk-data-val { font-size: 20px; font-weight: 900; color: var(--rk-hydro-dark); }
.rk-data-val span { font-size: 14px; font-weight: 600; color: #94a3b8; }

/* Dynamiczne kolory w zależności od stanu */
#rk-sim-app.state-16 .rk-math-box { border-color: var(--rk-hydro-accent); }
#rk-sim-app.state-16 .val-alert { color: var(--rk-hydro-accent); }
#rk-sim-app.state-14 .val-success { color: var(--rk-hydro-success); }

/* Prawa Strona: SVG Wizualizacja */
.rk-hydro-visual {
    background: var(--rk-hydro-dark);
    border-radius: 12px;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 250px;
}

.rk-hydro-svg { width: 100%; height: 100%; max-width: 250px; }

/* Elementy SVG z CSS Transitions */
.svg-pipe { transition: r 0.4s cubic-bezier(0.4, 0, 0.2, 1); }
.svg-groove { transition: d 0.4s cubic-bezier(0.4, 0, 0.2, 1); }
.svg-crack { opacity: 0; stroke-dasharray: 40; stroke-dashoffset: 40; transition: opacity 0.3s; }
.svg-water { transform-origin: center; animation: pulseWater 2s infinite alternate; }
.svg-heat-wave { stroke-dasharray: 8 8; animation: heatRise 1.5s linear infinite; opacity: 0; transition: opacity 0.3s; }

@keyframes pulseWater { 0% { fill: #3b82f6; } 100% { fill: #60a5fa; } }
@keyframes heatRise { to { stroke-dashoffset: -16; } }

/* Stan 14mm */
#rk-sim-app.state-14 .svg-pipe { r: 14; }
#rk-sim-app.state-14 .svg-groove { d: path("M 20 40 L 20 65 L 80 65 L 80 40"); }
#rk-sim-app.state-14 .svg-heat-wave { opacity: 1; stroke: #ef4444; }

/* Stan 16mm (Ryzyko) */
#rk-sim-app.state-16 .svg-pipe { r: 18; }
#rk-sim-app.state-16 .svg-groove { d: path("M 15 40 L 15 75 L 85 75 L 85 40"); }
#rk-sim-app.state-16 .svg-crack { opacity: 1; animation: drawCrackHydro 0.5s 0.3s forwards; }
#rk-sim-app.state-16 .svg-heat-wave { opacity: 0.3; stroke: #f97316; animation-duration: 4s; }

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

/* Informacje pod spodem */
.rk-hydro-footer-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    padding: 0 50px 40px;
}

.rk-hydro-info-card {
    background: #ffffff;
    border: 1px solid var(--rk-hydro-border);
    padding: 20px;
    border-radius: 16px;
}

.rk-hydro-info-card h4 {
    font-size: 15px;
    font-weight: 800;
    margin: 0 0 10px 0;
    color: var(--rk-hydro-dark);
}

.rk-hydro-info-card p {
    font-size: 13px;
    line-height: 1.6;
    color: #475569;
    margin: 0;
}

@media (max-width: 768px) {
    .rk-hydro-header, .rk-hydro-interactive { padding: 30px 20px; }
    .rk-hydro-sim-layout { grid-template-columns: 1fr; }
    .rk-hydro-controls { flex-direction: column; }
    .rk-data-grid { grid-template-columns: 1fr; }
    .rk-hydro-footer-grid { grid-template-columns: 1fr; padding: 0 20px 30px; }
    .rk-hydro-title { font-size: 24px; }
    .rk-hydro-visual { min-height: 200px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#article-rury",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/"
    },
    "headline": "Dobór rur i parametrów hydraulicznych przy frezowaniu",
    "description": "Standardem inżynierskim dla frezowania jest rura 14x2 mm. Zapewnia mniejszy zład wody, szybki czas reakcji i chroni cienką wylewkę przed spękaniem.",
    "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-17",
    "dateModified": "2026-05-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#dataset-hydraulika",
    "name": "Analiza parametrów hydraulicznych rur PEX/PERT",
    "description": "Zestawienie pojemności wodnej (zładu instalacji) i wpływu średnicy rury na bezwładność cieplną systemu podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "średnica rury pex frezowanie",
      "rozstaw rur ogrzewanie podłogowe 10 15",
      "bariera antydyfuzyjna evoh din 4726",
      "pojemność wodna zład instalacji",
      "bezwładność cieplna podłogówki"
    ],
    "measurementTechnique": "Obliczenia pojemności na bazie wzoru na objętość walca (V = π · r²) weryfikujące masę czynnika grzewczego dla 100 m².",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Pojemność rury 14x2: 0,078 l/m.b., dająca szybką reakcję w < 45 minut.",
        "Ryzyko rury 16x2: Większy zład i wymóg głębokiej bruzdy (24 mm) grozi pęknięciem wylewki 40 mm."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#webapp-pojemnosc",
    "name": "Symulator Zładu i Przekroju Hydraulicznego",
    "description": "Kalkulator interaktywny porównujący wpływ średnicy rury na objętość wody w pętlach i zagrożenia strukturalne dla jastrychu.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-hydro-container" id="rk-hydro-sim-lock">
    <div class="rk-hydro-header">
        <div class="rk-hydro-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 22a7 7 0 0 0 7-7c0-2-1-3.9-3-5.5s-3.5-4-4-6.5c-.5 2.5-2 4.9-4 6.5C6 11.1 5 13 5 15a7 7 0 0 0 7 7z"></path></svg>
            Parametry Hydrauliczne
        </div>
        <h2 class="rk-hydro-title">Jaki rozstaw rur i średnicę PEX/PERT wybrać przy frezowaniu?</h2>
        <p class="rk-hydro-intro">
            W technologii frezowania jastrychu standardem inżynierskim jest stosowanie <strong>rur o średnicy zewnętrznej 14 mm (14 × 2 mm)</strong>. Układa się je w rozstawie <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/" class="rk-hydro-link">100 mm w strefach brzegowych</a> oraz 150 mm w strefach stałego przebywania ludzi. Zastosowanie popularnej rury 16 mm jest ryzykowne, ponieważ wymaga wykonania bruzdy o głębokości aż 24 mm, co przy cienkich starych wylewkach <strong>może doprowadzić do pękania jastrychu</strong>.
        </p>
        <p class="rk-hydro-intro" style="margin:0;">
            Niezależnie od średnicy, rury muszą bezwzględnie posiadać <a href="https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/" class="rk-hydro-link">barierę antydyfuzyjną EVOH (norma DIN 4726)</a> zapobiegającą przenikaniu niszczącego tlenu do instalacji.
        </p>
    </div>

    <div class="rk-hydro-interactive">
        <div id="rk-sim-app" class="rk-hydro-sim-layout state-14">
            
            <div style="display: flex; flex-direction: column;">
                <div class="rk-hydro-controls">
                    <button class="rk-hydro-btn active" data-pipe="14" onclick="rkSwitchPipe('14')">Rura 14x2 mm (Standard)</button>
                    <button class="rk-hydro-btn" data-pipe="16" onclick="rkSwitchPipe('16')">Rura 16x2 mm (Ryzyko)</button>
                </div>

                <div class="rk-hydro-data-panel">
                    <div class="rk-math-box" id="rk-math-content">
                        <strong>Obliczenie zładu (14 mm):</strong><br>
                        Średnica wew. (d_i) = 10 mm = 0,01 m.<br>
                        V = π · (d_i / 2)²<br>
                        V = 3,14159 · (0,005 m)²<br>
                        V = <strong>0,07854 l/m.b.</strong>
                    </div>

                    <div class="rk-data-grid">
                        <div class="rk-data-card">
                            <div class="rk-data-lbl">Zład wody (100 m²)</div>
                            <div class="rk-data-val" id="rk-val-vol">52,38 <span>litrów</span></div>
                        </div>
                        <div class="rk-data-card">
                            <div class="rk-data-lbl">Reakcja (Bezwładność)</div>
                            <div class="rk-data-val val-success" id="rk-val-time">< 45 <span>minut</span></div>
                        </div>
                        <div class="rk-data-card">
                            <div class="rk-data-lbl">Szerokość bruzdy</div>
                            <div class="rk-data-val" id="rk-val-groove">16 <span>mm</span></div>
                        </div>
                        <div class="rk-data-card">
                            <div class="rk-data-lbl">Głębokość bruzdy</div>
                            <div class="rk-data-val" id="rk-val-depth">20-22 <span>mm</span></div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-hydro-visual">
                <svg class="rk-hydro-svg" viewBox="0 0 100 100">
                    <rect x="0" y="40" width="100" height="60" fill="#334155"/>
                    <path d="M 0 40 L 100 40" stroke="#475569" stroke-width="2"/>
                    
                    <path class="svg-groove" fill="#0f172a" stroke="#475569" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
                    
                    <circle class="svg-pipe" cx="50" cy="50" fill="none" stroke="#e2e8f0" stroke-width="4"/>
                    <circle class="svg-pipe svg-water" cx="50" cy="50"/>

                    <path class="svg-heat-wave" d="M 35 25 Q 40 10 35 0 M 50 30 L 50 0 M 65 25 Q 60 10 65 0" fill="none" stroke-width="3" stroke-linecap="round"/>

                    <path class="svg-crack" d="M 45 75 L 40 85 L 50 100" fill="none" stroke="#f97316" stroke-width="2" stroke-linecap="round"/>
                </svg>
            </div>
        </div>
    </div>

    <div class="rk-hydro-footer-grid">
        <div class="rk-hydro-info-card">
            <h4><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--rk-hydro-brand)" stroke-width="3" style="margin-right:5px; vertical-align:middle;"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg> Drastyczna redukcja zładu</h4>
            <p>
                Zastosowanie rury o mniejszej średnicy redukuje ilość wody w układzie o ponad 30%. Oznacza to, że <a href="https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/" style="color:var(--rk-hydro-brand); font-weight:600;">zład instalacji nagrzewa się znacznie szybciej</a>, co pozwala na błyskawiczne wyczucie ciepła pod stopami po uruchomieniu termostatu.
            </p>
        </div>
        <div class="rk-hydro-info-card">
            <h4><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#f97316" stroke-width="3" style="margin-right:5px; vertical-align:middle;"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg> Dlaczego rura 16 mm jest groźna?</h4>
            <p>
                Tradycyjna <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/" style="color:#f97316; font-weight:600;">rura 16 mm</a> wymusza głębsze nacięcia. Przy wylewkach rzędu 40 mm, ostrze może naruszyć izolację lub doprowadzić do przełamania betonu, niszcząc nośność posadzki.
            </p>
        </div>
    </div>
</div>

<script>
// 1. Zabezpieczenie domeny bez H2/H3 w komunikacie o błędzie
document.addEventListener('DOMContentLoaded', function() {
    var checkDomain = window.location.hostname;
    var allowedList = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedList.indexOf(checkDomain) === -1) {
        var app = document.getElementById('rk-hydro-sim-lock');
        if (app) {
            app.innerHTML = '<div style="padding:40px; text-align:center; background:#1e1b4b; color:#ef4444; border-radius:20px; border:2px solid #ef4444; font-family:sans-serif; font-size:16px;"><strong>Odmowa dostępu.</strong> Skrypt symulacyjny jest przypisany wyłącznie do autoryzowanej domeny projekt-ogrzewania.pl.</div>';
        }
    }
});

// 2. Logika przełączania symulatora
function rkSwitchPipe(type) {
    var core = document.getElementById('rk-sim-app');
    
    // Zmiana przycisków
    var btns = document.querySelectorAll('.rk-hydro-btn');
    btns.forEach(function(btn) { btn.classList.remove('active'); });
    document.querySelector('.rk-hydro-btn[data-pipe="' + type + '"]').classList.add('active');

    // Zmiana klas i danych
    if (type === '14') {
        core.className = 'rk-hydro-sim-layout state-14';
        
        document.getElementById('rk-math-content').innerHTML = "<strong>Obliczenie zładu (14 mm):</strong><br>Średnica wew. (d_i) = 10 mm = 0,01 m.<br>V = π · (d_i / 2)²<br>V = 3,14159 · (0,005 m)²<br>V = <strong>0,07854 l/m.b.</strong>";
        document.getElementById('rk-val-vol').innerHTML = "52,38 <span>litrów</span>";
        
        var t = document.getElementById('rk-val-time');
        t.className = 'rk-data-val val-success';
        t.innerHTML = "< 45 <span>minut</span>";
        
        document.getElementById('rk-val-groove').innerHTML = "16 <span>mm</span>";
        document.getElementById('rk-val-depth').innerHTML = "20-22 <span>mm</span>";

    } else {
        core.className = 'rk-hydro-sim-layout state-16';
        
        document.getElementById('rk-math-content').innerHTML = "<strong>Obliczenie zładu (16 mm):</strong><br>Średnica wew. (d_i) = 12 mm = 0,012 m.<br>V = π · (d_i / 2)²<br>V = 3,14159 · (0,006 m)²<br>V = <strong>0,1130 l/m.b.</strong>";
        document.getElementById('rk-val-vol').innerHTML = "75,40 <span>litrów</span>";
        
        var t = document.getElementById('rk-val-time');
        t.className = 'rk-data-val val-alert';
        t.innerHTML = "3-5 <span>godzin</span>";
        
        document.getElementById('rk-val-groove').innerHTML = "18 <span>mm</span>";
        document.getElementById('rk-val-depth').innerHTML = "24-26 <span>mm</span>";
    }
}
</script>



<style>
:root {
    --rk-therm-dark: #1e293b; /* Głęboki bazalt */
    --rk-therm-brand: #ef4444; /* Termiczna czerwień */
    --rk-therm-brand-light: #fee2e2;
    --rk-therm-shield: #06b6d4; /* Błękit aerożelu */
    --rk-therm-shield-light: #cffafe;
    --rk-therm-warning: #f97316; /* Ostrzegawczy pomarańcz */
    --rk-therm-bg: #f8fafc;
    --rk-therm-card: #ffffff;
    --rk-therm-text: #334155;
    --rk-therm-border: #e2e8f0;
}

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

/* Sekcja Wprowadzająca (Header) */
.rk-therm-header {
    background: linear-gradient(145deg, #0f172a 0%, var(--rk-therm-dark) 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-therm-brand);
}

.rk-therm-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(239, 68, 68, 0.2);
    color: #fca5a5;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 25px;
    border: 1px solid rgba(252, 165, 165, 0.3);
}

.rk-therm-title {
    font-size: 26px;
    font-weight: 900;
    line-height: 1.35;
    margin: 0 0 20px 0;
    color: #ffffff;
}

.rk-therm-paragraph {
    font-size: 15px;
    line-height: 1.8;
    color: #cbd5e1;
    margin: 0 0 15px 0;
}

.rk-therm-paragraph strong {
    color: #ffffff;
    font-weight: 700;
}

.rk-therm-link {
    color: #fca5a5;
    text-decoration: none;
    border-bottom: 1px dashed #fca5a5;
    transition: all 0.3s;
}

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

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

.rk-sim-controls {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 35px;
}

.rk-sim-btn {
    flex: 1;
    max-width: 280px;
    padding: 16px 20px;
    border: 2px solid var(--rk-therm-border);
    background: #ffffff;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-therm-text);
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

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

.rk-sim-btn.active[data-mode="loss"] {
    border-color: var(--rk-therm-brand);
    background: var(--rk-therm-brand-light);
    color: #991b1b;
    box-shadow: 0 10px 20px -5px rgba(239, 68, 68, 0.15);
}

.rk-sim-btn.active[data-mode="shield"] {
    border-color: var(--rk-therm-shield);
    background: var(--rk-therm-shield-light);
    color: #083344;
    box-shadow: 0 10px 20px -5px rgba(6, 182, 212, 0.2);
}

/* Ekran Symulatora (Grid: SVG + Parametry) */
.rk-therm-screen {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    background: #ffffff;
    border: 1px solid var(--rk-therm-border);
    border-radius: 16px;
    padding: 30px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.02);
}

/* Część wizualna (SVG Termowizja) */
.rk-therm-visual {
    background: #0f172a;
    border-radius: 12px;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    height: 100%;
    min-height: 220px;
    border: 2px solid #334155;
}

.rk-svg-thermo {
    width: 100%;
    height: 100%;
    max-width: 250px;
}

/* Animacje SVG */
.anim-heat-pipe { animation: pulseCore 2s infinite alternate; }
.anim-heat-arrow { stroke-dasharray: 10; animation: flowDown 1.5s linear infinite; transition: opacity 0.4s; }
.anim-reflect-arrow { stroke-dasharray: 10; animation: flowUp 1.5s linear infinite; opacity: 0; transition: opacity 0.4s; }
.svg-aerogel-layer { stroke-dasharray: 150; stroke-dashoffset: 150; opacity: 0; transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1); }

@keyframes pulseCore { 0% { fill: #f97316; filter: drop-shadow(0 0 5px #f97316); } 100% { fill: #ef4444; filter: drop-shadow(0 0 15px #ef4444); } }
@keyframes flowDown { to { stroke-dashoffset: -20; } }
@keyframes flowUp { to { stroke-dashoffset: 20; } }

/* Stan 1: Ucieczka w dół (Loss) */
#rk-sim-therm.state-loss .anim-heat-arrow { opacity: 1; stroke: #ef4444; }

/* Stan 2: Aerożel (Shield) */
#rk-sim-therm.state-shield .anim-heat-arrow { opacity: 0.2; stroke: #f59e0b; }
#rk-sim-therm.state-shield .anim-reflect-arrow { opacity: 1; stroke: #06b6d4; }
#rk-sim-therm.state-shield .svg-aerogel-layer { stroke-dashoffset: 0; opacity: 1; filter: drop-shadow(0 0 8px #06b6d4); }

/* Część z parametrami */
.rk-therm-data-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 15px;
    align-content: center;
}

.rk-therm-box {
    background: var(--rk-therm-bg);
    padding: 16px 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-therm-border);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rk-therm-label { font-size: 13px; color: #64748b; font-weight: 700; text-transform: uppercase; }
.rk-therm-val { font-size: 18px; font-weight: 900; color: var(--rk-therm-dark); transition: color 0.3s; }
.rk-therm-val span { font-size: 13px; font-weight: 600; color: #94a3b8; }

#rk-sim-therm.state-loss .val-dynamic { color: var(--rk-therm-brand); }
#rk-sim-therm.state-shield .val-dynamic { color: var(--rk-therm-shield); }

/* Kafelki Informacyjne (Dół) */
.rk-therm-info-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    padding: 0 50px 40px;
}

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

.rk-therm-info-card h4 {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-therm-dark);
    margin: 0 0 12px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-therm-info-card h4 svg { color: var(--rk-therm-warning); }
.rk-therm-info-card p { font-size: 13px; line-height: 1.6; color: #4b5563; margin: 0; }

@media (max-width: 768px) {
    .rk-therm-header, .rk-therm-interactive { padding: 30px 20px; }
    .rk-sim-controls { flex-direction: column; }
    .rk-sim-btn { max-width: 100%; }
    .rk-therm-screen { grid-template-columns: 1fr; }
    .rk-therm-visual { min-height: 180px; }
    .rk-therm-info-grid { grid-template-columns: 1fr; padding: 0 20px 30px; gap: 15px; }
    .rk-therm-title { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#article-izolacja",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/"
    },
    "headline": "Jak rozwiązać problem braku izolacji termicznej podłogi na gruncie przy frezowaniu?",
    "description": "Zastosowanie powłok aerożelowych, mikrosfer szklanych oraz rekuperacji pozwala ograniczyć ucieczkę ciepła w dół do gruntu i ratuje SCOP pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.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-17",
    "dateModified": "2026-05-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#dataset-izolacja",
    "name": "Analiza strat cieplnych i mikroizolacji bruzd frezowanych",
    "description": "Porównanie efektywności energetycznej standardowej wylewki na gruncie z systemem wyposażonym w odbłyśniki aerożelowe.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "mikrosfery szklane podłogówka",
      "powłoka termoizolacyjna aerożel ogrzewanie",
      "straty ciepła do gruntu frezowanie",
      "rekuperacja a podłogówka",
      "spadek scop pompy ciepła"
    ],
    "measurementTechnique": "Obliczenia strat przenikania do gruntu i odbicia podczerwieni wg wytycznych normy PN-EN 1264-4.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stan pierwotny: Strata rzędu 35%-45% w dół, drastyczny spadek SCOP pompy ciepła o 20%.",
        "Stan zoptymalizowany: Zastosowanie powłoki aerożelowej o współczynniku λ = 0,014 W/(m·K) ratuje bilans energetyczny."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#webapp-izolacja",
    "name": "Symulator Strat Ciepła do Gruntu",
    "description": "Narzędzie wizualizujące kierunki przepływu energii cieplnej w systemach bez poziomej izolacji EPS/PIR, obrazujące działanie mikrobarier.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-therm-container" id="rk-therm-guard-lock">
    <div class="rk-therm-header">
        <div class="rk-therm-badge">
            <svg width="14" height="14" 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>
            Termika i Mostki
        </div>
        <h2 class="rk-therm-title">Jak rozwiązać problem braku izolacji termicznej podłogi na gruncie?</h2>
        <p class="rk-therm-paragraph">
            Brak izolacji termicznej pod jastrychem na gruncie w starym domu powoduje <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/" class="rk-therm-link">ucieczkę strumienia ciepła w dół na poziomie 35% - 45%</a>. Stanowi to bezpośrednie naruszenie zapisów <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/" class="rk-therm-link">normy PN-EN 1264-4</a>, która dla podłóg na gruncie wymaga minimalnego oporu cieplnego izolacji o wartości <strong>R = 2,25 m²·K/W</strong>.
        </p>
        <p class="rk-therm-paragraph" style="margin: 0;">
            Jeżeli nie możemy ułożyć płyt EPS100 lub PIR, jedynym inżynierskim ratunkiem ograniczającym straty jest <strong>obniżenie zasilania do max 32°C</strong>, zastosowanie powłok z aerożelu (<strong>λ = 0,014 W/(m·K)</strong>) oraz integracja z systemem mechanicznej <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/" class="rk-therm-link">wentylacji z odzyskiem ciepła (rekuperacją)</a>.
        </p>
    </div>

    <div class="rk-therm-interactive">
        <div class="rk-sim-controls">
            <button class="rk-sim-btn active" data-mode="loss" onclick="rkSwitchTherm('loss')">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg>
                Standard (Ucieczka ciepła w dół)
            </button>
            <button class="rk-sim-btn" data-mode="shield" onclick="rkSwitchTherm('shield')">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                Mikrobariera Aerożelowa + OZE
            </button>
        </div>

        <div id="rk-sim-therm" class="rk-therm-screen state-loss">
            <div class="rk-therm-visual">
                <svg class="rk-svg-thermo" viewBox="0 0 100 100">
                    <rect x="0" y="70" width="100" height="30" fill="#1e293b"/>
                    <path d="M 0 70 L 100 70" stroke="#334155" stroke-width="2" stroke-dasharray="4 4"/>
                    
                    <rect x="0" y="30" width="100" height="40" fill="#334155"/>
                    <path d="M 30 30 L 30 55 L 70 55 L 70 30" fill="#0f172a" stroke="#475569" stroke-width="2"/>
                    
                    <path class="svg-aerogel-layer" d="M 32 30 L 32 53 L 68 53 L 68 30" fill="none" stroke="#06b6d4" stroke-width="4" stroke-linejoin="round"/>

                    <circle cx="50" cy="42" r="10" fill="none" stroke="#f8fafc" stroke-width="2"/>
                    <circle class="anim-heat-pipe" cx="50" cy="42" r="8"/>

                    <path class="anim-heat-arrow" d="M 40 55 L 40 85 M 50 55 L 50 90 M 60 55 L 60 85" fill="none" stroke-width="3" stroke-linecap="round"/>
                    <polygon points="38,82 42,82 40,86" fill="#ef4444" class="anim-heat-arrow" style="stroke:none;"/>
                    <polygon points="48,87 52,87 50,91" fill="#ef4444" class="anim-heat-arrow" style="stroke:none;"/>
                    <polygon points="58,82 62,82 60,86" fill="#ef4444" class="anim-heat-arrow" style="stroke:none;"/>

                    <path class="anim-reflect-arrow" d="M 40 50 Q 30 50 30 20 M 60 50 Q 70 50 70 20 M 50 48 L 50 15" fill="none" stroke-width="3" stroke-linecap="round"/>
                </svg>
            </div>

            <div class="rk-therm-data-grid">
                <div class="rk-therm-box">
                    <span class="rk-therm-label">Straty w dół</span>
                    <span class="rk-therm-val val-dynamic" id="rk-val-loss">45% <span>(Krytyczne)</span></span>
                </div>
                <div class="rk-therm-box">
                    <span class="rk-therm-label">Wpływ na SCOP pompy</span>
                    <span class="rk-therm-val val-dynamic" id="rk-val-scop">- 20% <span>spadku</span></span>
                </div>
                <div class="rk-therm-box">
                    <span class="rk-therm-label">Temp. zasilania</span>
                    <span class="rk-therm-val" id="rk-val-temp">38°C <span>(Wysoka)</span></span>
                </div>
                <div class="rk-therm-box">
                    <span class="rk-therm-label">Lambda izolacji bruzdy</span>
                    <span class="rk-therm-val" id="rk-val-lambda">Brak <span>(Zwykły grunt)</span></span>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-therm-info-grid">
        <div class="rk-therm-info-card">
            <h4><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><path d="M12 8v4l3 3"></path></svg> 1. Grunt o wysokiej penetracji</h4>
            <p>
                Przed zastosowaniem barier odbijających, frezowany kanał musi zostać idealnie odkurzony (odkurzacz klasy M) i zagruntowany. Pył betonowy blokuje adhezję powłok izolacyjnych.
            </p>
        </div>
        <div class="rk-therm-info-card">
            <h4><svg width="20" height="20" 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> 2. Płynny Aerożel lub Mikrosfery</h4>
            <p>
                Natrysk lub malowanie wnętrza rowka płynną powłoką na bazie mikrosfer szklanych (λ = 0,014 W/(m·K)) tworzy lustro odbijające promieniowanie podczerwone (cieplne) ku górze.
            </p>
        </div>
        <div class="rk-therm-info-card">
            <h4><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path></svg> 3. Rekuperacja (Złota zasada)</h4>
            <p>
                Jeśli tracimy ciepło w podłogę, musimy odzyskać je z powietrza. <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/" style="color:var(--rk-therm-warning); font-weight:700;">Wentylacja z odzyskiem</a> drastycznie obniża zapotrzebowanie budynku, rekompensując ucieczkę energii w grunt.
            </p>
        </div>
    </div>
</div>

<script>
// 1. Zabezpieczenie przed nieautoryzowanym użyciem (bez znaczników nagłówkowych)
document.addEventListener('DOMContentLoaded', function() {
    var locHost = window.location.hostname;
    var allowedList = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedList.indexOf(locHost) === -1) {
        var appCont = document.getElementById('rk-therm-guard-lock');
        if (appCont) {
            appCont.innerHTML = '<div style="padding:40px; text-align:center; background:#1e293b; color:#ef4444; border-radius:20px; border:2px solid #ef4444; font-family:sans-serif; font-size:15px;"><strong>Blokada bezpieczeństwa.</strong> Algorytm wizualizacji termicznej przypisany jest tylko do autoryzowanej domeny projekt-ogrzewania.pl.</div>';
        }
    }
});

// 2. Logika przełączania symulatora
function rkSwitchTherm(mode) {
    var screen = document.getElementById('rk-sim-therm');
    
    // Obsługa przycisków
    var btns = document.querySelectorAll('.rk-sim-btn');
    btns.forEach(function(btn) { btn.classList.remove('active'); });
    document.querySelector('.rk-sim-btn[data-mode="' + mode + '"]').classList.add('active');

    // Obsługa logiki widoku i danych
    if (mode === 'loss') {
        screen.className = 'rk-therm-screen state-loss';
        document.getElementById('rk-val-loss').innerHTML = "45% <span>(Krytyczne)</span>";
        document.getElementById('rk-val-scop').innerHTML = "- 20% <span>spadku</span>";
        document.getElementById('rk-val-temp').innerHTML = "38°C <span>(Wysoka)</span>";
        document.getElementById('rk-val-lambda').innerHTML = "Brak <span>(Zwykły grunt)</span>";
    } else {
        screen.className = 'rk-therm-screen state-shield';
        document.getElementById('rk-val-loss').innerHTML = "< 18% <span>(Zredukowane)</span>";
        document.getElementById('rk-val-scop').innerHTML = "Stabilny <span>(<a href='https://projekt-ogrzewania.pl/pompa-ciepla/' style='color:var(--rk-therm-shield); font-weight:700;'>Pompa Ciepła chroniona</a>)</span>";
        document.getElementById('rk-val-temp').innerHTML = "32°C <span>(Zoptymalizowana)</span>";
        document.getElementById('rk-val-lambda').innerHTML = "0,014 W/(m·K) <span>(Aerożel)</span>";
    }
}
</script>



<style>
:root {
    --rk-loop-dark: #0f172a; /* Głęboki grafit */
    --rk-loop-brand: #6366f1; /* Indygo / Fiolet techniczny */
    --rk-loop-brand-light: #e0e7ff;
    --rk-loop-cyan: #06b6d4; /* Cyjan przepływu */
    --rk-loop-danger: #f43f5e; /* Czerwień blokady */
    --rk-loop-success: #10b981; /* Zielony bezpieczny */
    --rk-loop-bg: #f8fafc;
    --rk-loop-card: #ffffff;
    --rk-loop-text: #334155;
    --rk-loop-border: #e2e8f0;
}

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

/* Nagłówek sekcji */
.rk-loop-header {
    background: linear-gradient(135deg, #1e1b4b 0%, var(--rk-loop-dark) 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
}

.rk-loop-header::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: linear-gradient(90deg, var(--rk-loop-brand) 0%, var(--rk-loop-cyan) 100%);
}

.rk-loop-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(99, 102, 241, 0.2);
    color: #c7d2fe;
    padding: 6px 16px;
    border-radius: 99px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 25px;
    border: 1px solid rgba(199, 210, 254, 0.3);
}

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

.rk-loop-intro {
    font-size: 15px;
    line-height: 1.75;
    color: #cbd5e1;
    margin: 0 0 15px 0;
}

.rk-loop-intro strong {
    color: #ffffff;
}

.rk-loop-link {
    color: #a5b4fc;
    text-decoration: none;
    border-bottom: 1px dashed #a5b4fc;
    transition: all 0.3s;
}

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

/* Część Interaktywna - Suwak i Wykresy */
.rk-loop-interactive {
    padding: 40px 50px;
    background: var(--rk-loop-bg);
}

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

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

.rk-loop-slider-label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-loop-dark);
    margin-bottom: 15px;
}

.rk-loop-slider-label span {
    font-size: 24px;
    color: var(--rk-loop-brand);
}

/* Custom Range Input */
.rk-loop-range {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 5px;
    background: #e2e8f0;
    outline: none;
    margin: 0;
}

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

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

/* Układ Wizualizacja + Kafelki */
.rk-loop-display-grid {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 30px;
    align-items: center;
}

/* NOWE SVG: Pętla i Pompa Obiegowa */
.rk-loop-visual-box {
    background: #0f172a;
    border-radius: 12px;
    padding: 15px;
    height: 240px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #334155;
    position: relative;
    overflow: hidden;
}

.rk-hydro-diagram {
    width: 100%;
    height: 100%;
}

/* Animacje i Transformacje dla nowego SVG */
.rk-svg-rotor { transform-origin: 30px 50px; } /* Środek pompy (x:30, y:50) */
.rk-svg-flow-path { stroke-dasharray: 8 8; }
.rk-svg-alert-wave { opacity: 0; transition: opacity 0.3s; transform-origin: 50px 50px; }

@keyframes spinRotorFast { 100% { transform: rotate(360deg); } }
@keyframes spinRotorSlow { 100% { transform: rotate(360deg); } }
@keyframes flowFast { to { stroke-dashoffset: -16; } }
@keyframes flowSlow { to { stroke-dashoffset: -16; } }
@keyframes alertPulse { 0% { opacity: 0.3; transform: scale(0.9); } 100% { opacity: 1; transform: scale(1.1); } }

/* Dynamiczne modyfikowanie CSS przez JS */
.state-safe .rk-svg-rotor { animation: spinRotorFast 1s linear infinite; }
.state-safe .rk-svg-flow-path { animation: flowFast 1s linear infinite; stroke: var(--rk-loop-cyan); }
.state-safe .rk-svg-alert-wave { opacity: 0; animation: none; }

.state-blocked .rk-svg-rotor { animation: spinRotorSlow 3s linear infinite; }
.state-blocked .rk-svg-flow-path { animation: flowSlow 4s linear infinite; stroke: var(--rk-loop-danger); }
.state-blocked .rk-svg-alert-wave { opacity: 1; animation: alertPulse 1.5s infinite alternate; }

/* Kafelki parametrów hydraulicznych */
.rk-loop-param-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-loop-card-stat {
    background: var(--rk-loop-bg);
    border: 1px solid var(--rk-loop-border);
    padding: 15px 20px;
    border-radius: 10px;
}

.rk-stat-lbl { font-size: 11px; color: #64748b; font-weight: 700; text-transform: uppercase; margin-bottom: 5px; }
.rk-stat-val { font-size: 20px; font-weight: 900; color: var(--rk-loop-dark); }
.rk-stat-val span { font-size: 13px; font-weight: 600; color: #94a3b8; }

/* Komunikat Inżynierski */
.rk-loop-feedback {
    grid-column: 1 / -1;
    padding: 15px 20px;
    border-radius: 8px;
    font-size: 13px;
    line-height: 1.6;
    margin-top: 10px;
    font-weight: 500;
}

.rk-loop-feedback.success { background: #d1fae5; color: #065f46; border-left: 4px solid var(--rk-loop-success); }
.rk-loop-feedback.danger { background: #fee2e2; color: #991b1b; border-left: 4px solid var(--rk-loop-danger); }

/* Dolna sekcja obliczeniowa (Kafelki na mobile) */
.rk-loop-footer-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    padding: 30px 50px 40px;
}

.rk-formula-card {
    background: #ffffff;
    border: 1px solid var(--rk-loop-border);
    padding: 20px;
    border-radius: 14px;
}

.rk-formula-card h4 { font-size: 14px; font-weight: 800; color: var(--rk-loop-dark); margin: 0 0 8px 0; }
.rk-formula-card p { font-size: 12px; font-family: monospace; color: #475569; margin: 0; background: var(--rk-loop-bg); padding: 8px 12px; border-radius: 6px; }

@media (max-width: 768px) {
    .rk-loop-header, .rk-loop-interactive { padding: 30px 25px; }
    .rk-loop-display-grid { grid-template-columns: 1fr; }
    .rk-loop-param-grid { grid-template-columns: 1fr; }
    .rk-loop-footer-grid { grid-template-columns: 1fr; padding: 0 20px 30px; gap: 15px; }
    .rk-loop-title { font-size: 24px; }
    .rk-loop-visual-box { height: 180px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#article-dlugosc",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/"
    },
    "headline": "Maksymalna długość pętli ogrzewania podłogowego przy rurach 14 mm",
    "description": "Analiza hydrauliczna dla średnicy 14 mm. Dowiedz się, dlaczego 80 m to nieprzekraczalna granica i jak obliczyć opory liniowe oraz strumień masowy.",
    "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-17",
    "dateModified": "2026-05-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#dataset-hydraulika-14mm",
    "name": "Zależność oporów hydraulicznych i przepływów od długości pętli 14x2mm",
    "description": "Dane fizyczne i hydrauliczne: strumień masowy, prędkość liniowa i strata ciśnienia obliczone dla zasilania pompy ciepła (delta T = 5K, Q = 900W).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna długość pętli podłogówki 14mm",
      "opory hydrauliczne rury pex 14x2",
      "strumień masowy wody bilans cieplny",
      "zamknięcie hydrauliczne pętli grzewczej",
      "regulacja rotometrów rozdzielacza"
    ],
    "measurementTechnique": "Modelowanie hydrauliczne oparte na równaniu Darcy-Weisbacha dla przepływów w rurach gładkich polimerowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Granica bezpieczeństwa: Do 80 metrów bieżących, strata ciśnienia poniżej 20 kPa.",
        "Strefa krytyczna: Powyżej 85 metrów, opory przekraczają 22 kPa, ryzyko braku przepływu czynnika."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#webapp-kalkulator-pętli",
    "name": "Interaktywny Symulator Oporów Pętli 14mm",
    "description": "Aplikacja inżynierska wyliczająca dynamicznie stratę ciśnienia oraz odwzorowująca zjawisko zamknięcia hydraulicznego przy zmianie długości obwodu.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-loop-container" id="rk-loop-length-app">
    <div class="rk-loop-header">
        <div class="rk-loop-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="6" y1="3" x2="6" y2="21"></line><line x1="18" y1="3" x2="18" y2="21"></line><line x1="12" y1="3" x2="12" y2="21"></line></svg>
            Hydraulika Układu
        </div>
        <h2 class="rk-loop-title">Jaka jest maksymalna długość pętli ogrzewania podłogowego przy rurach 14 mm?</h2>
        <p class="rk-loop-intro">
            Maksymalna dopuszczalna długość pojedynczej pętli grzewczej dla rury o średnicy 14 × 2 mm wynosi <strong>80 metrów bieżących</strong> (wliczając odcinki dojściowe do rozdzielacza). Pozwala to na pokrycie maksymalnie 11–12 m² powierzchni pomieszczenia przy <a href="https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/" class="rk-loop-link">rozstawie rur co 150 mm</a>. 
        </p>
        <p class="rk-loop-intro" style="margin: 0;">
            Przekroczenie tej granicy skutkuje gwałtownym, nieliniowym wzrostem oporów hydraulicznych <strong>powyżej wartości 22 kPa</strong>. Przekracza to możliwości regulacyjne standardowych rotometrów i prowadzi do zjawiska <strong>"zamknięcia hydraulicznego" pętli</strong> – woda wybiera drogę o mniejszym oporze w krótszych obwodach, a pomieszczenie pozostaje niedogrzane.
        </p>
    </div>

    <div class="rk-loop-interactive">
        <div class="rk-loop-calc-box">
            <div class="rk-loop-slider-group">
                <label class="rk-loop-slider-label">
                    Zmień długość projektowanej pętli 14 mm:
                    <span id="rk-loop-len-text">80 m</span>
                </label>
                <input type="range" min="40" max="120" value="80" step="5" class="rk-loop-range" id="rkLoopRange" oninput="rkCalcHydraulics(this.value)">
            </div>

            <div class="rk-loop-display-grid">
                
                <div class="rk-loop-visual-box" id="rkSvgStateCtrl">
                    <svg class="rk-hydro-diagram" viewBox="0 0 100 100">
                        <path d="M 30 20 L 70 20 C 81 20 90 29 90 40 L 90 60 C 90 71 81 80 70 80 L 30 80" fill="none" stroke="#1e293b" stroke-width="8" stroke-linecap="round"/>
                        <path class="rk-svg-flow-path" d="M 30 20 L 70 20 C 81 20 90 29 90 40 L 90 60 C 90 71 81 80 70 80 L 30 80" fill="none" stroke-width="4" stroke-linecap="round"/>
                        
                        <line x1="30" y1="20" x2="30" y2="40" stroke="#1e293b" stroke-width="8"/>
                        <line x1="30" y1="60" x2="30" y2="80" stroke="#1e293b" stroke-width="8"/>
                        
                        <circle cx="30" cy="50" r="14" fill="#334155" stroke="#1e293b" stroke-width="4"/>
                        <g class="rk-svg-rotor">
                            <line x1="30" y1="40" x2="30" y2="60" stroke="#94a3b8" stroke-width="3" stroke-linecap="round"/>
                            <line x1="20" y1="50" x2="40" y2="50" stroke="#94a3b8" stroke-width="3" stroke-linecap="round"/>
                            <circle cx="30" cy="50" r="3" fill="#cbd5e1"/>
                        </g>

                        <circle class="rk-svg-alert-wave" cx="70" cy="50" r="12" fill="none" stroke="#f43f5e" stroke-width="3"/>
                        <path class="rk-svg-alert-wave" d="M 64 44 L 76 56 M 76 44 L 64 56" stroke="#f43f5e" stroke-width="3" stroke-linecap="round"/>
                    </svg>
                </div>

                <div class="rk-loop-param-grid">
                    <div class="rk-loop-card-stat">
                        <div class="rk-stat-lbl">Opór hydrauliczny pętli</div>
                        <div class="rk-stat-val" id="val-pressure">19,4 <span>kPa</span></div>
                    </div>
                    <div class="rk-loop-card-stat">
                        <div class="rk-stat-lbl">Przepływ (Rotametr)</div>
                        <div class="rk-stat-val" id="val-flow">2,6 <span>l/min</span></div>
                    </div>
                    <div class="rk-loop-card-stat">
                        <div class="rk-stat-lbl">Prędkość liniowa czynnika</div>
                        <div class="rk-stat-val" id="val-velocity">0,55 <span>m/s</span></div>
                    </div>
                    <div class="rk-loop-card-stat">
                        <div class="rk-stat-lbl">Strumień masowy</div>
                        <div class="rk-stat-val">154,8 <span>kg/h</span></div>
                    </div>

                    <div class="rk-loop-feedback success" id="loop-msg">
                        <strong>Standard Inżynierski spełniony.</strong> Przepływ wody wynosi 0,55 m/s – zapewnia to samoodpowietrzanie pętli (zgodnie z PN-EN 1264) bez generowania szumów i przeciążania pompy obiegowej.
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-loop-footer-grid">
        <div class="rk-formula-card">
            <h4>1. Strumień masowy (m)</h4>
            <p>m = Q / (c_w · ΔT)</p>
        </div>
        <div class="rk-formula-card">
            <h4>2. Przepływ objętościowy (V)</h4>
            <p>V_obj = m / ρ_wody</p>
        </div>
        <div class="rk-formula-card">
            <h4>3. Prędkość liniowa (v)</h4>
            <p>v = V_obj / A_wew</p>
        </div>
    </div>
</div>

<script>
// 1. Zabezpieczenie domeny przed kradzieżą (bez tagów H2/H3 w kodzie błędu)
document.addEventListener('DOMContentLoaded', function() {
    var currentHost = window.location.hostname;
    var allowedHosts = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedHosts.indexOf(currentHost) === -1) {
        var wrapperApp = document.getElementById('rk-loop-length-app');
        if (wrapperApp) {
            wrapperApp.innerHTML = '<div style="padding:40px; text-align:center; background:#1e1b4b; color:#f43f5e; border-radius:20px; border:2px solid #f43f5e; font-family:sans-serif; font-size:15px;"><strong>Błąd autoryzacji kodu.</strong> Panel obliczeń hydraulicznych jest licencjonowany wyłącznie dla witryny Projekt-Ogrzewania.pl.</div>';
        }
    }
    // Uruchomienie kalkulatora na start z wartością normatywną 80m
    rkCalcHydraulics(80);
});

// 2. Inżynierska logika kalkulacji hydraulicznej dla rury 14x2 mm
function rkCalcHydraulics(length) {
    length = parseInt(length);
    document.getElementById('rk-loop-len-text').innerText = length + ' m';

    // Założenia projektowe z tekstu Roberta: Q = 900 W, delta T = 5 K
    // Opory rosną nieliniowo powyżej 80 metrów
    var pressure;
    if (length <= 80) {
        pressure = (length * 0.2425).toFixed(1); // Stały liniowy wzrost do 19.4 kPa
    } else {
        // Gwałtowny nieliniowy skok oporów powyżej normy 80m (zjawisko dławienia przekroju)
        pressure = (19.4 + Math.pow((length - 80), 1.35) * 0.45).toFixed(1);
    }

    // Przepływ i prędkość drastycznie spadają gdy opory blokują pętlę
    var flow, velocity;
    if (length <= 80) {
        flow = "2.6";
        velocity = "0.55";
    } else {
        // Symulacja blokowania hydraulicznego
        var dropFactor = 1 - ((length - 80) * 0.022);
        if(dropFactor < 0.2) dropFactor = 0.2; // Całkowite zdławienie / minimalny przesącz
        flow = (2.6 * dropFactor).toFixed(1);
        velocity = (0.55 * dropFactor).toFixed(2);
    }

    // Aktualizacja pól tekstowych i statystyk
    document.getElementById('val-pressure').innerHTML = pressure + ' <span>kPa</span>';
    document.getElementById('val-flow').innerHTML = flow + ' <span>l/min</span>';
    document.getElementById('val-velocity').innerHTML = velocity + ' <span>m/s</span>';

    // Obsługa stanów SVG
    var svgStateCtrl = document.getElementById('rkSvgStateCtrl');
    var msgBox = document.getElementById('loop-msg');

    if (length <= 80) {
        // Stan Bezpieczny (Safe)
        svgStateCtrl.className = "rk-loop-visual-box state-safe";
        msgBox.className = "rk-loop-feedback success";
        msgBox.innerHTML = "<strong>Standard Inżynierski spełniony.</strong> Przepływ wody wynosi " + velocity + " m/s – zapewnia to prawidłowe samoodpowietrzanie obwodu (zgodnie z PN-EN 1264) bez generowania hałasów.";
    } else {
        // Stan Zablokowany (Blocked)
        svgStateCtrl.className = "rk-loop-visual-box state-blocked";
        msgBox.className = "rk-loop-feedback danger";
        msgBox.innerHTML = "<strong>KRYTYCZNE PRZEKROCZENIE NORMY!</strong> Opory osiągnęły " + pressure + " kPa. Następuje zjawisko <strong>zamknięcia hydraulicznego</strong>. Prędkość spadła do " + velocity + " m/s – pętla zostanie zapowietrzona, a pompa obiegowa nie dogrzeje tego pomieszczenia.";
    }
}
</script>



<style>
:root {
    --rk-floor-dark: #1f2937; /* Grafit inżynieryjny */
    --rk-floor-tile: #0ea5e9; /* Błękit ceramiczny */
    --rk-floor-tile-bg: #e0f2fe;
    --rk-floor-wood: #d97706; /* Ciepły bursztyn/drewno */
    --rk-floor-wood-bg: #fef3c7;
    --rk-floor-danger: #ef4444; /* Czerwień strat */
    --rk-floor-bg: #f8fafc;
    --rk-floor-card: #ffffff;
    --rk-floor-text: #374151;
    --rk-floor-border: #e5e7eb;
}

.rk-floor-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-floor-card);
    border-radius: 20px;
    box-shadow: 0 20px 40px -15px rgba(31, 41, 55, 0.12);
    border: 1px solid var(--rk-floor-border);
    overflow: hidden;
}

/* Nagłówek sekcji */
.rk-floor-header {
    background: linear-gradient(135deg, var(--rk-floor-dark) 0%, #374151 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-floor-tile);
    transition: border-color 0.4s ease;
}

.rk-floor-container.state-wood .rk-floor-header {
    border-color: var(--rk-floor-wood);
}

.rk-floor-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, 0.1);
    color: #e2e8f0;
    padding: 6px 16px;
    border-radius: 99px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 20px;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

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

.rk-floor-intro {
    font-size: 15px;
    line-height: 1.75;
    color: #cbd5e1;
    margin: 0 0 15px 0;
}

.rk-floor-intro strong {
    color: #ffffff;
}

.rk-floor-link {
    color: #93c5fd;
    text-decoration: none;
    border-bottom: 1px dashed #93c5fd;
    transition: all 0.3s;
}

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

/* Część Interaktywna - Suwak i Wykresy */
.rk-floor-interactive {
    padding: 40px 50px;
    background: var(--rk-floor-bg);
}

.rk-floor-controls {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
}

.rk-floor-btn {
    flex: 1;
    padding: 16px 20px;
    border: 2px solid var(--rk-floor-border);
    background: #ffffff;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-floor-text);
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

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

.rk-floor-btn.active[data-type="tile"] {
    border-color: var(--rk-floor-tile);
    background: var(--rk-floor-tile-bg);
    color: #0369a1;
    box-shadow: 0 8px 15px -5px rgba(14, 165, 233, 0.2);
}

.rk-floor-btn.active[data-type="wood"] {
    border-color: var(--rk-floor-wood);
    background: var(--rk-floor-wood-bg);
    color: #92400e;
    box-shadow: 0 8px 15px -5px rgba(217, 119, 6, 0.2);
}

/* Ekran Symulatora (Grid: Lewo animacja, Prawo parametry) */
.rk-floor-screen {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 30px;
    background: #ffffff;
    border: 1px solid var(--rk-floor-border);
    border-radius: 16px;
    padding: 30px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.02);
}

/* Część wizualna (SVG) */
.rk-floor-visual {
    background: var(--rk-floor-dark);
    border-radius: 12px;
    padding: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    height: 100%;
    min-height: 200px;
}

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

/* Elementy SVG z CSS Transitions */
.svg-layer-top { transition: fill 0.4s ease, height 0.4s ease, y 0.4s ease; }
.svg-heat-arrow { stroke-dasharray: 10 10; transition: stroke-dashoffset 0.5s, stroke 0.4s, opacity 0.4s; }
.svg-block-wave { opacity: 0; transform-origin: top center; transition: opacity 0.4s, transform 0.4s; }

@keyframes heatFlowFast { to { stroke-dashoffset: -30; } }
@keyframes heatFlowSlow { to { stroke-dashoffset: -10; } }

/* Stan 1: Płytki (Tile) */
.state-tile .svg-layer-top { fill: #38bdf8; height: 10px; y: 20px; }
.state-tile .svg-heat-arrow { stroke: #ef4444; animation: heatFlowFast 1s linear infinite; opacity: 1; }
.state-tile .svg-block-wave { opacity: 0; transform: scaleY(0.5); }

/* Stan 2: Panele/Drewno (Wood) */
.state-wood .svg-layer-top { fill: #f59e0b; height: 18px; y: 12px; }
.state-wood .svg-heat-arrow { stroke: #f97316; animation: heatFlowSlow 2s linear infinite; opacity: 0.5; }
.state-wood .svg-block-wave { opacity: 1; transform: scaleY(1); fill: #f87171; }

/* Część z parametrami (Grid) */
.rk-floor-param-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-floor-box {
    background: var(--rk-floor-bg);
    padding: 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-floor-border);
    transition: all 0.3s;
}

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

.rk-floor-value {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-floor-dark);
    display: flex;
    align-items: baseline;
    gap: 5px;
}

.rk-floor-value span { font-size: 14px; font-weight: 600; color: #94a3b8; }

.val-dynamic { transition: color 0.3s; }
.state-tile .val-dynamic { color: var(--rk-floor-tile); }
.state-wood .val-dynamic { color: var(--rk-floor-danger); }

/* Podsumowanie/Feedback */
.rk-floor-feedback {
    grid-column: 1 / -1;
    font-size: 14px;
    color: var(--rk-floor-text);
    line-height: 1.6;
    margin-top: 10px;
    padding-top: 20px;
    border-top: 1px solid var(--rk-floor-border);
}

/* Wzory i procedury - dół */
.rk-floor-footer-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    padding: 0 50px 40px;
}

.rk-floor-info-card {
    background: #ffffff;
    border: 1px solid var(--rk-floor-border);
    padding: 25px;
    border-radius: 16px;
}

.rk-floor-info-card h4 {
    font-size: 15px;
    font-weight: 800;
    margin: 0 0 10px 0;
    color: var(--rk-floor-dark);
}

.rk-floor-info-card p {
    font-size: 13px;
    line-height: 1.6;
    color: #475569;
    margin: 0;
}

.rk-math-block {
    background: var(--rk-floor-bg);
    padding: 12px;
    border-radius: 8px;
    font-family: monospace;
    font-size: 13px;
    color: var(--rk-floor-dark);
    margin-top: 10px;
    border-left: 3px solid #64748b;
}

@media (max-width: 768px) {
    .rk-floor-header, .rk-floor-interactive { padding: 30px 20px; }
    .rk-floor-controls { flex-direction: column; }
    .rk-floor-screen { grid-template-columns: 1fr; }
    .rk-floor-visual { min-height: 160px; }
    .rk-floor-param-grid { grid-template-columns: 1fr; }
    .rk-floor-footer-grid { grid-template-columns: 1fr; padding: 0 20px 30px; gap: 15px; }
    .rk-floor-title { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#article-okladziny",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/"
    },
    "headline": "Wpływ okładziny podłogowej na wydajność frezowanej podłogówki",
    "description": "Porównanie oporu cieplnego (gres vs panele) zgodnie z normą PN-EN 1264-3. Jak wybór materiału wpływa na temperaturę zasilania i koszty pracy 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-17",
    "dateModified": "2026-05-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#dataset-opor-cieplny",
    "name": "Tabela oporu cieplnego posadzek i wpływu na zasilanie pompy ciepła",
    "description": "Techniczne zestawienie parametrów przewodzenia dla płytek ceramicznych i paneli laminowanych w układach płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "opór cieplny posadzki r",
      "panele na ogrzewanie podłogowe",
      "gres a podłogówka",
      "spadek temperatury okładziny",
      "norma PN-EN 1264-3"
    ],
    "measurementTechnique": "Obliczenia spadku temperatury ΔT wg prawa Fouriera dla założonej gęstości strumienia cieplnego q = 60 W/m².",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Gres/Ceramika: R = 0,015 m²·K/W. Minimalny opór, spadek temperatury to zaledwie 0,9 K.",
        "Panele podłogowe: R = 0,10 m²·K/W. Znaczny opór izolacyjny, wymuszający podniesienie zasilania o 5,1 K."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#webapp-opor-cieplny",
    "name": "Symulator Strat na Oporze Cieplnym",
    "description": "Interaktywny panel zestawiający różnice termiczne i ekonomiczne pomiędzy zastosowaniem ceramiki a drewna/paneli nad instalacją podłogową.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-floor-container state-tile" id="rk-floor-sim-app">
    <div class="rk-floor-header">
        <div class="rk-floor-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="9" y1="21" x2="9" y2="9"></line></svg>
            Materiały wykończeniowe
        </div>
        <h2 class="rk-floor-title">Jak rodzaj okładziny wpływa na wydajność frezowanej podłogówki?</h2>
        <p class="rk-floor-intro">
            Rodzaj okładziny wierzchniej decyduje o końcowej gęstości strumienia cieplnego. Zgodnie z wytycznymi normy <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/" class="rk-floor-link">PN-EN 1264-3</a>, całkowity <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/" class="rk-floor-link">opór cieplny (R) warstw posadzkowych</a> nad rurami nie może przekraczać <strong>0,15 m²·K/W</strong>. 
        </p>
        <p class="rk-floor-intro" style="margin:0;">
            Wybór między ceramiką a drewnem dramatycznie wpływa na to, czy nasze źródło ciepła będzie pracowało ekonomicznie, czy z wymuszonym, wyższym parametrem zasilania.
        </p>
    </div>

    <div class="rk-floor-interactive">
        <div class="rk-floor-controls">
            <button class="rk-floor-btn active" data-type="tile" onclick="rkSwitchFloor('tile')">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="7" height="7"></rect><rect x="14" y="3" width="7" height="7"></rect><rect x="14" y="14" width="7" height="7"></rect><rect x="3" y="14" width="7" height="7"></rect></svg>
                Gres / Płytki Ceramiczne
            </button>
            <button class="rk-floor-btn" data-type="wood" onclick="rkSwitchFloor('wood')">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="4" y1="21" x2="4" y2="14"></line><line x1="4" y1="10" x2="4" y2="3"></line><line x1="12" y1="21" x2="12" y2="12"></line><line x1="12" y1="8" x2="12" y2="3"></line><line x1="20" y1="21" x2="20" y2="16"></line><line x1="20" y1="12" x2="20" y2="3"></line></svg>
                Panele / Deska Warstwowa
            </button>
        </div>

        <div class="rk-floor-screen">
            <div class="rk-floor-visual">
                <svg class="rk-svg-cross" viewBox="0 0 100 100" preserveAspectRatio="none">
                    <circle cx="50" cy="70" r="10" fill="#cbd5e1" stroke="#334155" stroke-width="2"/>
                    <circle cx="50" cy="70" r="6" fill="#ef4444"/>

                    <path class="svg-block-wave" d="M 20 30 Q 50 40 80 30" fill="none" stroke="#ef4444" stroke-width="4" stroke-linecap="round"/>
                    
                    <path class="svg-heat-arrow" d="M 35 60 L 35 5" fill="none" stroke-width="4" stroke-linecap="round"/>
                    <path class="svg-heat-arrow" d="M 50 55 L 50 0" fill="none" stroke-width="5" stroke-linecap="round"/>
                    <path class="svg-heat-arrow" d="M 65 60 L 65 5" fill="none" stroke-width="4" stroke-linecap="round"/>
                    
                    <rect class="svg-layer-top" x="0" width="100"/>
                    <line x1="0" y1="30" x2="100" y2="30" stroke="#334155" stroke-width="2" stroke-dasharray="4 2"/>
                </svg>
            </div>

            <div class="rk-floor-param-grid">
                <div class="rk-floor-box">
                    <div class="rk-floor-label">Opór cieplny (R)</div>
                    <div class="rk-floor-value val-dynamic" id="rk-val-r">0,015 <span>m²·K/W</span></div>
                </div>
                <div class="rk-floor-box">
                    <div class="rk-floor-label">Spadek temp. warstwy (ΔT)</div>
                    <div class="rk-floor-value val-dynamic" id="rk-val-dt">0,9 <span>K</span></div>
                </div>
                <div class="rk-floor-box">
                    <div class="rk-floor-label">Wydajność (Zasilanie 35°C)</div>
                    <div class="rk-floor-value val-dynamic" id="rk-val-power">85 - 100 <span>W/m²</span></div>
                </div>
                <div class="rk-floor-box">
                    <div class="rk-floor-label">Narzut kosztów prądu (Pompa)</div>
                    <div class="rk-floor-value val-dynamic" id="rk-val-cost">0% <span>(Baza)</span></div>
                </div>

                <div class="rk-floor-feedback" id="rk-floor-msg">
                    <strong>Idealny przesył energii.</strong> Ceramika wykazuje znikomy opór cieplny. Ogrzewanie podłogowe pracuje na minimalnych temperaturach zasilania, co gwarantuje najwyższy możliwy współczynnik COP dla pompy ciepła.
                </div>
            </div>
        </div>
    </div>

    <div class="rk-floor-footer-grid">
        <div class="rk-floor-info-card">
            <h4>Obliczenie wpływu oporu posadzki</h4>
            <p>Załóżmy zapotrzebowanie na poziomie gęstości strumienia <strong>q = 60 W/m²</strong>. Wzór na spadek temperatury na samej warstwie okładziny wyznacza się z prostej zależności:</p>
            <div class="rk-math-block">
                ΔT_okładziny = q · R
            </div>
            <p style="margin-top:10px;">Dla paneli musimy podnieść temperaturę wody zasilającej rozdzielacz o całe <strong>5,1 K</strong> względem układu z gresem, by dostarczyć do pokoju tyle samo ciepła.</p>
        </div>
        <div class="rk-floor-info-card">
            <h4>Wpływ na koszty pompy ciepła</h4>
            <p>
                Każde wymuszone <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/" style="color:var(--rk-floor-dark); font-weight:700;">podniesienie temperatury zasilania o 1°C</a> (aby przebić się przez barierę, jaką stanowią panele) skutkuje spadkiem sprawności sprężarki. W skali całego sezonu grzewczego oznacza to <strong>wzrost zużycia energii elektrycznej o około 2,5% na każdy stopień</strong>. Wybór drewna to ok. 12-15% wyższe rachunki za ogrzewanie.
            </p>
        </div>
    </div>
</div>

<script>
// 1. Zabezpieczenie domeny przed kradzieżą (bez H2/H3 w kodzie błędu)
document.addEventListener('DOMContentLoaded', function() {
    var checkDomain = window.location.hostname;
    var allowedHosts = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedHosts.indexOf(checkDomain) === -1) {
        var wrapperApp = document.getElementById('rk-floor-sim-app');
        if (wrapperApp) {
            wrapperApp.innerHTML = '<div style="padding:40px; text-align:center; background:#1f2937; color:#ef4444; border-radius:20px; border:2px solid #ef4444; font-family:sans-serif; font-size:15px;"><strong>Odmowa dostępu.</strong> Ten symulator jest licencjonowany wyłącznie dla witryny Projekt-Ogrzewania.pl.</div>';
        }
    }
});

// 2. Logika przełączania symulatora
function rkSwitchFloor(type) {
    var container = document.getElementById('rk-floor-sim-app');
    var msgBox = document.getElementById('rk-floor-msg');
    
    // Zmiana przycisków
    var btns = document.querySelectorAll('.rk-floor-btn');
    btns.forEach(function(btn) { btn.classList.remove('active'); });
    document.querySelector('.rk-floor-btn[data-type="' + type + '"]').classList.add('active');

    // Zmiana klas w kontenerze (uruchamia CSS SVG)
    if (type === 'tile') {
        container.className = 'rk-floor-container state-tile';
        
        document.getElementById('rk-val-r').innerHTML = "0,015 <span>m²·K/W</span>";
        document.getElementById('rk-val-dt').innerHTML = "0,9 <span>K</span>";
        document.getElementById('rk-val-power').innerHTML = "85 - 100 <span>W/m²</span>";
        document.getElementById('rk-val-cost').innerHTML = "0% <span>(Baza)</span>";

        msgBox.innerHTML = "<strong>Idealny przesył energii.</strong> Ceramika wykazuje znikomy opór cieplny. Ogrzewanie podłogowe pracuje na minimalnych temperaturach zasilania, co gwarantuje najwyższy możliwy współczynnik COP dla pompy ciepła.";
        
    } else {
        container.className = 'rk-floor-container state-wood';
        
        document.getElementById('rk-val-r').innerHTML = "0,10 <span>m²·K/W</span>";
        document.getElementById('rk-val-dt').innerHTML = "6,0 <span>K</span>";
        document.getElementById('rk-val-power').innerHTML = "50 - 65 <span>W/m²</span>";
        document.getElementById('rk-val-cost').innerHTML = "+ 12,5% <span>(Straty)</span>";

        msgBox.innerHTML = "<strong>Izolator na podłogówce.</strong> Panele lub deski stawiają opór, blokując ciepło. Instalacja <a href='https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/' style='color:#ef4444; font-weight:700;'>wymusza podniesienie parametru zasilania</a> o dodatkowe ~5°C, by osiągnąć tę samą temperaturę w pomieszczeniu.";
    }
}
</script>



<style>
:root {
    --rk-err-dark: #0f172a; /* Głęboki asfaltowy grafit */
    --rk-err-alert: #eab308; /* Żółć ostrzegawcza (Safety Yellow) */
    --rk-err-alert-light: #fef9c3;
    --rk-err-danger: #ef4444; /* Alarmowa czerwień */
    --rk-err-danger-light: #fef2f2;
    --rk-err-bg: #f8fafc;
    --rk-err-card: #ffffff;
    --rk-err-text: #334155;
    --rk-err-border: #e2e8f0;
}

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

/* Sekcja Nagłówkowa */
.rk-err-header {
    background: linear-gradient(135deg, #1c1917 0%, var(--rk-err-dark) 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
}

.rk-err-header::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: linear-gradient(90deg, var(--rk-err-alert) 0%, var(--rk-err-danger) 100%);
}

.rk-err-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(234, 179, 8, 0.15);
    color: #fef08a;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 20px;
    border: 1px solid rgba(254, 240, 138, 0.2);
}

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

.rk-err-intro {
    font-size: 15px;
    line-height: 1.8;
    color: #cbd5e1;
    margin: 0;
}

.rk-err-intro strong {
    color: #ffffff;
}

.rk-err-link {
    color: #fef08a;
    text-decoration: none;
    border-bottom: 1px dashed #fef08a;
    transition: all 0.3s;
}

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

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

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

/* Lewa strona: Selektor błędów */
.rk-err-menu {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-menu-btn {
    padding: 15px;
    background: #ffffff;
    border: 2px solid var(--rk-err-border);
    border-radius: 12px;
    text-align: left;
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-err-text);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    line-height: 1.4;
}

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

.rk-menu-btn.active[data-err="dust"] { border-color: var(--rk-err-alert); background: var(--rk-err-alert-light); color: #854d0e; }
.rk-menu-btn.active[data-err="deep"] { border-color: var(--rk-err-danger); background: var(--rk-err-danger-light); color: #991b1b; }
.rk-menu-btn.active[data-err="bend"] { border-color: #a855f7; background: #f3e8ff; color: #6b21a8; }

/* Prawa strona: Monitor rentgenowski i SVG */
.rk-err-monitor {
    background: #ffffff;
    border: 1px solid var(--rk-err-border);
    border-radius: 16px;
    padding: 25px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    display: flex;
    flex-direction: column;
}

.rk-err-visual-frame {
    background: #1e1b4b; /* Ciemne indygo dla efektu RTG */
    border-radius: 12px;
    padding: 20px;
    height: 180px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    position: relative;
    border: 2px solid #312e81;
}

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

/* Elementy i warstwy SVG */
.svg-layer-dust { opacity: 0; transition: opacity 0.4s; }
.svg-screed-crack { opacity: 0; stroke-dasharray: 40; stroke-dashoffset: 40; transition: opacity 0.4s; }
.svg-foil-cut { d: path("M 10 80 L 90 80"); transition: all 0.4s; }
.svg-pipe-kink { d: path("M 35 30 Q 50 40 65 30"); transition: all 0.4s; }

/* --- STANY ANIMACJI DLA POSZCZEGÓLNYCH BŁĘDÓW --- */
/* Stan: dust (Brak odkurzania i gruntu) */
.state-dust .svg-layer-dust { opacity: 1; }
.state-dust .svg-screed-crack { opacity: 1; stroke-dashoffset: 0; transition: stroke-dashoffset 0.6s 0.2s ease-out; }

/* Stan: deep (Zbyt głębokie cięcie) */
.state-deep .svg-screed-box { transform: translateY(12px); } /* Symulacja głębszego cięcia */
.state-deep .svg-foil-cut { d: path("M 10 80 L 42 80 L 50 92 L 58 80 L 90 80"); stroke: var(--rk-err-danger); }

/* Stan: bend (Zły promień gięcia) */
.state-bend .svg-pipe-kink { d: path("M 35 30 L 50 52 L 65 30"); stroke: #c084fc; stroke-width: 10; }

/* Tekst dynamiczny */
.rk-err-dynamic-text {
    margin-top: 20px;
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-err-text);
    min-height: 80px;
}

/* Dolna sekcja z kafelkami dla Mobile */
.rk-err-footer-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    padding: 30px 50px 40px;
    background: #ffffff;
}

.rk-err-tile-card {
    background: var(--rk-err-bg);
    border: 1px solid var(--rk-err-border);
    padding: 20px;
    border-radius: 12px;
}

.rk-err-tile-card h4 {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-err-dark);
    margin: 0 0 8px 0;
}

.rk-err-tile-card p {
    font-size: 12px;
    line-height: 1.5;
    color: #64748b;
    margin: 0;
}

@media (max-width: 768px) {
    .rk-err-header, .rk-err-interactive { padding: 30px 20px; }
    .rk-err-grid-layout { grid-template-columns: 1fr; }
    .rk-err-footer-list { grid-template-columns: 1fr; padding: 0 20px 30px; gap: 15px; }
    .rk-err-title { font-size: 24px; }
    .rk-err-visual-frame { height: 150px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/"
    },
    "headline": "Najczęstsze błędy wykonawcze podczas frezowania podłogówki",
    "description": "Przewodnik po awariach i uchybieniach montażowych. Dowiedz się, dlaczego brak odkurzania bruzd, brak dylatacji i zbyt mały promień gięcia niszczą jastrych.",
    "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-17",
    "dateModified": "2026-05-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#dataset-awarie",
    "name": "Wskaźniki fizyczne i strukturalne błędów wykonawczych",
    "description": "Zestawienie fizycznych wartości granicznych naprężeń termicznych, długości osłon oraz ciśnień kontrolnych dla systemów jastrychów nacinanych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "błędy wykonawcze frezowania ogrzewania",
      "odparzenie jastrychu naprężenia termiczne",
      "promień gięcia rury pex pert",
      "norma PN-EN 1264-4 dylatacje",
      "ciśnieniowa próba szczelności podłogówki"
    ],
    "measurementTechnique": "Analiza wytrzymałościowa adhezji zapraw pod wpływem naprężeń termicznych powyżej 0,2 N/mm² oraz weryfikacja spadków ciśnienia testowego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Naprężenia termiczne: Przekroczenie 0,2 N/mm² przy braku gruntu powoduje nieodwracalne odspojenie okładziny.",
        "Promień łuku: Przekroczenie kryterium r < 5d generuje mikropęknięcia struktury polimeru i wzrost oporów o 40%."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#webapp-detektor-bledow",
    "name": "Interaktywny Detektor Uszkodzeń Przegrody",
    "description": "Aplikacja symulująca rtg posadzki i wizualizująca skutki mechaniczne oraz hydrauliczne zaniechania procedur normatywnych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="rk-damage-detector-app">
    <div class="rk-err-header">
        <div class="rk-err-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>
            Czerwone Flagi Montażu
        </div>
        <h2 class="rk-err-title">Jakie są najczęstsze błędy wykonawcze podczas frezowania podłogówki?</h2>
        <p class="rk-err-intro">
            Najpoważniejszym uchybieniem jest niedokładne oczyszczenie i zaniechanie gruntowania wyfrezowanych rowków przed aplikacją masy wypełniającej. Skutkuje to brakiem adhezji i <strong>odparzeniem jastrychu pod wpływem naprężeń termicznych o wartości powyżej 0,2 N/mm²</strong>. Pył powstały podczas cięcia działa jak warstwa separacyjna – jeśli nie zostanie odessany odkurzaczem przemysłowym klasy M, wlewana masa naprawcza nie zwiąże się strukturalnie z podłożem.
        </p>
        <p class="rk-err-intro" style="margin-top: 15px;">
            Kolejnym krytycznym błędem jest <strong>zbyt głębokie frezowanie (powyżej 25 mm)</strong>, które w wylewkach o grubości 40 mm przecina jastrych na wylot, niszcząc izolację przeciwwilgociową z folii i doprowadzając do penetracji wody w głąb stropu.
        </p>
    </div>

    <div class="rk-err-interactive">
        <div id="rk-err-view-core" class="rk-err-grid-layout state-dust">
            
            <div class="rk-err-menu">
                <button class="rk-menu-btn active" data-err="dust" onclick="rkToggleError('dust')">1. Pył i brak gruntowania bruzd</button>
                <button class="rk-menu-btn" data-err="deep" onclick="rkToggleError('deep')">2. Zbyt głęboki wykop frezarki</button>
                <button class="rk-menu-btn" data-err="bend" onclick="rkToggleError('bend')">3. Załamanie rury na zakręcie</button>
            </div>

            <div class="rk-err-monitor">
                <div class="rk-err-visual-frame">
                    <svg class="rk-err-svg" viewBox="0 0 100 100">
                        <rect x="0" y="85" width="100" height="15" fill="#1e1b4b"/>
                        
                        <path class="svg-foil-cut" fill="none" stroke="#6366f1" stroke-width="2"/>

                        <g class="svg-screed-box" style="transition: transform 0.4s;">
                            <rect x="10" y="30" width="80" height="50" fill="#475569" opacity="0.8"/>
                            <path d="M 35 30 L 35 60 L 65 60 L 65 30" fill="#1e1b4b"/>
                            
                            <path class="svg-layer-dust" d="M 35 30 L 35 60 L 65 60 L 65 30" fill="none" stroke="#eab308" stroke-width="3"/>
                            
                            <path class="svg-pipe-kink" fill="none" stroke="#ef4444" stroke-width="8" stroke-linecap="round"/>
                            <path class="svg-pipe-kink" fill="none" stroke="#38bdf8" stroke-width="4" stroke-linecap="round"/>

                            <path class="svg-screed-crack" d="M 35 45 L 20 40 M 65 50 L 85 55 M 50 60 L 50 75" fill="none" stroke="#ef4444" stroke-width="2" stroke-linecap="round"/>
                        </g>
                    </svg>
                </div>

                <div class="rk-err-dynamic-text" id="rk-err-text-content">
                    Wadliwe wykonanie. Pozostawiony mącznik i pył betonowy drastycznie ograniczają adhezję mas cementowych. Pod wpływem naprężeń termicznych powyżej <strong>0,2 N/mm²</strong> górna warstwa posadzki pęka i odkleja się od starego podłoża, niszcząc płytki lub panele.
                </div>
            </div>

        </div>
    </div>

    <div class="rk-err-footer-list">
        <div class="rk-err-tile-card" style="border-top: 3px solid var(--rk-err-alert);">
            <h4>Brak dylatacji progowych</h4>
            <p>
                Zignorowanie wytycznych normy <strong>PN-EN 1264-4</strong> w progach drzwiowych skutkuje pękaniem jastrychu. Rury przechodzące przez szczeliny dylatacyjne muszą bezwzględnie biec w peszlach ochronnych o długości min. <strong>400 mm</strong>.
            </p>
        </div>
        <div class="rk-err-tile-card" style="border-top: 3px solid #a855f7;">
            <h4>Zaginanie rury "na siłę"</h4>
            <p>
                Przekroczenie minimalnego promienia gięcia (<strong>r < 5d</strong>, czyli poniżej <strong>70 mm</strong> dla rury 14 mm) wywołuje mikropęknięcia struktury polimeru EVOH. <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/" style="color:#a855f7; font-weight:700;">Zadławienie przekroju rury</a> podnosi opory hydrauliczne o ponad <strong>40%</strong>.
            </p>
        </div>
        <div class="rk-err-tile-card" style="border-top: 3px solid var(--rk-err-danger);">
            <h4>Zalewanie bez próby 0,6 MPa</h4>
            <p>
                Zalanie bruzd masą samopoziomującą bez wykonania 24-godzinnego testu szczelności to skrajna nieodpowiedzialność. Rury muszą pozostać pod <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/" style="color:var(--rk-err-danger); font-weight:700;">roboczym ciśnieniem próbnym</a> podczas całego procesu aplikacji chemii budowlanej.
            </p>
        </div>
    </div>
</div>

<script>
// 1. Ochrona licencji kodu (bez tagów nagłówkowych H2/H3 w komunikacie)
document.addEventListener('DOMContentLoaded', function() {
    var currentDomain = window.location.hostname;
    var whitelist = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (whitelist.indexOf(currentDomain) === -1) {
        var wrapper = document.getElementById('rk-damage-detector-app');
        if (wrapper) {
            wrapper.innerHTML = '<div style="padding:40px; text-align:center; background:#1c1917; color:#ef4444; border-radius:20px; border:2px solid #ef4444; font-family:sans-serif; font-size:15px;"><strong>Naruszenie protokołu bezpieczeństwa.</strong> Skrypt monitorowania błędów wykonawczych jest przypisany wyłącznie do serwisu Projekt-Ogrzewania.pl.</div>';
        }
    }
});

// 2. Logika przełącznika błędów wykonawczych
function rkToggleError(errorType) {
    var coreView = document.getElementById('rk-err-view-core');
    var textFrame = document.getElementById('rk-err-text-content');

    // Reset klas widoku
    coreView.className = "rk-err-grid-layout";
    coreView.classList.add('state-' + errorType);

    // Zmiana klas aktywności przycisków menu
    var buttons = document.querySelectorAll('.rk-menu-btn');
    buttons.forEach(function(b) { b.classList.remove('active'); });
    document.querySelector('.rk-menu-btn[data-err="' + errorType + '"]').classList.add('active');

    // Dynamiczna aktualizacja tekstu inżynierskiego
    if (errorType === 'dust') {
        textFrame.innerHTML = "Wadliwe wykonanie. Pozostawiony mącznik i pył betonowy drastycznie ograniczają adhezję mas cementowych. Pod wpływem naprężeń termicznych powyżej <strong>0,2 N/mm²</strong> górna warstwa posadzki pęka i odkleja się od starego podłoża, niszcząc płytki lub panele.";
    } else if (errorType === 'deep') {
        textFrame.innerHTML = "Krytyczne osłabienie jastrychu. Frezowanie na głębokość powyżej <strong>25 mm</strong> przy cienkiej wylewce przecina beton konstrukcyjny i rozrywa dolną <a href='https://projekt-ogrzewania.pl/jakie-sposoby-izolacji-pod-ogrzewanie-podlogowe/' style='color:var(--rk-err-danger); font-weight:700;'>folię izolacyjną</a>. Woda z masy zarobowej przenika w głąb stropu, wywołując zacieki.";
    } else {
        textFrame.innerHTML = "Wada hydrauliczna. Gięcie rury ze zbyt małym promieniem (<strong>poniżej 70 mm</strong>) powoduje przewężenie przekroju (tzw. załamanie rury). Skutkuje to lokalnym <a href='https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/' style='color:#6b21a8; font-weight:700;'>wzrostem oporów hydraulicznych obwodu o ponad 40%</a> i dławieniem przepływu.";
    }
}
</script>



<style>
:root {
    --rk-cs2-dark: #0f172a; /* Głęboki granat */
    --rk-cs2-brand: #10b981; /* Szmaragdowy - Sukces */
    --rk-cs2-brand-light: #d1fae5;
    --rk-cs2-accent: #3b82f6; /* Błękit inżynierski */
    --rk-cs2-danger: #ef4444; /* Czerwony - Awaria/Błąd */
    --rk-cs2-danger-light: #fee2e2;
    --rk-cs2-bg: #f8fafc;
    --rk-cs2-card: #ffffff;
    --rk-cs2-text: #475569;
    --rk-cs2-border: #e2e8f0;
}

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

/* ================= HEADER ================= */
.rk-cs2-header {
    background: linear-gradient(135deg, var(--rk-cs2-dark) 0%, #1e293b 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
    overflow: hidden;
}

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

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

.rk-cs2-title {
    font-size: 32px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 25px 0;
    color: #ffffff;
    position: relative;
    z-index: 2;
}

/* Kafelki metryczki w headerze */
.rk-cs2-stats-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    position: relative;
    z-index: 2;
}

.rk-cs2-stat-box {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 15px;
    border-radius: 12px;
    backdrop-filter: blur(8px);
}

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

.rk-cs2-stat-value {
    display: block;
    font-size: 17px;
    font-weight: 900;
    color: #ffffff;
}

/* ================= AUTOR I WSTĘP ================= */
.rk-cs2-intro-section {
    padding: 40px 50px 30px;
    background: #ffffff;
}

.rk-cs2-author-box {
    background: var(--rk-cs2-bg);
    border-left: 4px solid var(--rk-cs2-accent);
    padding: 20px;
    border-radius: 0 16px 16px 0;
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 25px;
}

.rk-cs2-author-photo {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid #ffffff;
    box-shadow: 0 4px 15px rgba(59, 130, 246, 0.2);
    flex-shrink: 0;
}

.rk-cs2-author-text {
    font-size: 15px;
    color: var(--rk-cs2-dark);
    line-height: 1.6;
    margin: 0;
}

.rk-cs2-author-text a {
    color: var(--rk-cs2-accent);
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.rk-cs2-lead {
    font-size: 15px;
    line-height: 1.8;
    color: var(--rk-cs2-text);
    margin: 0 0 15px 0;
}

.rk-cs2-lead strong {
    color: var(--rk-cs2-dark);
}

/* ================= INTERAKTYWNA ANALIZA BŁĘDU ================= */
.rk-cs2-interactive {
    padding: 0 50px 40px;
}

.rk-cs2-sim-wrapper {
    background: #ffffff;
    border: 1px solid var(--rk-cs2-border);
    border-radius: 20px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    overflow: hidden;
}

/* Zakładki sterujące */
.rk-cs2-tabs {
    display: flex;
    border-bottom: 1px solid var(--rk-cs2-border);
    background: var(--rk-cs2-bg);
}

.rk-cs2-tab-btn {
    flex: 1;
    padding: 20px;
    border: none;
    background: transparent;
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

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

.rk-cs2-tab-btn.active[data-view="amateur"] {
    background: #ffffff;
    color: #b91c1c;
    border-bottom: 3px solid var(--rk-cs2-danger);
}

.rk-cs2-tab-btn.active[data-view="pro"] {
    background: #ffffff;
    color: #047857;
    border-bottom: 3px solid var(--rk-cs2-brand);
}

/* Ekran SVG + Wyniki */
.rk-cs2-screen {
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 30px;
    padding: 30px;
}

.rk-cs2-visual {
    background: var(--rk-cs2-dark);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    border: 2px solid #1e293b;
}

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

/* --- NOWE Animacje i warstwy dla rzutu (Blueprint) --- */
.svg-blueprint-path { fill: none; stroke-linecap: round; stroke-linejoin: round; transition: opacity 0.4s; }
.svg-flow-anim { stroke-dasharray: 8 8; animation: flowBlueprint 1s linear infinite; }
.svg-gauge-pointer { transform-origin: 50px 50px; transition: transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1); }

@keyframes flowBlueprint { to { stroke-dashoffset: -16; } }
@keyframes pulseDanger { 0% { filter: drop-shadow(0 0 2px #ef4444); } 100% { filter: drop-shadow(0 0 10px #ef4444); } }

/* Stan 1: Amatorski (1 długa pętla = Błąd) */
.state-amateur .svg-blueprint-amateur { opacity: 1; stroke: #ef4444; }
.state-amateur .svg-blueprint-pro { opacity: 0; }
.state-amateur .svg-gauge-pointer { transform: rotate(120deg); stroke: #ef4444; }
.state-amateur .svg-danger-ring { stroke: #ef4444; animation: pulseDanger 1s infinite alternate; opacity: 1; }

/* Stan 2: Pro (3 krótkie strefy = Sukces) */
.state-pro .svg-blueprint-amateur { opacity: 0; }
.state-pro .svg-blueprint-pro { opacity: 1; stroke: #10b981; }
.state-pro .svg-gauge-pointer { transform: rotate(-50deg); stroke: #10b981; }
.state-pro .svg-danger-ring { opacity: 0; }

/* Panel Wyników Textowych */
.rk-cs2-data-panel {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-cs2-data-title {
    font-size: 18px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: var(--rk-cs2-dark);
}

.rk-cs2-data-desc {
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-cs2-text);
    margin: 0 0 20px 0;
}

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

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

.rk-cs2-metric-lbl { font-size: 11px; color: #64748b; font-weight: 800; text-transform: uppercase; margin-bottom: 5px; }
.rk-cs2-metric-val { font-size: 18px; font-weight: 900; color: var(--rk-cs2-dark); }
.rk-cs2-metric-val span { font-size: 13px; font-weight: 600; color: #94a3b8; }

.state-amateur .dyn-color { color: #dc2626; }
.state-pro .dyn-color { color: #059669; }

/* ================= REZULTATY I CTA ================= */
.rk-cs2-results-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    padding: 0 50px 40px;
}

.rk-cs2-result-card {
    background: #ffffff;
    border: 1px solid var(--rk-cs2-border);
    padding: 25px;
    border-radius: 16px;
    position: relative;
    overflow: hidden;
}

.rk-cs2-result-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
    background: var(--rk-cs2-brand);
}

.rk-cs2-result-card.gold::before { background: #f59e0b; }

.rk-cs2-result-lbl { font-size: 12px; color: #64748b; font-weight: 800; text-transform: uppercase; margin-bottom: 10px; }
.rk-cs2-result-val { font-size: 26px; font-weight: 900; color: var(--rk-cs2-dark); margin-bottom: 10px; }
.rk-cs2-result-desc { font-size: 13px; color: var(--rk-cs2-text); line-height: 1.5; margin: 0; }

/* CTA */
.rk-cs2-cta {
    background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
    padding: 40px 50px;
    text-align: center;
    border-top: 4px solid var(--rk-cs2-accent);
}

.rk-cs2-cta-h3 { font-size: 22px; font-weight: 900; color: #ffffff; margin: 0 0 15px 0; }
.rk-cs2-cta-p { font-size: 15px; color: #94a3b8; line-height: 1.6; max-width: 700px; margin: 0 auto 30px auto; }

.rk-cs2-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-cs2-accent);
    color: #ffffff;
    font-size: 16px;
    font-weight: 900;
    padding: 18px 36px;
    border-radius: 12px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(59, 130, 246, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-cs2-btn:hover { transform: translateY(-4px); background: #2563eb; box-shadow: 0 15px 35px -5px rgba(59, 130, 246, 0.5); }
.rk-cs2-btn svg { transition: transform 0.3s; }
.rk-cs2-btn:hover svg { transform: translateX(5px); }

@media (max-width: 768px) {
    .rk-cs2-header, .rk-cs2-intro-section, .rk-cs2-interactive, .rk-cs2-cta { padding: 30px 20px; }
    .rk-cs2-stats-grid { grid-template-columns: 1fr 1fr; }
    .rk-cs2-author-box { flex-direction: column; text-align: center; border-left: none; border-top: 4px solid var(--rk-cs2-accent); border-radius: 0 0 16px 16px; }
    .rk-cs2-tabs { flex-direction: column; }
    .rk-cs2-screen { grid-template-columns: 1fr; padding: 20px; }
    .rk-cs2-results-grid { grid-template-columns: 1fr; padding: 0 20px 30px; }
    .rk-cs2-visual { height: 220px; }
    .rk-cs2-title { font-size: 24px; }
    .rk-cs2-btn { width: 100%; padding: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/"
    },
    "headline": "Case Study: Rzeczywisty projekt termomodernizacji w Szczecinie",
    "description": "Analiza inżynierska termomodernizacji 135 m² domu ze zmianą źródła ciepła na pompę. Redukcja pętli z 110m do 72m uchroniła instalację przed oporami rzędu 38 kPa.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-17",
    "dateModified": "2026-05-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#dataset-szczecin",
    "name": "Parametry Projektowe i Oszczędności - Termomodernizacja Szczecin",
    "description": "Zestawienie parametrów wejściowych budynku wykorzystanych do optymalizacji hydraulicznej zasilania ogrzewania podłogowego po frezowaniu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego frezowanego",
      "opory hydrauliczne 38 kpa rura 14mm",
      "maksymalna długość pętli ogrzewania podłogowego",
      "projektowe obciążenie cieplne budynku 7.8 kw",
      "wymiana kotła na pompę ciepła szczecin"
    ],
    "measurementTechnique": "Obliczenia hydrauliczne długości pętli (max 72 m) względem projektowego obciążenia cieplnego (7,8 kW) w celu zapobieżenia zjawisku dławienia przepływów.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Przed poprawkami OZC: Planowane pętle 110 m, opór krytyczny 38 kPa (awaria).",
        "Po wdrożeniu OZC: Podział na 11 pętli max 72 m, opór bezpieczny 14,2 kPa, roczne oszczędności eksploatacyjne 42%."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#webapp-symulator-szczecin",
    "name": "Symulator Optymalizacji Hydraulicznej Szczecin",
    "description": "Panel analityczny wizualizujący błąd przewymiarowania długości pętli i wzrostu oporów względem optymalnego podziału obiegów grzewczych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cs2-container" id="rk-casestudy-app">
    <div class="rk-cs2-header">
        <div class="rk-cs2-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"></polygon></svg>
            Case Study (Projekt Wdrożeniowy)
        </div>
        <h2 class="rk-cs2-title">Rzeczywisty projekt termomodernizacji w Szczecinie</h2>
        
        <div class="rk-cs2-stats-grid">
            <div class="rk-cs2-stat-box">
                <span class="rk-cs2-stat-label">Termin</span>
                <span class="rk-cs2-stat-value">Wrzesień 2026</span>
            </div>
            <div class="rk-cs2-stat-box">
                <span class="rk-cs2-stat-label">Lokalizacja</span>
                <span class="rk-cs2-stat-value">Szczecin</span>
            </div>
            <div class="rk-cs2-stat-box">
                <span class="rk-cs2-stat-label">Powierzchnia</span>
                <span class="rk-cs2-stat-value">135 m²</span>
            </div>
            <div class="rk-cs2-stat-box">
                <span class="rk-cs2-stat-label">System</span>
                <span class="rk-cs2-stat-value">Pompa Ciepła</span>
            </div>
        </div>
    </div>

    <div class="rk-cs2-intro-section">
        <div class="rk-cs2-author-box">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski Inżynier HVAC" class="rk-cs2-author-photo" loading="lazy">
            <p class="rk-cs2-author-text">
                "Inwestor Mariusz zmagał się z problemem drastycznie wysokich kosztów utrzymania starego kotła węglowego. Całkowity brak możliwości podniesienia posadzek (osadzone ościeżnice) narzucił jedyne racjonalne rozwiązanie..." – <strong><a href="https://projekt-ogrzewania.pl/">Robert Kucharski</a></strong>, CEO.
            </p>
        </div>
        
        <p class="rk-cs2-lead">
            Szybka odpowiedź inżynierska polegała na całkowitej rezygnacji z grzejników na rzecz frezowania wylewki jastrychowej pod rury 14x2 mm. Rozstaw ustalono na <strong>100 mm w strefach brzegowych</strong> i łazience oraz 150 mm w salonie. Pozwoliło to na zasilanie układu bardzo niskim parametrem 35°C z pompy ciepła split.
        </p>
        <p class="rk-cs2-lead" style="margin:0;">
            Optymalnie wykorzystaliśmy stary jastrych o grubości 45 mm. Po wycięciu bruzd na 20 mm, podłoga zachowała pełną stabilność. Mikroskopijna masa przykrywająca (zaledwie 3 mm chemii) zredukowała opór cieplny, <strong>skracając czas nagrzewania do zaledwie 45 minut!</strong>
        </p>
    </div>

    <div class="rk-cs2-interactive">
        <div class="rk-cs2-sim-wrapper">
            <div class="rk-cs2-tabs">
                <button class="rk-cs2-tab-btn active" data-view="amateur" onclick="rkSwitchCase('amateur')">
                    <svg width="18" height="18" 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>
                    Błąd Instalatora (Instalacja z głowy)
                </button>
                <button class="rk-cs2-tab-btn" data-view="pro" onclick="rkSwitchCase('pro')">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"></polyline></svg>
                    Wdrożenie Projektu (Obliczenia OZC)
                </button>
            </div>

            <div id="rk-cs2-screen" class="rk-cs2-screen state-amateur">
                
                <div class="rk-cs2-visual">
                    <svg class="rk-cs2-svg" viewBox="0 0 100 100">
                        <rect x="5" y="5" width="90" height="90" fill="none" stroke="#334155" stroke-width="2"/>
                        <rect x="7" y="7" width="86" height="86" fill="#1e293b"/>

                        <rect x="2" y="15" width="6" height="70" fill="#64748b" rx="1"/>

                        <path class="svg-blueprint-path svg-blueprint-amateur svg-flow-anim" d="M 8 20 L 85 20 L 85 30 L 15 30 L 15 40 L 85 40 L 85 50 L 15 50 L 15 60 L 85 60 L 85 70 L 15 70 L 15 80 L 8 80" stroke-width="3" stroke-linejoin="round"/>

                        <path class="svg-blueprint-path svg-blueprint-pro svg-flow-anim" d="M 8 16 L 85 16 L 85 30 L 8 30" stroke-width="3" stroke-linejoin="round"/>
                        <path class="svg-blueprint-path svg-blueprint-pro svg-flow-anim" d="M 8 43 L 85 43 L 85 57 L 8 57" stroke-width="3" stroke-linejoin="round" style="animation-delay: 0.3s;"/>
                        <path class="svg-blueprint-path svg-blueprint-pro svg-flow-anim" d="M 8 70 L 85 70 L 85 84 L 8 84" stroke-width="3" stroke-linejoin="round" style="animation-delay: 0.6s;"/>

                        <circle cx="50" cy="50" r="18" fill="#0f172a" stroke="#475569" stroke-width="2"/>
                        <circle class="svg-danger-ring" cx="50" cy="50" r="18" fill="none" stroke-width="2"/>
                        <path d="M 40 50 A 10 10 0 1 1 60 50" fill="none" stroke="#64748b" stroke-width="2" stroke-linecap="round"/>
                        <line class="svg-gauge-pointer" x1="50" y1="50" x2="50" y2="40" stroke-width="2.5" stroke-linecap="round"/>
                        <circle cx="50" cy="50" r="2.5" fill="#cbd5e1"/>
                    </svg>
                </div>

                <div class="rk-cs2-data-panel">
                    <h4 class="rk-cs2-data-title" id="cs2-title">Zamknięcie Hydrauliczne Pętli</h4>
                    <p class="rk-cs2-data-desc" id="cs2-desc">
                        Pierwotny instalator chciał układać pętle o długości 110 m dla rury 14 mm. Taka odległość drastycznie dławi przepływ, tworząc gigantyczny opór. Woda omijałaby tę pętlę, a pomieszczenie pozostałoby zimne.
                    </p>
                    <div class="rk-cs2-metrics">
                        <div class="rk-cs2-metric-box">
                            <div class="rk-cs2-metric-lbl">Długość pętli</div>
                            <div class="rk-cs2-metric-val dyn-color" id="cs2-val-len">110 <span>mb</span></div>
                        </div>
                        <div class="rk-cs2-metric-box">
                            <div class="rk-cs2-metric-lbl">Opór całkowity</div>
                            <div class="rk-cs2-metric-val dyn-color" id="cs2-val-pres">38,0 <span>kPa (Krytyczny)</span></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-cs2-results-grid">
        <div class="rk-cs2-result-card">
            <div class="rk-cs2-result-lbl">Bilans OZC (-20°C)</div>
            <div class="rk-cs2-result-val">7,8 kW</div>
            <p class="rk-cs2-result-desc">Zapotrzebowanie wyliczone przez inżyniera. Gęstość strumienia cieplnego to zaledwie <strong>58 W/m²</strong>.</p>
        </div>
        <div class="rk-cs2-result-card">
            <div class="rk-cs2-result-lbl">Roczne oszczędności</div>
            <div class="rk-cs2-result-val" style="color:var(--rk-cs2-brand);">42%</div>
            <p class="rk-cs2-result-desc">Tyle wynosi zysk na kosztach eksploatacji w porównaniu do starego systemu grzewczego na węgiel.</p>
        </div>
        <div class="rk-cs2-result-card gold">
            <div class="rk-cs2-result-lbl">Ochrona budżetu</div>
            <div class="rk-cs2-result-val" style="color:#b45309;">14 500 zł</div>
            <p class="rk-cs2-result-desc">Tyle inwestor uniknął strat za poprawki, wymianę zniszczonej pompy i naprawy odparzonego jastrychu.</p>
        </div>
    </div>

    <div class="rk-cs2-cta">
        <h3 class="rk-cs2-cta-h3">Chcesz uniknąć błędów, które kosztują tysiące?</h3>
        <p class="rk-cs2-cta-p">
            Zastosowanie rur z barierą antydyfuzyjną EVOH, rygorystyczne trzymanie się oporów hydraulicznych i dobór pompy na bazie OZC to klucz do sukcesu. Zainwestuj w spokój na lata.
        </p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-cs2-btn">
            ZAMÓW PROJEKT INSTALACJI PODŁOGOWEJ
            <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>
// 1. Zabezpieczenie przed nieautoryzowanym skopiowaniem (Bez tagów H w komunikacie)
document.addEventListener('DOMContentLoaded', function() {
    var checkDom = window.location.hostname;
    var allowedDom = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDom.indexOf(checkDom) === -1) {
        var wrapApp = document.getElementById('rk-casestudy-app');
        if (wrapApp) {
            wrapApp.innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:24px; border:2px solid #ef4444; font-family:sans-serif; font-size:16px;"><strong>Odmowa autoryzacji licencji.</strong> Moduł Case Study jest własnością intelektualną serwisu Projekt-Ogrzewania.pl.</div>';
        }
    }
});

// 2. Logika przełączania symulacji (Amator vs Inżynier)
function rkSwitchCase(mode) {
    var screen = document.getElementById('rk-cs2-screen');
    
    // Zmiana aktywności zakładek
    var tabs = document.querySelectorAll('.rk-cs2-tab-btn');
    tabs.forEach(function(t) { t.classList.remove('active'); });
    document.querySelector('.rk-cs2-tab-btn[data-view="' + mode + '"]').classList.add('active');

    // Wymiana danych tekstowych i klas animacji
    if (mode === 'pro') {
        screen.className = 'rk-cs2-screen state-pro';
        document.getElementById('cs2-title').innerText = "Inżynierski Podział Obwodów";
        document.getElementById('cs2-desc').innerHTML = "Dzięki interwencji zaimplementowano projekt oparty o <strong>11 pętli o maksymalnej długości 72 m</strong>. Opór spadł do bezpiecznej wartości. Pompa obiegowa działa na średnim biegu, zużywając zaledwie 22W energii elektrycznej.";
        document.getElementById('cs2-val-len').innerHTML = "max 72 <span>mb</span>";
        document.getElementById('cs2-val-pres').innerHTML = "14,2 <span>kPa (Bezpieczny)</span>";
    } else {
        screen.className = 'rk-cs2-screen state-amateur';
        document.getElementById('cs2-title').innerText = "Zamknięcie Hydrauliczne Pętli";
        document.getElementById('cs2-desc').innerHTML = "Pierwotny instalator chciał układać pętle o długości 110 m dla rury 14 mm. Taka odległość drastycznie dławi przepływ, tworząc gigantyczny opór. Woda omijałaby tę pętlę, a pomieszczenie pozostałoby zimne.";
        document.getElementById('cs2-val-len').innerHTML = "110 <span>mb</span>";
        document.getElementById('cs2-val-pres').innerHTML = "38,0 <span>kPa (Krytyczny)</span>";
    }
}
</script>



<style>
:root {
    --rk-quote-dark: #0f172a; /* Głęboki granat */
    --rk-quote-brand: #10b981; /* Szmaragd / Sukces */
    --rk-quote-accent: #f59e0b; /* Inżynierskie Złoto */
    --rk-quote-danger: #ef4444; /* Czerwień / Błąd */
    --rk-quote-bg: #f8fafc;
    --rk-quote-card: #ffffff;
    --rk-quote-text: #475569;
    --rk-quote-border: #e2e8f0;
}

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

/* ================= HEADER & CYTAT ================= */
.rk-quote-header {
    background: linear-gradient(135deg, #1e293b 0%, var(--rk-quote-dark) 100%);
    padding: 50px 60px;
    color: #ffffff;
    position: relative;
    overflow: hidden;
    border-bottom: 4px solid var(--rk-quote-accent);
}

.rk-quote-header::before {
    content: '"';
    position: absolute;
    top: -20px;
    left: 20px;
    font-size: 200px;
    font-family: serif;
    color: rgba(255, 255, 255, 0.05);
    line-height: 1;
    pointer-events: none;
}

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

.rk-quote-text {
    font-size: 22px;
    font-weight: 800;
    line-height: 1.6;
    color: #f1f5f9;
    margin: 0 0 25px 0;
    font-style: italic;
}

.rk-quote-author {
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-quote-photo {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--rk-quote-accent);
}

.rk-quote-author-details h4 {
    margin: 0 0 4px 0;
    font-size: 16px;
    font-weight: 900;
    color: #ffffff;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-quote-author-details p {
    margin: 0;
    font-size: 13px;
    color: #94a3b8;
    font-weight: 600;
}

/* ================= WNIOSKI INTERAKTYWNE ================= */
.rk-quote-interactive {
    padding: 40px 50px;
    background: var(--rk-quote-bg);
}

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

.rk-quote-tab-btn {
    flex: 1;
    max-width: 320px;
    padding: 16px 20px;
    border: 2px solid var(--rk-quote-border);
    background: #ffffff;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-quote-text);
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

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

.rk-quote-tab-btn.active[data-view="rule"] {
    border-color: var(--rk-quote-brand);
    background: #ecfdf5;
    color: #065f46;
    box-shadow: 0 8px 20px -5px rgba(16, 185, 129, 0.2);
}

.rk-quote-tab-btn.active[data-view="trap"] {
    border-color: var(--rk-quote-danger);
    background: #fef2f2;
    color: #991b1b;
    box-shadow: 0 8px 20px -5px rgba(239, 68, 68, 0.2);
}

/* Panel SVG + Tekst */
.rk-quote-screen {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 30px;
    background: #ffffff;
    border: 1px solid var(--rk-quote-border);
    border-radius: 16px;
    padding: 25px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-quote-visual {
    background: var(--rk-quote-dark);
    border-radius: 12px;
    padding: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    border: 2px solid #1e293b;
    height: 180px;
}

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

/* --- Animacje SVG --- */
.svg-q-pipe { stroke-dasharray: 8 8; animation: qFlow 1s linear infinite; }
.svg-q-dust { opacity: 0; animation: qDustFloat 2s infinite alternate; }
.svg-q-crack { stroke-dasharray: 50; stroke-dashoffset: 50; transition: stroke-dashoffset 0.5s ease-out; }
.svg-q-heat { stroke-dasharray: 6 6; animation: qHeatUp 1.5s linear infinite; }

@keyframes qFlow { to { stroke-dashoffset: -16; } }
@keyframes qDustFloat { 0% { transform: translateY(0); opacity: 0.2; } 100% { transform: translateY(-5px); opacity: 0.8; } }
@keyframes qHeatUp { to { stroke-dashoffset: -12; } }

/* Stan: Rule (Sukces) */
.state-rule .svg-q-concrete { fill: #334155; }
.state-rule .svg-q-pipe-bg { fill: #1e293b; stroke: #10b981; }
.state-rule .svg-q-pipe { stroke: #10b981; }
.state-rule .svg-q-dust { display: none; }
.state-rule .svg-q-crack { display: none; }
.state-rule .svg-q-heat { opacity: 1; stroke: #f59e0b; }

/* Stan: Trap (Błąd) */
.state-trap .svg-q-concrete { fill: #475569; }
.state-trap .svg-q-pipe-bg { fill: #1e293b; stroke: #ef4444; }
.state-trap .svg-q-pipe { stroke: #ef4444; animation-duration: 3s; } /* Słaby przepływ */
.state-trap .svg-q-dust { display: block; }
.state-trap .svg-q-crack { stroke-dashoffset: 0; stroke: #ef4444; }
.state-trap .svg-q-heat { opacity: 0; } /* Brak ciepła */

/* Tekst podsumowania */
.rk-quote-info {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-quote-info-title {
    font-size: 18px;
    font-weight: 900;
    margin: 0 0 12px 0;
    color: var(--rk-quote-dark);
}

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

.rk-quote-info-desc strong {
    color: var(--rk-quote-dark);
}

@media (max-width: 768px) {
    .rk-quote-header { padding: 40px 25px; }
    .rk-quote-text { font-size: 18px; }
    .rk-quote-interactive { padding: 30px 20px; }
    .rk-quote-tabs { flex-direction: column; gap: 10px; }
    .rk-quote-tab-btn { max-width: 100%; }
    .rk-quote-screen { grid-template-columns: 1fr; padding: 20px; }
    .rk-quote-visual { height: 160px; max-width: 280px; margin: 0 auto; width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/"
    },
    "headline": "Podsumowanie eksperckie – Frezowanie podłogówki",
    "description": "Frezowanie starej wylewki to technologiczny skrót, który wymaga ogromnej precyzji. Odkryj główne zasady i pułapki modernizacji.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-17",
    "dateModified": "2026-05-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#dataset-wnioski",
    "name": "Zestawienie kluczowych parametrów bezpieczeństwa modernizacji",
    "description": "Ostateczna weryfikacja poprawności montażu systemu cienkowarstwowego w oparciu o czystość, adhezję i obliczenia OZC.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "podsumowanie frezowania podłogówki",
      "złote zasady montażu ogrzewania",
      "odkurzanie bruzd frezowanych",
      "pękanie starej wylewki",
      "zastosowanie bariery evoh"
    ],
    "measurementTechnique": "Weryfikacja organoleptyczna oraz analityczna szczelności hydraulicznej i stabilności mechanicznej zmodernizowanej przegrody.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Złota Zasada: Idealne odessanie pyłu, zastosowanie rury EVOH, dokładne zgruntowanie bruzd.",
        "Główny Błąd: Pozostawienie pyłu separacyjnego, brak obliczeń oporów hydraulicznych, rura bez bariery antytlenowej."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#webapp-wnioski",
    "name": "Interaktywny Panel Podsumowujący",
    "description": "Narzędzie edukacyjne wizualizujące różnice fizyczne pomiędzy prawidłowo zrealizowaną modernizacją a najczęstszymi błędami instalatorskimi.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-quote-container" id="rk-quote-app">
    <div class="rk-quote-header">
        <div class="rk-quote-content">
            <p class="rk-quote-text">
                "Frezowanie starej wylewki to wspaniały technologiczny skrót, który wybacza brak miejsca na grube izolacje, ale nigdy nie wybacza braku precyzji wykonawczej. Bez dokładnego odsysania pyłu, rury z barierą EVOH i rzetelnego bilansu OZC, ten skrót bardzo szybko zamienia się w najdroższą drogę do awarii całej posadzki."
            </p>
            <div class="rk-quote-author">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="rk-quote-photo" loading="lazy">
                <div class="rk-quote-author-details">
                    <h4>Robert Kucharski</h4>
                    <p>CEO, Projekt-Ogrzewania.pl</p>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-quote-interactive">
        <div class="rk-quote-tabs">
            <button class="rk-quote-tab-btn active" data-view="rule" onclick="rkSwitchQuote('rule')">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"></polyline></svg>
                Złota Zasada Modernizacji
            </button>
            <button class="rk-quote-tab-btn" data-view="trap" onclick="rkSwitchQuote('trap')">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Najczęstsza Pułapka
            </button>
        </div>

        <div id="rk-quote-screen" class="rk-quote-screen state-rule">
            
            <div class="rk-quote-visual">
                <svg class="rk-quote-svg" viewBox="0 0 100 100">
                    <rect class="svg-q-concrete" x="10" y="30" width="80" height="60" rx="2" style="transition: fill 0.3s;"/>
                    
                    <path class="svg-q-pipe-bg" d="M 40 30 L 40 55 L 60 55 L 60 30" stroke-width="2" style="transition: stroke 0.3s;"/>
                    
                    <path class="svg-q-crack" d="M 40 55 L 30 75 M 60 55 L 75 80" fill="none" stroke-width="3" stroke-linecap="round"/>
                    
                    <g class="svg-q-dust" fill="#eab308">
                        <circle cx="43" cy="53" r="1.5" />
                        <circle cx="48" cy="50" r="1" style="animation-delay: 0.3s;"/>
                        <circle cx="55" cy="52" r="1.5" style="animation-delay: 0.6s;"/>
                        <circle cx="58" cy="48" r="1" style="animation-delay: 0.9s;"/>
                    </g>

                    <circle cx="50" cy="45" r="5" fill="#0f172a"/>
                    <circle class="svg-q-pipe" cx="50" cy="45" r="5" fill="none" stroke-width="2"/>

                    <path class="svg-q-heat" d="M 35 25 L 35 5 M 50 20 L 50 0 M 65 25 L 65 5" fill="none" stroke-width="3" stroke-linecap="round"/>
                </svg>
            </div>

            <div class="rk-quote-info">
                <h4 class="rk-quote-info-title" id="q-title">Czystość i Obliczenia to Fundament</h4>
                <p class="rk-quote-info-desc" id="q-desc">
                    W technologii cienkowarstwowej nie ma miejsca na błędy. Odessanie pyłu odkurzaczem klasy M, głębokie zgruntowanie wyfrezowanych rowków i zatopienie rury w masie polimerowej klasy <strong>C2TE</strong> gwarantuje idealny transfer ciepła i chroni wylewkę przed pękaniem.
                </p>
            </div>

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

<script>
// Zabezpieczenie przed kradzieżą (Bez tagów H)
document.addEventListener('DOMContentLoaded', function() {
    var checkDom = window.location.hostname;
    var allowedDom = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDom.indexOf(checkDom) === -1) {
        var wrapApp = document.getElementById('rk-quote-app');
        if (wrapApp) {
            wrapApp.innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:24px; border:2px solid #ef4444; font-family:sans-serif; font-size:16px;"><strong>Brak licencji.</strong> Kontener podsumowujący jest własnością serwisu Projekt-Ogrzewania.pl.</div>';
        }
    }
});

// Logika przełączania
function rkSwitchQuote(mode) {
    var screen = document.getElementById('rk-quote-screen');
    
    // Klasy przycisków
    var btns = document.querySelectorAll('.rk-quote-tab-btn');
    btns.forEach(function(b) { b.classList.remove('active'); });
    document.querySelector('.rk-quote-tab-btn[data-view="' + mode + '"]').classList.add('active');

    // Wymiana tekstu i klas CSS
    if (mode === 'rule') {
        screen.className = 'rk-quote-screen state-rule';
        document.getElementById('q-title').innerText = "Czystość i Obliczenia to Fundament";
        document.getElementById('q-desc').innerHTML = "W technologii cienkowarstwowej nie ma miejsca na błędy. Odessanie pyłu odkurzaczem klasy M, głębokie zgruntowanie wyfrezowanych rowków i zatopienie rury w masie polimerowej klasy <strong>C2TE</strong> gwarantuje idealny transfer ciepła i chroni wylewkę przed pękaniem.";
    } else {
        screen.className = 'rk-quote-screen state-trap';
        document.getElementById('q-title').innerText = "Pył Separacyjny i Ślepe Frezowanie";
        document.getElementById('q-desc').innerHTML = "Brak odkurzenia bruzd sprawia, że nowa masa nie łączy się ze starym betonem. Pył działa jak bufor izolacyjny. Naprężenia termiczne rur wyginają posadzkę, co kończy się <strong>odparzeniem jastrychu</strong> i pęknięciem ułożonych na wierzchu płytek ceramicznych.";
    }
}
</script>



<style>
:root {
    --rk-comp-dark: #1e293b; /* Chłodny antracyt */
    --rk-comp-brand: #06b6d4; /* Cyjan */
    --rk-comp-brand-light: #ecfeff;
    --rk-comp-accent: #6366f1; /* Fiolet techniczny */
    --rk-comp-bg: #f8fafc;
    --rk-comp-card: #ffffff;
    --rk-comp-text: #475569;
    --rk-comp-title: #0f172a;
    --rk-comp-border: #e2e8f0;
    --rk-comp-green: #10b981;
}

.rk-comp-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-comp-card);
    border-radius: 24px;
    box-shadow: 0 20px 40px -15px rgba(30, 41, 59, 0.1);
    border: 1px solid var(--rk-comp-border);
    overflow: hidden;
}

/* Nagłówek Sekcji */
.rk-comp-header {
    background: linear-gradient(135deg, #0f172a 0%, var(--rk-comp-dark) 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
}

.rk-comp-header::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: linear-gradient(90deg, var(--rk-comp-brand) 0%, var(--rk-comp-accent) 100%);
}

.rk-comp-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(6, 182, 212, 0.15);
    color: #22d3ee;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 20px;
    border: 1px solid rgba(34, 211, 238, 0.2);
}

.rk-comp-title-h2 {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.35;
    margin: 0 0 15px 0;
    color: #ffffff;
}

.rk-comp-intro {
    font-size: 15px;
    line-height: 1.8;
    color: #cbd5e1;
    margin: 0;
}

.rk-comp-intro strong {
    color: #ffffff;
}

/* Część Interaktywna - Karty i Porównanie */
.rk-comp-interactive {
    padding: 40px 50px;
    background: var(--rk-comp-bg);
}

.rk-comp-switcher-group {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-bottom: 35px;
}

.rk-comp-tab-btn {
    flex: 1;
    max-width: 260px;
    padding: 14px 18px;
    background: #ffffff;
    border: 2px solid var(--rk-comp-border);
    border-radius: 12px;
    font-size: 13.5px;
    font-weight: 800;
    color: var(--rk-comp-text);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    text-align: center;
    line-height: 1.3;
}

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

.rk-comp-tab-btn.active[data-tech="frez"] { border-color: var(--rk-comp-brand); background: var(--rk-comp-brand-light); color: #0891b2; box-shadow: 0 8px 16px -4px rgba(6, 182, 212, 0.15); }
.rk-comp-tab-btn.active[data-tech="suchy"] { border-color: var(--rk-comp-accent); background: #f5f3ff; color: #4f46e5; box-shadow: 0 8px 16px -4px rgba(99, 102, 241, 0.15); }
.rk-comp-tab-btn.active[data-tech="mokry"] { border-color: #64748b; background: #f8fafc; color: #334155; box-shadow: 0 8px 16px -4px rgba(100, 116, 139, 0.15); }

/* Główny Ekran Porównania (Karty i SVG) */
.rk-comp-display-view {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 30px;
    align-items: center;
    background: #ffffff;
    border: 1px solid var(--rk-comp-border);
    border-radius: 16px;
    padding: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

/* SVG Wizualizacje Technologii */
.rk-comp-visual-frame {
    background: #0f172a;
    border-radius: 12px;
    padding: 15px;
    height: 200px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    position: relative;
    border: 2px solid #1e293b;
}

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

/* Animacje i Przejścia SVG */
.svg-tech-group { display: none; opacity: 0; transition: opacity 0.4s ease; }
.state-frez .svg-frez { display: block; opacity: 1; }
.state-suchy .svg-suchy { display: block; opacity: 1; }
.state-mokry .svg-mokry { display: block; opacity: 1; }

.anim-wave-frez { stroke-dasharray: 6 6; animation: flowFrez 1.2s linear infinite; }
.anim-wave-suchy { stroke-dasharray: 4 4; animation: flowFrez 0.8s linear infinite; }
.anim-wave-mokry { stroke-dasharray: 12 12; animation: flowFrez 2.5s linear infinite; }

@keyframes flowFrez { to { stroke-dashoffset: -24; } }

/* Specyfikacja w Kafelkach (Zamiast tabeli) */
.rk-spec-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-spec-card {
    background: var(--rk-comp-bg);
    border: 1px solid var(--rk-comp-border);
    padding: 16px 20px;
    border-radius: 10px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-spec-lbl { font-size: 11px; color: #64748b; font-weight: 700; text-transform: uppercase; margin-bottom: 6px; letter-spacing: 0.5px; }
.rk-spec-val { font-size: 15px; font-weight: 800; color: var(--rk-comp-title); line-height: 1.4; }

/* Dynamiczne modyfikatory wartości dla Frezowania */
.val-highlight { font-weight: 900; }
.state-frez .val-highlight { color: var(--rk-comp-green); }
.state-suchy .val-highlight { color: var(--rk-comp-accent); }
.state-mokry .val-highlight { color: #475569; }

@media (max-width: 768px) {
    .rk-comp-header, .rk-comp-interactive { padding: 30px 20px; }
    .rk-comp-switcher-group { flex-direction: column; gap: 10px; }
    .rk-comp-tab-btn { max-width: 100%; }
    .rk-comp-display-view { grid-template-columns: 1fr; padding: 20px; }
    .rk-comp-visual-frame { height: 150px; max-width: 250px; margin: 0 auto; width: 100%; }
    .rk-spec-grid { grid-template-columns: 1fr; gap: 12px; }
    .rk-comp-title-h2 { font-size: 22px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#article-porownanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/"
    },
    "headline": "Porównanie technologii modernizacji ogrzewania podłogowego",
    "description": "Inżynierskie zestawienie systemów grzewczych pod remonty kapitalne. Porównaj wysokość zabudowy, bezwładność, koszty m² oraz zgodność z normą PN-EN 1264-4.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.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-17",
    "dateModified": "2026-05-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#dataset-komparator",
    "name": "Matryca porównawcza systemów ogrzewania płaszczyznowego dla termomodernizacji",
    "description": "Zbiór danych technicznych (wysokość profilu, masa jastrychu, opór i czas reakcji) trzech konkurencyjnych systemów wodnych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "porównanie ogrzewania podłogowego frezowanie",
      "wysokość zabudowy podłogówki sucha zabudowa",
      "bezwładność cieplna wylewka z miksokreta",
      "koszt materiału i robocizny podłogówki",
      "norma PN-EN 1264-4 wymagania jastrych"
    ],
    "measurementTechnique": "Zestawienie fizyczno-konstrukcyjne grubości przegród i bilansu mas budowlanych obciążających stropy.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Frezowanie w jastrychu: Profil 0 mm, obciążenie stropu 0 kg/m², wysoka reaktywność termiczna w 45 minut.",
        "System suchy: Profil 20-30 mm, idealny na stropy drewniane, wyższy koszt jednostkowy.",
        "Tradycyjny system mokry: Profil 65-80 mm, potężna masa 130 kg/m², bezwładność do 5 godzin."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#webapp-komparator-technologii",
    "name": "Interaktywny Komparator Technologii Modernizacji",
    "description": "Aplikacja filtrująca i kafelkująca parametry techniczno-eksploatacyjne posadzek grzewczych na bazie wybranego wariantu wykonawczego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-comp-container" id="rk-tech-matrix-app">
    <div class="rk-comp-header">
        <div class="rk-comp-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M23 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg>
            Analiza Porównawcza
        </div>
        <h2 class="rk-comp-title-h2">Porównanie technologii modernizacji ogrzewania podłogowego</h2>
        <p class="rk-comp-intro">
            Poniższe zestawienie przedstawia weryfikację kluczowych parametrów techniczno-eksploatacyjnych trzech najpopularniejszych metod montażu wodnego ogrzewania podłogowego w obiektach poddawanych remontom kapitalnym. Pozwala ono podjąć świadomą decyzję inżynieryjną w oparciu o nośność stropu oraz czas reakcji układu.
        </p>
    </div>

    <div class="rk-comp-interactive">
        <div class="rk-comp-switcher-group">
            <button class="rk-comp-tab-btn active" data-tech="frez" onclick="rkFilterTech('frez')">Frezowanie w starym jastrychu</button>
            <button class="rk-comp-tab-btn" data-tech="suchy" onclick="rkFilterTech('suchy')">System suchy (Zabudowa lekka)</button>
            <button class="rk-comp-tab-btn" data-tech="mokry" onclick="rkFilterTech('mokry')">System mokry (Skuwanie do zera)</button>
        </div>

        <div id="rk-matrix-core" class="rk-comp-display-view state-frez">
            <div class="rk-comp-visual-frame">
                <svg class="rk-comp-svg svg-tech-group svg-frez" viewBox="0 0 100 100">
                    <rect x="0" y="35" width="100" height="65" fill="#334155"/>
                    <path d="M 30 35 L 30 65 L 70 65 L 70 35" fill="#0f172a" stroke="#475569" stroke-width="2"/>
                    <circle cx="50" cy="50" r="10" fill="#38bdf8"/>
                    <path class="anim-wave-frez" d="M 15 20 Q 50 10 85 20" fill="none" stroke="#ef4444" stroke-width="3" stroke-linecap="round"/>
                </svg>

                <svg class="rk-comp-svg svg-tech-group svg-suchy" viewBox="0 0 100 100">
                    <rect x="0" y="55" width="100" height="45" fill="#1e293b"/> <rect x="0" y="35" width="100" height="20" fill="#d97706" opacity="0.8"/> <circle cx="50" cy="45" r="8" fill="#a855f7"/>
                    <path class="anim-wave-suchy" d="M 20 15 Q 50 5 80 15" fill="none" stroke="#f59e0b" stroke-width="2" stroke-linecap="round"/>
                </svg>

                <svg class="rk-comp-svg svg-tech-group svg-mokry" viewBox="0 0 100 100">
                    <rect x="0" y="75" width="100" height="25" fill="#1e293b"/> <rect x="0" y="25" width="100" height="50" fill="#64748b"/> <circle cx="50" cy="50" r="10" fill="#475569" stroke="#94a3b8" stroke-width="2"/>
                    <path class="anim-wave-mokry" d="M 10 10 L 90 10" fill="none" stroke="#94a3b8" stroke-width="4" stroke-linecap="round"/>
                </svg>
            </div>

            <div class="rk-spec-grid">
                <div class="rk-spec-card">
                    <div class="rk-spec-lbl">Minimalna wysokość zabudowy</div>
                    <div class="rk-spec-val val-highlight" id="matrix-height">0 mm (rury chowają się w strukturze)</div>
                </div>
                <div class="rk-spec-card">
                    <div class="rk-spec-lbl">Dodatkowe obciążenie stropu</div>
                    <div class="rk-spec-val" id="matrix-weight">0 kg/m² (brak zmiany bilansu mas)</div>
                </div>
                <div class="rk-spec-card">
                    <div class="rk-spec-lbl">Jednostkowy koszt (Materiał + Robota)</div>
                    <div class="rk-spec-val" id="matrix-cost">120 – 180 PLN/m²</div>
                </div>
                <div class="rk-spec-card">
                    <div class="rk-spec-lbl">Bezwładność termiczna układu</div>
                    <div class="rk-spec-val" id="matrix-inertia">Niska (czas reakcji ok. 45 min)</div>
                </div>
                <div class="rk-spec-card" style="grid-column: 1 / -1;">
                    <div class="rk-spec-lbl">Zgodność z normą PN-EN 1264-4</div>
                    <div class="rk-spec-val" id="matrix-norm">Wymaga weryfikacji geometrii i klasy jastrychu (min. C12/15)</div>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
// 1. Ochrona licencji kodu (Zgodnie z zasadami - brak tagów H2/H3 w kodzie błędu)
document.addEventListener('DOMContentLoaded', function() {
    var domainVerify = window.location.hostname;
    var safeDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (safeDomains.indexOf(domainVerify) === -1) {
        var containerApp = document.getElementById('rk-tech-matrix-app');
        if (wrapperContainer) {
            containerApp.innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#f43f5e; border-radius:20px; border:2px solid #f43f5e; font-family:sans-serif; font-size:15px;"><strong>Odmowa dostępu do komponentu.</strong> Tablica porówania systemów płaszczyznowych jest zastrzeżona dla domeny Projekt-Ogrzewania.pl.</div>';
        }
    }
});

// 2. Logika interaktywnego filtrowania macierzy danych
function rkFilterTech(techType) {
    var matrixCore = document.getElementById('rk-matrix-core');

    // Nadanie odpowiedniej klasy stanu dla sterowania widocznością SVG
    matrixCore.className = "rk-comp-display-view";
    matrixCore.classList.add('state-' + techType);

    // Aktualizacja podświetlenia przycisku tabulatora
    var buttons = document.querySelectorAll('.rk-comp-tab-btn');
    buttons.forEach(function(btn) { btn.classList.remove('active'); });
    document.querySelector('.rk-comp-tab-btn[data-tech="' + techType + '"]').classList.add('active');

    // Podmiana danych w kafelkach specyfikacji
    if (techType === 'frez') {
        document.getElementById('matrix-height').innerText = "0 mm (rury chowają się w strukturze posadzki)";
        document.getElementById('matrix-weight').innerText = "0 kg/m² (brak zmiany pierwotnego bilansu mas)";
        document.getElementById('matrix-cost').innerText = "120 – 180 PLN/m²";
        document.getElementById('matrix-inertia').innerText = "Niska (czas reakcji i odczucia ciepła ok. 45 min)";
        document.getElementById('matrix-norm').innerHTML = "Wymaga weryfikacji jastrychu kontrolą sklerometryczną według <a href='https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/' style='color:var(--rk-comp-brand);font-weight:700;'>kryteriów inżynierskich</a>.";
    } else if (techType === 'suchy') {
        document.getElementById('matrix-height').innerText = "20 – 30 mm (nominalna grubość płyt systemowych)";
        document.getElementById('matrix-weight').innerText = "15 – 25 kg/m² (suche płyty gipsowo-włóknowe)";
        document.getElementById('matrix-cost').innerText = "240 – 350 PLN/m²";
        document.getElementById('matrix-inertia').innerText = "Bardzo niska (czas reakcji rzędu ok. 30 min)";
        document.getElementById('matrix-norm').innerHTML = "Pełna zgodność systemowa. Rozwiązanie dedykowane na stare <a href='https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/' style='color:var(--rk-comp-accent);font-weight:700;'>stropy drewniane i belkowe</a>.";
    } else {
        document.getElementById('matrix-height').innerText = "65 – 80 mm (grubość izolacji styropianowej + nowy jastrych)";
        document.getElementById('matrix-weight').innerText = "130 – 160 kg/m² (monolityczny wylewany beton)";
        document.getElementById('matrix-cost').innerText = "220 – 310 PLN/m² (wliczając kucie i wywóz gruzu)";
        document.getElementById('matrix-inertia').innerText = "Wysoka (bezwładność i czas nagrzewania ok. 180–300 min)";
        document.getElementById('matrix-norm').innerHTML = "Pełna zgodność normatywna. Wymaga wykonania <a href='https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/' style='color:#334155;font-weight:700;'>nowej wylewki betonowej lub anhydrytowej</a> od zera.";
    }
}
</script>



<style>
:root {
    --rk-eq-dark: #0f172a; /* Głęboki granat pulpitu */
    --rk-eq-brand: #0ea5e9; /* Morski cyjan / przepływ */
    --rk-eq-brand-light: #e0f2fe;
    --rk-eq-accent: #f59e0b; /* Bursztyn / Ostrzeżenie */
    --rk-eq-success: #10b981; /* Zielony / Stabilność */
    --rk-eq-danger: #ef4444; /* Czerwony / Awaria */
    --rk-eq-bg: #f8fafc;
    --rk-eq-card: #ffffff;
    --rk-eq-text: #334155;
    --rk-eq-border: #e2e8f0;
}

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

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

.rk-eq-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(14, 165, 233, 0.15);
    color: #7dd3fc;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 25px;
    border: 1px solid rgba(125, 211, 252, 0.2);
}

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

.rk-eq-intro {
    font-size: 15px;
    line-height: 1.8;
    color: #cbd5e1;
    margin: 0 0 15px 0;
}

.rk-eq-intro strong {
    color: #ffffff;
}

.rk-eq-link {
    color: #7dd3fc;
    text-decoration: none;
    border-bottom: 1px dashed #7dd3fc;
    transition: all 0.3s;
}

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

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

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

.rk-eq-btn {
    flex: 1;
    max-width: 300px;
    padding: 16px 20px;
    border: 2px solid var(--rk-eq-border);
    background: #ffffff;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-eq-text);
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

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

.rk-eq-btn.active[data-sys="amateur"] {
    border-color: var(--rk-eq-danger);
    background: #fef2f2;
    color: #991b1b;
    box-shadow: 0 10px 20px -5px rgba(239, 68, 68, 0.15);
}

.rk-eq-btn.active[data-sys="pro"] {
    border-color: var(--rk-eq-brand);
    background: var(--rk-eq-brand-light);
    color: #0369a1;
    box-shadow: 0 10px 20px -5px rgba(14, 165, 233, 0.2);
}

/* Ekran Symulatora (SVG) */
.rk-eq-visual-frame {
    background: var(--rk-eq-dark);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    min-height: 260px;
    border: 2px solid #1e293b;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
    margin-bottom: 30px;
}

.rk-eq-svg {
    width: 100%;
    height: 100%;
    max-width: 600px;
}

/* NOWE Elementy i Animacje SVG */
.svg-flow-path { stroke-dasharray: 8 8; transition: stroke 0.4s; }
.svg-hp-fan { transform-origin: 25px 55px; }
.svg-sun { transform-origin: 180px 30px; transition: opacity 0.4s; }
.svg-recu { transition: opacity 0.4s; }
.svg-buffer-cross { opacity: 0; transition: opacity 0.3s; }
.svg-floor-pipe { transition: fill 0.3s; }
.svg-recu-air { stroke-dasharray: 6 6; }

/* Stany Animacji */
/* Stan Amatorski (Awaria) */
.state-amateur .svg-flow-path { animation: flowSlow 0.5s linear infinite; stroke: #ef4444; }
.state-amateur .svg-hp-fan { animation: spinRotor 0.3s linear infinite; } /* Taktowanie pompy */
.state-amateur .svg-buffer { opacity: 0.3; filter: grayscale(1); } /* Brak bufora */
.state-amateur .svg-buffer-cross { opacity: 1; }
.state-amateur .svg-sun { opacity: 1; animation: pulseSun 1s infinite alternate; }
.state-amateur .svg-recu { opacity: 0.2; }
.state-amateur .svg-recu-air { opacity: 0; animation: none; }
.state-amateur .svg-floor-pipe { fill: #ef4444; } /* Przegrzanie */

/* Stan Pro (Inżynierski) */
.state-pro .svg-flow-path { animation: flowFast 1.5s linear infinite; stroke: #0ea5e9; }
.state-pro .svg-hp-fan { animation: spinRotor 2s linear infinite; } /* Spokojna praca */
.state-pro .svg-buffer { opacity: 1; filter: grayscale(0); }
.state-pro .svg-buffer-cross { opacity: 0; }
.state-pro .svg-sun { opacity: 0.4; animation: none; }
.state-pro .svg-recu { opacity: 1; }
.state-pro .svg-recu-air { opacity: 1; animation: flowFast 1.5s linear infinite reverse; }
.state-pro .svg-floor-pipe { fill: #f59e0b; }

@keyframes spinRotor { 100% { transform: rotate(360deg); } }
@keyframes flowFast { to { stroke-dashoffset: -16; } }
@keyframes flowSlow { to { stroke-dashoffset: -16; } }
@keyframes pulseSun { 0% { transform: scale(0.9); filter: drop-shadow(0 0 5px #ef4444); } 100% { transform: scale(1.3); filter: drop-shadow(0 0 15px #ef4444); } }

/* Kafelki Parametrów */
.rk-eq-param-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.rk-eq-card {
    background: #ffffff;
    border: 1px solid var(--rk-eq-border);
    padding: 20px;
    border-radius: 12px;
    transition: all 0.3s;
}

.rk-eq-lbl { font-size: 11px; color: #64748b; font-weight: 700; text-transform: uppercase; margin-bottom: 8px; }
.rk-eq-val { font-size: 20px; font-weight: 900; color: var(--rk-eq-dark); display: flex; align-items: baseline; gap: 5px; }
.rk-eq-val span { font-size: 13px; font-weight: 600; color: #94a3b8; }

.rk-eq-desc {
    font-size: 13px;
    color: #475569;
    line-height: 1.5;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--rk-eq-border);
}

/* Dynamiczne kolory tekstu w kafelkach */
.state-amateur .dyn-alert { color: var(--rk-eq-danger); }
.state-pro .dyn-success { color: var(--rk-eq-brand); }

/* POTĘŻNE CTA NA DOLE */
.rk-eq-cta-block {
    background: linear-gradient(135deg, #0f172a 0%, #1e1b4b 100%);
    padding: 45px 50px;
    text-align: center;
    border-top: 4px solid var(--rk-eq-accent);
}

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

.rk-eq-cta-text {
    font-size: 15px;
    line-height: 1.6;
    color: #94a3b8;
    max-width: 700px;
    margin: 0 auto 30px auto;
}

.rk-eq-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-eq-accent);
    color: #ffffff;
    font-size: 18px;
    font-weight: 900;
    padding: 20px 40px;
    border-radius: 12px;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 1px;
    box-shadow: 0 10px 25px -5px rgba(245, 158, 11, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-eq-cta-btn:hover {
    transform: translateY(-4px);
    background: #d97706;
    box-shadow: 0 15px 35px -5px rgba(245, 158, 11, 0.5);
}

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

@media (max-width: 768px) {
    .rk-eq-header, .rk-eq-interactive, .rk-eq-cta-block { padding: 30px 20px; }
    .rk-eq-controls { flex-direction: column; }
    .rk-eq-btn { max-width: 100%; }
    .rk-eq-visual-frame { min-height: 180px; padding: 10px; }
    .rk-eq-param-grid { grid-template-columns: 1fr; }
    .rk-eq-title { font-size: 24px; }
    .rk-eq-cta-title { font-size: 20px; }
    .rk-eq-cta-btn { width: 100%; padding: 15px 20px; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#article-urzadzenia",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/"
    },
    "headline": "Jak frezowanie wpływa na projekt instalacji i dobór urządzeń kotłowni?",
    "description": "Frezowanie drastycznie zmniejsza bezwładność cieplną. Wymaga mocnej pompy obiegowej (min. 6m słupa wody) oraz instalacji bufora ciepła zapobiegającego taktowaniu sprężarki 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-17",
    "dateModified": "2026-05-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#dataset-dobor-urzadzen",
    "name": "Parametry doboru urządzeń dla systemów frezowanych",
    "description": "Zestawienie wymogów hydraulicznych i pojemnościowych dla kotłowni współpracującej z frezowanym ogrzewaniem podłogowym i OZE.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "dobór pompy obiegowej podłogówka",
      "taktowanie pompy ciepła bufor",
      "pojemność bufora ciepła na kw",
      "rekuperacja z ogrzewaniem podłogowym",
      "charakterystyka stałociśnieniowa p=const"
    ],
    "measurementTechnique": "Algorytm doboru komponentów na bazie zsumowanych oporów pętli o mniejszej średnicy i zmniejszonej bezwładności termicznej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Bufor ciepła: Minimum 15 litrów pojemności zładu na każdy 1 kW nominalnej mocy pompy ciepła.",
        "Pompa obiegowa: Wymagana wysokość podnoszenia minimum 6 m słupa wody (60 kPa) przy charakterystyce p=const."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#webapp-symulator-kotlowni",
    "name": "Symulator Architektury Kotłowni i Automatyki",
    "description": "Interaktywny diagram obrazujący ryzyko braku projektu OZC, wizualizujący taktowanie pompy ciepła i problemy z oporem hydraulicznym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-eq-container" id="rk-hvac-arch-app">
    <div class="rk-eq-header">
        <div class="rk-eq-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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>
            Architektura Systemu
        </div>
        <h2 class="rk-eq-title">Jak frezowanie ogrzewania podłogowego wpływa na projekt instalacji i dobór urządzeń?</h2>
        <p class="rk-eq-intro">
            Wykonanie frezowania podłogówki wymusza precyzyjne dostosowanie hydrauliki całego źródła ciepła. Mała średnica wewnętrzna rur (10 mm) drastycznie zwiększa wymagane ciśnienie dyspozycyjne pompy obiegowej. Projekt instalacji musi bazować na <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" class="rk-eq-link">rzetelnych obliczeniach OZC (PN-EN 12831)</a>, co eliminuje niszczące przewymiarowanie źródła.
        </p>
        <p class="rk-eq-intro" style="margin: 0;">
            Zdolność akumulacji energii przez strop jest w tej technologii zredukowana o ponad 40%. Aby uniknąć szkodliwego zjawiska taktowania pompy ciepła (zbyt częstego załączania sprężarki), <strong>bezwzględnie należy zainstalować bufor ciepła o pojemności minimum 15 litrów na każdy kW mocy urządzenia</strong>. Niska bezwładność doskonale współpracuje z rekuperacją, która szybko rozprasza zyski ciepła (np. od słońca).
        </p>
    </div>

    <div class="rk-eq-interactive">
        <div class="rk-eq-controls">
            <button class="rk-eq-btn active" data-sys="pro" onclick="rkSwitchSystem('pro')">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"></polyline></svg>
                Instalacja z Projektem (OZC)
            </button>
            <button class="rk-eq-btn" data-sys="amateur" onclick="rkSwitchSystem('amateur')">
                <svg width="20" height="20" 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>
                Instalacja "Na oko"
            </button>
        </div>

        <div id="rk-sim-hvac" class="state-pro">
            <div class="rk-eq-visual-frame">
                
                <svg class="rk-eq-svg" viewBox="0 0 200 100">
                    <defs>
                        <linearGradient id="gradBuffer" x1="0%" y1="0%" x2="0%" y2="100%">
                            <stop offset="0%" style="stop-color:#ef4444;stop-opacity:1" />
                            <stop offset="100%" style="stop-color:#0ea5e9;stop-opacity:1" />
                        </linearGradient>
                    </defs>

                    <path class="svg-flow-path" d="M 40 55 L 65 55 M 90 55 L 100 55 M 110 55 L 120 55 L 120 87 L 130 87" fill="none" stroke-width="3" stroke-linecap="round"/>

                    <rect x="10" y="30" width="30" height="50" fill="#334155" rx="3"/>
                    <rect x="12" y="32" width="26" height="46" fill="#1e293b" rx="2"/>
                    <circle cx="25" cy="55" r="12" fill="none" stroke="#64748b" stroke-width="2"/>
                    <g class="svg-hp-fan">
                        <path d="M 25 43 L 25 67 M 13 55 L 37 55" stroke="#cbd5e1" stroke-width="3"/>
                        <circle cx="25" cy="55" r="3" fill="#cbd5e1"/>
                    </g>
                    <polygon points="15,35 18,35 16,39 20,39 15,44 16,40 12,40" fill="#f59e0b"/>

                    <g class="svg-buffer" style="transition: opacity 0.4s, filter 0.4s;">
                        <rect x="65" y="20" width="25" height="60" fill="url(#gradBuffer)" rx="4"/>
                        <path d="M 65 40 L 90 40 M 65 60 L 90 60" stroke="#ffffff" stroke-width="1" opacity="0.2"/>
                    </g>
                    <path class="svg-buffer-cross" d="M 60 15 L 95 85 M 95 15 L 60 85" stroke="#ef4444" stroke-width="4" stroke-linecap="round"/>

                    <circle cx="105" cy="55" r="6" fill="#0f172a" stroke="#94a3b8" stroke-width="2"/>
                    <polygon points="102,52 102,58 108,55" fill="#cbd5e1"/>

                    <rect x="130" y="80" width="60" height="15" fill="#475569" rx="2"/>
                    <circle cx="140" cy="87.5" r="3" class="svg-floor-pipe"/>
                    <circle cx="155" cy="87.5" r="3" class="svg-floor-pipe"/>
                    <circle cx="170" cy="87.5" r="3" class="svg-floor-pipe"/>
                    <circle cx="185" cy="87.5" r="3" class="svg-floor-pipe"/>

                    <g class="svg-recu" style="transition: opacity 0.4s;">
                        <rect x="130" y="5" width="40" height="15" fill="#334155" rx="2"/>
                        <rect x="135" y="8" width="10" height="9" fill="#0f172a"/>
                        <rect x="155" y="8" width="10" height="9" fill="#0f172a"/>
                        <path class="svg-recu-air" d="M 140 28 L 140 17 M 160 28 L 160 17" fill="none" stroke="#0ea5e9" stroke-width="2" stroke-linecap="round"/>
                    </g>

                    <g class="svg-sun" style="transition: opacity 0.4s;">
                        <circle cx="180" cy="30" r="6" fill="#f59e0b"/>
                        <path d="M 180 20 L 180 16 M 180 40 L 180 44 M 170 30 L 166 30 M 190 30 L 194 30 M 173 23 L 170 20 M 187 37 L 190 40 M 173 37 L 170 40 M 187 23 L 190 20" stroke="#f59e0b" stroke-width="2" stroke-linecap="round"/>
                    </g>
                </svg>

            </div>

            <div class="rk-eq-param-grid">
                <div class="rk-eq-card">
                    <div class="rk-eq-lbl">Bufor sprzęgający</div>
                    <div class="rk-eq-val dyn-alert" id="rk-val-buffer">TAK <span>(15L / kW)</span></div>
                    <div class="rk-eq-desc" id="rk-desc-buffer">
                        Gwarantuje zład wody do odszraniania (defrostu) i eliminuje niszczące taktowanie sprężarki spowodowane małą pojemnością wylewki.
                    </div>
                </div>
                <div class="rk-eq-card">
                    <div class="rk-eq-lbl">Pompa obiegowa pętli</div>
                    <div class="rk-eq-val dyn-alert" id="rk-val-pump">6 m <span>(60 kPa)</span></div>
                    <div class="rk-eq-desc" id="rk-desc-pump">
                        Charakterystyka stałociśnieniowa (p=const). Zrównoważy gwałtowne opory hydrauliczne generowane przez rurki o średnicy wew. 10 mm.
                    </div>
                </div>
                <div class="rk-eq-card">
                    <div class="rk-eq-lbl">Reakcja na zyski słońca</div>
                    <div class="rk-eq-val dyn-alert" id="rk-val-sun">Rozproszone <span>(Reku)</span></div>
                    <div class="rk-eq-desc" id="rk-desc-sun">
                        Frezowana podłoga odcina dopływ wody. <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/" style="color:inherit; font-weight:700;">Rekuperacja</a> wychwytuje gorące powietrze i redystrybuuje je po strefach zacienionych.
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-eq-cta-block">
        <h3 class="rk-eq-cta-title">Nie pozwól, by błędy instalatora zniszczyły Twoją Pompę Ciepła</h3>
        <p class="rk-eq-cta-text">
            Brak bufora, dobór za słabej pompy obiegowej i przewymiarowane źródło ciepła to najczęstsze skutki montażu "na intuicję". Zabezpiecz swoją inwestycję profesjonalną dokumentacją techniczną opartą na twardych wyliczeniach OZC i fizyce przepływów.
        </p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-eq-cta-btn">
            ZAMÓW PROJEKT INSTALACJI PODŁOGOWEJ
            <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>
// 1. Zabezpieczenie przed nieautoryzowanym skopiowaniem (Bez tagów H)
document.addEventListener('DOMContentLoaded', function() {
    var checkDom = window.location.hostname;
    var allowedDom = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDom.indexOf(checkDom) === -1) {
        var wrapApp = document.getElementById('rk-hvac-arch-app');
        if (wrapApp) {
            wrapApp.innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:24px; border:2px solid #ef4444; font-family:sans-serif; font-size:16px;"><strong>Odmowa autoryzacji licencji.</strong> Algorytm wizualizacji kotłowni jest własnością intelektualną serwisu Projekt-Ogrzewania.pl.</div>';
        }
    }
});

// 2. Logika przełączania symulatora
function rkSwitchSystem(mode) {
    var hvacSim = document.getElementById('rk-sim-hvac');
    
    // Zmiana przycisków
    var btns = document.querySelectorAll('.rk-eq-btn');
    btns.forEach(function(b) { b.classList.remove('active'); });
    document.querySelector('.rk-eq-btn[data-sys="' + mode + '"]').classList.add('active');

    // Aktualizacja interfejsu (CSS SVG i teksty)
    if (mode === 'pro') {
        hvacSim.className = 'state-pro';
        
        document.getElementById('rk-val-buffer').innerHTML = "TAK <span>(15L / kW)</span>";
        document.getElementById('rk-desc-buffer').innerHTML = "Gwarantuje zład wody do odszraniania (defrostu) i eliminuje niszczące taktowanie sprężarki spowodowane małą pojemnością wylewki.";
        
        document.getElementById('rk-val-pump').innerHTML = "6 m <span>(60 kPa)</span>";
        document.getElementById('rk-desc-pump').innerHTML = "Charakterystyka stałociśnieniowa (p=const). Zrównoważy gwałtowne opory hydrauliczne generowane przez rurki o średnicy wew. 10 mm.";
        
        document.getElementById('rk-val-sun').innerHTML = "Rozproszone <span>(Reku)</span>";
        document.getElementById('rk-desc-sun').innerHTML = "Frezowana podłoga odcina dopływ wody. <a href='https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/' style='color:inherit; font-weight:700;'>Rekuperacja</a> wychwytuje gorące powietrze i redystrybuuje je po strefach zacienionych.";

    } else {
        hvacSim.className = 'state-amateur';
        
        document.getElementById('rk-val-buffer').innerHTML = "BRAK <span>(Awaria)</span>";
        document.getElementById('rk-desc-buffer').innerHTML = "Zbyt mała pojemność wodna systemu frezowanego powoduje ciągłe włączanie/wyłączanie (taktowanie) pompy, niszcząc sprężarkę.";
        
        document.getElementById('rk-val-pump').innerHTML = "4 m <span>(Za słaba)</span>";
        document.getElementById('rk-desc-pump').innerHTML = "Zwykła pompa nie radzi sobie z oporem małych rurek. Woda wybiera najkrótsze drogi, zostawiając większość salonu całkowicie niedogrzaną.";
        
        document.getElementById('rk-val-sun').innerHTML = "Przegrzanie <span>(Brak OZC)</span>";
        document.getElementById('rk-desc-sun').innerHTML = "Brak projektu OZC powoduje, że słońce z okien uderza w zabetonowane rury potęgując temperaturę. Podłoga nie ma jak zrzucić tego ciepła w inny obieg.";
    }
}
</script>



<style>
:root {
    --rk-faq2-dark: #0f172a;
    --rk-faq2-card: #ffffff;
    --rk-faq2-brand: #059669; /* Profesjonalny Szmaragd / Zieleń inżynierska */
    --rk-faq2-brand-light: #d1fae5;
    --rk-faq2-accent: #f59e0b; /* Bursztyn dla kontrastu / ostrzeżeń */
    --rk-faq2-bg: #f8fafc;
    --rk-faq2-border: #e2e8f0;
    --rk-faq2-text: #334155;
    --rk-faq2-muted: #64748b;
}

.rk-faq2-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: var(--rk-faq2-card);
    border-radius: 20px;
    box-shadow: 0 20px 40px -10px rgba(5, 150, 105, 0.1);
    border: 1px solid rgba(5, 150, 105, 0.2);
    overflow: hidden;
}

/* Nagłówek */
.rk-faq2-header {
    background: linear-gradient(135deg, #064e3b 0%, var(--rk-faq2-dark) 100%);
    padding: 40px 50px 30px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-faq2-brand);
}

.rk-faq2-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(16, 185, 129, 0.2);
    color: #6ee7b7;
    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(110, 231, 183, 0.2);
}

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

.rk-faq2-title span { color: #34d399; }

/* Sekcja Interaktywna */
.rk-faq2-interactive {
    padding: 35px 45px;
    background: var(--rk-faq2-bg);
}

.rk-faq2-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-faq2-item {
    background: #ffffff;
    border: 1px solid var(--rk-faq2-border);
    border-radius: 14px;
    overflow: hidden;
    transition: all 0.3s;
}

.rk-faq2-item.active {
    border-color: var(--rk-faq2-brand);
    box-shadow: 0 10px 20px -5px rgba(5, 150, 105, 0.12);
}

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

.rk-faq2-question:hover {
    background: #f1f5f9;
}

.rk-faq2-item.active .rk-faq2-question {
    background: var(--rk-faq2-brand-light);
    color: #064e3b;
}

.rk-faq2-icon {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #e2e8f0;
    color: var(--rk-faq2-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq2-item.active .rk-faq2-icon {
    background: var(--rk-faq2-brand);
    color: #ffffff;
    transform: rotate(180deg);
}

/* Odpowiedź z Gridem */
.rk-faq2-answer-wrapper {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq2-item.active .rk-faq2-answer-wrapper {
    grid-template-rows: 1fr;
}

.rk-faq2-answer-inner {
    overflow: hidden;
}

.rk-faq2-content {
    padding: 25px;
    border-top: 1px solid var(--rk-faq2-brand-light);
    display: grid;
    grid-template-columns: 1fr 180px;
    gap: 30px;
    align-items: center;
    background: #ffffff;
}

.rk-faq2-text {
    font-size: 14px;
    line-height: 1.7;
    color: var(--rk-faq2-text);
}

.rk-faq2-text strong {
    font-weight: 800;
    color: var(--rk-faq2-dark);
}

.rk-faq2-link {
    color: var(--rk-faq2-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(5, 150, 105, 0.4);
    transition: all 0.3s;
}

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

/* Kontener SVG */
.rk-faq2-visual {
    background: #f8fafc;
    border-radius: 12px;
    padding: 15px;
    height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #e2e8f0;
    position: relative;
}

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

/* === ANIMACJE SVG ZALEŻNE OD KLASY ACTIVE === */

/* 1. Strop / Frezowanie */
.rk-faq2-item.active .anim-blade {
    animation: spinBlade 1s linear infinite;
    transform-origin: 50px 30px;
}
.rk-faq2-item.active .anim-groove {
    stroke-dasharray: 60;
    stroke-dashoffset: 60;
    animation: cutGroove 2s forwards;
}
@keyframes spinBlade { to { transform: rotate(360deg); } }
@keyframes cutGroove { to { stroke-dashoffset: 0; } }

/* 2. Bariera EVOH (Tlen) */
.anim-oxygen { opacity: 0; }
.rk-faq2-item.active .anim-oxygen {
    opacity: 1;
    animation: bounceOxygen 1.5s infinite alternate ease-in-out;
}
@keyframes bounceOxygen {
    0% { transform: translateY(-15px) scale(1); fill: #ef4444; }
    100% { transform: translateY(0px) scale(0.8); fill: #fca5a5; }
}

/* 3. Masa naprawcza */
.anim-trowel { transform: translateX(-20px); opacity: 0; }
.rk-faq2-item.active .anim-trowel {
    animation: fillMass 2s ease-out forwards;
}
@keyframes fillMass {
    0% { transform: translateX(-20px); opacity: 1; }
    50% { transform: translateX(20px); opacity: 1; }
    100% { transform: translateX(20px); opacity: 0; }
}
.rk-faq2-item.active .anim-mass-fill {
    transform: scaleX(0);
    transform-origin: left;
    animation: growMass 2s forwards;
}
@keyframes growMass { to { transform: scaleX(1); } }

/* 4. Zawór mieszający */
.anim-flow-hot, .anim-flow-cold { stroke-dasharray: 4; animation: dashFlow 1s linear infinite; opacity: 0; }
.rk-faq2-item.active .anim-flow-hot { opacity: 1; stroke: #ef4444; }
.rk-faq2-item.active .anim-flow-cold { opacity: 1; stroke: #3b82f6; }
@keyframes dashFlow { to { stroke-dashoffset: -8; } }

/* 5. Woda zdemineralizowana */
.anim-drop { transform: scale(0.8); }
.rk-faq2-item.active .anim-drop {
    animation: purifyDrop 2s infinite alternate;
}
@keyframes purifyDrop {
    0% { fill: #94a3b8; transform: scale(0.8); } /* Brudna woda */
    100% { fill: #38bdf8; transform: scale(1.1); filter: drop-shadow(0 0 5px #38bdf8); } /* Czysta woda */
}

@media (max-width: 768px) {
    .rk-faq2-header, .rk-faq2-interactive { padding: 30px 20px; }
    .rk-faq2-title { font-size: 22px; }
    .rk-faq2-content { grid-template-columns: 1fr; gap: 20px; padding: 20px; }
    .rk-faq2-visual { height: 120px; max-width: 200px; margin: 0 auto; width: 100%; border: none; }
    .rk-faq2-question { font-size: 14px; padding: 18px 20px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD) 
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/"
    },
    "headline": "Najczęściej zadawane pytania (FAQ) – Frezowanie podłogówki",
    "description": "Techniczne odpowiedzi na najważniejsze pytania dotyczące wytrzymałości wylewek, barier antydyfuzyjnych EVOH, mas naprawczych oraz jakości wody w systemach frezowanych.",
    "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-17",
    "dateModified": "2026-05-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#faq-data",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy frezowanie niszczy strukturę starego stropu lub osłabia wylewkę?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Frezowanie na głębokość 20 mm w wylewce o grubości minimum 35 mm nie narusza stabilności, o ile beton spełnia klasę wytrzymałości C12/15. Nienaruszona warstwa dolna w pełni przenosi obciążenia użytkowe."
        }
      },
      {
        "@type": "Question",
        "name": "Czy w kanałach frezowanych można układać rury bez barier (np. zwykłe PEX)?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie. Wymagane jest bezwzględne stosowanie rur z barierą antydyfuzyjną EVOH (norma DIN 4726). Brak bariery prowadzi do korozji elementów stalowych i uszkodzenia wymiennika pompy ciepła."
        }
      },
      {
        "@type": "Question",
        "name": "Jaka masa jest najlepsza do zalewania wyfrezowanych rowków?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Należy stosować wyłącznie dedykowane masy polimerowo-cementowe (klasa C2TE) o przewodności cieplnej λ ≥ 1,4 W/(m·K). Zwykła zaprawa pęka pod wpływem naprężeń termicznych."
        }
      },
      {
        "@type": "Question",
        "name": "Czy przy frezowaniu trzeba montować układ mieszający z zaworem?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Jeśli jedynym źródłem jest pompa ciepła generująca 35°C, układ mieszający jest zbędny. Jest on wymagany wyłącznie w systemach hybrydowych (np. przy jednoczesnej pracy grzejników na 60°C)."
        }
      },
      {
        "@type": "Question",
        "name": "Czy instalację po frezowaniu można napełnić wodą z kranu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Instalację należy napełnić wodą demineralizowaną (przewodność <100 µS/cm) z inhibitorem korozji. Zwykła woda w rurkach 14 mm grozi osadzaniem kamienia kotłowego i spadkiem wydajności."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#dataset-tech",
    "name": "Parametry techniczne materiałów dla systemów frezowanych",
    "description": "Wymagania inżynierskie dla jastrychów, klas zapraw, norm rur i parametrów fizykochemicznych zładu wody.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "frezowanie ogrzewania podłogowego",
      "bariera antydyfuzyjna evoh",
      "norma din 4726",
      "zawór mieszający instalacji",
      "woda demineralizowana ogrzewanie"
    ],
    "measurementTechnique": "Normatywne wartości graniczne (wytrzymałość C12/15, przewodność cieplna λ ≥ 1,4 W/(m·K), przewodność wody <100 µS/cm).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wymagany minimalny opór dyfuzyjny tlenu wg DIN 4726.",
        "Parametry mas naprawczych do przewodzenia energii cieplnej."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#webapp-faq",
    "name": "Interaktywny Asystent FAQ Frezowania",
    "description": "Baza wiedzy z wizualizacjami SVG pomagająca inwestorom w doborze parametrów modernizacji cieplnej bez błędów wykonawczych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA FAQ
=========================================== -->
<div class="rk-faq2-container" id="rk-frez-faq-app">
    <div class="rk-faq2-header">
        <div class="rk-faq2-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg>
            Baza Wiedzy Wykonawcy
        </div>
        <h2 class="rk-faq2-title">FAQ – <span>Najczęściej zadawane pytania</span></h2>
    </div>

    <div class="rk-faq2-interactive">
        <div class="rk-faq2-list">
            
            <!-- Pytanie 1: Wytrzymałość stropu -->
            <div class="rk-faq2-item">
                <button class="rk-faq2-question">
                    <span>1. Czy frezowanie niszczy strukturę starego stropu lub osłabia wylewkę?</span>
                    <div class="rk-faq2-icon"><svg width="18" height="18" 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-faq2-answer-wrapper">
                    <div class="rk-faq2-answer-inner">
                        <div class="rk-faq2-content">
                            <div class="rk-faq2-text">
                                Frezowanie na głębokość <strong>20 mm</strong> w wylewce o całkowitej grubości minimum 35 mm nie narusza stabilności konstrukcyjnej podłoża. Warunkiem koniecznym jest, aby istniejący <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" class="rk-faq2-link">jastrych spełniał kryterium wytrzymałościowe minimum C12/15</a>. Pozostała, nienaruszona warstwa dolna betonu w pełni przejmuje i przenosi statyczne oraz dynamiczne obciążenia użytkowe zgodnie z normami budowlanymi.
                            </div>
                            <div class="rk-faq2-visual">
                                <svg class="rk-faq2-svg" viewBox="0 0 100 80">
                                    <rect x="10" y="50" width="80" height="20" fill="#94a3b8" rx="2"/>
                                    <path class="anim-groove" d="M 10 50 L 50 50 L 50 70" fill="none" stroke="#f8fafc" stroke-width="8"/>
                                    <g class="anim-blade">
                                        <circle cx="50" cy="30" r="15" fill="none" stroke="#059669" stroke-width="4" stroke-dasharray="10 4"/>
                                        <circle cx="50" cy="30" r="4" fill="#059669"/>
                                    </g>
                                    <line x1="50" y1="30" x2="50" y2="45" stroke="#059669" stroke-width="4"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Pytanie 2: Bariera EVOH -->
            <div class="rk-faq2-item">
                <button class="rk-faq2-question">
                    <span>2. Czy w kanałach frezowanych można układać zwykłe rury bez barier?</span>
                    <div class="rk-faq2-icon"><svg width="18" height="18" 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-faq2-answer-wrapper">
                    <div class="rk-faq2-answer-inner">
                        <div class="rk-faq2-content">
                            <div class="rk-faq2-text">
                                Absolutnie nie. Bezwykopowe układanie rur wymaga <strong>bezwzględnego stosowania przewodów wyposażonych w pięciowarstwową <a href="https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/" class="rk-faq2-link">barierę antydyfuzyjną EVOH</a></strong> zgodną z normą DIN 4726. Zastosowanie rur jednowarstwowych bez powłoki antytlenowej doprowadzi do szybkiej korozji elementów stalowych w kotłowni i trwałego uszkodzenia pompy.
                            </div>
                            <div class="rk-faq2-visual">
                                <svg class="rk-faq2-svg" viewBox="0 0 100 80">
                                    <circle cx="50" cy="50" r="25" fill="none" stroke="#059669" stroke-width="6"/>
                                    <circle cx="50" cy="50" r="21" fill="none" stroke="#3b82f6" stroke-width="2"/>
                                    <circle class="anim-oxygen" cx="20" cy="20" r="5"/>
                                    <circle class="anim-oxygen" cx="80" cy="20" r="5" style="animation-delay: 0.5s;"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Pytanie 3: Masa naprawcza -->
            <div class="rk-faq2-item">
                <button class="rk-faq2-question">
                    <span>3. Jaka masa jest najlepsza do zalewania wyfrezowanych rowków?</span>
                    <div class="rk-faq2-icon"><svg width="18" height="18" 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-faq2-answer-wrapper">
                    <div class="rk-faq2-answer-inner">
                        <div class="rk-faq2-content">
                            <div class="rk-faq2-text">
                                Do wypełniania bruzd stosuje się <strong>wyłącznie modyfikowane polimerami masy naprawcze klasy C2TE</strong>. Ich kluczowym parametrem dla systemu cieplnego jest wysoka przewodność (λ ≥ 1,4 W/(m·K)). Zwykła <a href="https://projekt-ogrzewania.pl/czym-jest-system-mokry-w-wodnym-ogrzewaniu-podlogowym/" class="rk-faq2-link">zaprawa murarska popęka pod wpływem rozszerzalności rur</a>, tworząc puste przestrzenie izolujące ciepło.
                            </div>
                            <div class="rk-faq2-visual">
                                <svg class="rk-faq2-svg" viewBox="0 0 100 80">
                                    <path d="M 10 60 L 90 60 L 90 80 L 10 80 Z" fill="#e2e8f0"/>
                                    <path d="M 30 60 L 70 60 L 60 80 L 40 80 Z" fill="#ffffff"/>
                                    <rect class="anim-mass-fill" x="40" y="60" width="20" height="20" fill="#f59e0b"/>
                                    <path class="anim-trowel" d="M 35 45 L 65 45 L 75 55 L 25 55 Z" fill="#94a3b8"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Pytanie 4: Zawór mieszający -->
            <div class="rk-faq2-item">
                <button class="rk-faq2-question">
                    <span>4. Czy przy frezowaniu podłogówki trzeba montować układ mieszający z zaworem?</span>
                    <div class="rk-faq2-icon"><svg width="18" height="18" 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-faq2-answer-wrapper">
                    <div class="rk-faq2-answer-inner">
                        <div class="rk-faq2-content">
                            <div class="rk-faq2-text">
                                Jeśli system współpracuje bezpośrednio z niskotemperaturową pompą ciepła generującą parametr 35°C, <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/" class="rk-faq2-link">układ mieszający jest całkowicie zbędny</a>, a pętle podłącza się wprost do rozdzielacza. Montaż zaworu trójdrogowego jest konieczny <strong>tylko w układach hybrydowych</strong> (jednoczesne zasilanie grzejników na 60°C i podłogówki).
                            </div>
                            <div class="rk-faq2-visual">
                                <svg class="rk-faq2-svg" viewBox="0 0 100 80">
                                    <path d="M 50 10 L 50 70 M 20 40 L 80 40" stroke="#cbd5e1" stroke-width="12" stroke-linecap="round"/>
                                    <circle cx="50" cy="40" r="14" fill="#0f172a"/>
                                    <polygon points="50,26 64,40 50,54" fill="#059669"/>
                                    <line class="anim-flow-hot" x1="20" y1="40" x2="40" y2="40" stroke-width="4" stroke-linecap="round"/>
                                    <line class="anim-flow-cold" x1="50" y1="65" x2="50" y2="45" stroke-width="4" stroke-linecap="round"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Pytanie 5: Woda demineralizowana -->
            <div class="rk-faq2-item">
                <button class="rk-faq2-question">
                    <span>5. Czy instalację można napełnić zwykłą wodą z kranu?</span>
                    <div class="rk-faq2-icon"><svg width="18" height="18" 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-faq2-answer-wrapper">
                    <div class="rk-faq2-answer-inner">
                        <div class="rk-faq2-content">
                            <div class="rk-faq2-text">
                                Zdecydowanie odradza się takie praktyki. Instalacja frezowana posiada cienkie rurki (najczęściej 14 mm), co potęguje ryzyko zarastania przekroju. Układ <strong>musi być napełniony <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/" class="rk-faq2-link">wodą demineralizowaną</a> (przewodność < 100 µS/cm) z inhibitorem korozji</strong>. Zwykła kranówka grozi szybkim odkładaniem się kamienia kotłowego.
                            </div>
                            <div class="rk-faq2-visual">
                                <svg class="rk-faq2-svg" viewBox="0 0 100 80">
                                    <path class="anim-drop" d="M 50 15 C 50 15 25 45 25 60 C 25 73.8 36.2 85 50 85 C 63.8 85 75 73.8 75 60 C 75 45 50 15 50 15 Z" fill="#38bdf8"/>
                                    <path d="M 40 55 Q 50 45 60 55" fill="none" stroke="#ffffff" stroke-width="3" stroke-linecap="round" opacity="0.6"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

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

<!-- ==========================================
     LOGIKA ZABEZPIECZEŃ (DOMAIN LOCK) I JS
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie na poziomie domeny
    var host = window.location.hostname;
    var allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowed.indexOf(host) === -1) {
        var app = document.getElementById('rk-frez-faq-app');
        if (app) {
            app.innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:20px; font-weight:900;">BŁĄD LICENCJI: TEN MODUŁ STANOWI WŁASNOŚĆ INTELEKTUALNĄ SERWISU PROJEKT-OGRZEWANIA.PL</div>';
        }
        return;
    }

    // 2. Logika otwierania Akordeonu
    var items = document.querySelectorAll('.rk-faq2-item');
    items.forEach(function(item) {
        var btn = item.querySelector('.rk-faq2-question');
        btn.addEventListener('click', function() {
            var isActive = item.classList.contains('active');
            
            // Zamknij wszystkie inne zakładki
            items.forEach(function(el) { 
                el.classList.remove('active'); 
            });
            
            // Otwórz tylko klikniętą, o ile nie była wcześniej otwarta
            if (!isActive) {
                item.classList.add('active');
            }
        });
    });
    
    // Otwórz pierwszą zakładkę domyślnie
    if(items.length > 0) {
        items[0].classList.add('active');
    }
});
</script>



<style>
:root {
    --rk-mill-dark: #1e293b;
    --rk-mill-blue: #0284c7;
    --rk-mill-blue-hover: #0369a1;
    --rk-mill-orange: #f97316;
    --rk-mill-orange-light: #ffedd5;
    --rk-mill-red: #ef4444;
    --rk-mill-red-light: #fef2f2;
    --rk-mill-green: #10b981;
    --rk-mill-bg: #ffffff;
    --rk-mill-gray: #f8fafc;
    --rk-mill-text: #334155;
    --rk-mill-border: #e2e8f0;
}

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

/* Sekcja Główna */
.rk-mill-header {
    padding: 40px 50px 30px;
    background: linear-gradient(145deg, #f8fafc 0%, #f1f5f9 100%);
    border-bottom: 1px solid var(--rk-mill-border);
}

.rk-mill-title {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-mill-dark);
    margin: 0 0 20px 0;
    line-height: 1.3;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-mill-title svg {
    color: var(--rk-mill-orange);
    flex-shrink: 0;
}

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

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

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

/* Toggle Switch (Styl iOS/Android) */
.rk-toggle-container {
    display: flex;
    justify-content: center;
    margin-bottom: 35px;
}

.rk-toggle-bg {
    display: flex;
    background: #e2e8f0;
    border-radius: 99px;
    padding: 4px;
    position: relative;
    width: 100%;
    max-width: 500px;
    cursor: pointer;
}

.rk-toggle-btn {
    flex: 1;
    text-align: center;
    padding: 12px 20px;
    font-size: 15px;
    font-weight: 700;
    color: #64748b;
    z-index: 2;
    transition: color 0.3s ease;
    user-select: none;
}

.rk-toggle-btn.active {
    color: var(--rk-mill-dark);
}

.rk-toggle-slider {
    position: absolute;
    top: 4px;
    left: 4px;
    width: calc(50% - 4px);
    height: calc(100% - 8px);
    background: #ffffff;
    border-radius: 99px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    z-index: 1;
    transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}

.rk-toggle-bg[data-state="amateur"] .rk-toggle-slider {
    transform: translateX(100%);
}

/* Dynamiczny Kontent */
.rk-dynamic-view {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: stretch;
}

.rk-dynamic-card {
    padding: 30px;
    border-radius: 20px;
    border: 2px solid transparent;
    background: var(--rk-mill-gray);
    transition: all 0.4s ease;
    opacity: 0;
    display: none;
    transform: translateY(10px);
}

.rk-dynamic-card.active {
    display: flex;
    flex-direction: column;
    opacity: 1;
    transform: translateY(0);
}

.rk-card-pro { border-color: var(--rk-mill-orange-light); background: #fffcf8; }
.rk-card-amateur { border-color: var(--rk-mill-red-light); background: #fffcfc; }

.rk-card-icon {
    width: 64px;
    height: 64px;
    margin-bottom: 20px;
}

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

.rk-card-text {
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-mill-text);
    margin: 0 0 15px 0;
    flex-grow: 1;
}

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

/* Animacje SVG */
.anim-flow { stroke-dasharray: 10; animation: dashFlow 1s linear infinite; }
.anim-pulse { transform-origin: center; animation: scalePulse 2s infinite ease-in-out; }
.anim-block { animation: shakeBlock 0.5s infinite alternate; }

@keyframes dashFlow { to { stroke-dashoffset: -20; } }
@keyframes scalePulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); fill: var(--rk-mill-orange); } }
@keyframes shakeBlock { from { transform: translateX(-1px); } to { transform: translateX(1px); } }

/* Grid Informacyjny (Kafelki zamiast ściany tekstu) */
.rk-info-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    padding: 0 50px 40px;
}

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

.rk-info-box h4 {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-mill-dark);
    margin: 0 0 10px 0;
}

.rk-info-box p {
    font-size: 13px;
    line-height: 1.5;
    color: #64748b;
    margin: 0;
}

@media (max-width: 768px) {
    .rk-mill-header, .rk-mill-interactive { padding: 30px 20px; }
    .rk-info-grid { grid-template-columns: 1fr; padding: 0 20px 30px; }
    .rk-dynamic-view { grid-template-columns: 1fr; }
    .rk-mill-title { font-size: 22px; }
    .rk-toggle-bg { width: 100%; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/"
    },
    "headline": "Podsumowanie: Modernizacja bez skuwania i drastyczny spadek bezwładności",
    "description": "Frezowanie podłogówki pozwala na pełne przejście na zasilanie niskotemperaturowe. Gwarantuje czas nagrzewania poniżej 45 minut przy zachowaniu normy DIN 4726 i rzetelnych obliczeń OZC.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.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-17",
    "dateModified": "2026-05-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#dataset-frezowanie",
    "name": "Parametry hydrauliczne i termiczne układu frezowanego",
    "description": "Zestawienie porównawcze działania instalacji ogrzewania frezowanego z wykonanym profesjonalnym projektem OZC w stosunku do instalacji montowanych intuicyjnie.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "frezowanie ogrzewania podłogowego",
      "bezwładność termiczna podłogówki",
      "projektowe obciążenie cieplne ozc",
      "bariera antydyfuzyjna evoh din 4726",
      "opory hydrauliczne pompy ciepła"
    ],
    "measurementTechnique": "Obliczenia na bazie normy DIN 4726, PN-EN 12831 (OZC) oraz symulacji dynamiki przepływów hydraulicznych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Bezwładność cieplna: Stabilizacja temperatury powietrza w czasie krótszym niż 45 minut.",
        "Zabezpieczenie: Rury z powłoką antydyfuzyjną EVOH chronią układ przed zapowietrzeniem i korozją."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#webapp-symulator",
    "name": "Symulator Przepływów i OZC przy Frezowaniu",
    "description": "Interaktywny panel ilustrujący bezpośrednie skutki zaniechania obliczeń cieplnych (OZC) oraz zastosowania niewłaściwych materiałów w układach cienkowarstwowych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and CSS3",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-mill-wrapper" id="rk-frez-summary-app">
    
    <!-- Nagłówek -->
    <div class="rk-mill-header">
        <h2 class="rk-mill-title">
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/></svg>
            Podsumowanie: Modernizacja bez skuwania wylewki
        </h2>
        <p class="rk-mill-intro">
            Zastosowanie technologii frezowania to sprawdzona inżyniersko metoda na błyskawiczne przejście z układów wysokotemperaturowych na wydajne, niskotemperaturowe źródła ciepła (pompy ciepła). <strong>Kluczową zaletą tego systemu jest drastyczny spadek bezwładności termicznej</strong> – cienka warstwa masy polimerowo-cementowej sprawia, że temperatura w pomieszczeniach stabilizuje się w czasie <strong>poniżej 45 minut</strong>.
        </p>
    </div>

    <!-- Interaktywny Symulator Decyzji -->
    <div class="rk-mill-interactive">
        <h3 class="rk-mill-subtitle">Jak błędy projektowe niszczą sprawność instalacji?</h3>
        
        <div class="rk-toggle-container">
            <div class="rk-toggle-bg" id="rkSimToggle" data-state="pro">
                <div class="rk-toggle-slider"></div>
                <div class="rk-toggle-btn active" data-target="pro" onclick="switchState('pro')">Projekt Inżynierski (OZC)</div>
                <div class="rk-toggle-btn" data-target="amateur" onclick="switchState('amateur')">Instalacja "Na oko"</div>
            </div>
        </div>

        <div class="rk-dynamic-view">
            <!-- WIDOK: PROJEKT INŻYNIERSKI -->
            <div class="rk-dynamic-card rk-card-pro active" id="view-pro">
                <svg class="rk-card-icon" viewBox="0 0 64 64" fill="none">
                    <circle cx="32" cy="32" r="30" stroke="var(--rk-mill-orange)" stroke-width="4" stroke-dasharray="4 4" class="anim-flow"/>
                    <path d="M22 32l7 7 15-15" stroke="var(--rk-mill-orange)" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
                    <circle cx="32" cy="32" r="15" fill="var(--rk-mill-orange-light)" class="anim-pulse" opacity="0.5"/>
                </svg>
                <h4 class="rk-card-title">Precyzyjne rury i płynny obieg</h4>
                <p class="rk-card-text">
                    Zastosowanie rur z <a href="https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/">barierą antydyfuzyjną EVOH</a> (zgodną z rygorystyczną normą DIN 4726) blokuje przenikanie tlenu. Pompa ciepła działa z optymalnym parametrem, a opory hydrauliczne są pod pełną kontrolą.
                </p>
            </div>

            <!-- WIDOK: BRAK PROJEKTU -->
            <div class="rk-dynamic-card rk-card-amateur" id="view-amateur">
                <svg class="rk-card-icon" viewBox="0 0 64 64" fill="none">
                    <circle cx="32" cy="32" r="30" stroke="var(--rk-mill-red)" stroke-width="4"/>
                    <path d="M20 20l24 24M44 20L20 44" stroke="var(--rk-mill-red)" stroke-width="5" stroke-linecap="round" class="anim-block"/>
                    <rect x="25" y="25" width="14" height="14" fill="var(--rk-mill-red)" rx="2"/>
                </svg>
                <h4 class="rk-card-title" style="color: var(--rk-mill-red);">Blokada przepływów i straty</h4>
                <p class="rk-card-text">
                    Brak rzetelnych <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">obliczeń strat ciepła</a> skutkuje drastycznym wzrostem oporów w rurkach 14 mm. Taktowanie pompy ciepła pożera budżet, a woda omija najdłuższe, źle dobrane pętle grzewcze.
                </p>
            </div>
            
            <!-- OPIS WSPÓLNY - ZMIENIA SIĘ ZALEŻNIE OD STANU -->
            <div class="rk-dynamic-card active" style="background: transparent; border: none; padding: 10px 0;">
                <div id="desc-pro">
                    <h4 class="rk-card-title">OZC ratuje Twój portfel</h4>
                    <p class="rk-card-text">
                        Każda modernizacja frezowana bezwzględnie wymaga obliczenia <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowego obciążenia cieplnego (OZC)</a>. Dzięki temu unika się przewymiarowania źródła ciepła, a odpowiednie zgruntowanie wyfrezowanych bruzd gwarantuje doskonałe przewodzenie energii bez ryzyka odparzenia okładzin.
                    </p>
                </div>
                <div id="desc-amateur" style="display: none;">
                    <h4 class="rk-card-title" style="color: var(--rk-mill-red);">Pozorna oszczędność</h4>
                    <p class="rk-card-text">
                        Projektowanie "z pamięci" lub sugerowanie się układami tradycyjnymi kończy się katastrofą przy małych przekrojach rur frezowanych. Pył pozostawiony w bruzdach izoluje rurę, sztucznie zwiększając <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplną</a> układu.
                    </p>
                </div>
            </div>
        </div>
    </div>

    <!-- Procedury (Kafelki pod spodem) -->
    <div class="rk-info-grid">
        <div class="rk-info-box">
            <h4>1. Odpylenie i Grunt</h4>
            <p>Pył betonowy to izolator. Dokładne odkurzenie bruzd klasy M przed aplikacją mas wyrównujących zapobiega odparzeniu warstwy nośnej.</p>
        </div>
        <div class="rk-info-box">
            <h4>2. Normatywne Masy</h4>
            <p>Zalewanie układu wymaga dedykowanych mas polimerowo-cementowych o bardzo dobrym współczynniku przewodzenia energii cieplnej.</p>
        </div>
        <div class="rk-info-box">
            <h4>3. Obliczenia Hydrauliczne</h4>
            <p>Z uwagi na cieńszą rurę (zazwyczaj 14x2), zaniechanie kalibracji przepływów prowadzi do trwałego upośledzenia efektywności pompy.</p>
        </div>
    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE (DOMAIN LOCK)
=========================================== -->
<script>
// Zabezpieczenie Domenowe - blokada bez użycia tagów nagłówkowych
document.addEventListener('DOMContentLoaded', function() {
    var d = window.location.hostname;
    var a = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (a.indexOf(d) === -1) {
        var c = document.getElementById('rk-frez-summary-app');
        if (c) {
            c.innerHTML = '<div style="padding: 40px; text-align: center; background: #1e293b; color: #ef4444; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;"><div style="font-size: 40px; margin-bottom: 15px;">⚠️</div><div style="font-size: 18px; font-weight: bold; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Licencji</div><div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">Moduł analityczny i kod JSON-LD stanowią własność Projekt-Ogrzewania.pl. Wykryto nieautoryzowane użycie skryptu.</div></div>';
        }
    }
});

// Logika Symulatora (Przełącznik)
function switchState(state) {
    const bg = document.getElementById('rkSimToggle');
    const btns = bg.querySelectorAll('.rk-toggle-btn');
    
    // UI toggle
    bg.setAttribute('data-state', state);
    btns.forEach(b => b.classList.remove('active'));
    bg.querySelector(`[data-target="${state}"]`).classList.add('active');

    // Dynamic Content
    if (state === 'pro') {
        document.getElementById('view-pro').style.display = 'flex';
        document.getElementById('desc-pro').style.display = 'block';
        
        // Timeout to allow display:flex to apply before animating opacity/transform
        setTimeout(() => {
            document.getElementById('view-pro').classList.add('active');
            document.getElementById('view-amateur').classList.remove('active');
            setTimeout(() => document.getElementById('view-amateur').style.display = 'none', 400);
        }, 10);
        document.getElementById('desc-amateur').style.display = 'none';

    } else {
        document.getElementById('view-amateur').style.display = 'flex';
        document.getElementById('desc-amateur').style.display = 'block';
        
        setTimeout(() => {
            document.getElementById('view-amateur').classList.add('active');
            document.getElementById('view-pro').classList.remove('active');
            setTimeout(() => document.getElementById('view-pro').style.display = 'none', 400);
        }, 10);
        document.getElementById('desc-pro').style.display = 'none';
    }
}
</script>



<style>
:root {
    --rk-dl2-dark: #0f172a; /* Głęboki granat */
    --rk-dl2-brand: #10b981; /* Techniczny szmaragd */
    --rk-dl2-brand-dark: #047857;
    --rk-dl2-accent: #0ea5e9; /* Morski cyjan */
    --rk-dl2-bg: #f8fafc;
    --rk-dl2-border: #e2e8f0;
    --rk-dl2-text: #334155;
    --rk-dl2-white: #ffffff;
}

.rk-dl2-container {
    max-width: 950px;
    margin: 60px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-dl2-white);
    border-radius: 24px;
    border: 1px solid rgba(16, 185, 129, 0.3);
    box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.1);
    overflow: hidden;
}

/* NAGŁÓWEK SEKCI */
.rk-dl2-header {
    background: linear-gradient(135deg, var(--rk-dl2-dark) 0%, #1e293b 100%);
    padding: 45px 50px;
    color: var(--rk-dl2-white);
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    border-bottom: 4px solid var(--rk-dl2-brand);
}

.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(16, 185, 129, 0.2);
    border: 1px solid rgba(16, 185, 129, 0.3);
    color: #6ee7b7;
    padding: 6px 14px;
    border-radius: 50px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 18px;
}

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

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

/* WIZUALIZACJA PDF / IKONA */
.rk-dl2-visual {
    position: relative;
    z-index: 2;
}

.rk-dl2-icon-svg {
    width: 90px;
    height: auto;
    filter: drop-shadow(0 15px 25px rgba(0,0,0,0.4));
    animation: rkFloat 3.5s infinite ease-in-out alternate;
}

@keyframes rkFloat {
    0% { transform: translateY(0) rotate(0deg); }
    100% { transform: translateY(-12px) rotate(3deg); }
}

/* GŁÓWNY WORKSPACE */
.rk-dl2-workspace {
    display: flex;
    padding: 40px 50px;
    gap: 45px;
    background: var(--rk-dl2-bg);
}

.rk-dl2-preview {
    flex: 1;
    background: #ffffff;
    border: 1px solid var(--rk-dl2-border);
    border-radius: 16px;
    padding: 12px;
    position: relative;
    cursor: zoom-in;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.4s;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
}

.rk-dl2-preview:hover {
    transform: scale(1.03) translateY(-5px);
    box-shadow: 0 20px 35px -5px rgba(16, 185, 129, 0.15);
}

.rk-dl2-img {
    width: 100%;
    height: auto;
    border-radius: 10px;
    display: block;
}

.rk-dl2-zoom-tag {
    position: absolute;
    bottom: 20px;
    right: 20px;
    background: rgba(15, 23, 42, 0.85);
    color: #ffffff;
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 700;
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    gap: 6px;
}

.rk-dl2-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

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

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

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

/* PRZYCISK POBIERANIA */
.rk-dl2-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-dl2-brand);
    color: var(--rk-dl2-white);
    text-decoration: none !important;
    padding: 18px 30px;
    border-radius: 14px;
    font-weight: 900;
    font-size: 16px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 10px 20px -5px rgba(16, 185, 129, 0.4);
    border: 2px solid transparent;
}

.rk-dl2-btn:hover {
    background: var(--rk-dl2-brand-dark);
    transform: translateY(-3px);
    box-shadow: 0 15px 30px -5px rgba(16, 185, 129, 0.5);
    border-color: #6ee7b7;
}

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

/* STOPKA MODUŁU */
.rk-dl2-footer {
    padding: 20px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-dl2-border);
    font-size: 13px;
    color: #64748b;
    text-align: center;
}

.rk-dl2-footer a {
    color: var(--rk-dl2-accent);
    font-weight: 700;
    text-decoration: none;
}

@media (max-width: 800px) {
    .rk-dl2-header { flex-direction: column; text-align: center; padding: 35px 25px; }
    .rk-dl2-header-content { max-width: 100%; margin-bottom: 30px; }
    .rk-dl2-workspace { flex-direction: column; padding: 30px 25px; gap: 30px; }
    .rk-dl2-preview { margin-bottom: 10px; }
    .rk-dl2-btn { width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#infografika-pdf",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/"
    },
    "headline": "Frezowanie podłogówki – Kompendium Wiedzy (Infografika PDF)",
    "description": "Pobierz inżynierskie zestawienie technologii frezowania ogrzewania podłogowego. Schematy, koszty, grubości jastrychu i najczęstsze błędy w jednym pliku PDF.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Frezowanie-ogrzewania-podlogowego-w-starym-domu.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.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-17",
    "dateModified": "2026-05-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#dataset-infografika",
    "name": "Matryca decyzyjna: Frezowanie vs Tradycyjne Kucie",
    "description": "Zbiór danych określający wady, zalety oraz techniczne wymagania brzegowe (nośność, grubość) dla wylewek poddawanych nacinaniu diamentowemu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika frezowanie podłogówki",
      "porównanie kucie a frezowanie pdf",
      "schemat układania rur w bruzdach",
      "wymagania wylewki pod frezowanie",
      "błędy instalatora ogrzewanie podłogowe"
    ],
    "measurementTechnique": "Zestawienie analityczne kosztów i czasu realizacji opracowane na podstawie normy PN-EN 1264-4.",
    "mainEntity": {
      "@type": "Thing",
      "name": "Technologiczna karta porównawcza instalacji płaszczyznowych"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#download-hub",
    "name": "Centrum Pobierania Wiedzy: Frezowanie",
    "description": "Interaktywny moduł umożliwiający wizualizację HD i pobranie autorskiej dokumentacji technicznej w formacie wektorowym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5"
  }
]
</script>

<div class="rk-dl2-container" id="app-frez-dl">
    
    <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" style="margin-right:4px;"><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 PDF
            </div>
            <h2>Pobierz Kompendium Wiedzy</h2>
            <p>Zabierz inżynierską wiedzę na budowę. Kompletne zestawienie technologii frezowania, schematy ułożenia rur i checklisty błędów w jednym pliku.</p>
        </div>
        <div class="rk-dl2-visual">
            <svg class="rk-dl2-icon-svg" viewBox="0 0 100 120" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path d="M20 10 C20 4.477 24.477 0 30 0 L70 0 L100 30 L100 110 C100 115.523 95.523 120 90 120 L30 120 C24.477 120 20 115.523 20 110 Z" fill="#ef4444" stroke="#ffffff" stroke-width="4"/>
                <path d="M70 0 L70 30 L100 30" fill="#b91c1c"/>
                <circle cx="60" cy="65" r="15" fill="none" stroke="#ffffff" stroke-width="4" stroke-dasharray="8 4"/>
                <circle cx="60" cy="65" r="4" fill="#ffffff"/>
                <rect x="0" y="85" width="55" height="25" rx="4" fill="#ffffff" stroke="#ef4444" stroke-width="2"/>
                <text x="8" y="103" fill="#ef4444" font-size="16" 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/04/Infografika-Frezowanie-ogrzewania-podlogowego-w-starym-domu.webp', '_blank')">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Frezowanie-ogrzewania-podlogowego-w-starym-domu.webp" alt="Infografika Frezowanie ogrzewania podłogowego w starym domu" class="rk-dl2-img" loading="lazy">
            <div class="rk-dl2-zoom-tag">
                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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>
                Kliknij, aby powiększyć
            </div>
        </div>

        <div class="rk-dl2-info">
            <h3>Co znajdziesz w infografice?</h3>
            <ul class="rk-dl2-list">
                <li class="rk-dl2-item">
                    <svg class="rk-dl2-check" 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>
                    <span><strong>Analiza Porównawcza:</strong> Tradycyjne kucie kontra bezpyłowe frezowanie.</span>
                </li>
                <li class="rk-dl2-item">
                    <svg class="rk-dl2-check" 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>
                    <span><strong>Wymagania Techniczne:</strong> Krytyczne grubości i dopuszczalne klasy jastrychu.</span>
                </li>
                <li class="rk-dl2-item">
                    <svg class="rk-dl2-check" 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>
                    <span><strong>Czerwone Flagi:</strong> Lista najczęstszych, kosztownych błędów instalatorów.</span>
                </li>
            </ul>

            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Frezowanie-ogrzewania-podlogowego-w-starym-domu.pdf" class="rk-dl2-btn" target="_blank" download>
                POBIERZ PLIK W WYSOKIEJ JAKOŚCI
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 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>
            
            <p style="margin-top: 20px; font-size: 13.5px; color: #64748b; line-height: 1.5;">
                Zabezpiecz swoją inwestycję z autorskim <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" style="color:var(--rk-dl2-brand-dark); font-weight:800; text-decoration:underline;">Projektem Ogrzewania Podłogowego OZC</a>. Obliczenia na twardych danych uchronią Cię przed awarią.
            </p>
        </div>

    </div>

    <div class="rk-dl2-footer">
        © 2026 Projekt-Ogrzewania.pl | Inżynier HVAC: <strong>Robert Kucharski</strong>. Możesz udostępniać ten plik dalej (z zachowaniem linku).
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- OCHRONA DOMENOWA (Bez tagów nagłówkowych) ---
    const allowedHost = window.location.hostname;
    const whitelisted = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!whitelisted.includes(allowedHost)) {
        const dApp = document.getElementById('app-frez-dl');
        if (dApp) {
            dApp.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; margin-bottom: 10px;">Zasoby Chronione Licencją</div>
                    <p style="color: #cbd5e1; font-size: 14px; margin: 0;">Ta infografika i dokumentacja PDF są własnością serwisu Projekt-Ogrzewania.pl. Osadzanie na zewnętrznych domenach jest zablokowane.</p>
                </div>
            `;
        }
    }
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/">Frezowanie ogrzewania podłogowego w starym domu.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ogrzewanie podłogowe a pasywne zyski ciepła.</title>
		<link>https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 30 Dec 2025 11:28:18 +0000</pubDate>
				<category><![CDATA[Automatyka domowa]]></category>
		<category><![CDATA[Automatyka grzewcza]]></category>
		<category><![CDATA[Budownictwo energooszczędne]]></category>
		<category><![CDATA[Dom pasywny]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[HVAC]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Komfort w domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Technologie budowlane]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[bezwładność cieplna]]></category>
		<category><![CDATA[bilans cieplny]]></category>
		<category><![CDATA[energia słoneczna]]></category>
		<category><![CDATA[komfort termiczny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pasywne zyski ciepła]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[pompy ciepła]]></category>
		<category><![CDATA[projekt instalacji]]></category>
		<category><![CDATA[sterowanie strefowe]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3004</guid>

					<description><![CDATA[<p>Nowoczesne budownictwo coraz częściej wykorzystuje darmową energię słoneczną, ale jej niewłaściwe połączenie z instalacją grzewczą potrafi przynieść więcej szkód niż korzyści. Ogrzewanie podłogowe a pasywne zyski ciepła to temat kluczowy dla komfortu i efektywności energetycznej budynku. W artykule pokazujemy, jak promieniowanie słoneczne wpływa na bezwładną wylewkę, dlaczego dochodzi do przegrzewania pomieszczeń oraz jak dzięki świadomemu projektowi i inteligentnemu sterowaniu zamienić słońce w realne wsparcie systemu grzewczego, a nie jego wroga.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/">Ogrzewanie podłogowe a pasywne zyski ciepła.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-solar-guide {
    --rk-dark: #102536;
    --rk-navy: #14384d;
    --rk-blue: #078fbe;
    --rk-cyan: #28c9da;
    --rk-cyan-soft: #e9fbff;
    --rk-orange: #ff7438;
    --rk-red: #e34837;
    --rk-yellow: #f3bd3f;
    --rk-yellow-soft: #fff8df;
    --rk-green: #16876d;
    --rk-green-soft: #eaf8f3;
    --rk-ink: #1f2937;
    --rk-text: #475968;
    --rk-muted: #6b7d89;
    --rk-line: #d9e7ed;
    --rk-soft: #f4f9fb;
    --rk-warm: #fff3eb;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1180px;
    margin: 34px auto 72px;
    color: var(--rk-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 18px;
    line-height: 1.76;
  }

  #rk-solar-guide,
  #rk-solar-guide * {
    box-sizing: border-box;
  }

  #rk-solar-guide img,
  #rk-solar-guide svg {
    max-width: 100%;
  }

  #rk-solar-guide button,
  #rk-solar-guide input,
  #rk-solar-guide select,
  #rk-solar-guide label,
  #rk-solar-guide summary,
  #rk-solar-guide a {
    font: inherit;
    -webkit-tap-highlight-color: transparent;
  }

  #rk-solar-guide a {
    color: var(--rk-blue);
    font-weight: 780;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }

  #rk-solar-guide a:hover,
  #rk-solar-guide a:focus-visible {
    color: var(--rk-red);
  }

  #rk-solar-guide h2,
  #rk-solar-guide h3,
  #rk-solar-guide h4 {
    margin-top: 0;
    color: var(--rk-dark);
    font-weight: 920;
    letter-spacing: -0.035em;
    line-height: 1.16;
  }

  #rk-solar-guide h2 {
    margin-bottom: 18px;
    font-size: clamp(1.65rem, 3.7vw, 2.62rem);
  }

  #rk-solar-guide h3 {
    margin-bottom: 12px;
    font-size: clamp(1.15rem, 2.4vw, 1.5rem);
  }

  #rk-solar-guide h4 {
    margin-bottom: 8px;
    font-size: 1.03rem;
    letter-spacing: -0.018em;
  }

  #rk-solar-guide h2::before,
  #rk-solar-guide h2::after,
  #rk-solar-guide h3::before,
  #rk-solar-guide h3::after,
  #rk-solar-guide h4::before,
  #rk-solar-guide h4::after {
    content: none !important;
    display: none !important;
  }

  #rk-solar-guide p {
    margin: 0 0 1.18em;
    color: var(--rk-text);
  }

  #rk-solar-guide strong {
    color: var(--rk-dark);
  }

  #rk-solar-guide section[id] {
    scroll-margin-top: 28px;
  }

  #rk-solar-guide .rk-solar-shell {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 30px;
    background: var(--rk-white);
    box-shadow: 0 25px 70px rgba(16, 37, 54, 0.12);
  }

  #rk-solar-guide .rk-solar-progress-track {
    position: sticky;
    z-index: 30;
    top: 0;
    width: 100%;
    height: 5px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.9);
  }

  #rk-solar-guide .rk-solar-progress {
    width: 0;
    height: 100%;
    background: linear-gradient(90deg, var(--rk-cyan), var(--rk-blue), var(--rk-yellow), var(--rk-orange));
  }

  #rk-solar-guide .rk-solar-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(38px, 6.5vw, 78px);
    color: var(--rk-white);
    background:
      radial-gradient(circle at 87% 15%, rgba(255, 190, 63, 0.5), transparent 21%),
      radial-gradient(circle at 78% 78%, rgba(40, 201, 218, 0.26), transparent 31%),
      linear-gradient(135deg, #0d2230 0%, #143b50 58%, #09627b 100%);
  }

  #rk-solar-guide .rk-solar-hero::before {
    content: "☀";
    position: absolute;
    z-index: -1;
    right: -50px;
    bottom: -135px;
    color: rgba(255, 255, 255, 0.05);
    font-size: clamp(17rem, 38vw, 32rem);
    font-weight: 950;
    line-height: 1;
    pointer-events: none;
  }

  #rk-solar-guide .rk-solar-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.16fr) minmax(285px, 0.84fr);
    gap: clamp(28px, 5vw, 62px);
    align-items: center;
  }

  #rk-solar-guide .rk-solar-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 23px;
    padding: 8px 15px;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 999px;
    color: #a3f4ff;
    background: rgba(255, 255, 255, 0.06);
    font-size: 0.75rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    line-height: 1.3;
    text-transform: uppercase;
  }

  #rk-solar-guide .rk-solar-eyebrow b {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--rk-yellow);
    box-shadow: 0 0 0 7px rgba(243, 189, 63, 0.17);
  }

  #rk-solar-guide .rk-solar-hero-title {
    max-width: 820px;
    margin: 0 0 24px;
    color: var(--rk-white);
    font-size: clamp(2.03rem, 5vw, 4rem);
    font-weight: 950;
    letter-spacing: -0.055em;
    line-height: 1.02;
  }

  #rk-solar-guide .rk-solar-hero-lead {
    max-width: 810px;
    margin-bottom: 26px;
    color: #dcecf4;
    font-size: clamp(1.02rem, 2.1vw, 1.24rem);
    line-height: 1.62;
  }

  #rk-solar-guide .rk-solar-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 11px 22px;
    color: #c9dce5;
    font-size: 0.81rem;
    font-weight: 780;
  }

  #rk-solar-guide .rk-solar-meta span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
  }

  #rk-solar-guide .rk-solar-meta i {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--rk-orange);
  }

  #rk-solar-guide .rk-solar-hero-panel {
    padding: 25px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.08);
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.12);
    backdrop-filter: blur(7px);
  }

  #rk-solar-guide .rk-solar-hero-panel small {
    display: block;
    margin-bottom: 14px;
    color: #8df1fc;
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-solar-guide .rk-solar-hero-balance {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 9px;
    align-items: center;
  }

  #rk-solar-guide .rk-solar-hero-value {
    min-width: 0;
    padding: 16px 9px;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.09);
    text-align: center;
  }

  #rk-solar-guide .rk-solar-hero-value span {
    display: block;
    color: #c7dae4;
    font-size: 0.63rem;
    font-weight: 850;
    line-height: 1.35;
    text-transform: uppercase;
  }

  #rk-solar-guide .rk-solar-hero-value strong {
    display: block;
    margin-top: 5px;
    color: var(--rk-white);
    font-size: 1.35rem;
    font-weight: 950;
  }

  #rk-solar-guide .rk-solar-hero-symbol {
    color: var(--rk-yellow);
    font-size: 1.35rem;
    font-weight: 950;
  }

  #rk-solar-guide .rk-solar-hero-result {
    margin-top: 14px;
    padding: 14px;
    border-radius: 15px;
    color: var(--rk-white);
    background: rgba(40, 201, 218, 0.16);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 1rem;
    font-weight: 900;
    text-align: center;
  }

  #rk-solar-guide .rk-solar-nav {
    display: flex;
    gap: 9px;
    overflow-x: auto;
    padding: 15px clamp(20px, 5vw, 56px);
    border-bottom: 1px solid var(--rk-line);
    background: var(--rk-white);
    scrollbar-width: thin;
  }

  #rk-solar-guide .rk-solar-nav a {
    flex: 0 0 auto;
    padding: 8px 13px;
    border: 1px solid var(--rk-line);
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-soft);
    font-size: 0.73rem;
    font-weight: 880;
    text-decoration: none;
    white-space: nowrap;
  }

  #rk-solar-guide .rk-solar-nav a:hover,
  #rk-solar-guide .rk-solar-nav a:focus-visible {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-solar-guide .rk-solar-body {
    padding: clamp(28px, 6vw, 70px);
  }

  #rk-solar-guide .rk-solar-section {
    margin-bottom: clamp(56px, 8vw, 94px);
  }

  #rk-solar-guide .rk-solar-section:last-child {
    margin-bottom: 0;
  }

  #rk-solar-guide .rk-solar-kicker {
    display: block;
    margin-bottom: 9px;
    color: var(--rk-orange);
    font-size: 0.72rem;
    font-weight: 930;
    letter-spacing: 0.095em;
    line-height: 1.4;
    text-transform: uppercase;
  }

  #rk-solar-guide .rk-solar-lead {
    max-width: 940px;
    font-size: 1.08rem;
    line-height: 1.82;
  }

  #rk-solar-guide .rk-solar-dropcap::first-letter {
    float: left;
    margin: 0.08em 0.12em 0 0;
    color: var(--rk-orange);
    font-size: 3.65rem;
    font-weight: 950;
    line-height: 0.82;
  }

  #rk-solar-guide .rk-solar-grid-2,
  #rk-solar-guide .rk-solar-grid-3,
  #rk-solar-guide .rk-solar-grid-4 {
    display: grid;
    gap: 17px;
  }

  #rk-solar-guide .rk-solar-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-solar-guide .rk-solar-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-solar-guide .rk-solar-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #rk-solar-guide .rk-solar-card {
    min-width: 0;
    padding: 24px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-card-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 48px;
    height: 48px;
    margin-bottom: 16px;
    padding: 0 12px;
    border-radius: 14px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 0.78rem;
    font-weight: 930;
  }

  #rk-solar-guide .rk-solar-card p:last-child {
    margin-bottom: 0;
  }

  #rk-solar-guide .rk-solar-answer {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(270px, 0.88fr);
    gap: 22px;
    align-items: stretch;
    margin-top: 27px;
  }

  #rk-solar-guide .rk-solar-answer-main {
    padding: clamp(25px, 4vw, 40px);
    border: 1px solid #bddce7;
    border-radius: 23px;
    background: var(--rk-cyan-soft);
  }

  #rk-solar-guide .rk-solar-answer-side {
    padding: clamp(25px, 4vw, 40px);
    border-radius: 23px;
    color: var(--rk-white);
    background: var(--rk-dark);
  }

  #rk-solar-guide .rk-solar-answer-side h3 {
    color: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-answer-side p {
    color: #d6e7ef;
  }

  #rk-solar-guide .rk-solar-answer-side p:last-child {
    margin-bottom: 0;
  }

  #rk-solar-guide .rk-solar-note,
  #rk-solar-guide .rk-solar-warning,
  #rk-solar-guide .rk-solar-success,
  #rk-solar-guide .rk-solar-danger {
    margin-top: 22px;
    padding: 20px 22px;
    border-left: 6px solid var(--rk-blue);
    border-radius: 9px 17px 17px 9px;
    background: var(--rk-cyan-soft);
  }

  #rk-solar-guide .rk-solar-warning {
    border-left-color: var(--rk-orange);
    background: var(--rk-warm);
  }

  #rk-solar-guide .rk-solar-success {
    border-left-color: var(--rk-green);
    background: var(--rk-green-soft);
  }

  #rk-solar-guide .rk-solar-danger {
    border-left-color: var(--rk-red);
    background: #fff1ef;
  }

  #rk-solar-guide .rk-solar-note p:last-child,
  #rk-solar-guide .rk-solar-warning p:last-child,
  #rk-solar-guide .rk-solar-success p:last-child,
  #rk-solar-guide .rk-solar-danger p:last-child {
    margin-bottom: 0;
  }

  #rk-solar-guide .rk-solar-corrections {
    overflow: hidden;
    border: 1px solid #efc9b9;
    border-radius: 24px;
    background: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-corrections-head {
    padding: 27px clamp(25px, 5vw, 45px);
    background: var(--rk-warm);
  }

  #rk-solar-guide .rk-solar-corrections-head h2 {
    margin-bottom: 8px;
  }

  #rk-solar-guide .rk-solar-corrections-head p {
    margin-bottom: 0;
  }

  #rk-solar-guide .rk-solar-corrections-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    background: var(--rk-line);
  }

  #rk-solar-guide .rk-solar-correction {
    padding: 24px;
    background: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-correction b {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    margin-bottom: 13px;
    border-radius: 12px;
    color: var(--rk-white);
    background: var(--rk-orange);
    font-size: 0.75rem;
  }

  #rk-solar-guide .rk-solar-correction p:last-child {
    margin-bottom: 0;
  }

  #rk-solar-guide .rk-solar-flow {
    overflow: hidden;
    margin-top: 25px;
    border: 1px solid var(--rk-line);
    border-radius: 23px;
    background: linear-gradient(180deg, #f8fcfd, #eef8fb);
  }

  #rk-solar-guide .rk-solar-flow-head {
    padding: 23px 25px 0;
  }

  #rk-solar-guide .rk-solar-flow-head p {
    margin-bottom: 0;
  }

  #rk-solar-guide .rk-solar-flow svg {
    display: block;
    width: 100%;
    height: auto;
  }

  #rk-solar-guide .rk-solar-lab {
    overflow: hidden;
    border: 1px solid #b8dce7;
    border-radius: 28px;
    background: var(--rk-white);
    box-shadow: 0 24px 62px rgba(16, 37, 54, 0.12);
  }

  #rk-solar-guide .rk-solar-lab-head {
    padding: clamp(30px, 5vw, 54px);
    color: var(--rk-white);
    background:
      radial-gradient(circle at 90% 8%, rgba(243, 189, 63, 0.4), transparent 28%),
      linear-gradient(125deg, var(--rk-dark), #174b63);
  }

  #rk-solar-guide .rk-solar-lab-head h2 {
    max-width: 900px;
    margin-bottom: 13px;
    color: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-lab-head p {
    max-width: 920px;
    margin-bottom: 0;
    color: #d7e9f1;
  }

  #rk-solar-guide .rk-solar-lab-layout {
    display: grid;
    grid-template-columns: minmax(330px, 0.86fr) minmax(0, 1.14fr);
  }

  #rk-solar-guide .rk-solar-controls {
    padding: clamp(25px, 4vw, 40px);
    border-right: 1px solid var(--rk-line);
    background: var(--rk-soft);
  }

  #rk-solar-guide .rk-solar-control {
    margin-bottom: 21px;
  }

  #rk-solar-guide .rk-solar-control:last-child {
    margin-bottom: 0;
  }

  #rk-solar-guide .rk-solar-control-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
  }

  #rk-solar-guide .rk-solar-control label {
    color: var(--rk-dark);
    font-size: 0.8rem;
    font-weight: 880;
    line-height: 1.45;
  }

  #rk-solar-guide .rk-solar-output {
    flex: 0 0 auto;
    min-width: 70px;
    padding: 5px 9px;
    border-radius: 10px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 0.72rem;
    font-weight: 900;
    line-height: 1.3;
    text-align: center;
  }

  #rk-solar-guide .rk-solar-control input[type="range"] {
    width: 100%;
    height: 8px;
    margin: 0;
    accent-color: var(--rk-orange);
    cursor: pointer;
  }

  #rk-solar-guide .rk-solar-control small {
    display: block;
    margin-top: 6px;
    color: var(--rk-muted);
    font-size: 0.68rem;
    line-height: 1.5;
  }

  #rk-solar-guide .rk-solar-results {
    min-width: 0;
    padding: clamp(25px, 4vw, 40px);
  }

  #rk-solar-guide .rk-solar-result-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
  }

  #rk-solar-guide .rk-solar-result-card {
    min-width: 0;
    padding: 17px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: var(--rk-soft);
  }

  #rk-solar-guide .rk-solar-result-card.is-main {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-solar-guide .rk-solar-result-card small {
    display: block;
    min-height: 2.8em;
    margin-bottom: 7px;
    color: var(--rk-muted);
    font-size: 0.65rem;
    font-weight: 820;
    line-height: 1.4;
  }

  #rk-solar-guide .rk-solar-result-card.is-main small {
    color: #d6f7fd;
  }

  #rk-solar-guide .rk-solar-result-number {
    overflow-wrap: anywhere;
    color: var(--rk-dark);
    font-size: clamp(1.05rem, 2.1vw, 1.45rem);
    font-weight: 950;
    letter-spacing: -0.035em;
    line-height: 1.15;
  }

  #rk-solar-guide .rk-solar-result-card.is-main .rk-solar-result-number {
    color: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-status {
    margin-top: 16px;
    padding: 19px 20px;
    border-left: 6px solid var(--rk-blue);
    border-radius: 10px 17px 17px 10px;
    background: var(--rk-cyan-soft);
  }

  #rk-solar-guide .rk-solar-status.is-warning {
    border-left-color: var(--rk-orange);
    background: var(--rk-warm);
  }

  #rk-solar-guide .rk-solar-status.is-danger {
    border-left-color: var(--rk-red);
    background: #fff1ef;
  }

  #rk-solar-guide .rk-solar-status.is-success {
    border-left-color: var(--rk-green);
    background: var(--rk-green-soft);
  }

  #rk-solar-guide .rk-solar-status strong,
  #rk-solar-guide .rk-solar-status span {
    display: block;
  }

  #rk-solar-guide .rk-solar-status span {
    margin-top: 4px;
    color: var(--rk-text);
    font-size: 0.78rem;
    line-height: 1.55;
  }

  #rk-solar-guide .rk-solar-chart {
    margin-top: 18px;
    padding: 21px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-soft);
  }

  #rk-solar-guide .rk-solar-chart h3 {
    margin-bottom: 5px;
    font-size: 1.03rem;
  }

  #rk-solar-guide .rk-solar-chart p {
    margin-bottom: 12px;
    font-size: 0.72rem;
  }

  #rk-solar-guide .rk-solar-chart svg {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
  }

  #rk-solar-guide .rk-solar-chart-grid {
    stroke: #d6e4ea;
    stroke-width: 1;
  }

  #rk-solar-guide .rk-solar-chart-axis {
    stroke: #8196a3;
    stroke-width: 1.5;
  }

  #rk-solar-guide .rk-solar-chart-label {
    fill: #5b6f7c;
    font-size: 13px;
    font-weight: 700;
  }

  #rk-solar-guide .rk-solar-bar-loss {
    fill: var(--rk-red);
  }

  #rk-solar-guide .rk-solar-bar-sun {
    fill: var(--rk-yellow);
  }

  #rk-solar-guide .rk-solar-bar-internal {
    fill: var(--rk-green);
  }

  #rk-solar-guide .rk-solar-bar-floor {
    fill: var(--rk-blue);
  }

  #rk-solar-guide .rk-solar-chart-value {
    fill: var(--rk-dark);
    font-size: 14px;
    font-weight: 900;
  }

  #rk-solar-guide .rk-solar-inline-cta {
    padding: clamp(27px, 5vw, 45px);
    color: var(--rk-white);
    background: linear-gradient(125deg, var(--rk-dark), #17475e);
  }

  #rk-solar-guide .rk-solar-inline-cta h3 {
    max-width: 900px;
    margin-bottom: 12px;
    color: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-inline-cta p {
    max-width: 930px;
    color: #d6e8f0;
  }

  #rk-solar-guide .rk-solar-cta-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    margin-top: 6px;
    padding: 14px 23px;
    border-radius: 15px;
    color: var(--rk-white);
    background: linear-gradient(90deg, var(--rk-orange), #f04434);
    box-shadow: 0 12px 28px rgba(227, 72, 55, 0.24);
    font-size: 0.83rem;
    font-weight: 920;
    line-height: 1.35;
    text-align: center;
    text-decoration: none;
    transition: transform 0.2s ease, background 0.2s ease;
  }

  #rk-solar-guide .rk-solar-cta-button:hover,
  #rk-solar-guide .rk-solar-cta-button:focus-visible {
    color: var(--rk-white);
    background: linear-gradient(90deg, var(--rk-red), var(--rk-orange));
    transform: translateY(-1px);
  }

  #rk-solar-guide .rk-solar-disclosure {
    display: block;
    margin-top: 11px;
    color: #bad0dc;
    font-size: 0.68rem;
    line-height: 1.5;
  }

  #rk-solar-guide .rk-solar-formulas {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }

  #rk-solar-guide .rk-solar-formula {
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 19px;
    background: var(--rk-soft);
  }

  #rk-solar-guide .rk-solar-formula span {
    display: block;
    margin-bottom: 8px;
    color: var(--rk-orange);
    font-size: 0.69rem;
    font-weight: 930;
    letter-spacing: 0.07em;
    text-transform: uppercase;
  }

  #rk-solar-guide .rk-solar-formula code {
    display: block;
    margin-bottom: 9px;
    color: var(--rk-dark);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.88rem;
    font-weight: 850;
    line-height: 1.55;
    white-space: normal;
  }

  #rk-solar-guide .rk-solar-formula p {
    margin-bottom: 0;
    font-size: 0.78rem;
    line-height: 1.62;
  }

  #rk-solar-guide .rk-solar-selfreg {
    display: grid;
    grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);
    gap: 22px;
    align-items: stretch;
    margin-top: 25px;
  }

  #rk-solar-guide .rk-solar-selfreg-visual {
    position: relative;
    overflow: hidden;
    min-height: 320px;
    padding: 30px;
    border-radius: 23px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 75% 20%, rgba(243, 189, 63, 0.35), transparent 24%),
      linear-gradient(145deg, var(--rk-dark), #184c64);
  }

  #rk-solar-guide .rk-solar-selfreg-visual h3 {
    color: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-selfreg-visual p {
    color: #d7e9f1;
  }

  #rk-solar-guide .rk-solar-selfreg-scale {
    display: grid;
    gap: 12px;
    margin-top: 25px;
  }

  #rk-solar-guide .rk-solar-selfreg-row {
    display: grid;
    grid-template-columns: 105px minmax(0, 1fr) 64px;
    gap: 10px;
    align-items: center;
    color: #d8eaf2;
    font-size: 0.72rem;
    font-weight: 800;
  }

  #rk-solar-guide .rk-solar-selfreg-track {
    height: 16px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.1);
  }

  #rk-solar-guide .rk-solar-selfreg-fill {
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--rk-cyan), var(--rk-yellow));
  }

  #rk-solar-guide .rk-solar-selfreg-copy {
    padding: 29px;
    border: 1px solid var(--rk-line);
    border-radius: 23px;
    background: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-table-wrap {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
  }

  #rk-solar-guide table {
    width: 100%;
    margin: 0;
    border-collapse: collapse;
    table-layout: fixed;
  }

  #rk-solar-guide th,
  #rk-solar-guide td {
    padding: 15px 17px;
    border: 0;
    border-bottom: 1px solid var(--rk-line);
    color: var(--rk-text);
    text-align: left;
    vertical-align: top;
  }

  #rk-solar-guide th {
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.73rem;
    font-weight: 900;
    line-height: 1.4;
  }

  #rk-solar-guide td {
    font-size: 0.82rem;
    line-height: 1.55;
  }

  #rk-solar-guide tbody tr:nth-child(even) td {
    background: var(--rk-soft);
  }

  #rk-solar-guide tbody tr:last-child td {
    border-bottom: 0;
  }

  #rk-solar-guide .rk-solar-strategy-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
  }

  #rk-solar-guide .rk-solar-strategy {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-strategy-head {
    min-height: 92px;
    padding: 20px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-weight: 900;
    line-height: 1.35;
  }

  #rk-solar-guide .rk-solar-strategy:nth-child(2) .rk-solar-strategy-head {
    background: var(--rk-orange);
  }

  #rk-solar-guide .rk-solar-strategy:nth-child(3) .rk-solar-strategy-head {
    background: var(--rk-green);
  }

  #rk-solar-guide .rk-solar-strategy-body {
    padding: 21px;
  }

  #rk-solar-guide .rk-solar-strategy-body p:last-child {
    margin-bottom: 0;
  }

  #rk-solar-guide .rk-solar-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    counter-reset: rk-solar-step;
  }

  #rk-solar-guide .rk-solar-step {
    position: relative;
    min-width: 0;
    padding: 24px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-soft);
    counter-increment: rk-solar-step;
  }

  #rk-solar-guide .rk-solar-step::before {
    content: counter(rk-solar-step, decimal-leading-zero);
    display: inline-flex;
    width: 46px;
    height: 46px;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
    border-radius: 14px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 0.75rem;
    font-weight: 930;
  }

  #rk-solar-guide .rk-solar-step p:last-child {
    margin-bottom: 0;
  }

  #rk-solar-guide .rk-solar-checklist {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px;
    margin: 22px 0 0;
    padding: 0;
    list-style: none;
  }

  #rk-solar-guide .rk-solar-checklist li {
    position: relative;
    margin: 0;
    padding: 17px 18px 17px 52px;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    color: var(--rk-text);
    background: var(--rk-soft);
    font-size: 0.82rem;
    line-height: 1.6;
  }

  #rk-solar-guide .rk-solar-checklist li::before {
    content: "✓";
    position: absolute;
    top: 17px;
    left: 17px;
    display: inline-flex;
    width: 24px;
    height: 24px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-green);
    font-size: 0.71rem;
    font-weight: 950;
  }

  #rk-solar-guide .rk-solar-faq {
    display: grid;
    gap: 12px;
  }

  #rk-solar-guide .rk-solar-faq details {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    background: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-faq summary {
    position: relative;
    padding: 18px 52px 18px 20px;
    color: var(--rk-dark);
    background: var(--rk-soft);
    font-weight: 880;
    line-height: 1.45;
    cursor: pointer;
    list-style: none;
  }

  #rk-solar-guide .rk-solar-faq summary::-webkit-details-marker {
    display: none;
  }

  #rk-solar-guide .rk-solar-faq summary::after {
    content: "+";
    position: absolute;
    top: 50%;
    right: 20px;
    color: var(--rk-blue);
    font-size: 1.35rem;
    font-weight: 900;
    transform: translateY(-50%);
  }

  #rk-solar-guide .rk-solar-faq details[open] summary::after {
    content: "−";
  }

  #rk-solar-guide .rk-solar-faq-answer {
    padding: 18px 20px;
  }

  #rk-solar-guide .rk-solar-faq-answer p:last-child {
    margin-bottom: 0;
  }

  #rk-solar-guide .rk-solar-sources {
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-soft);
    font-size: 0.75rem;
    line-height: 1.65;
  }

  #rk-solar-guide .rk-solar-sources strong {
    display: block;
    margin-bottom: 7px;
  }

  #rk-solar-guide .rk-solar-author {
    overflow: hidden;
    margin-bottom: clamp(55px, 8vw, 90px);
    border: 1px solid #bdd9e5;
    border-radius: 27px;
    background: var(--rk-white);
    box-shadow: 0 22px 50px rgba(16, 37, 54, 0.09);
  }

  #rk-solar-guide .rk-solar-author > input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
  }

  #rk-solar-guide .rk-solar-author-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 28px clamp(28px, 5vw, 50px);
    border-bottom: 6px solid var(--rk-cyan);
    color: var(--rk-white);
    background: var(--rk-dark);
  }

  #rk-solar-guide .rk-solar-author-head h2 {
    margin-bottom: 7px;
    color: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-author-head p {
    margin-bottom: 0;
    color: #d5e7ef;
  }

  #rk-solar-guide .rk-solar-author-mark {
    flex: 0 0 auto;
    padding: 10px 15px;
    border: 1px solid rgba(40, 201, 218, 0.38);
    border-radius: 15px;
    color: #6aefff;
    font-size: 0.74rem;
    font-weight: 950;
    letter-spacing: 0.08em;
    white-space: nowrap;
  }

  #rk-solar-guide .rk-solar-author-layout {
    display: grid;
    grid-template-columns: 330px minmax(0, 1fr);
  }

  #rk-solar-guide .rk-solar-author-side {
    padding: 38px 28px;
    border-right: 1px solid var(--rk-line);
    background: #f2f8fa;
    text-align: center;
  }

  #rk-solar-guide .rk-solar-author-photo {
    width: 184px;
    height: 184px;
    margin: 0 auto 21px;
    overflow: hidden;
    border: 8px solid var(--rk-white);
    border-radius: 50%;
    box-shadow: 0 14px 34px rgba(16, 37, 54, 0.15);
  }

  #rk-solar-guide .rk-solar-author-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  #rk-solar-guide .rk-solar-author-name {
    color: var(--rk-dark);
    font-size: 1.35rem;
    font-weight: 950;
    letter-spacing: -0.035em;
  }

  #rk-solar-guide .rk-solar-author-role {
    margin-top: 6px;
    color: var(--rk-blue);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    line-height: 1.55;
    text-transform: uppercase;
  }

  #rk-solar-guide .rk-solar-author-main {
    min-width: 0;
    padding: 34px 38px 38px;
  }

  #rk-solar-guide .rk-solar-author-quote {
    margin: 0 0 26px;
    padding: 23px 25px 23px 72px;
    border: 0;
    border-radius: 19px;
    background: var(--rk-cyan-soft);
  }

  #rk-solar-guide .rk-solar-author-quote::before {
    content: "“";
    position: absolute;
    margin: -15px 0 0 -49px;
    color: var(--rk-cyan);
    font-size: 3.7rem;
    font-weight: 950;
    line-height: 1;
  }

  #rk-solar-guide .rk-solar-author-quote p {
    margin-bottom: 0;
    color: var(--rk-dark);
    font-style: italic;
    font-weight: 820;
  }

  #rk-solar-guide .rk-solar-author-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 15px 15px 0 0;
  }

  #rk-solar-guide .rk-solar-author-tab {
    padding: 14px 10px;
    color: var(--rk-muted);
    background: var(--rk-soft);
    font-size: 0.72rem;
    font-weight: 900;
    line-height: 1.35;
    text-align: center;
    text-transform: uppercase;
    cursor: pointer;
  }

  #rk-solar-guide .rk-solar-author-tab + .rk-solar-author-tab {
    border-left: 1px solid var(--rk-line);
  }

  #rk-solar-guide .rk-solar-author-panel {
    display: none;
    min-height: 168px;
    padding: 25px;
    border: 1px solid var(--rk-line);
    border-top: 0;
    border-radius: 0 0 15px 15px;
  }

  #rk-solar-guide .rk-solar-author-panel p:last-child {
    margin-bottom: 0;
  }

  #rk-solar-author-about:checked ~ .rk-solar-author-layout .rk-solar-author-panel-about,
  #rk-solar-author-exp:checked ~ .rk-solar-author-layout .rk-solar-author-panel-exp,
  #rk-solar-author-sites:checked ~ .rk-solar-author-layout .rk-solar-author-panel-sites {
    display: block;
  }

  #rk-solar-author-about:checked ~ .rk-solar-author-layout label[for="rk-solar-author-about"],
  #rk-solar-author-exp:checked ~ .rk-solar-author-layout label[for="rk-solar-author-exp"],
  #rk-solar-author-sites:checked ~ .rk-solar-author-layout label[for="rk-solar-author-sites"] {
    color: var(--rk-blue);
    background: var(--rk-white);
    box-shadow: inset 0 -5px 0 var(--rk-blue);
  }

  #rk-solar-guide .rk-solar-site-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
  }

  #rk-solar-guide .rk-solar-site-links a {
    padding: 8px 13px;
    border: 1px solid #c6dbe4;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.74rem;
    font-weight: 900;
    text-decoration: none;
  }

  #rk-solar-guide .rk-solar-site-links a:hover,
  #rk-solar-guide .rk-solar-site-links a:focus-visible {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-solar-guide .rk-solar-final-cta {
    overflow: hidden;
    border-radius: 27px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 91% 16%, rgba(243, 189, 63, 0.38), transparent 27%),
      linear-gradient(125deg, var(--rk-dark), #15465e);
  }

  #rk-solar-guide .rk-solar-final-cta-content {
    padding: clamp(30px, 5vw, 53px);
  }

  #rk-solar-guide .rk-solar-final-cta h2 {
    max-width: 920px;
    margin-bottom: 13px;
    color: var(--rk-white);
  }

  #rk-solar-guide .rk-solar-final-cta p {
    max-width: 940px;
    color: #d8e9f1;
  }

  @media (max-width: 980px) {
    #rk-solar-guide .rk-solar-hero-grid,
    #rk-solar-guide .rk-solar-answer,
    #rk-solar-guide .rk-solar-lab-layout,
    #rk-solar-guide .rk-solar-selfreg,
    #rk-solar-guide .rk-solar-author-layout {
      grid-template-columns: 1fr;
    }

    #rk-solar-guide .rk-solar-controls,
    #rk-solar-guide .rk-solar-author-side {
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }

    #rk-solar-guide .rk-solar-grid-4,
    #rk-solar-guide .rk-solar-grid-3,
    #rk-solar-guide .rk-solar-strategy-grid,
    #rk-solar-guide .rk-solar-steps {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (max-width: 720px) {
    #rk-solar-guide {
      margin-top: 20px;
      font-size: 16px;
    }

    #rk-solar-guide .rk-solar-shell {
      border-radius: 20px;
    }

    #rk-solar-guide .rk-solar-hero,
    #rk-solar-guide .rk-solar-body {
      padding-right: 21px;
      padding-left: 21px;
    }

    #rk-solar-guide .rk-solar-corrections-grid,
    #rk-solar-guide .rk-solar-grid-2,
    #rk-solar-guide .rk-solar-grid-3,
    #rk-solar-guide .rk-solar-grid-4,
    #rk-solar-guide .rk-solar-result-grid,
    #rk-solar-guide .rk-solar-formulas,
    #rk-solar-guide .rk-solar-strategy-grid,
    #rk-solar-guide .rk-solar-steps,
    #rk-solar-guide .rk-solar-checklist {
      grid-template-columns: 1fr;
    }

    #rk-solar-guide .rk-solar-author-head {
      align-items: flex-start;
      flex-direction: column;
    }

    #rk-solar-guide .rk-solar-author-main {
      padding: 25px 18px 28px;
    }

    #rk-solar-guide .rk-solar-author-quote {
      padding: 22px 20px 22px 57px;
    }

    #rk-solar-guide .rk-solar-author-tabs {
      grid-template-columns: 1fr;
    }

    #rk-solar-guide .rk-solar-author-tab + .rk-solar-author-tab {
      border-top: 1px solid var(--rk-line);
      border-left: 0;
    }

    #rk-solar-guide .rk-solar-cta-button {
      display: flex;
      width: 100%;
    }

    #rk-solar-guide .rk-solar-nav {
      display: flex;
      width: auto;
      margin: 18px 20px 0;
      padding: 20px;
      flex-wrap: wrap;
      gap: 10px;
      overflow: visible;
      border: 1px solid var(--rk-line);
      border-radius: 20px;
      background: var(--rk-soft);
      scrollbar-width: auto;
    }

    #rk-solar-guide .rk-solar-nav::before {
      content: "NA SKRÓTY";
      flex: 0 0 100%;
      margin-bottom: 4px;
      color: var(--rk-dark);
      font-size: 0.75rem;
      font-weight: 900;
      letter-spacing: 0.08em;
      line-height: 1.3;
    }

    #rk-solar-guide .rk-solar-nav a {
      flex: 0 1 auto;
      white-space: normal;
    }

    #rk-solar-guide table,
    #rk-solar-guide tbody,
    #rk-solar-guide tr,
    #rk-solar-guide th,
    #rk-solar-guide td {
      display: block;
      width: 100%;
    }

    #rk-solar-guide thead {
      position: absolute;
      width: 1px;
      height: 1px;
      overflow: hidden;
      clip: rect(0 0 0 0);
      white-space: nowrap;
    }

    #rk-solar-guide tbody tr {
      margin-bottom: 14px;
      overflow: hidden;
      border: 1px solid var(--rk-line);
      border-radius: 15px;
      background: var(--rk-white);
    }

    #rk-solar-guide td,
    #rk-solar-guide tbody tr:nth-child(even) td {
      display: grid;
      grid-template-columns: minmax(118px, 0.78fr) minmax(0, 1.22fr);
      gap: 12px;
      padding: 12px 14px;
      background: var(--rk-white);
    }

    #rk-solar-guide td::before {
      content: attr(data-label);
      color: var(--rk-dark);
      font-size: 0.71rem;
      font-weight: 900;
      line-height: 1.45;
    }
  }

  @media (max-width: 430px) {
    #rk-solar-guide .rk-solar-hero-balance {
      grid-template-columns: 1fr;
    }

    #rk-solar-guide .rk-solar-hero-symbol {
      text-align: center;
    }

    #rk-solar-guide .rk-solar-selfreg-row {
      grid-template-columns: 88px minmax(0, 1fr) 50px;
    }

    #rk-solar-guide td,
    #rk-solar-guide tbody tr:nth-child(even) td {
      grid-template-columns: 1fr;
      gap: 4px;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    #rk-solar-guide *,
    #rk-solar-guide *::before,
    #rk-solar-guide *::after {
      scroll-behavior: auto !important;
      transition-duration: 0.01ms !important;
    }
  }
</style>

<article id="rk-solar-guide" data-rk-solar-version="2026-08-26" aria-label="Ogrzewanie podłogowe a pasywne zyski ciepła">
  <div class="rk-solar-shell">
    <div class="rk-solar-progress-track" aria-hidden="true"><div class="rk-solar-progress"></div></div>

    <header class="rk-solar-hero">
      <div class="rk-solar-hero-grid">
        <div>
          <span class="rk-solar-eyebrow"><b aria-hidden="true"></b> Fizyka budynku • analiza techniczna 2026</span>
          <div class="rk-solar-hero-title" role="heading" aria-level="2">Ogrzewanie podłogowe a pasywne zyski ciepła</div>
          <p class="rk-solar-hero-lead">Słońce wpadające przez duże przeszklenia może w ciągu kilkudziesięciu minut zmienić bilans salonu. Sprawdź, jak podłogówka reaguje na darmową energię, kiedy działa samoregulacja i co naprawdę ogranicza przegrzewanie.</p>
          <div class="rk-solar-meta">
            <span><i aria-hidden="true"></i> Autor: Robert Kucharski</span>
            <span><i aria-hidden="true"></i> Aktualizacja: 26 sierpnia 2026 r.</span>
            <span><i aria-hidden="true"></i> Czas czytania: ok. 18 minut</span>
          </div>
        </div>

        <aside class="rk-solar-hero-panel" aria-label="Przykład chwilowego bilansu zysków słonecznych">
          <small>Bilans chwilowy — nie moc projektowa</small>
          <div class="rk-solar-hero-balance">
            <div class="rk-solar-hero-value"><span>Aktualne straty</span><strong>1200 W</strong></div>
            <div class="rk-solar-hero-symbol" aria-hidden="true">−</div>
            <div class="rk-solar-hero-value"><span>Zyski słoneczne</span><strong>560 W</strong></div>
          </div>
          <div class="rk-solar-hero-result">Pozostaje chwilowo: 640 W</div>
        </aside>
      </div>
    </header>

    <nav class="rk-solar-nav" aria-label="Spis treści artykułu">
      <a href="#rk-solar-answer">Szybka odpowiedź</a>
      <a href="#rk-solar-corrections">Ważne korekty</a>
      <a href="#rk-solar-lab">Laboratorium</a>
      <a href="#rk-solar-physics">Samoregulacja</a>
      <a href="#rk-solar-design">Projektowanie</a>
      <a href="#rk-solar-control">Sterowanie</a>
      <a href="#rk-solar-heatpump">Pompa ciepła</a>
      <a href="#rk-solar-howto">Procedura</a>
      <a href="#rk-solar-faq">FAQ</a>
      <a href="#rk-solar-author">Autor</a>
    </nav>

    <div class="rk-solar-body">
      <section class="rk-solar-section" id="rk-solar-answer">
        <span class="rk-solar-kicker">Najkrótsza poprawna odpowiedź</span>
        <h2>Czy pasywne zyski ciepła przeszkadzają ogrzewaniu podłogowemu?</h2>
        <p class="rk-solar-lead rk-solar-dropcap"><strong>Ogrzewanie podłogowe a pasywne zyski ciepła</strong> mogą współpracować bardzo dobrze, ponieważ niska temperatura powierzchni sprzyja fizycznej samoregulacji emisji. Problem pojawia się wtedy, gdy duże przeszklenia, ciężka podłoga, zbyt wysoka temperatura zasilania i spóźnione sterowanie dostarczają do pomieszczenia więcej energii, niż może ono w danej chwili oddać. Słońce nie jest wadą podłogówki — jest zmiennym składnikiem bilansu, który trzeba przewidzieć.</p>

        <div class="rk-solar-answer">
          <div class="rk-solar-answer-main">
            <h3>Co dzieje się w słoneczny dzień?</h3>
            <p>Promieniowanie przenika przez szybę, ogrzewa podłogę, ściany i wyposażenie, a następnie podnosi temperaturę operacyjną wnętrza. W tym samym czasie aktywna podłoga nadal może oddawać energię zgromadzoną wcześniej w jastrychu.</p>
            <p><strong>Efekt końcowy zależy od czasu:</strong> chwilowego nasłonecznienia, ilości zakumulowanego ciepła, temperatury powierzchni, zacienienia i reakcji automatyki.</p>
          </div>
          <div class="rk-solar-answer-side">
            <h3>Najważniejszy wniosek</h3>
            <p>Nie wolno zmniejszać projektowej mocy pomieszczenia tylko dlatego, że ma okna od południa. W mroźny i pochmurny dzień zysk słoneczny może być bliski zeru.</p>
            <p>Projekt zapewnia moc w warunkach obliczeniowych, a sterowanie i zacienienie odpowiadają za pracę przy zmiennych zyskach.</p>
          </div>
        </div>

        <div class="rk-solar-grid-4" style="margin-top:22px">
          <article class="rk-solar-card"><span class="rk-solar-card-number">A<sub>gl</sub></span><h3>Powierzchnia szyb</h3><p>Liczy się przejrzysta część przeszklenia odbierająca promieniowanie, a nie wyłącznie wymiar całego otworu okiennego.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">g</span><h3>Współczynnik szyby</h3><p>Określa udział całkowitej energii słonecznej przedostającej się do wnętrza. Przyjmujemy dane konkretnego pakietu szybowego.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">F<sub>sh</sub></span><h3>Zacienienie</h3><p>Okap, balkon, żaluzje zewnętrzne, sąsiednie budynki i drzewa zmieniają rzeczywisty dopływ energii w ciągu dnia i roku.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">C</span><h3>Masa termiczna</h3><p>Jastrych i inne ciężkie powierzchnie mogą tłumić krótki szczyt, ale przejętą energię oddają później.</p></article>
        </div>
      </section>

      <section class="rk-solar-section" id="rk-solar-corrections">
        <div class="rk-solar-corrections">
          <div class="rk-solar-corrections-head">
            <span class="rk-solar-kicker">Pięć rozróżnień, które zmieniają ocenę instalacji</span>
            <h2>Projektowa moc grzewcza, chwilowy bilans i przegrzewanie to trzy różne zagadnienia</h2>
            <p>Najwięcej błędów wynika z mieszania parametrów obliczanych dla skrajnego mrozu z wynikiem obserwowanym podczas kilku słonecznych godzin.</p>
          </div>
          <div class="rk-solar-corrections-grid">
            <article class="rk-solar-correction"><b>01</b><h3>Moc projektowa nie zależy od obietnicy słońca</h3><p>Instalacja ma pokryć projektowe straty również wtedy, gdy jest zimno, pochmurno i nie występują użyteczne zyski. Zyski analizujemy dodatkowo jako zmienne obciążenie eksploatacyjne.</p></article>
            <article class="rk-solar-correction"><b>02</b><h3>Waty to nie kilowatogodziny</h3><p>Natężenie promieniowania `I` wyrażone w W/m² opisuje chwilową moc. Miesięczne lub roczne napromienienie jest energią i podaje się je między innymi w kWh/m².</p></article>
            <article class="rk-solar-correction"><b>03</b><h3>Masa nie tylko przegrzewa</h3><p>Ciężka konstrukcja pochłania energię, ogranicza szybkość wzrostu temperatury i przesuwa szczyt w czasie. Może jednak przedłużyć oddawanie ciepła po zaniku słońca.</p></article>
            <article class="rk-solar-correction"><b>04</b><h3>Termostat nie cofa energii z jastrychu</h3><p>Zamknięcie siłownika zatrzymuje dopływ nowej energii, ale podłoga nadal oddaje ciepło już zgromadzone. Dlatego liczy się niska temperatura zasilania i działanie wyprzedzające.</p></article>
            <article class="rk-solar-correction"><b>05</b><h3>Bufor nie jest obowiązkowy z definicji</h3><p>Przy pompie ciepła jego potrzebę ocenia się na podstawie minimalnego przepływu, pojemności wodnej, sposobu odszraniania, liczby zamykanych pętli i wymagań urządzenia.</p></article>
            <article class="rk-solar-correction"><b>06</b><h3>Strefa nie oznacza osobnego mieszacza</h3><p>Pomieszczenie zwykle jest regulowane siłownikiem odpowiedniej pętli lub grupy pętli. Zawór mieszający przygotowuje temperaturę dla obiegu, a nie dla każdego pokoju oddzielnie.</p></article>
          </div>
        </div>

        <div class="rk-solar-flow" aria-label="Schemat przepływu energii słonecznej i ciepła z ogrzewania podłogowego">
          <div class="rk-solar-flow-head"><h3>Dwa strumienie energii spotykają się w jednym pomieszczeniu</h3><p>O temperaturze decyduje ich suma, aktualne straty oraz zdolność konstrukcji do magazynowania i oddawania ciepła.</p></div>
          <svg viewBox="0 0 1040 330" role="img" aria-labelledby="rk-solar-flow-title rk-solar-flow-desc">
            <title id="rk-solar-flow-title">Przepływ energii słonecznej i ciepła z podłogówki</title>
            <desc id="rk-solar-flow-desc">Promieniowanie słoneczne przechodzi przez szybę, a woda przekazuje ciepło przez jastrych. Oba strumienie wpływają na temperaturę pomieszczenia i straty budynku.</desc>
            <defs>
              <linearGradient id="rkSolarSun" x1="0" x2="1"><stop offset="0" stop-color="#f3bd3f"></stop><stop offset="1" stop-color="#ff7438"></stop></linearGradient>
              <linearGradient id="rkSolarWater" x1="0" x2="1"><stop offset="0" stop-color="#28c9da"></stop><stop offset="1" stop-color="#078fbe"></stop></linearGradient>
              <marker id="rkSolarArrowWarm" markerWidth="10" markerHeight="10" refX="8" refY="5" orient="auto"><path d="M0,0 L10,5 L0,10 z" fill="#ff7438"></path></marker>
              <marker id="rkSolarArrowCool" markerWidth="10" markerHeight="10" refX="8" refY="5" orient="auto"><path d="M0,0 L10,5 L0,10 z" fill="#078fbe"></path></marker>
            </defs>
            <circle cx="92" cy="80" r="36" fill="url(#rkSolarSun)"></circle>
            <g stroke="#f3bd3f" stroke-width="5"><line x1="92" y1="22" x2="92" y2="5"></line><line x1="92" y1="155" x2="92" y2="138"></line><line x1="34" y1="80" x2="17" y2="80"></line><line x1="167" y1="80" x2="150" y2="80"></line><line x1="51" y1="39" x2="38" y2="26"></line><line x1="133" y1="121" x2="146" y2="134"></line></g>
            <text x="92" y="187" text-anchor="middle" fill="#14384d" font-size="17" font-weight="900">SŁOŃCE</text>
            <rect x="220" y="48" width="92" height="205" rx="12" fill="#dff7fb" stroke="#078fbe" stroke-width="3"></rect>
            <line x1="251" y1="50" x2="251" y2="252" stroke="#87dce8" stroke-width="2"></line><line x1="281" y1="50" x2="281" y2="252" stroke="#87dce8" stroke-width="2"></line>
            <text x="266" y="282" text-anchor="middle" fill="#14384d" font-size="16" font-weight="900">SZYBA: g + CIEŃ</text>
            <path d="M142 86 C175 86 187 86 215 86" fill="none" stroke="#ff7438" stroke-width="8" marker-end="url(#rkSolarArrowWarm)"></path>
            <path d="M318 98 C360 98 382 116 416 136" fill="none" stroke="#ff7438" stroke-width="8" marker-end="url(#rkSolarArrowWarm)"></path>
            <rect x="440" y="64" width="255" height="152" rx="24" fill="#ffffff" stroke="#c7dce5" stroke-width="3"></rect>
            <text x="568" y="115" text-anchor="middle" fill="#102536" font-size="21" font-weight="900">POMIESZCZENIE</text>
            <text x="568" y="147" text-anchor="middle" fill="#506674" font-size="16">powietrze + powierzchnie</text>
            <text x="568" y="179" text-anchor="middle" fill="#078fbe" font-size="16" font-weight="800">temperatura operacyjna</text>
            <rect x="420" y="252" width="295" height="34" rx="12" fill="#d7e2e7"></rect>
            <path d="M458 270 C483 227 510 227 535 270 C560 313 587 313 612 270 C637 227 664 227 689 270" fill="none" stroke="url(#rkSolarWater)" stroke-width="9"></path>
            <text x="568" y="318" text-anchor="middle" fill="#14384d" font-size="16" font-weight="900">WODA → JASTRYCH → PODŁOGA</text>
            <path d="M568 250 C568 238 568 231 568 220" fill="none" stroke="#078fbe" stroke-width="8" marker-end="url(#rkSolarArrowCool)"></path>
            <path d="M700 134 C759 134 778 104 820 104" fill="none" stroke="#ff7438" stroke-width="8" marker-end="url(#rkSolarArrowWarm)"></path>
            <rect x="838" y="54" width="164" height="105" rx="19" fill="#fff3eb" stroke="#ff7438" stroke-width="3"></rect>
            <text x="920" y="92" text-anchor="middle" fill="#102536" font-size="18" font-weight="900">STRATY</text>
            <text x="920" y="122" text-anchor="middle" fill="#506674" font-size="14">przenikanie</text>
            <text x="920" y="143" text-anchor="middle" fill="#506674" font-size="14">+ wentylacja</text>
            <text x="842" y="215" fill="#16876d" font-size="15" font-weight="900">SAMOREGULACJA:</text>
            <text x="842" y="241" fill="#506674" font-size="14">wyższa temperatura wnętrza</text>
            <text x="842" y="264" fill="#506674" font-size="14">→ mniejsza emisja podłogi</text>
          </svg>
        </div>
      </section>

      <section class="rk-solar-section" id="rk-solar-lab">
        <div class="rk-solar-lab">
          <div class="rk-solar-lab-head">
            <span class="rk-solar-kicker" style="color:#79f1ff">Interaktywne laboratorium bilansu chwilowego</span>
            <h2>Sprawdź, kiedy słońce przejmuje ogrzewanie pomieszczenia</h2>
            <p>Zmień straty, temperatury, powierzchnię szyb, współczynnik `g`, nasłonecznienie i zacienienie. Model zestawi chwilowe zyski z przybliżonym aktualnym zapotrzebowaniem oraz mocą nadal oddawaną przez podłogę.</p>
          </div>

          <div class="rk-solar-lab-layout">
            <form class="rk-solar-controls" id="rk-solar-form" aria-label="Dane do kalkulatora zysków słonecznych">
              <div class="rk-solar-control">
                <div class="rk-solar-control-head"><label for="rk-solar-design-load">Projektowa strata pomieszczenia</label><output class="rk-solar-output" id="rk-solar-design-load-output">1200 W</output></div>
                <input id="rk-solar-design-load" type="range" min="300" max="5000" step="50" value="1200">
                <small>Moc potrzebna w projektowych warunkach zewnętrznych, przed dodawaniem przypadkowych zapasów.</small>
              </div>
              <div class="rk-solar-control">
                <div class="rk-solar-control-head"><label for="rk-solar-design-out">Projektowa temperatura zewnętrzna</label><output class="rk-solar-output" id="rk-solar-design-out-output">−20°C</output></div>
                <input id="rk-solar-design-out" type="range" min="-30" max="-10" step="1" value="-20">
              </div>
              <div class="rk-solar-control">
                <div class="rk-solar-control-head"><label for="rk-solar-current-out">Aktualna temperatura zewnętrzna</label><output class="rk-solar-output" id="rk-solar-current-out-output">0°C</output></div>
                <input id="rk-solar-current-out" type="range" min="-20" max="15" step="1" value="0">
                <small>Aktualne straty są szacowane proporcjonalnie do różnicy temperatur.</small>
              </div>
              <div class="rk-solar-control">
                <div class="rk-solar-control-head"><label for="rk-solar-indoor">Temperatura wewnętrzna</label><output class="rk-solar-output" id="rk-solar-indoor-output">21°C</output></div>
                <input id="rk-solar-indoor" type="range" min="18" max="25" step="0.5" value="21">
              </div>
              <div class="rk-solar-control">
                <div class="rk-solar-control-head"><label for="rk-solar-glass">Powierzchnia czynna przeszklenia</label><output class="rk-solar-output" id="rk-solar-glass-output">8,0 m²</output></div>
                <input id="rk-solar-glass" type="range" min="1" max="30" step="0.5" value="8">
              </div>
              <div class="rk-solar-control">
                <div class="rk-solar-control-head"><label for="rk-solar-gvalue">Współczynnik całkowitej przepuszczalności `g`</label><output class="rk-solar-output" id="rk-solar-gvalue-output">0,50</output></div>
                <input id="rk-solar-gvalue" type="range" min="0.25" max="0.75" step="0.01" value="0.50">
                <small>Wartość należy pobrać z dokumentacji konkretnego pakietu szybowego.</small>
              </div>
              <div class="rk-solar-control">
                <div class="rk-solar-control-head"><label for="rk-solar-irradiance">Promieniowanie padające na szybę</label><output class="rk-solar-output" id="rk-solar-irradiance-output">140 W/m²</output></div>
                <input id="rk-solar-irradiance" type="range" min="0" max="600" step="10" value="140">
              </div>
              <div class="rk-solar-control">
                <div class="rk-solar-control-head"><label for="rk-solar-shading">Energia pozostająca po zacienieniu</label><output class="rk-solar-output" id="rk-solar-shading-output">85%</output></div>
                <input id="rk-solar-shading" type="range" min="0" max="100" step="5" value="85">
                <small>100% oznacza brak redukcji, 20% — silne ograniczenie przez skuteczną osłonę.</small>
              </div>
              <div class="rk-solar-control">
                <div class="rk-solar-control-head"><label for="rk-solar-internal">Zyski od ludzi i urządzeń</label><output class="rk-solar-output" id="rk-solar-internal-output">120 W</output></div>
                <input id="rk-solar-internal" type="range" min="0" max="800" step="20" value="120">
              </div>
              <div class="rk-solar-control">
                <div class="rk-solar-control-head"><label for="rk-solar-active">Moc nadal oddawana przez podłogę</label><output class="rk-solar-output" id="rk-solar-active-output">600 W</output></div>
                <input id="rk-solar-active" type="range" min="0" max="5000" step="50" value="600">
                <small>To chwilowa moc aktywna, nie moc znamionowa pętli ani moc źródła ciepła.</small>
              </div>
            </form>

            <div class="rk-solar-results" aria-live="polite">
              <div class="rk-solar-result-grid">
                <div class="rk-solar-result-card"><small>Przybliżone aktualne straty</small><div class="rk-solar-result-number" id="rk-solar-result-loss">615 W</div></div>
                <div class="rk-solar-result-card"><small>Zyski słoneczne</small><div class="rk-solar-result-number" id="rk-solar-result-sun">476 W</div></div>
                <div class="rk-solar-result-card"><small>Łączne zyski pasywne i bytowe</small><div class="rk-solar-result-number" id="rk-solar-result-gains">596 W</div></div>
                <div class="rk-solar-result-card"><small>Moc aktywna nadal potrzebna</small><div class="rk-solar-result-number" id="rk-solar-result-required">19 W</div></div>
                <div class="rk-solar-result-card"><small>Pokrycie strat przez same zyski</small><div class="rk-solar-result-number" id="rk-solar-result-coverage">97%</div></div>
                <div class="rk-solar-result-card is-main"><small>Bilans po dodaniu ciepła podłogi</small><div class="rk-solar-result-number" id="rk-solar-result-balance">+581 W</div></div>
              </div>

              <div class="rk-solar-status is-danger" id="rk-solar-status">
                <strong id="rk-solar-status-title">Wyraźna chwilowa nadwyżka energii</strong>
                <span id="rk-solar-status-copy">Zyski niemal pokrywają straty, a podłoga nadal oddaje 600 W. Sterowanie może zatrzymać nowy dopływ, lecz nie usunie energii zgromadzonej w jastrychu.</span>
              </div>

              <div class="rk-solar-chart" aria-label="Wykres chwilowego bilansu cieplnego pomieszczenia">
                <h3>Straty i dopływy energii w tej samej chwili</h3>
                <p>Porównanie nie przewiduje temperatury za kilka godzin — do tego potrzebny jest model dynamiczny budynku.</p>
                <svg viewBox="0 0 720 345" role="img" aria-labelledby="rk-solar-chart-title rk-solar-chart-desc">
                  <title id="rk-solar-chart-title">Porównanie strat oraz zysków cieplnych</title>
                  <desc id="rk-solar-chart-desc">Cztery słupki przedstawiają aktualne straty, zyski słoneczne, zyski wewnętrzne oraz moc oddawaną przez podłogę.</desc>
                  <line class="rk-solar-chart-grid" x1="74" y1="45" x2="685" y2="45"></line>
                  <line class="rk-solar-chart-grid" x1="74" y1="100" x2="685" y2="100"></line>
                  <line class="rk-solar-chart-grid" x1="74" y1="155" x2="685" y2="155"></line>
                  <line class="rk-solar-chart-grid" x1="74" y1="210" x2="685" y2="210"></line>
                  <line class="rk-solar-chart-axis" x1="74" y1="265" x2="685" y2="265"></line>
                  <line class="rk-solar-chart-axis" x1="74" y1="45" x2="74" y2="265"></line>
                  <text class="rk-solar-chart-label" id="rk-solar-ymax" x="64" y="50" text-anchor="end">720</text>
                  <text class="rk-solar-chart-label" id="rk-solar-y75" x="64" y="105" text-anchor="end">540</text>
                  <text class="rk-solar-chart-label" id="rk-solar-y50" x="64" y="160" text-anchor="end">360</text>
                  <text class="rk-solar-chart-label" id="rk-solar-y25" x="64" y="215" text-anchor="end">180</text>
                  <text class="rk-solar-chart-label" x="64" y="270" text-anchor="end">0</text>
                  <text class="rk-solar-chart-label" x="17" y="160" text-anchor="middle" transform="rotate(-90 17 160)">moc [W]</text>
                  <rect class="rk-solar-bar-loss" id="rk-solar-bar-loss" x="115" y="77" width="90" height="188" rx="11"></rect>
                  <rect class="rk-solar-bar-sun" id="rk-solar-bar-sun" x="265" y="119" width="90" height="146" rx="11"></rect>
                  <rect class="rk-solar-bar-internal" id="rk-solar-bar-internal" x="415" y="228" width="90" height="37" rx="11"></rect>
                  <rect class="rk-solar-bar-floor" id="rk-solar-bar-floor" x="565" y="82" width="90" height="183" rx="11"></rect>
                  <text class="rk-solar-chart-value" id="rk-solar-bar-loss-value" x="160" y="69" text-anchor="middle">615 W</text>
                  <text class="rk-solar-chart-value" id="rk-solar-bar-sun-value" x="310" y="111" text-anchor="middle">476 W</text>
                  <text class="rk-solar-chart-value" id="rk-solar-bar-internal-value" x="460" y="220" text-anchor="middle">120 W</text>
                  <text class="rk-solar-chart-value" id="rk-solar-bar-floor-value" x="610" y="74" text-anchor="middle">600 W</text>
                  <text class="rk-solar-chart-label" x="160" y="294" text-anchor="middle">STRATY</text>
                  <text class="rk-solar-chart-label" x="310" y="294" text-anchor="middle">SŁOŃCE</text>
                  <text class="rk-solar-chart-label" x="460" y="294" text-anchor="middle">BYTOWE</text>
                  <text class="rk-solar-chart-label" x="610" y="294" text-anchor="middle">PODŁOGA</text>
                </svg>
              </div>
            </div>
          </div>

          <div class="rk-solar-inline-cta">
            <h3>Dwa pomieszczenia w tym samym domu mogą w tej samej chwili potrzebować zupełnie innej mocy</h3>
            <p>Kalkulator pokazuje chwilowy bilans. Projekt musi natomiast określić straty każdego pomieszczenia, moc podłogi bez zakładania stałego słońca, rozstaw i długość pętli, przepływy oraz sensowny podział na strefy. Dopiero te dane pozwalają przewidzieć reakcję salonu południowego bez pozbawiania mocy pokoi północnych.</p>
            <a class="rk-solar-cta-button rk-solar-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt z obliczeniami dla każdego pomieszczenia</a>
            <small class="rk-solar-disclosure">Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
          </div>
        </div>
      </section>

      <section class="rk-solar-section" id="rk-solar-physics">
        <span class="rk-solar-kicker">Fizyka zamiast prostych sloganów</span>
        <h2>Jak obliczyć pasywne zyski ciepła i dlaczego podłoga częściowo reguluje się sama?</h2>
        <p class="rk-solar-lead">Do wstępnej analizy można zestawić moc promieniowania przechodzącego przez przeszklenie z chwilowymi stratami pomieszczenia. Wynik pokazuje kierunek zmian, ale nie określa temperatury za dwie lub cztery godziny. Taką odpowiedź daje dopiero obliczenie dynamiczne uwzględniające pojemność cieplną, czas, położenie słońca i sterowanie.</p>

        <div class="rk-solar-formulas">
          <article class="rk-solar-formula">
            <span>Uproszczony zysk słoneczny</span>
            <code>Φ<sub>sol</sub> = A<sub>gl</sub> × g × I × F<sub>sh</sub></code>
            <p>A<sub>gl</sub> — czynna powierzchnia szyb, `g` — przepuszczalność energii całkowitej, `I` — chwilowe promieniowanie na płaszczyznę szyby, F<sub>sh</sub> — udział pozostający po zacienieniu.</p>
          </article>
          <article class="rk-solar-formula">
            <span>Przybliżenie aktualnych strat</span>
            <code>Φ<sub>loss,now</sub> ≈ Φ<sub>design</sub> × (T<sub>i</sub> − T<sub>e,now</sub>) / (T<sub>i</sub> − T<sub>e,design</sub>)</code>
            <p>Proporcjonalne skalowanie względem różnicy temperatur jest narzędziem edukacyjnym. Nie odtwarza osobno wentylacji, infiltracji, zmiennych współczynników ani zysków magazynowanych.</p>
          </article>
          <article class="rk-solar-formula">
            <span>Chwilowa moc aktywna</span>
            <code>Φ<sub>heat,now</sub> = max[0; Φ<sub>loss,now</sub> − Φ<sub>sol</sub> − Φ<sub>int</sub>]</code>
            <p>Jeżeli zyski przekraczają straty, chwilowe zapotrzebowanie aktywne spada do zera. Nie oznacza to, że można trwale zmniejszyć moc projektową pętli.</p>
          </article>
          <article class="rk-solar-formula">
            <span>Energia magazynowana w masie</span>
            <code>E = m × c × ΔT</code>
            <p>Masa `m`, ciepło właściwe `c` i zmiana temperatury określają teoretyczną ilość energii przejętej przez materiał. Rzeczywisty udział zależy od rozkładu temperatury oraz warunków brzegowych.</p>
          </article>
        </div>

        <div class="rk-solar-warning">
          <p><strong>To ważne dla interpretacji:</strong> współczynnik `g` nie jest współczynnikiem przenikania ciepła `U`. `U` opisuje straty przez przegrodę przy różnicy temperatur, a `g` udział energii słonecznej przechodzącej przez oszklenie. Dobre okno może mieć niskie `U`, a jednocześnie stosunkowo wysokie albo niskie `g`.</p>
        </div>

        <div class="rk-solar-selfreg">
          <div class="rk-solar-selfreg-visual">
            <span class="rk-solar-kicker" style="color:#79f1ff">Przykład powierzchni 25°C</span>
            <h3>Wzrost temperatury wnętrza zmniejsza oddawanie ciepła</h3>
            <p>Przy niezmienionej temperaturze powierzchni wielkość emisji jest w przybliżeniu związana z różnicą między podłogą a temperaturą operacyjną pomieszczenia.</p>
            <div class="rk-solar-selfreg-scale" aria-label="Względna emisja podłogi przy różnych temperaturach pomieszczenia">
              <div class="rk-solar-selfreg-row"><span>Pokój 20°C</span><span class="rk-solar-selfreg-track"><span class="rk-solar-selfreg-fill" style="width:100%"></span></span><strong style="color:#fff">100%</strong></div>
              <div class="rk-solar-selfreg-row"><span>Pokój 21°C</span><span class="rk-solar-selfreg-track"><span class="rk-solar-selfreg-fill" style="width:80%"></span></span><strong style="color:#fff">80%</strong></div>
              <div class="rk-solar-selfreg-row"><span>Pokój 22°C</span><span class="rk-solar-selfreg-track"><span class="rk-solar-selfreg-fill" style="width:60%"></span></span><strong style="color:#fff">60%</strong></div>
              <div class="rk-solar-selfreg-row"><span>Pokój 23°C</span><span class="rk-solar-selfreg-track"><span class="rk-solar-selfreg-fill" style="width:40%"></span></span><strong style="color:#fff">40%</strong></div>
              <div class="rk-solar-selfreg-row"><span>Pokój 24°C</span><span class="rk-solar-selfreg-track"><span class="rk-solar-selfreg-fill" style="width:20%"></span></span><strong style="color:#fff">20%</strong></div>
            </div>
          </div>
          <div class="rk-solar-selfreg-copy">
            <h3>Na czym polega samoregulacja ogrzewania podłogowego?</h3>
            <p>Jeżeli powierzchnia ma 25°C, a temperatura operacyjna wnętrza 20°C, różnica wynosi 5 K. Gdy słońce podniesie temperaturę wnętrza do 23°C, różnica spada do 2 K. Przy podobnym współczynniku wymiany ciepła emisja może spaść do około 40% wartości początkowej.</p>
            <p>To efekt fizyczny, bez termostatu i siłownika. Jest szczególnie zauważalny w systemach niskotemperaturowych, w których powierzchnia podłogi znajduje się tylko kilka kelwinów powyżej temperatury pomieszczenia.</p>
            <p><strong>Nie jest to jednak pełne zabezpieczenie.</strong> Temperatura powierzchni również zmienia się w czasie, a jastrych może zawierać energię zgromadzoną przed pojawieniem się słońca. Powyższe procenty pokazują zasadę, a nie prognozę konkretnego budynku.</p>
          </div>
        </div>

        <h3 style="margin-top:38px">Ile energii może przejąć jastrych?</h3>
        <p>Dla salonu o powierzchni 30 m², warstwy jastrychu 6,5 cm, gęstości 2100 kg/m³ i ciepła właściwego około 0,88 kJ/(kg·K) teoretyczna pojemność tej masy wynosi około <strong>1 kWh na każdy 1 K</strong> zmiany średniej temperatury. Nie oznacza to, że cała warstwa nagrzeje się równomiernie ani że cała energia będzie użyteczna, ale pokazuje skalę akumulacji.</p>

        <div class="rk-solar-grid-3" style="margin-top:22px">
          <article class="rk-solar-card"><span class="rk-solar-card-number">1</span><h3>Krótki impuls słońca</h3><p>Ciężka podłoga może pochłonąć część energii i ograniczyć szybki wzrost temperatury powietrza.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">2</span><h3>Długi słoneczny okres</h3><p>Po wypełnieniu zdolności do dalszego magazynowania rośnie temperatura powierzchni i zwiększa się ryzyko przegrzania.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">3</span><h3>Po zachodzie</h3><p>Nagrzane powierzchnie oddają energię do wnętrza. Czas i intensywność zależą od konstrukcji oraz strat budynku.</p></article>
        </div>

        <p style="margin-top:24px">Szersze omówienie tego zjawiska znajduje się w artykule <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">czym jest bezwładność cieplna w ogrzewaniu podłogowym</a>.</p>
      </section>

      <section class="rk-solar-section" id="rk-solar-design">
        <span class="rk-solar-kicker">Dwa obliczenia o różnych celach</span>
        <h2>Jak projektować podłogówkę przy dużych przeszkleniach?</h2>
        <p class="rk-solar-lead">Najpierw należy zapewnić wymaganą moc w warunkach projektowych. Dopiero później sprawdza się, jak zmienne zyski słoneczne wpływają na regulację, temperaturę operacyjną i ryzyko przegrzewania. Pominięcie pierwszego etapu grozi niedogrzaniem w pochmurny mróz, a pominięcie drugiego — dyskomfortem w słoneczne dni.</p>

        <div class="rk-solar-table-wrap">
          <table aria-label="Porównanie obliczenia projektowego i chwilowego bilansu zysków">
            <thead><tr><th>Element analizy</th><th>Obciążenie projektowe</th><th>Bilans chwilowy lub godzinowy</th></tr></thead>
            <tbody>
              <tr><td data-label="Element"><strong>Cel</strong></td><td data-label="Obciążenie projektowe">Dobór mocy ogrzewania dla obliczeniowych warunków zewnętrznych.</td><td data-label="Bilans chwilowy">Ocena reakcji wnętrza na zmienne słońce, ludzi, urządzenia i sterowanie.</td></tr>
              <tr><td data-label="Element"><strong>Warunki pogodowe</strong></td><td data-label="Obciążenie projektowe">Projektowa temperatura zewnętrzna i przyjęte warunki normowe.</td><td data-label="Bilans chwilowy">Temperatura, promieniowanie, zachmurzenie i zacienienie zmienne w czasie.</td></tr>
              <tr><td data-label="Element"><strong>Zyski słoneczne</strong></td><td data-label="Obciążenie projektowe">Nie mogą stanowić gwarantowanego źródła mocy dla każdej godziny mrozu.</td><td data-label="Bilans chwilowy">Są bezpośrednim składnikiem aktualnego bilansu i mogą chwilowo wyłączyć potrzebę grzania.</td></tr>
              <tr><td data-label="Element"><strong>Wynik</strong></td><td data-label="Obciążenie projektowe">Moc pomieszczenia, rozstaw, temperatura zasilania, długość i przepływ pętli.</td><td data-label="Bilans chwilowy">Wymagana redukcja mocy, ryzyko nadwyżki, potrzeba zacienienia i strategia sterowania.</td></tr>
              <tr><td data-label="Element"><strong>Metoda</strong></td><td data-label="Obciążenie projektowe">Obliczenia strat pomieszczenie po pomieszczeniu.</td><td data-label="Bilans chwilowy">Od uproszczonego modelu edukacyjnego do pełnej symulacji godzinowej.</td></tr>
            </tbody>
          </table>
        </div>

        <div class="rk-solar-danger">
          <p><strong>Nie zmniejszaj zagęszczenia rur wyłącznie ze względu na południowe okna.</strong> Jeżeli projektowana pętla nie pokryje strat bez słońca, automatyka nie odzyska brakującej mocy. Rozstaw rur powinien wynikać z obciążenia, temperatury zasilania, oporu okładziny i dopuszczalnej temperatury powierzchni.</p>
        </div>

        <h3 style="margin-top:38px">Co trzeba przeanalizować przy przeszkleniach południowych i zachodnich?</h3>
        <div class="rk-solar-grid-3">
          <article class="rk-solar-card"><span class="rk-solar-card-number">01</span><h3>Geometria i orientacja</h3><p>Powierzchnia szyby, azymut, wysokość nadproża, głębokość pomieszczenia oraz kąt padania słońca decydują o miejscu i czasie wystąpienia zysków.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">02</span><h3>Parametry oszklenia</h3><p>Do strat wykorzystuje się `U`, a do zysków `g`. Należy uwzględnić również udział ram, rzeczywistą powierzchnię szkła i dane producenta okna.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">03</span><h3>Zacienienie zewnętrzne</h3><p>Okap może dobrze działać dla wysokiego słońca letniego, ale przepuszczać niskie słońce zimowe. Żaluzja zewnętrzna reaguje elastycznie i zatrzymuje energię przed szybą.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">04</span><h3>Opór posadzki</h3><p>Płytki, drewno, winyl i dywan zmieniają moc powierzchniową oraz temperaturę wody potrzebną do pokrycia strat.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">05</span><h3>Podział hydrauliczny</h3><p>Strefy południowe i północne powinny mieć pętle pozwalające na niezależną reakcję. Jedna długa pętla przechodząca przez oba obszary utrudnia sterowanie.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">06</span><h3>Temperatura zasilania</h3><p>Im mniejsza nadwyżka temperatury podłogi nad wnętrzem, tym wyraźniejszy efekt samoregulacji i mniejsza energia zgromadzona ponad potrzebę.</p></article>
        </div>

        <p style="margin-top:24px">Szczegółowy dobór opisują również poradniki o <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">rozstawie rur przy pompie ciepła</a>, <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/">strefie brzegowej ogrzewania podłogowego</a> i <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalnej temperaturze zasilania podłogówki</a>.</p>

        <h3 style="margin-top:38px">Cztery typowe pomieszczenia — cztery strategie</h3>
        <div class="rk-solar-table-wrap">
          <table aria-label="Strategie projektowe dla pomieszczeń o różnych zyskach słonecznych">
            <thead><tr><th>Pomieszczenie</th><th>Najważniejsze ryzyko</th><th>Decyzja projektowa</th><th>Sterowanie i ochrona</th></tr></thead>
            <tbody>
              <tr><td data-label="Pomieszczenie"><strong>Salon południowy</strong></td><td data-label="Ryzyko">Duży szczyt w środku dnia i energia pozostająca w jastrychu.</td><td data-label="Projekt">Osobne pętle strefy dziennej, moc pełna na dzień bez słońca, możliwie niska Tz.</td><td data-label="Sterowanie">Wpływ pomieszczenia, ograniczenie przegrzewania i skuteczne zacienienie zewnętrzne.</td></tr>
              <tr><td data-label="Pomieszczenie"><strong>Strefa zachodnia</strong></td><td data-label="Ryzyko">Późny zysk w chwili, gdy podłoga zawiera energię z całego dnia.</td><td data-label="Projekt">Oddzielenie od pomieszczeń północnych i analiza popołudniowego użytkowania.</td><td data-label="Sterowanie">Reakcja wyprzedzająca oraz żaluzje ograniczające niski kąt słońca.</td></tr>
              <tr><td data-label="Pomieszczenie"><strong>Sypialnia północna</strong></td><td data-label="Ryzyko">Niedogrzanie po zamknięciu całej instalacji przez czujnik w słonecznym salonie.</td><td data-label="Projekt">Własna pętla i przepływ wynikający z jej strat, bez uzależniania od salonu.</td><td data-label="Sterowanie">Czujnik reprezentatywny dla sypialni albo pozostawienie poprawnie zrównoważonego obwodu.</td></tr>
              <tr><td data-label="Pomieszczenie"><strong>Łazienka</strong></td><td data-label="Ryzyko">Inna temperatura zadana i potrzeba komfortu w określonych godzinach.</td><td data-label="Projekt">Osobna pętla, sprawdzenie mocy i temperatury powierzchni; ewentualne źródło uzupełniające.</td><td data-label="Sterowanie">Harmonogram dopasowany do użytkowania, bez przypadkowego uzależniania od salonu.</td></tr>
            </tbody>
          </table>
        </div>
      </section>

      <section class="rk-solar-section" id="rk-solar-control">
        <span class="rk-solar-kicker">Automatyka ma współpracować z fizyką</span>
        <h2>Jak sterować ogrzewaniem podłogowym przy zyskach słonecznych?</h2>
        <p class="rk-solar-lead">Najlepszy efekt zwykle daje połączenie poprawnie ustawionej niskiej temperatury zasilania, równoważenia hydraulicznego, rozsądnego wpływu temperatury pomieszczeń oraz zacienienia. Sam termostat działający dopiero po przekroczeniu zadanej temperatury może zareagować zbyt późno, ale rozbudowana automatyka również nie naprawi źle podzielonych pętli.</p>

        <div class="rk-solar-strategy-grid">
          <article class="rk-solar-strategy"><div class="rk-solar-strategy-head">1. Sterowanie pogodowe jako baza</div><div class="rk-solar-strategy-body"><p><a href="https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/">Regulator pogodowy</a> dopasowuje temperaturę zasilania do temperatury zewnętrznej. Ogranicza nadmierne ładowanie jastrychu, lecz sam czujnik zewnętrzny nie widzi słońca wpadającego przez konkretne okno.</p></div></article>
          <article class="rk-solar-strategy"><div class="rk-solar-strategy-head">2. Wpływ pomieszczenia lub sterowanie strefowe</div><div class="rk-solar-strategy-body"><p>Czujnik powietrza albo temperatury operacyjnej może skorygować pracę strefy południowej. Siłownik zamyka przepływ w odpowiednich pętlach, ale nie usuwa ciepła już zawartego w podłodze.</p></div></article>
          <article class="rk-solar-strategy"><div class="rk-solar-strategy-head">3. Zacienienie ogranicza problem u źródła</div><div class="rk-solar-strategy-body"><p>Osłona zewnętrzna zatrzymuje część promieniowania przed wejściem do wnętrza. W sezonie letnim często ma większe znaczenie niż jakakolwiek korekta instalacji grzewczej.</p></div></article>
        </div>

        <div class="rk-solar-note">
          <p><strong>Gdzie umieścić czujnik?</strong> Nie w bezpośrednim słońcu, nad rozgrzanym sprzętem ani przy drzwiach. Powinien mierzyć warunki reprezentatywne dla strefy. Jeden centralny termostat w nasłonecznionym salonie nie powinien odcinać ciepła sypialni znajdujących się po północnej stronie.</p>
        </div>

        <h3 style="margin-top:38px">Czy każda pętla musi mieć siłownik?</h3>
        <p>Nie. W budynku o małych, podobnych obciążeniach i dobrze ustawionej krzywej grzewczej część instalacji może pracować stabilnie bez ciągłego zamykania obwodów. Automatyka ma sens tam, gdzie występują rzeczywiście różne profile zysków, temperatur zadanych albo użytkowania. Szerzej omawia to poradnik <a href="https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/">czy warto montować sterowniki do ogrzewania podłogowego</a>.</p>

        <ul class="rk-solar-checklist">
          <li>Najpierw ustaw przepływy projektowe, dopiero później obserwuj reakcję stref.</li>
          <li>Nie stosuj głębokich, krótkich obniżeń temperatury dla ciężkiej podłogi.</li>
          <li>Ogranicz temperaturę zasilania do wartości wynikającej z obliczeń.</li>
          <li>Nie zamykaj wszystkich pętli bez sprawdzenia wymagań źródła ciepła.</li>
          <li>Zapisuj temperaturę wewnętrzną, zewnętrzną i nasłonecznienie przez kilka dni.</li>
          <li>Oddziel problem zimowych zysków od letniej ochrony przed przegrzewaniem.</li>
        </ul>
      </section>

      <section class="rk-solar-section" id="rk-solar-heatpump">
        <span class="rk-solar-kicker">Hydraulika przy zamykaniu stref</span>
        <h2>Pompa ciepła, pasywne zyski ciepła i minimalny przepływ</h2>
        <p class="rk-solar-lead">Gdy słońce ogrzewa salon, siłowniki mogą zamknąć kilka dużych pętli. Pozostałe pokoje nadal potrzebują energii, ale całkowity przepływ przez instalację spada. To moment, w którym strategia pokojowa spotyka się z wymaganiami pompy ciepła.</p>

        <div class="rk-solar-grid-3">
          <article class="rk-solar-card"><span class="rk-solar-card-number">V̇<sub>min</sub></span><h3>Minimalny przepływ urządzenia</h3><p>Trzeba zapewnić przepływ wymagany podczas grzania i odszraniania. Wartość pochodzi z dokumentacji konkretnej pompy ciepła.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">V</span><h3>Pojemność wodna</h3><p>Zbyt mała pojemność czynna po zamknięciu stref może skrócić cykle sprężarki i utrudnić odbiór energii.</p></article>
          <article class="rk-solar-card"><span class="rk-solar-card-number">Δp</span><h3>Zmiana oporów</h3><p>Zamykanie obwodów zmienia charakterystykę instalacji. Pompa obiegowa i zawory muszą zachować bezpieczny punkt pracy.</p></article>
        </div>

        <div class="rk-solar-warning">
          <p><strong>Bufor dobiera się do funkcji, a nie z przyzwyczajenia.</strong> Może stabilizować objętość i rozdzielić przepływy, ale może też zwiększyć straty postojowe lub pogorszyć temperaturę zasilania, jeżeli zostanie źle włączony. Najpierw sprawdza się układ bezpośredni, minimalny przepływ, aktywną pojemność i logikę odszraniania, a dopiero potem podejmuje decyzję. Zobacz również: <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">bufor ciepła w ogrzewaniu podłogowym</a>.</p>
        </div>

        <p>Równie ważna jest modulacja źródła. Gdy większość zysków pokrywa salon, chwilowe zapotrzebowanie domu może spaść poniżej minimalnej mocy urządzenia. Sama automatyka pokojowa nie rozwiąże tego problemu — potrzebna jest koordynacja z krzywą grzewczą, przepływem i pojemnością instalacji. Więcej zależności opisuje techniczne opracowanie <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompa ciepła i ogrzewanie niskotemperaturowe</a>.</p>
      </section>

      <section class="rk-solar-section" id="rk-solar-howto">
        <span class="rk-solar-kicker">Procedura projektowa krok po kroku</span>
        <h2>Jak uwzględnić pasywne zyski ciepła w projekcie ogrzewania podłogowego?</h2>
        <p class="rk-solar-lead">Prawidłowa kolejność chroni przed dwiema skrajnościami: niedowymiarowaniem ogrzewania z powodu optymistycznego założenia o słońcu oraz przegrzewaniem wynikającym z braku podziału i regulacji stref.</p>

        <div class="rk-solar-steps">
          <article class="rk-solar-step"><h3>Oblicz straty każdego pomieszczenia</h3><p>Uwzględnij przenikanie, wentylację, temperatury projektowe oraz rzeczywiste parametry przegród i stolarki.</p></article>
          <article class="rk-solar-step"><h3>Sprawdź orientację i przeszklenia</h3><p>Zapisz powierzchnię czynną szyb, azymut, współczynnik `g`, elementy zacieniające i sąsiednie przeszkody.</p></article>
          <article class="rk-solar-step"><h3>Dobierz podłogę bez gwarantowanego słońca</h3><p>Wyznacz temperaturę zasilania, rozstaw, długość i przepływ pętli tak, aby instalacja pokryła projektowe straty.</p></article>
          <article class="rk-solar-step"><h3>Podziel niezależne strefy</h3><p>Nie prowadź jednego obwodu przez obszary o skrajnie różnym nasłonecznieniu i sposobie użytkowania.</p></article>
          <article class="rk-solar-step"><h3>Zaprojektuj reakcję sterowania</h3><p>Połącz pogodową temperaturę zasilania, wpływ pomieszczenia, siłowniki tam, gdzie są potrzebne, oraz ochronę przeciwsłoneczną.</p></article>
          <article class="rk-solar-step"><h3>Sprawdź źródło przy zamykaniu pętli</h3><p>Zweryfikuj minimalny przepływ, moc minimalną, pojemność wodną, pracę pompy obiegowej i warunki odszraniania.</p></article>
        </div>

        <h3 style="margin-top:38px">Najczęstsze błędy w domu z dużymi oknami</h3>
        <ul class="rk-solar-checklist">
          <li>Odejmowanie zysków słonecznych od mocy pętli tak, jakby występowały w każdą mroźną godzinę.</li>
          <li>Łączenie salonu południowego i pokoju północnego jedną pętlą grzewczą.</li>
          <li>Ustawianie wysokiej temperatury zasilania, a następnie ratowanie komfortu częstym zamykaniem pętli.</li>
          <li>Montowanie termostatu w miejscu bezpośrednio nasłonecznionym.</li>
          <li>Mylenie wartości `U` okna ze współczynnikiem całkowitej przepuszczalności energii `g`.</li>
          <li>Traktowanie masy jastrychu wyłącznie jako problemu, bez oceny jej zdolności do tłumienia krótkich szczytów.</li>
          <li>Dodawanie bufora bez sprawdzenia minimalnego przepływu i funkcji, którą ma pełnić.</li>
          <li>Oczekiwanie, że termostat natychmiast zatrzyma ciepło zgromadzone wcześniej w podłodze.</li>
        </ul>
      </section>

      <section class="rk-solar-section" id="rk-solar-faq">
        <span class="rk-solar-kicker">Pytania inwestorów</span>
        <h2>FAQ: ogrzewanie podłogowe a pasywne zyski ciepła</h2>
        <div class="rk-solar-faq">
          <details>
            <summary>Czy ogrzewanie podłogowe może przegrzewać dom od słońca?</summary>
            <div class="rk-solar-faq-answer"><p>Tak, jeżeli zyski słoneczne pojawiają się wtedy, gdy jastrych nadal oddaje wcześniej zgromadzoną energię. Ryzyko rośnie przy dużych przeszkleniach, wysokiej temperaturze zasilania, braku zacienienia i niewłaściwym podziale stref.</p></div>
          </details>
          <details>
            <summary>Czy zyski słoneczne można odjąć od projektowej mocy ogrzewania?</summary>
            <div class="rk-solar-faq-answer"><p>Nie należy traktować ich jako stałej, gwarantowanej mocy. Ogrzewanie powinno pokryć projektowe straty również podczas mroźnej i pochmurnej pogody. Zyski słoneczne wykorzystuje się do analizy eksploatacji, sterowania i ryzyka przegrzewania.</p></div>
          </details>
          <details>
            <summary>Na czym polega samoregulacja ogrzewania podłogowego?</summary>
            <div class="rk-solar-faq-answer"><p>Gdy temperatura operacyjna pomieszczenia rośnie, maleje różnica między wnętrzem a powierzchnią podłogi, dlatego emisja ciepła z podłogi spada. Efekt jest silny w systemach niskotemperaturowych, ale nie usuwa energii zgromadzonej w jastrychu.</p></div>
          </details>
          <details>
            <summary>Czy przy dużych oknach trzeba zwiększyć rozstaw rur?</summary>
            <div class="rk-solar-faq-answer"><p>Nie można tego robić wyłącznie z powodu spodziewanych zysków słonecznych. Rozstaw wynika z projektowych strat pomieszczenia, temperatury zasilania, oporu posadzki i dopuszczalnej temperatury powierzchni.</p></div>
          </details>
          <details>
            <summary>Czy sterowanie pogodowe wystarczy przy południowych przeszkleniach?</summary>
            <div class="rk-solar-faq-answer"><p>Jest bardzo dobrą podstawą, ponieważ ogranicza temperaturę zasilania, ale czujnik zewnętrzny nie mierzy bezpośrednio słońca wpadającego do konkretnego salonu. Przy dużych i zmiennych zyskach pomocny może być wpływ pomieszczenia, podział stref oraz zacienienie.</p></div>
          </details>
          <details>
            <summary>Czy każdy pokój powinien mieć osobny termostat i siłownik?</summary>
            <div class="rk-solar-faq-answer"><p>Nie zawsze. Zależy to od różnic w nasłonecznieniu, temperaturach zadanych i sposobie użytkowania. Najważniejsze jest, aby pętle stref o różnych profilach zysków można było regulować niezależnie bez destabilizowania źródła ciepła.</p></div>
          </details>
          <details>
            <summary>Czy pompa ciepła potrzebuje bufora, gdy termostaty zamykają pętle?</summary>
            <div class="rk-solar-faq-answer"><p>Nie ma jednej odpowiedzi. Trzeba sprawdzić minimalny przepływ, pojemność wodną pozostającą w pracy, moc minimalną, sposób odszraniania i wymagania konkretnego urządzenia. Bufor jest jednym z rozwiązań, a nie automatycznym obowiązkiem.</p></div>
          </details>
          <details>
            <summary>Jak najlepiej ograniczyć przegrzewanie od słońca?</summary>
            <div class="rk-solar-faq-answer"><p>Najskuteczniejsze jest połączenie właściwego zacienienia zewnętrznego, niskiej temperatury zasilania, podziału stref, równoważenia hydraulicznego i sterowania uwzględniającego temperaturę pomieszczenia. Latem kluczowe jest zatrzymanie energii przed szybą.</p></div>
          </details>
        </div>
      </section>

      <section class="rk-solar-section" aria-label="Źródła techniczne">
        <div class="rk-solar-sources">
          <strong>Podstawa techniczna i źródła opracowania</strong>
          <p>Projektowe obciążenie cieplne: <a href="https://sklep.pkn.pl/pn-en-12831-1-2017-08e.html" target="_blank" rel="noopener nofollow">PN-EN 12831-1:2017-08 — Polski Komitet Normalizacyjny</a>. Obliczenia godzinowe energii, temperatur i obciążeń: <a href="https://www.iso.org/standard/65696.html" target="_blank" rel="noopener nofollow">ISO 52016-1:2017 — International Organization for Standardization</a>. Projektowanie i sterowanie systemami płaszczyznowymi oraz efekt samoregulacji: <a href="https://www.rehva.eu/rehva-journal/chapter/iso-11855-the-international-standard-on-the-design-dimensioning-installation-and-control-of-embedded-radiant-heating-and-cooling-systems" target="_blank" rel="noopener nofollow">opracowanie ISO 11855 — REHVA</a>. Wpływ masy termicznej na zmienne zyski słoneczne: <a href="https://www.energy.gov/cmei/buildings/zeb-technologies-passive-design-techniques" target="_blank" rel="noopener nofollow">Passive Design Techniques — U.S. Department of Energy</a>. Graniczne temperatury powierzchni systemów podłogowych: <a href="https://sklep.pkn.pl/pn-en-1264-2-2021-10e.html" target="_blank" rel="noopener nofollow">PN-EN 1264-2:2021-10 — PKN</a>. Dostęp do źródeł: 26 sierpnia 2026 r.</p>
          <p>Laboratorium przedstawia uproszczony bilans chwilowy i nie modeluje położenia słońca, udziału ram, wielokrotnych odbić, szczegółowej dynamiki przegród, wymiany między strefami ani działania konkretnego sterownika.</p>
        </div>
      </section>

      <section class="rk-solar-author" id="rk-solar-author" aria-label="Autor opracowania">
        <input type="radio" name="rk-solar-author-tabs" id="rk-solar-author-about" checked="">
        <input type="radio" name="rk-solar-author-tabs" id="rk-solar-author-exp">
        <input type="radio" name="rk-solar-author-tabs" id="rk-solar-author-sites">

        <div class="rk-solar-author-head">
          <div><h2>Autor opracowania</h2><p>Praktyka projektowa, fizyka budynku i parametry instalacji przedstawione bez skrótów myślowych.</p></div>
          <span class="rk-solar-author-mark">E‑E‑A‑T • HVAC</span>
        </div>

        <div class="rk-solar-author-layout">
          <aside class="rk-solar-author-side">
            <div class="rk-solar-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji ogrzewania podłogowego" width="360" height="360" loading="lazy" decoding="async"></div>
            <div class="rk-solar-author-name">Robert Kucharski</div>
            <div class="rk-solar-author-role">CEO portalu<br>Specjalista HVAC i ogrzewania podłogowego</div>
          </aside>

          <div class="rk-solar-author-main">
            <blockquote class="rk-solar-author-quote"><p>„Słońce nie powinno zastępować mocy projektowej pętli. Powinno natomiast wpływać na sposób podziału stref, temperaturę zasilania i sterowanie, bo to one decydują, czy darmowa energia poprawi bilans, czy przegrzeje salon.”</p></blockquote>

            <div class="rk-solar-author-tabs" role="tablist" aria-label="Informacje o autorze">
              <label class="rk-solar-author-tab" for="rk-solar-author-about" role="tab">O autorze</label>
              <label class="rk-solar-author-tab" for="rk-solar-author-exp" role="tab">Doświadczenie</label>
              <label class="rk-solar-author-tab" for="rk-solar-author-sites" role="tab">Portale</label>
            </div>

            <div class="rk-solar-author-panel rk-solar-author-panel-about">
              <p>Robert Kucharski projektuje wodne instalacje ogrzewania podłogowego i przygotowuje techniczne publikacje dotyczące hydrauliki, źródeł ciepła, automatyki, fizyki budynku oraz świadomego prowadzenia inwestycji. W opracowaniach rozdziela parametry służące do doboru instalacji od zmiennych warunków eksploatacyjnych.</p>
              <p><a href="https://projekt-ogrzewania.pl/author/admin3399/">Zobacz profil i pozostałe opracowania autora</a>.</p>
            </div>

            <div class="rk-solar-author-panel rk-solar-author-panel-exp">
              <p>Doświadczenie autora obejmuje obliczenia obciążenia cieplnego pomieszczeń, dobór temperatury zasilania, rozstawu i długości pętli, przepływów oraz oporów hydraulicznych. Szczególną uwagę poświęca współpracy podłogówki z pompami ciepła, podziałowi na strefy i warunkom, które mogą prowadzić do przegrzewania albo taktowania źródła.</p>
            </div>

            <div class="rk-solar-author-panel rk-solar-author-panel-sites">
              <p>Autor jest właścicielem trzech serwisów poświęconych projektowaniu instalacji, budowie i remontom. Powiązanie portali jest podane jawnie, aby czytelnik znał autorstwo oraz kontekst linkowania.</p>
              <div class="rk-solar-site-links">
                <a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a>
                <a href="https://remont.biz.pl/" target="_blank" rel="noopener nofollow">Remont.biz.pl</a>
                <a href="https://sobir.pl/" target="_blank" rel="noopener nofollow">Sobir.pl</a>
              </div>
            </div>
          </div>
        </div>
      </section>

      <section class="rk-solar-final-cta" aria-label="Projekt ogrzewania podłogowego dla domu z dużymi przeszkleniami">
        <div class="rk-solar-final-cta-content">
          <span class="rk-solar-kicker" style="color:#79f1ff">Projekt przed wykonaniem wylewki</span>
          <h2>Masz duże przeszklenia? Nie każ jednej pętli ogrzewać dwóch różnych światów</h2>
          <p>Projekt ogrzewania podłogowego określa straty każdego pomieszczenia, moc powierzchniową bez zakładania stałego słońca, rozstaw i długość pętli, przepływy, opory oraz podział stref. Dzięki temu salon może ograniczyć grzanie od nasłonecznienia, a północne pokoje nadal otrzymują potrzebną moc.</p>
          <a class="rk-solar-cta-button rk-solar-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
          <small class="rk-solar-disclosure">Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
        </div>
      </section>
    </div>
  </div>
</article>

<!-- RK_SOLAR_SCHEMA -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#article",
      "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/",
      "headline": "Ogrzewanie podłogowe a pasywne zyski ciepła – jak uniknąć przegrzewania od słońca?",
      "description": "Ogrzewanie podłogowe a pasywne zyski ciepła: sprawdź wpływ słońca, okien i sterowania na komfort, zużycie energii oraz ryzyko przegrzewania wnętrz, także latem.",
      "dateModified": "2026-08-26",
      "inLanguage": "pl-PL",
      "mainEntityOfPage": {
        "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#webpage"
      },
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "reviewedBy": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "accountablePerson": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "copyrightHolder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/#website"
      },
      "articleSection": [
        "Ogrzewanie podłogowe",
        "Projektowanie instalacji",
        "Fizyka budynku",
        "Sterowanie ogrzewaniem"
      ],
      "keywords": [
        "ogrzewanie podłogowe a pasywne zyski ciepła",
        "zyski słoneczne a ogrzewanie podłogowe",
        "przegrzewanie domu od słońca",
        "duże przeszklenia a podłogówka",
        "samoregulacja ogrzewania podłogowego",
        "bezwładność cieplna podłogówki",
        "sterowanie podłogówką w nasłonecznionym salonie",
        "pompa ciepła a zamykanie pętli"
      ],
      "about": [
        {
          "@type": "Thing",
          "name": "Pasywne zyski ciepła"
        },
        {
          "@type": "Thing",
          "name": "Wodne ogrzewanie podłogowe"
        },
        {
          "@type": "Thing",
          "name": "Zyski słoneczne przez przeszklenia"
        },
        {
          "@type": "Thing",
          "name": "Sterowanie strefowe"
        }
      ],
      "citation": [
        "https://sklep.pkn.pl/pn-en-12831-1-2017-08e.html",
        "https://www.iso.org/standard/65696.html",
        "https://www.rehva.eu/rehva-journal/chapter/iso-11855-the-international-standard-on-the-design-dimensioning-installation-and-control-of-embedded-radiant-heating-and-cooling-systems",
        "https://www.energy.gov/cmei/buildings/zeb-technologies-passive-design-techniques",
        "https://sklep.pkn.pl/pn-en-1264-2-2021-10e.html"
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#webpage",
      "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/",
      "name": "Ogrzewanie podłogowe a pasywne zyski ciepła – jak uniknąć przegrzewania od słońca?",
      "description": "Ogrzewanie podłogowe a pasywne zyski ciepła: sprawdź wpływ słońca, okien i sterowania na komfort, zużycie energii oraz ryzyko przegrzewania wnętrz, także latem.",
      "dateModified": "2026-08-26",
      "inLanguage": "pl-PL",
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/#website"
      },
      "breadcrumb": {
        "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#breadcrumb"
      },
      "mainEntity": [
        {
          "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#article"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#laboratorium"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#faq"
        }
      ],
      "about": {
        "@type": "Thing",
        "name": "Wpływ pasywnych zysków ciepła na ogrzewanie podłogowe"
      },
      "primaryImageOfPage": {
        "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#diagram"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Strona główna",
          "item": "https://projekt-ogrzewania.pl/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Ogrzewanie podłogowe",
          "item": "https://projekt-ogrzewania.pl/category/ogrzewanie-podlogowe/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Ogrzewanie podłogowe a pasywne zyski ciepła",
          "item": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/"
        }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#laboratorium",
      "name": "Laboratorium chwilowego bilansu zysków słonecznych",
      "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#rk-solar-lab",
      "description": "Edukacyjny model porównujący przybliżone chwilowe straty pomieszczenia, zyski słoneczne, zyski wewnętrzne i moc nadal oddawaną przez ogrzewanie podłogowe.",
      "applicationCategory": "EducationalApplication",
      "applicationSubCategory": "Building energy balance simulator",
      "operatingSystem": "Dowolny system z nowoczesną przeglądarką internetową",
      "browserRequirements": "JavaScript oraz obsługa SVG",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "about": {
        "@type": "Thing",
        "name": "Chwilowy bilans cieplny nasłonecznionego pomieszczenia"
      },
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "PLN"
      }
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#howto",
      "name": "Jak zaprojektować ogrzewanie podłogowe w domu z dużymi przeszkleniami",
      "description": "Sześć etapów projektowania instalacji, która pokrywa straty w dzień bez słońca i reaguje na zmienne zyski w nasłonecznionych pomieszczeniach.",
      "inLanguage": "pl-PL",
      "totalTime": "P1D",
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Oblicz straty każdego pomieszczenia",
          "text": "Uwzględnij przenikanie, wentylację, temperatury projektowe oraz rzeczywiste parametry przegród i stolarki.",
          "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#rk-solar-howto"
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Sprawdź orientację i przeszklenia",
          "text": "Zapisz powierzchnię czynną szyb, azymut, współczynnik g, elementy zacieniające i sąsiednie przeszkody.",
          "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#rk-solar-howto"
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Dobierz podłogę bez gwarantowanego słońca",
          "text": "Wyznacz temperaturę zasilania, rozstaw, długość i przepływ pętli tak, aby instalacja pokryła projektowe straty.",
          "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#rk-solar-howto"
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Podziel niezależne strefy",
          "text": "Nie prowadź jednego obwodu przez obszary o skrajnie różnym nasłonecznieniu i sposobie użytkowania.",
          "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#rk-solar-howto"
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Zaprojektuj reakcję sterowania",
          "text": "Połącz pogodową temperaturę zasilania, wpływ pomieszczenia, siłowniki tam, gdzie są potrzebne, oraz ochronę przeciwsłoneczną.",
          "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#rk-solar-howto"
        },
        {
          "@type": "HowToStep",
          "position": 6,
          "name": "Sprawdź źródło przy zamykaniu pętli",
          "text": "Zweryfikuj minimalny przepływ, moc minimalną, pojemność wodną, pracę pompy obiegowej i warunki odszraniania.",
          "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#rk-solar-howto"
        }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#faq",
      "inLanguage": "pl-PL",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Czy ogrzewanie podłogowe może przegrzewać dom od słońca?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Tak, jeżeli zyski słoneczne pojawiają się wtedy, gdy jastrych nadal oddaje wcześniej zgromadzoną energię. Ryzyko rośnie przy dużych przeszkleniach, wysokiej temperaturze zasilania, braku zacienienia i niewłaściwym podziale stref."
          }
        },
        {
          "@type": "Question",
          "name": "Czy zyski słoneczne można odjąć od projektowej mocy ogrzewania?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie należy traktować ich jako stałej, gwarantowanej mocy. Ogrzewanie powinno pokryć projektowe straty również podczas mroźnej i pochmurnej pogody. Zyski słoneczne wykorzystuje się do analizy eksploatacji, sterowania i ryzyka przegrzewania."
          }
        },
        {
          "@type": "Question",
          "name": "Na czym polega samoregulacja ogrzewania podłogowego?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Gdy temperatura operacyjna pomieszczenia rośnie, maleje różnica między wnętrzem a powierzchnią podłogi, dlatego emisja ciepła z podłogi spada. Efekt jest silny w systemach niskotemperaturowych, ale nie usuwa energii zgromadzonej w jastrychu."
          }
        },
        {
          "@type": "Question",
          "name": "Czy przy dużych oknach trzeba zwiększyć rozstaw rur?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie można tego robić wyłącznie z powodu spodziewanych zysków słonecznych. Rozstaw wynika z projektowych strat pomieszczenia, temperatury zasilania, oporu posadzki i dopuszczalnej temperatury powierzchni."
          }
        },
        {
          "@type": "Question",
          "name": "Czy sterowanie pogodowe wystarczy przy południowych przeszkleniach?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Jest bardzo dobrą podstawą, ponieważ ogranicza temperaturę zasilania, ale czujnik zewnętrzny nie mierzy bezpośrednio słońca wpadającego do konkretnego salonu. Przy dużych i zmiennych zyskach pomocny może być wpływ pomieszczenia, podział stref oraz zacienienie."
          }
        },
        {
          "@type": "Question",
          "name": "Czy każdy pokój powinien mieć osobny termostat i siłownik?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie zawsze. Zależy to od różnic w nasłonecznieniu, temperaturach zadanych i sposobie użytkowania. Najważniejsze jest, aby pętle stref o różnych profilach zysków można było regulować niezależnie bez destabilizowania źródła ciepła."
          }
        },
        {
          "@type": "Question",
          "name": "Czy pompa ciepła potrzebuje bufora, gdy termostaty zamykają pętle?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie ma jednej odpowiedzi. Trzeba sprawdzić minimalny przepływ, pojemność wodną pozostającą w pracy, moc minimalną, sposób odszraniania i wymagania konkretnego urządzenia. Bufor jest jednym z rozwiązań, a nie automatycznym obowiązkiem."
          }
        },
        {
          "@type": "Question",
          "name": "Jak najlepiej ograniczyć przegrzewanie od słońca?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Najskuteczniejsze jest połączenie właściwego zacienienia zewnętrznego, niskiej temperatury zasilania, podziału stref, równoważenia hydraulicznego i sterowania uwzględniającego temperaturę pomieszczenia. Latem kluczowe jest zatrzymanie energii przed szybą."
          }
        }
      ]
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
        "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
        "width": 360,
        "height": 360
      },
      "jobTitle": "Projektant instalacji sanitarnych, specjalista HVAC i ogrzewania podłogowego",
      "description": "Projektant wodnych instalacji ogrzewania podłogowego i autor opracowań technicznych dotyczących hydrauliki, źródeł ciepła, automatyki oraz fizyki budynku. Właściciel serwisów Projekt-Ogrzewania.pl, Remont.biz.pl i Sobir.pl.",
      "knowsAbout": [
        "projektowanie ogrzewania podłogowego",
        "obliczenia obciążenia cieplnego",
        "hydraulika instalacji grzewczych",
        "pompy ciepła",
        "sterowanie pogodowe",
        "fizyka budynku",
        "pasywne zyski ciepła"
      ],
      "sameAs": [
        "https://projekt-ogrzewania.pl/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ],
      "owns": [
        {
          "@id": "https://projekt-ogrzewania.pl/#organization"
        },
        {
          "@id": "https://remont.biz.pl/#organization"
        },
        {
          "@id": "https://sobir.pl/#organization"
        }
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt Ogrzewania",
      "url": "https://projekt-ogrzewania.pl/",
      "description": "Serwis poświęcony projektowaniu wodnego ogrzewania podłogowego, należący do Roberta Kucharskiego.",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-ogrzewania-logo-1.jpg",
        "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-ogrzewania-logo-1.jpg"
      },
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "owner": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "description": "Serwis budowlano-remontowy należący do Roberta Kucharskiego.",
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "owner": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "description": "Portal o budowie, instalacjach i technologii domu należący do Roberta Kucharskiego.",
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "owner": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      }
    },
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "description": "Projektowanie ogrzewania podłogowego i techniczna wiedza o instalacjach grzewczych.",
      "inLanguage": "pl-PL",
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "copyrightHolder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/#diagram",
      "name": "Schemat chwilowego bilansu zysków słonecznych, strat i ogrzewania podłogowego",
      "caption": "Autorski schemat przepływu energii w nasłonecznionym pomieszczeniu z ogrzewaniem podłogowym.",
      "creator": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "creditText": "Robert Kucharski, Projekt-Ogrzewania.pl",
      "copyrightNotice": "Robert Kucharski"
    }
  ]
}
</script>

<script>
(function () {
  "use strict";

  function initializeSolarGuide() {
    var root = document.getElementById("rk-solar-guide");
    if (!root) {
      return false;
    }
    if (root.getAttribute("data-rk-solar-ready") === "1") {
      return true;
    }
    root.setAttribute("data-rk-solar-ready", "1");

    function byId(id) {
      return document.getElementById(id);
    }

    function clamp(value, minimum, maximum) {
      return Math.min(maximum, Math.max(minimum, value));
    }

    function numberFrom(id, fallback) {
      var element = byId(id);
      if (!element) {
        return fallback;
      }
      var parsed = Number(element.value);
      return Number.isFinite(parsed) ? parsed : fallback;
    }

    function formatNumber(value, digits) {
      return new Intl.NumberFormat("pl-PL", {
        minimumFractionDigits: digits,
        maximumFractionDigits: digits
      }).format(value);
    }

    function setText(id, value) {
      var element = byId(id);
      if (element) {
        element.textContent = value;
      }
    }

    function setAttribute(id, name, value) {
      var element = byId(id);
      if (element) {
        element.setAttribute(name, String(value));
      }
    }

    function watts(value) {
      return formatNumber(Math.round(value), 0) + " W";
    }

    function signedWatts(value) {
      var rounded = Math.round(value);
      if (rounded > 0) {
        return "+" + formatNumber(rounded, 0) + " W";
      }
      if (rounded < 0) {
        return "−" + formatNumber(Math.abs(rounded), 0) + " W";
      }
      return "0 W";
    }

    function updateBar(id, valueId, value, maximum) {
      var baseline = 265;
      var chartHeight = 220;
      var height = maximum > 0 ? value / maximum * chartHeight : 0;
      height = clamp(height, 0, chartHeight);
      var y = baseline - height;
      setAttribute(id, "y", y.toFixed(2));
      setAttribute(id, "height", height.toFixed(2));
      setAttribute(valueId, "y", Math.max(35, y - 8).toFixed(2));
      setText(valueId, watts(value));
    }

    function updateChart(loss, solarGain, internalGain, activePower) {
      var largest = Math.max(loss, solarGain, internalGain, activePower, 100);
      var maximum = Math.ceil(largest * 1.15 / 100) * 100;
      setText("rk-solar-ymax", formatNumber(maximum, 0));
      setText("rk-solar-y75", formatNumber(maximum * 0.75, 0));
      setText("rk-solar-y50", formatNumber(maximum * 0.5, 0));
      setText("rk-solar-y25", formatNumber(maximum * 0.25, 0));
      updateBar("rk-solar-bar-loss", "rk-solar-bar-loss-value", loss, maximum);
      updateBar("rk-solar-bar-sun", "rk-solar-bar-sun-value", solarGain, maximum);
      updateBar("rk-solar-bar-internal", "rk-solar-bar-internal-value", internalGain, maximum);
      updateBar("rk-solar-bar-floor", "rk-solar-bar-floor-value", activePower, maximum);
    }

    function updateStatus(currentOutside, indoor, currentLoss, gains, activePower, balance) {
      var status = byId("rk-solar-status");
      if (!status) {
        return;
      }

      var statusClass = "is-success";
      var title = "Bilans chwilowy jest zbliżony do równowagi";
      var copy = "Zyski i moc podłogi w przybliżeniu odpowiadają aktualnym stratom. To nadal fotografia jednej chwili, a nie prognoza temperatury po kilku godzinach.";
      var strongThreshold = Math.max(150, currentLoss * 0.25);
      var mildThreshold = Math.max(50, currentLoss * 0.08);

      if (currentOutside >= indoor) {
        if (activePower > 0) {
          statusClass = "is-danger";
          title = "Model nie wykazuje potrzeby grzania, a podłoga nadal oddaje energię";
          copy = "Temperatura zewnętrzna nie jest niższa od wewnętrznej, więc uproszczone straty wynoszą zero. Aktywne grzanie i zyski tworzą nadwyżkę, której termostat nie usunie z rozgrzanego jastrychu.";
        } else {
          statusClass = "is-warning";
          title = "Brak potrzeby aktywnego grzania w uproszczonym modelu";
          copy = "Przy tej temperaturze zewnętrznej model nie wyznacza strat przez różnicę temperatur. Zyski słoneczne i bytowe mogą nadal podnosić temperaturę wnętrza.";
        }
      } else if (balance > strongThreshold) {
        statusClass = "is-danger";
        title = "Wyraźna chwilowa nadwyżka energii";
        copy = "Zyski wynoszą " + watts(gains) + ", a podłoga nadal oddaje " + watts(activePower) + ". Sterowanie może zatrzymać nowy dopływ, lecz nie usunie energii zgromadzonej w jastrychu.";
      } else if (balance > mildThreshold) {
        statusClass = "is-warning";
        title = "Pojawia się umiarkowana chwilowa nadwyżka";
        copy = "Bilans wskazuje nadmiar około " + watts(balance) + ". Warto ograniczyć dalsze ładowanie podłogi i obserwować wpływ masy cieplnej oraz zacienienia.";
      } else if (balance < -strongThreshold) {
        statusClass = "is-warning";
        title = "Chwilowa moc jest wyraźnie niższa od przybliżonych strat";
        copy = "W tej chwili brakuje około " + watts(Math.abs(balance)) + ". Model nie rozstrzyga, czy różnicę pokrywa energia zgromadzona w przegrodach ani jak szybko zmieni się temperatura.";
      } else if (balance < -mildThreshold) {
        statusClass = "is-warning";
        title = "Niewielki chwilowy deficyt energii";
        copy = "Dopływy są nieco niższe od przybliżonych strat. Rzeczywista reakcja zależy od bezwładności budynku, sterowania i wcześniejszego przebiegu temperatur.";
      }

      status.className = "rk-solar-status " + statusClass;
      setText("rk-solar-status-title", title);
      setText("rk-solar-status-copy", copy);
    }

    function calculate() {
      var designLoad = numberFrom("rk-solar-design-load", 1200);
      var designOutside = numberFrom("rk-solar-design-out", -20);
      var currentOutside = numberFrom("rk-solar-current-out", 0);
      var indoor = numberFrom("rk-solar-indoor", 21);
      var glassArea = numberFrom("rk-solar-glass", 8);
      var gValue = numberFrom("rk-solar-gvalue", 0.5);
      var irradiance = numberFrom("rk-solar-irradiance", 140);
      var shading = numberFrom("rk-solar-shading", 85);
      var internalGain = numberFrom("rk-solar-internal", 120);
      var activePower = numberFrom("rk-solar-active", 600);

      var designDelta = Math.max(0.1, indoor - designOutside);
      var currentDelta = Math.max(0, indoor - currentOutside);
      var currentLoss = designLoad * currentDelta / designDelta;
      currentLoss = clamp(currentLoss, 0, designLoad * 1.5);

      var solarGain = glassArea * gValue * irradiance * shading / 100;
      var totalGains = solarGain + internalGain;
      var requiredActive = Math.max(0, currentLoss - totalGains);
      var balance = activePower + totalGains - currentLoss;
      var coverage = 0;
      if (currentLoss > 0.01) {
        coverage = totalGains / currentLoss * 100;
      } else if (totalGains > 0) {
        coverage = 999;
      }
      coverage = Math.min(999, coverage);

      setText("rk-solar-design-load-output", watts(designLoad));
      setText("rk-solar-design-out-output", formatNumber(designOutside, 0) + "°C");
      setText("rk-solar-current-out-output", formatNumber(currentOutside, 0) + "°C");
      setText("rk-solar-indoor-output", formatNumber(indoor, indoor % 1 === 0 ? 0 : 1) + "°C");
      setText("rk-solar-glass-output", formatNumber(glassArea, 1) + " m²");
      setText("rk-solar-gvalue-output", formatNumber(gValue, 2));
      setText("rk-solar-irradiance-output", formatNumber(irradiance, 0) + " W/m²");
      setText("rk-solar-shading-output", formatNumber(shading, 0) + "%");
      setText("rk-solar-internal-output", watts(internalGain));
      setText("rk-solar-active-output", watts(activePower));

      setText("rk-solar-result-loss", watts(currentLoss));
      setText("rk-solar-result-sun", watts(solarGain));
      setText("rk-solar-result-gains", watts(totalGains));
      setText("rk-solar-result-required", watts(requiredActive));
      setText("rk-solar-result-coverage", formatNumber(Math.round(coverage), 0) + "%");
      setText("rk-solar-result-balance", signedWatts(balance));

      updateStatus(currentOutside, indoor, currentLoss, totalGains, activePower, balance);
      updateChart(currentLoss, solarGain, internalGain, activePower);
    }

    var form = byId("rk-solar-form");
    if (form) {
      form.addEventListener("submit", function (event) {
        event.preventDefault();
      });
      var controls = form.querySelectorAll("input[type='range']");
      controls.forEach(function (control) {
        control.addEventListener("input", calculate);
        control.addEventListener("change", calculate);
      });
    }

    var navigationLinks = root.querySelectorAll(".rk-solar-nav a[href^='#']");
    navigationLinks.forEach(function (link) {
      link.addEventListener("click", function (event) {
        var targetId = link.getAttribute("href");
        if (!targetId) {
          return;
        }
        var target = root.querySelector(targetId);
        if (!target) {
          return;
        }
        event.preventDefault();
        var reducedMotion = false;
        if (window.matchMedia) {
          reducedMotion = window.matchMedia("(prefers-reduced-motion: reduce)").matches;
        }
        target.scrollIntoView({
          behavior: reducedMotion ? "auto" : "smooth",
          block: "start"
        });
        if (window.history) {
          if (window.history.replaceState) {
            window.history.replaceState(null, "", targetId);
          }
        }
      });
    });

    var progress = root.querySelector(".rk-solar-progress");
    function updateProgress() {
      if (!progress) {
        return;
      }
      var rectangle = root.getBoundingClientRect();
      var available = root.offsetHeight - window.innerHeight;
      var passed = -rectangle.top;
      var ratio = available > 0 ? clamp(passed / available, 0, 1) : 0;
      progress.style.width = formatNumber(ratio * 100, 2).replace(",", ".") + "%";
    }

    window.addEventListener("scroll", updateProgress, { passive: true });
    window.addEventListener("resize", updateProgress);
    calculate();
    updateProgress();
    return true;
  }

  function attemptInitialization() {
    initializeSolarGuide();
  }

  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", attemptInitialization);
  } else {
    attemptInitialization();
  }

  window.addEventListener("load", attemptInitialization);
  window.setTimeout(attemptInitialization, 250);
  window.setTimeout(attemptInitialization, 1200);
  window.setTimeout(attemptInitialization, 3000);

  if (window.MutationObserver) {
    var observer = new MutationObserver(function () {
      var root = document.getElementById("rk-solar-guide");
      if (root) {
        initializeSolarGuide();
        if (root.getAttribute("data-rk-solar-ready") === "1") {
          observer.disconnect();
        }
      }
    });
    observer.observe(document.documentElement, { childList: true, subtree: true });
  }
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/">Ogrzewanie podłogowe a pasywne zyski ciepła.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Rura PEX do ogrzewania podłogowego.</title>
		<link>https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/</link>
					<comments>https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Mon, 03 Mar 2025 10:56:05 +0000</pubDate>
				<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Instalacje hydrauliczne]]></category>
		<category><![CDATA[Nowoczesne materiały budowlane]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Projektowanie systemów grzewczych]]></category>
		<category><![CDATA[Rura PEX]]></category>
		<category><![CDATA[Rury do ogrzewania]]></category>
		<category><![CDATA[Rury do podłogówki]]></category>
		<category><![CDATA[Systemy rurowe]]></category>
		<category><![CDATA[Technologie budowlane]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pex-a]]></category>
		<category><![CDATA[pex-b]]></category>
		<category><![CDATA[pex-c]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[rura pex]]></category>
		<category><![CDATA[system rurowy]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2314</guid>

					<description><![CDATA[<p>Rura PEX do ogrzewania podłogowego to jedno z najczęściej stosowanych rozwiązań w nowoczesnych systemach grzewczych. Dzięki odporności na wysokie temperatury, elastyczności oraz długiej żywotności, PEX jest wyborem numer jeden zarówno dla domów jednorodzinnych, jak i większych budynków użytkowych. W artykule omawiamy zalety tego materiału, porównujemy różne rodzaje PEX (PE-Xa, PE-Xb, PE-Xc), a także doradzamy, jak dobrać odpowiednie rury do projektu ogrzewania podłogowego. Przedstawiamy również koszty inwestycji oraz możliwe oszczędności, jakie można osiągnąć dzięki tej technologii.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/">Rura PEX do ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-pex-guide {
    --rk-dark: #102536;
    --rk-navy: #14384d;
    --rk-graphite: #2b3f4d;
    --rk-blue: #078fbe;
    --rk-cyan: #28c9da;
    --rk-cyan-soft: #eafcff;
    --rk-orange: #ff7438;
    --rk-red: #e33d35;
    --rk-green: #16856b;
    --rk-green-soft: #eaf8f4;
    --rk-ink: #1f2937;
    --rk-text: #465866;
    --rk-muted: #687986;
    --rk-line: #dce8ee;
    --rk-soft: #f5f9fb;
    --rk-warm: #fff4ed;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1080px;
    margin: 34px auto 70px;
    color: var(--rk-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 18px;
    line-height: 1.78;
  }

  #rk-pex-guide,
  #rk-pex-guide * {
    box-sizing: border-box;
  }

  #rk-pex-guide img,
  #rk-pex-guide svg {
    max-width: 100%;
  }

  #rk-pex-guide button,
  #rk-pex-guide a,
  #rk-pex-guide summary {
    -webkit-tap-highlight-color: transparent;
  }

  #rk-pex-guide a {
    color: var(--rk-blue);
    font-weight: 760;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }

  #rk-pex-guide a:hover {
    color: var(--rk-red);
  }

  #rk-pex-guide h2,
  #rk-pex-guide h3,
  #rk-pex-guide h4 {
    margin-top: 0;
    color: var(--rk-dark);
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.18;
  }

  #rk-pex-guide h2 {
    margin-bottom: 18px;
    font-size: clamp(1.65rem, 3.7vw, 2.6rem);
  }

  #rk-pex-guide h3 {
    margin-bottom: 12px;
    font-size: clamp(1.18rem, 2.5vw, 1.56rem);
  }

  #rk-pex-guide h4 {
    margin-bottom: 8px;
    font-size: 1.02rem;
    letter-spacing: -0.015em;
  }

  /* Ochrona nagłówków przed dekoracjami ::before i ::after motywu Neve. */
  #rk-pex-guide h2::before,
  #rk-pex-guide h2::after,
  #rk-pex-guide h3::before,
  #rk-pex-guide h3::after,
  #rk-pex-guide h4::before,
  #rk-pex-guide h4::after {
    content: none !important;
    display: none !important;
  }

  #rk-pex-guide p {
    margin: 0 0 1.25em;
    color: var(--rk-text);
  }

  #rk-pex-guide strong {
    color: var(--rk-dark);
  }

  #rk-pex-guide section[id] {
    scroll-margin-top: 28px;
  }

  #rk-pex-guide .rk-pex-shell {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 30px;
    background: var(--rk-white);
    box-shadow: 0 25px 70px rgba(16, 37, 54, 0.12);
  }

  #rk-pex-guide .rk-pex-progress-track {
    position: sticky;
    z-index: 30;
    top: 0;
    width: 100%;
    height: 5px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.82);
  }

  #rk-pex-guide .rk-pex-progress {
    width: 0;
    height: 100%;
    background: linear-gradient(90deg, var(--rk-cyan), var(--rk-blue), var(--rk-orange), var(--rk-red));
  }

  #rk-pex-guide .rk-pex-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(38px, 6.5vw, 78px);
    color: var(--rk-white);
    background:
      radial-gradient(circle at 88% 12%, rgba(255, 116, 56, 0.35), transparent 27%),
      radial-gradient(circle at 82% 78%, rgba(40, 201, 218, 0.24), transparent 31%),
      linear-gradient(135deg, #0d2230 0%, #143b50 58%, #095e78 100%);
  }

  #rk-pex-guide .rk-pex-hero::before,
  #rk-pex-guide .rk-pex-hero::after {
    content: "";
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    pointer-events: none;
  }

  #rk-pex-guide .rk-pex-hero::before {
    right: -115px;
    bottom: -170px;
    width: 390px;
    height: 390px;
    border: 58px solid rgba(255, 255, 255, 0.055);
  }

  #rk-pex-guide .rk-pex-hero::after {
    right: 115px;
    bottom: -130px;
    width: 230px;
    height: 230px;
    border: 34px solid rgba(255, 116, 56, 0.11);
  }

  #rk-pex-guide .rk-pex-badge {
    display: inline-flex;
    gap: 10px;
    align-items: center;
    margin: 0 0 24px;
    padding: 8px 15px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 999px;
    color: var(--rk-white);
    background: rgba(255, 255, 255, 0.08);
    font-size: 0.74rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    line-height: 1.35;
    text-transform: uppercase;
  }

  #rk-pex-guide .rk-pex-badge::before {
    content: "";
    width: 10px;
    height: 10px;
    flex: 0 0 10px;
    border-radius: 50%;
    background: var(--rk-orange);
    box-shadow: 0 0 0 6px rgba(255, 116, 56, 0.18);
  }

  #rk-pex-guide .rk-pex-hero h2 {
    max-width: 900px;
    margin-bottom: 24px;
    color: var(--rk-white);
    font-size: clamp(2rem, 5.25vw, 3.9rem);
    letter-spacing: -0.055em;
  }

  #rk-pex-guide .rk-pex-hero h2 span {
    color: #84edf5;
  }

  #rk-pex-guide .rk-pex-hook {
    max-width: 920px;
    margin: 0 0 26px;
    padding: clamp(20px, 3.6vw, 30px);
    border: 1px solid rgba(255, 255, 255, 0.17);
    border-left: 5px solid var(--rk-orange);
    border-radius: 0 18px 18px 0;
    background: rgba(255, 255, 255, 0.09);
    backdrop-filter: blur(6px);
  }

  #rk-pex-guide .rk-pex-hook p {
    margin: 0;
    color: #f3f8fa;
    font-size: clamp(1.02rem, 2.1vw, 1.23rem);
    font-weight: 620;
    line-height: 1.7;
  }

  #rk-pex-guide .rk-pex-hook strong {
    color: var(--rk-white);
  }

  #rk-pex-guide .rk-pex-hero-lead {
    max-width: 900px;
    color: #dcecf1;
    font-size: clamp(1rem, 2vw, 1.15rem);
  }

  #rk-pex-guide .rk-pex-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 9px 18px;
    margin-top: 28px;
  }

  #rk-pex-guide .rk-pex-hero-meta span {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    color: #d7e7ec;
    font-size: 0.82rem;
    font-weight: 750;
  }

  #rk-pex-guide .rk-pex-hero-meta span::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--rk-cyan);
  }

  #rk-pex-guide .rk-pex-author-strip {
    display: flex;
    gap: 14px;
    align-items: center;
    max-width: 820px;
    margin-top: 30px;
    padding: 14px 16px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 18px;
    background: rgba(7, 24, 35, 0.26);
  }

  #rk-pex-guide .rk-pex-author-strip img {
    width: 54px;
    height: 54px;
    flex: 0 0 54px;
    border: 2px solid rgba(255, 255, 255, 0.55);
    border-radius: 50%;
    object-fit: cover;
  }

  #rk-pex-guide .rk-pex-author-strip b,
  #rk-pex-guide .rk-pex-author-strip small {
    display: block;
  }

  #rk-pex-guide .rk-pex-author-strip b {
    color: var(--rk-white);
    font-size: 0.98rem;
  }

  #rk-pex-guide .rk-pex-author-strip small {
    color: #cfe3ea;
    font-size: 0.78rem;
    line-height: 1.55;
  }

  #rk-pex-guide .rk-pex-content {
    padding: clamp(28px, 5.8vw, 66px);
  }

  #rk-pex-guide .rk-pex-learn {
    margin-bottom: 32px;
  }

  #rk-pex-guide .rk-pex-learn-title {
    margin-bottom: 18px;
  }

  #rk-pex-guide .rk-pex-learn-grid,
  #rk-pex-guide .rk-pex-card-grid,
  #rk-pex-guide .rk-pex-check-grid,
  #rk-pex-guide .rk-pex-spec-grid {
    display: grid;
    gap: 16px;
  }

  #rk-pex-guide .rk-pex-learn-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-pex-guide .rk-pex-learn-card {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 15px;
    min-width: 0;
    padding: 20px;
    border: 1px solid #cfeaf0;
    border-radius: 18px;
    background: linear-gradient(145deg, #f8feff, var(--rk-cyan-soft));
  }

  #rk-pex-guide .rk-pex-learn-no,
  #rk-pex-guide .rk-pex-check-no {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 13px;
    color: var(--rk-white);
    background: linear-gradient(145deg, var(--rk-blue), var(--rk-cyan));
    font-size: 0.78rem;
    font-weight: 900;
  }

  #rk-pex-guide .rk-pex-learn-no::before,
  #rk-pex-guide .rk-pex-learn-no::after,
  #rk-pex-guide .rk-pex-check-no::before,
  #rk-pex-guide .rk-pex-check-no::after {
    content: none !important;
    display: none !important;
  }

  #rk-pex-guide .rk-pex-learn-card p {
    margin: 0;
    font-size: 0.86rem;
    line-height: 1.62;
  }

  #rk-pex-guide .rk-pex-nav {
    margin: 0 0 48px;
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-soft);
  }

  #rk-pex-guide .rk-pex-nav strong {
    display: block;
    margin-bottom: 13px;
    font-size: 0.83rem;
    letter-spacing: 0.09em;
    text-transform: uppercase;
  }

  #rk-pex-guide .rk-pex-nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
  }

  #rk-pex-guide .rk-pex-nav a {
    padding: 8px 12px;
    border: 1px solid var(--rk-line);
    border-radius: 999px;
    color: var(--rk-navy);
    background: var(--rk-white);
    font-size: 0.79rem;
    line-height: 1.35;
    text-decoration: none;
  }

  #rk-pex-guide .rk-pex-nav a:hover {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-pex-guide .rk-pex-section {
    margin-bottom: clamp(54px, 8vw, 86px);
  }

  #rk-pex-guide .rk-pex-section-head {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 17px;
    align-items: start;
    margin-bottom: 24px;
  }

  #rk-pex-guide .rk-pex-section-no {
    display: grid;
    width: 50px;
    height: 50px;
    place-items: center;
    border-radius: 15px;
    color: var(--rk-white);
    background: linear-gradient(145deg, var(--rk-dark), var(--rk-navy));
    box-shadow: 0 10px 24px rgba(16, 37, 54, 0.18);
    font-weight: 900;
  }

  #rk-pex-guide .rk-pex-section-no::before,
  #rk-pex-guide .rk-pex-section-no::after {
    content: none !important;
    display: none !important;
  }

  #rk-pex-guide .rk-pex-section-head h2 {
    margin-bottom: 6px;
  }

  #rk-pex-guide .rk-pex-section-head p {
    margin: 0;
    color: var(--rk-muted);
  }

  #rk-pex-guide .rk-pex-answer {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(210px, 0.36fr);
    gap: 24px;
    align-items: center;
    margin: 24px 0 30px;
    padding: clamp(24px, 4.5vw, 38px);
    border: 1px solid #ffd2be;
    border-radius: 22px;
    background: linear-gradient(145deg, #fffaf7, var(--rk-warm));
  }

  #rk-pex-guide .rk-pex-answer-label {
    display: block;
    margin-bottom: 8px;
    color: #c74514;
    font-size: 0.74rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  #rk-pex-guide .rk-pex-answer-main {
    display: block;
    margin-bottom: 12px;
    font-size: clamp(1.25rem, 2.8vw, 1.85rem);
    line-height: 1.3;
  }

  #rk-pex-guide .rk-pex-answer p {
    margin: 0;
  }

  #rk-pex-guide .rk-pex-answer-badge {
    padding: 24px 18px;
    border-radius: 20px;
    color: var(--rk-white);
    text-align: center;
    background: linear-gradient(145deg, var(--rk-orange), var(--rk-red));
    box-shadow: 0 16px 34px rgba(227, 61, 53, 0.2);
  }

  #rk-pex-guide .rk-pex-answer-badge b,
  #rk-pex-guide .rk-pex-answer-badge span {
    display: block;
    color: var(--rk-white);
  }

  #rk-pex-guide .rk-pex-answer-badge b {
    font-size: clamp(2rem, 5vw, 3.35rem);
    line-height: 1;
  }

  #rk-pex-guide .rk-pex-answer-badge span {
    margin-top: 9px;
    font-size: 0.75rem;
    font-weight: 800;
    line-height: 1.45;
  }

  #rk-pex-guide .rk-pex-note,
  #rk-pex-guide .rk-pex-warning,
  #rk-pex-guide .rk-pex-truth {
    margin: 24px 0;
    padding: 22px 24px;
    border-radius: 0 17px 17px 0;
  }

  #rk-pex-guide .rk-pex-note {
    border-left: 5px solid var(--rk-blue);
    background: var(--rk-cyan-soft);
  }

  #rk-pex-guide .rk-pex-warning {
    border-left: 5px solid var(--rk-orange);
    background: var(--rk-warm);
  }

  #rk-pex-guide .rk-pex-truth {
    border-left: 5px solid var(--rk-cyan);
    background: linear-gradient(135deg, var(--rk-dark), #24485c);
  }

  #rk-pex-guide .rk-pex-truth p,
  #rk-pex-guide .rk-pex-truth strong {
    color: var(--rk-white);
  }

  #rk-pex-guide .rk-pex-note p:last-child,
  #rk-pex-guide .rk-pex-warning p:last-child,
  #rk-pex-guide .rk-pex-truth p:last-child {
    margin-bottom: 0;
  }

  #rk-pex-guide .rk-pex-card-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 24px 0 28px;
  }

  #rk-pex-guide .rk-pex-card {
    min-width: 0;
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 19px;
    background: var(--rk-white);
  }

  #rk-pex-guide .rk-pex-card-tag {
    display: inline-flex;
    margin-bottom: 13px;
    padding: 6px 10px;
    border-radius: 999px;
    color: var(--rk-white);
    background: linear-gradient(145deg, var(--rk-blue), var(--rk-cyan));
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.05em;
  }

  #rk-pex-guide .rk-pex-card-tag::before,
  #rk-pex-guide .rk-pex-card-tag::after {
    content: none !important;
    display: none !important;
  }

  #rk-pex-guide .rk-pex-card p {
    margin: 0;
    font-size: 0.84rem;
    line-height: 1.62;
  }

  #rk-pex-guide .rk-pex-table-wrap {
    margin: 25px 0 30px;
  }

  #rk-pex-guide .rk-pex-table-title {
    display: block;
    margin-bottom: 11px;
    color: var(--rk-dark);
    font-size: 0.82rem;
    font-weight: 900;
    letter-spacing: 0.07em;
    text-transform: uppercase;
  }

  #rk-pex-guide table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    overflow: hidden;
    background: var(--rk-white);
    font-size: 0.84rem;
    line-height: 1.55;
  }

  #rk-pex-guide th,
  #rk-pex-guide td {
    padding: 15px 14px;
    border-right: 1px solid var(--rk-line);
    border-bottom: 1px solid var(--rk-line);
    text-align: left;
    vertical-align: top;
  }

  #rk-pex-guide th:last-child,
  #rk-pex-guide td:last-child {
    border-right: 0;
  }

  #rk-pex-guide tbody tr:last-child td {
    border-bottom: 0;
  }

  #rk-pex-guide thead th {
    color: var(--rk-white);
    background: var(--rk-navy);
    font-size: 0.76rem;
    letter-spacing: 0.02em;
  }

  #rk-pex-guide tbody tr:nth-child(even) td {
    background: #f8fbfc;
  }

  #rk-pex-guide .rk-pex-formula {
    margin: 26px 0;
    padding: clamp(22px, 4vw, 34px);
    border: 1px solid #cce5ed;
    border-radius: 21px;
    background: linear-gradient(145deg, #f8feff, var(--rk-cyan-soft));
  }

  #rk-pex-guide .rk-pex-formula-label {
    display: block;
    margin-bottom: 10px;
    color: var(--rk-blue);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  #rk-pex-guide .rk-pex-equation {
    overflow-wrap: anywhere;
    color: var(--rk-dark);
    font-family: "Cambria Math", Cambria, Georgia, serif;
    font-size: clamp(1.24rem, 3.2vw, 1.85rem);
    font-weight: 800;
    line-height: 1.45;
  }

  #rk-pex-guide .rk-pex-equation small {
    display: block;
    margin-top: 10px;
    color: var(--rk-muted);
    font-family: Inter, ui-sans-serif, system-ui, sans-serif;
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.58;
  }

  #rk-pex-guide .rk-pex-chart {
    margin: 28px 0;
    padding: clamp(22px, 4vw, 34px);
    border: 1px solid var(--rk-line);
    border-radius: 22px;
    background: var(--rk-soft);
  }

  #rk-pex-guide .rk-pex-chart h3 {
    margin-bottom: 6px;
  }

  #rk-pex-guide .rk-pex-chart-sub {
    margin-bottom: 24px;
    color: var(--rk-muted);
    font-size: 0.84rem;
  }

  #rk-pex-guide .rk-pex-bars {
    display: grid;
    gap: 13px;
  }

  #rk-pex-guide .rk-pex-bar-row {
    display: grid;
    grid-template-columns: 70px minmax(0, 1fr) 82px;
    gap: 12px;
    align-items: center;
  }

  #rk-pex-guide .rk-pex-bar-label,
  #rk-pex-guide .rk-pex-bar-value {
    color: var(--rk-dark);
    font-size: 0.79rem;
    font-weight: 850;
  }

  #rk-pex-guide .rk-pex-bar-value {
    text-align: right;
  }

  #rk-pex-guide .rk-pex-bar-track {
    height: 18px;
    overflow: hidden;
    border-radius: 999px;
    background: #dfe9ed;
  }

  #rk-pex-guide .rk-pex-bar-fill {
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--rk-blue), var(--rk-cyan));
  }

  #rk-pex-guide .rk-pex-chart-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 20px;
    margin: 17px 0 0;
    color: var(--rk-muted);
    font-size: 0.75rem;
  }

  #rk-pex-guide .rk-pex-legend-item {
    display: inline-flex;
    gap: 8px;
    align-items: center;
  }

  #rk-pex-guide .rk-pex-legend-line {
    width: 24px;
    height: 4px;
    border-radius: 999px;
  }

  #rk-pex-guide .rk-pex-chart svg {
    display: block;
    width: 100%;
    height: auto;
    margin-top: 18px;
    border-radius: 14px;
    background: var(--rk-white);
  }

  #rk-pex-guide .rk-pex-check-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 24px 0;
  }

  #rk-pex-guide .rk-pex-check {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 14px;
    min-width: 0;
    padding: 20px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-white);
  }

  #rk-pex-guide .rk-pex-check p {
    margin: 0;
    font-size: 0.84rem;
    line-height: 1.62;
  }

  #rk-pex-guide .rk-pex-spec-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 24px 0;
  }

  #rk-pex-guide .rk-pex-spec {
    min-width: 0;
    padding: 20px 17px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    text-align: center;
    background: var(--rk-white);
  }

  #rk-pex-guide .rk-pex-spec b,
  #rk-pex-guide .rk-pex-spec span {
    display: block;
  }

  #rk-pex-guide .rk-pex-spec b {
    color: var(--rk-blue);
    font-size: clamp(1.15rem, 2.4vw, 1.6rem);
    line-height: 1.15;
  }

  #rk-pex-guide .rk-pex-spec span {
    margin-top: 8px;
    color: var(--rk-muted);
    font-size: 0.72rem;
    line-height: 1.45;
  }

  #rk-pex-guide .rk-pex-cta {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 24px;
    align-items: center;
    margin: 34px 0;
    padding: clamp(24px, 4.5vw, 38px);
    border-radius: 23px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 92% 18%, rgba(255, 116, 56, 0.33), transparent 30%),
      linear-gradient(135deg, var(--rk-dark), #173f55);
  }

  #rk-pex-guide .rk-pex-cta h3,
  #rk-pex-guide .rk-pex-cta p,
  #rk-pex-guide .rk-pex-cta strong {
    color: var(--rk-white);
  }

  #rk-pex-guide .rk-pex-cta p {
    margin: 0;
    color: #d7e7ec;
  }

  #rk-pex-guide .rk-pex-cta-actions {
    display: flex;
    flex-direction: column;
    gap: 9px;
    min-width: 260px;
  }

  #rk-pex-guide .rk-pex-button {
    display: inline-flex;
    justify-content: center;
    padding: 13px 17px;
    border-radius: 13px;
    color: var(--rk-white);
    background: linear-gradient(145deg, var(--rk-orange), var(--rk-red));
    box-shadow: 0 12px 26px rgba(227, 61, 53, 0.22);
    font-size: 0.83rem;
    font-weight: 900;
    text-align: center;
    text-decoration: none;
  }

  #rk-pex-guide .rk-pex-button:hover {
    color: var(--rk-white);
    transform: translateY(-1px);
  }

  #rk-pex-guide .rk-pex-cta small {
    color: #afc8d1;
    font-size: 0.68rem;
    line-height: 1.45;
    text-align: center;
  }

  #rk-pex-guide .rk-pex-faq {
    display: grid;
    gap: 12px;
  }

  #rk-pex-guide .rk-pex-faq details {
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    background: var(--rk-white);
  }

  #rk-pex-guide .rk-pex-faq summary {
    position: relative;
    padding: 18px 52px 18px 20px;
    color: var(--rk-dark);
    cursor: pointer;
    font-weight: 900;
    line-height: 1.45;
    list-style: none;
  }

  #rk-pex-guide .rk-pex-faq summary::-webkit-details-marker {
    display: none;
  }

  #rk-pex-guide .rk-pex-faq summary::after {
    content: "+";
    position: absolute;
    right: 18px;
    top: 50%;
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-blue);
    transform: translateY(-50%);
    font-size: 1.05rem;
  }

  #rk-pex-guide .rk-pex-faq details[open] summary::after {
    content: "−";
    background: var(--rk-orange);
  }

  #rk-pex-guide .rk-pex-faq-answer {
    padding: 0 20px 19px;
  }

  #rk-pex-guide .rk-pex-faq-answer p {
    margin: 0;
    font-size: 0.9rem;
  }

  #rk-pex-guide .rk-pex-sources {
    margin-top: 36px;
    padding: 24px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-soft);
    color: var(--rk-muted);
    font-size: 0.78rem;
    line-height: 1.7;
  }

  #rk-pex-guide .rk-pex-sources strong {
    display: block;
    margin-bottom: 10px;
    font-size: 0.9rem;
  }

  #rk-pex-guide .rk-pex-sources ol {
    margin: 0;
    padding-left: 20px;
  }

  #rk-pex-guide .rk-pex-sources li + li {
    margin-top: 8px;
  }

  #rk-pex-guide .rk-pex-author-box {
    margin-top: 38px;
    overflow: hidden;
    border: 1px solid #cbdde5;
    border-radius: 28px;
    background: var(--rk-white);
    box-shadow: 0 18px 45px rgba(16, 37, 54, 0.11);
  }

  #rk-pex-guide .rk-pex-author-box,
  #rk-pex-guide .rk-pex-author-box * {
    box-sizing: border-box;
  }

  #rk-pex-guide .rk-pex-author-box h2::before,
  #rk-pex-guide .rk-pex-author-box h2::after,
  #rk-pex-guide .rk-pex-author-box h3::before,
  #rk-pex-guide .rk-pex-author-box h3::after,
  #rk-pex-guide .rk-pex-author-box p::before,
  #rk-pex-guide .rk-pex-author-box p::after,
  #rk-pex-guide .rk-pex-author-box a::before,
  #rk-pex-guide .rk-pex-author-box a::after,
  #rk-pex-guide .rk-pex-author-box button::before,
  #rk-pex-guide .rk-pex-author-box button::after {
    content: none !important;
    display: none !important;
  }

  #rk-pex-guide .rk-pex-author-head {
    display: flex;
    gap: 24px;
    align-items: center;
    justify-content: space-between;
    padding: clamp(28px, 5vw, 48px) clamp(24px, 5vw, 54px);
    border-bottom: 5px solid var(--rk-cyan);
    color: var(--rk-white);
    background:
      radial-gradient(circle at 92% 12%, rgba(40, 201, 218, 0.14), transparent 29%),
      linear-gradient(135deg, #102536, #14384d);
  }

  #rk-pex-guide .rk-pex-author-head h2 {
    margin: 0 0 8px;
    color: var(--rk-white);
    font-size: clamp(1.75rem, 4.2vw, 2.75rem);
    line-height: 1.05;
  }

  #rk-pex-guide .rk-pex-author-head p {
    margin: 0;
    color: #d9edf2;
    font-size: clamp(0.86rem, 1.7vw, 1rem);
  }

  #rk-pex-guide .rk-pex-author-badge {
    flex: 0 0 auto;
    padding: 13px 18px;
    border: 1px solid rgba(40, 201, 218, 0.36);
    border-radius: 14px;
    color: #73eff6;
    background: rgba(40, 201, 218, 0.08);
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.07em;
    white-space: nowrap;
  }

  #rk-pex-guide .rk-pex-author-layout {
    display: grid;
    grid-template-columns: minmax(235px, 31%) minmax(0, 1fr);
  }

  #rk-pex-guide .rk-pex-author-profile {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: clamp(32px, 5vw, 52px) clamp(22px, 4vw, 36px);
    border-right: 1px solid #d5e3e9;
    background: linear-gradient(160deg, #f3f9fb, #eef6f8);
    text-align: center;
  }

  #rk-pex-guide .rk-pex-author-photo {
    display: block;
    width: 180px;
    height: 180px;
    margin: 0 auto 24px;
    border: 7px solid var(--rk-white);
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 16px 38px rgba(7, 143, 190, 0.18);
  }

  #rk-pex-guide .rk-pex-author-name {
    margin: 0 0 9px;
    color: var(--rk-dark);
    font-size: clamp(1.35rem, 2.8vw, 1.75rem);
    line-height: 1.15;
  }

  #rk-pex-guide .rk-pex-author-role {
    display: block;
    max-width: 270px;
    margin: 0 auto 24px;
    color: var(--rk-blue);
    font-size: 0.77rem;
    font-weight: 900;
    letter-spacing: 0.07em;
    line-height: 1.65;
    text-transform: uppercase;
  }

  #rk-pex-guide .rk-pex-author-links {
    display: grid;
    width: 100%;
    gap: 9px;
    margin-top: auto;
  }

  #rk-pex-guide .rk-pex-author-link {
    display: flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    padding: 10px 14px;
    border: 1px solid #c7dce5;
    border-radius: 13px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.76rem;
    font-weight: 900;
    text-align: center;
    text-decoration: none;
    transition: color 0.2s ease, background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
  }

  #rk-pex-guide .rk-pex-author-link:hover,
  #rk-pex-guide .rk-pex-author-link:focus-visible {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
    transform: translateY(-1px);
  }

  #rk-pex-guide .rk-pex-author-main {
    min-width: 0;
    background: var(--rk-white);
  }

  #rk-pex-guide .rk-pex-author-quote {
    position: relative;
    min-height: 286px;
    margin: 0;
    padding: clamp(40px, 6vw, 64px) clamp(30px, 6vw, 62px) clamp(32px, 5vw, 48px);
    color: var(--rk-dark);
    background:
      linear-gradient(135deg, rgba(40, 201, 218, 0.05), transparent 48%),
      var(--rk-white);
  }

  #rk-pex-guide .rk-pex-quote-mark {
    display: block;
    height: 38px;
    margin-bottom: 10px;
    color: var(--rk-cyan);
    font-family: Georgia, serif;
    font-size: 4.2rem;
    font-weight: 900;
    line-height: 0.8;
  }

  #rk-pex-guide .rk-pex-author-quote p {
    margin: 0;
    color: var(--rk-dark);
    font-size: clamp(1.02rem, 2.2vw, 1.42rem);
    font-style: italic;
    font-weight: 800;
    line-height: 1.65;
  }

  #rk-pex-guide .rk-pex-author-quote footer {
    margin-top: 17px;
    color: var(--rk-blue);
    font-size: 0.75rem;
    font-style: normal;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }

  #rk-pex-guide .rk-pex-author-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 1px solid #d5e3e9;
    border-bottom: 1px solid #d5e3e9;
    background: #f5f9fb;
  }

  #rk-pex-guide .rk-pex-author-tab {
    position: relative;
    min-height: 66px;
    padding: 14px 10px;
    border: 0;
    border-right: 1px solid #d5e3e9;
    border-radius: 0;
    color: #647785;
    background: transparent;
    cursor: pointer;
    font: inherit;
    font-size: 0.75rem;
    font-weight: 900;
    letter-spacing: 0.045em;
    text-transform: uppercase;
    transition: color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
  }

  #rk-pex-guide .rk-pex-author-tab:last-child {
    border-right: 0;
  }

  #rk-pex-guide .rk-pex-author-tab:hover,
  #rk-pex-guide .rk-pex-author-tab:focus-visible {
    color: var(--rk-blue);
    background: var(--rk-white);
    outline: none;
  }

  #rk-pex-guide .rk-pex-author-tab[aria-selected="true"] {
    color: var(--rk-blue);
    background: var(--rk-white);
    box-shadow: inset 0 -4px 0 var(--rk-blue);
  }

  #rk-pex-guide .rk-pex-author-panels {
    min-height: 260px;
    padding: clamp(28px, 5vw, 48px) clamp(30px, 6vw, 62px);
  }

  #rk-pex-guide .rk-pex-author-panel[hidden] {
    display: none !important;
  }

  #rk-pex-guide .rk-pex-author-panel p {
    margin: 0;
    color: var(--rk-muted);
    font-size: 0.9rem;
    line-height: 1.85;
  }

  #rk-pex-guide .rk-pex-author-panel p + p {
    margin-top: 13px;
  }

  #rk-pex-guide .rk-pex-experience-grid,
  #rk-pex-guide .rk-pex-portal-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 13px;
  }

  #rk-pex-guide .rk-pex-experience-card,
  #rk-pex-guide .rk-pex-portal-card {
    min-width: 0;
    padding: 18px;
    border: 1px solid #d5e3e9;
    border-radius: 16px;
    background: #f8fbfc;
  }

  #rk-pex-guide .rk-pex-experience-card strong,
  #rk-pex-guide .rk-pex-portal-card strong,
  #rk-pex-guide .rk-pex-portal-card span {
    display: block;
  }

  #rk-pex-guide .rk-pex-experience-card strong,
  #rk-pex-guide .rk-pex-portal-card strong {
    margin-bottom: 7px;
    color: var(--rk-dark);
    font-size: 0.8rem;
    line-height: 1.35;
  }

  #rk-pex-guide .rk-pex-experience-card span,
  #rk-pex-guide .rk-pex-portal-card span {
    color: var(--rk-muted);
    font-size: 0.72rem;
    line-height: 1.55;
  }

  #rk-pex-guide .rk-pex-portal-card {
    color: var(--rk-dark);
    text-decoration: none;
    transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease;
  }

  #rk-pex-guide .rk-pex-portal-card:hover,
  #rk-pex-guide .rk-pex-portal-card:focus-visible {
    border-color: var(--rk-cyan);
    background: #f0fbfd;
    transform: translateY(-2px);
  }

  #rk-pex-guide .rk-pex-owner-note {
    margin-top: 16px !important;
    padding: 13px 15px;
    border-left: 4px solid var(--rk-cyan);
    border-radius: 0 12px 12px 0;
    background: #eef9fb;
    font-size: 0.75rem !important;
    line-height: 1.65 !important;
  }

  #rk-pex-guide .rk-pex-disclaimer {
    margin-top: 28px;
    padding-top: 22px;
    border-top: 1px solid var(--rk-line);
    color: var(--rk-muted);
    font-size: 0.72rem;
    line-height: 1.65;
  }

  @media (max-width: 940px) {
    #rk-pex-guide .rk-pex-card-grid {
      grid-template-columns: 1fr;
    }

    #rk-pex-guide .rk-pex-spec-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-pex-guide .rk-pex-answer,
    #rk-pex-guide .rk-pex-cta {
      grid-template-columns: 1fr;
    }

    #rk-pex-guide .rk-pex-cta-actions {
      min-width: 0;
    }
  }

  @media (max-width: 720px) {
    #rk-pex-guide {
      margin: 18px auto 46px;
      font-size: 16px;
    }

    #rk-pex-guide .rk-pex-shell {
      border-radius: 21px;
    }

    #rk-pex-guide .rk-pex-hero,
    #rk-pex-guide .rk-pex-content {
      padding: 25px 18px;
    }

    #rk-pex-guide .rk-pex-learn-grid,
    #rk-pex-guide .rk-pex-check-grid {
      grid-template-columns: 1fr;
    }

    #rk-pex-guide .rk-pex-section-head {
      grid-template-columns: 44px minmax(0, 1fr);
      gap: 13px;
    }

    #rk-pex-guide .rk-pex-section-no {
      width: 42px;
      height: 42px;
      border-radius: 13px;
    }

    #rk-pex-guide .rk-pex-author-head {
      align-items: flex-start;
      flex-direction: column;
    }

    #rk-pex-guide .rk-pex-author-layout {
      grid-template-columns: 1fr;
    }

    #rk-pex-guide .rk-pex-author-profile {
      border-right: 0;
      border-bottom: 1px solid #d5e3e9;
    }

    #rk-pex-guide .rk-pex-author-links {
      max-width: 360px;
    }

    #rk-pex-guide .rk-pex-author-quote {
      min-height: 0;
    }

    #rk-pex-guide .rk-pex-experience-grid,
    #rk-pex-guide .rk-pex-portal-grid {
      grid-template-columns: 1fr;
    }

    #rk-pex-guide .rk-pex-table-wrap table,
    #rk-pex-guide .rk-pex-table-wrap thead,
    #rk-pex-guide .rk-pex-table-wrap tbody,
    #rk-pex-guide .rk-pex-table-wrap tr,
    #rk-pex-guide .rk-pex-table-wrap th,
    #rk-pex-guide .rk-pex-table-wrap td {
      display: block;
      width: 100%;
    }

    #rk-pex-guide .rk-pex-table-wrap table {
      border: 0;
      border-radius: 0;
      background: transparent;
    }

    #rk-pex-guide .rk-pex-table-wrap thead {
      position: absolute;
      width: 1px;
      height: 1px;
      overflow: hidden;
      clip: rect(0 0 0 0);
      white-space: nowrap;
    }

    #rk-pex-guide .rk-pex-table-wrap tbody {
      display: grid;
      gap: 13px;
    }

    #rk-pex-guide .rk-pex-table-wrap tr {
      overflow: hidden;
      border: 1px solid var(--rk-line);
      border-radius: 16px;
      background: var(--rk-white);
      box-shadow: 0 7px 18px rgba(16, 37, 54, 0.05);
    }

    #rk-pex-guide .rk-pex-table-wrap td,
    #rk-pex-guide .rk-pex-table-wrap tbody tr:last-child td {
      display: grid;
      grid-template-columns: minmax(112px, 40%) minmax(0, 1fr);
      gap: 12px;
      padding: 12px 13px;
      border: 0;
      border-bottom: 1px solid var(--rk-line);
      background: var(--rk-white) !important;
    }

    #rk-pex-guide .rk-pex-table-wrap td:last-child {
      border-bottom: 0;
    }

    #rk-pex-guide .rk-pex-table-wrap td::before {
      content: attr(data-label);
      color: var(--rk-dark);
      font-size: 0.73rem;
      font-weight: 900;
      line-height: 1.45;
    }

    #rk-pex-guide .rk-pex-bar-row {
      grid-template-columns: 58px minmax(0, 1fr) 68px;
      gap: 8px;
    }
  }

  @media (max-width: 480px) {
    #rk-pex-guide .rk-pex-author-box {
      border-radius: 21px;
    }

    #rk-pex-guide .rk-pex-author-head,
    #rk-pex-guide .rk-pex-author-profile,
    #rk-pex-guide .rk-pex-author-quote,
    #rk-pex-guide .rk-pex-author-panels {
      padding-left: 20px;
      padding-right: 20px;
    }

    #rk-pex-guide .rk-pex-author-badge {
      white-space: normal;
    }

    #rk-pex-guide .rk-pex-author-photo {
      width: 150px;
      height: 150px;
    }

    #rk-pex-guide .rk-pex-author-tabs {
      grid-template-columns: 1fr;
    }

    #rk-pex-guide .rk-pex-author-tab,
    #rk-pex-guide .rk-pex-author-tab:last-child {
      min-height: 52px;
      border-right: 0;
      border-bottom: 1px solid #d5e3e9;
    }

    #rk-pex-guide .rk-pex-author-tab:last-child {
      border-bottom: 0;
    }

    #rk-pex-guide .rk-pex-author-tab[aria-selected="true"] {
      box-shadow: inset 4px 0 0 var(--rk-blue);
    }

    #rk-pex-guide .rk-pex-author-strip {
      align-items: flex-start;
    }

    #rk-pex-guide .rk-pex-spec-grid {
      grid-template-columns: 1fr;
    }

    #rk-pex-guide .rk-pex-nav a {
      width: 100%;
      text-align: center;
    }

    #rk-pex-guide .rk-pex-bar-row {
      grid-template-columns: 1fr;
    }

    #rk-pex-guide .rk-pex-bar-value {
      text-align: left;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    #rk-pex-guide *,
    #rk-pex-guide *::before,
    #rk-pex-guide *::after {
      scroll-behavior: auto !important;
      transition: none !important;
    }
  }
</style>

<article id="rk-pex-guide" itemscope="" itemtype="https://schema.org/TechArticle">
  <div class="rk-pex-shell">
    <div class="rk-pex-progress-track" aria-hidden="true"><div class="rk-pex-progress"></div></div>

    <header class="rk-pex-hero">
      <div class="rk-pex-badge">Poradnik techniczny • aktualizacja 2026</div>
      <h2>Rura PEX do ogrzewania podłogowego: <span>dobór na podstawie parametrów</span>, nie koloru przewodu</h2>

      <div class="rk-pex-hook">
        <p><strong>Najczęstszy poprawny wybór do domu jednorodzinnego to rura PE-X 16×2,0 mm, przeznaczona do klasy zastosowania 4, z potwierdzoną barierą antydyfuzyjną i dokumentacją całego systemu.</strong> Sam napis „PEX”, kolor rury albo wysoka temperatura podana wielkimi cyframi na etykiecie nie wystarczają do bezpiecznego zaprojektowania podłogówki.</p>
      </div>

      <p class="rk-pex-hero-lead">W tym opracowaniu pokazuję, jak odczytać oznaczenia rury, czym różnią się PE-Xa, PE-Xb i PE-Xc, kiedy wybrać średnicę 16×2,0 lub 20×2,0 mm oraz jak obliczyć długość pętli, przepływ, pojemność wodną i orientacyjne straty ciśnienia. Bez rankingów marek i bez marketingowych obietnic.</p>

      <div class="rk-pex-hero-meta">
        <span>Aktualizacja: 22 sierpnia 2026 r.</span>
        <span>Normy: ISO 15875:2025 • ISO 10508 • EN 1264 • DIN 4726:2024</span>
        <span>Poziom: inwestor, instalator i projektant</span>
      </div>

      <div class="rk-pex-author-strip" itemprop="author" itemscope="" itemtype="https://schema.org/Person">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski – projektant instalacji sanitarnych i specjalista ogrzewania podłogowego" width="54" height="54" loading="eager" itemprop="image">
        <div>
          <b itemprop="name">Robert Kucharski</b>
          <small itemprop="jobTitle">Projektant instalacji sanitarnych • specjalista HVAC i ogrzewania podłogowego • autor Projekt-Ogrzewania.pl</small>
        </div>
      </div>
    </header>

    <div class="rk-pex-content" itemprop="articleBody">
      <section class="rk-pex-learn" aria-labelledby="rk-pex-learn-title">
        <h3 class="rk-pex-learn-title" id="rk-pex-learn-title">Z tego technicznego opracowania dowiesz się:</h3>
        <div class="rk-pex-learn-grid">
          <div class="rk-pex-learn-card">
            <div class="rk-pex-learn-no" aria-hidden="true">01</div>
            <div><h4>Jaką rurę PEX wybrać?</h4><p>Które oznaczenia mają znaczenie i dlaczego litera a, b lub c nie jest samodzielnym rankingiem jakości.</p></div>
          </div>
          <div class="rk-pex-learn-card">
            <div class="rk-pex-learn-no" aria-hidden="true">02</div>
            <div><h4>16×2 czy 20×2 mm?</h4><p>Jak średnica wewnętrzna wpływa na pojemność wodną, prędkość przepływu i opory hydrauliczne.</p></div>
          </div>
          <div class="rk-pex-learn-card">
            <div class="rk-pex-learn-no" aria-hidden="true">03</div>
            <div><h4>Ile rury potrzeba na m²?</h4><p>Wzór dla rozstawu 10, 12,5, 15, 20 i 25 cm oraz przykład podziału pomieszczenia na pętle.</p></div>
          </div>
          <div class="rk-pex-learn-card">
            <div class="rk-pex-learn-no" aria-hidden="true">04</div>
            <div><h4>Jak nie kupić problemu?</h4><p>Bariera EVOH, klasa zastosowania, nadruk produkcyjny, dokumentacja i próba szczelności przed jastrychem.</p></div>
          </div>
        </div>
      </section>

      <nav class="rk-pex-nav" aria-label="Spis treści artykułu">
        <strong>Na skróty</strong>
        <div class="rk-pex-nav-links">
          <a href="#rk-pex-wybor">Szybki wybór</a>
          <a href="#rk-pex-rodzaje">PEX-a, PEX-b, PEX-c</a>
          <a href="#rk-pex-oznaczenia">Normy i nadruk</a>
          <a href="#rk-pex-srednica">Średnice</a>
          <a href="#rk-pex-ile">Ile rury na m²</a>
          <a href="#rk-pex-petla">Długość pętli</a>
          <a href="#rk-pex-temperatura">Temperatura</a>
          <a href="#rk-pex-evoh">Bariera EVOH</a>
          <a href="#rk-pex-montaz">Montaż</a>
          <a href="#rk-pex-porownanie">PEX czy PE-RT</a>
          <a href="#rk-pex-faq">FAQ</a>
        </div>
      </nav>

      <section class="rk-pex-section" id="rk-pex-wybor" aria-labelledby="rk-pex-s1">
        <div class="rk-pex-section-head">
          <div class="rk-pex-section-no">1</div>
          <div>
            <h2 id="rk-pex-s1">Rura PEX do ogrzewania podłogowego – jaka będzie właściwa?</h2>
            <p>Krótka odpowiedź przed szczegółowymi obliczeniami i porównaniem materiałów.</p>
          </div>
        </div>

        <div class="rk-pex-answer" aria-label="Najczęściej wybierana rura PEX do ogrzewania podłogowego">
          <div>
            <span class="rk-pex-answer-label">Najczęstszy wariant w domu jednorodzinnym</span>
            <strong class="rk-pex-answer-main">PE-X 16×2,0 mm • klasa 4 • bariera tlenowa • jeden kompletny system</strong>
            <p>To punkt wyjścia, a nie automatyczna odpowiedź dla każdego budynku. Ostateczny dobór musi uwzględnić obciążenie cieplne pomieszczeń, rozstaw przewodów, długości dobiegów, wymagane przepływy, dopuszczalną stratę ciśnienia i możliwości regulacyjne rozdzielacza.</p>
          </div>
          <div class="rk-pex-answer-badge">
            <b>16×2</b>
            <span>najpopularniejszy wymiar, ale nie uniwersalne rozwiązanie bez obliczeń</span>
          </div>
        </div>

        <p><strong>Rura PEX do ogrzewania podłogowego</strong> powinna tworzyć z rozdzielaczem i złączkami przebadany, zgodny system. Nie należy łączyć przypadkowej rury z dowolną złączką tylko dlatego, że nominalna średnica jest taka sama. Tolerancja średnicy, grubość ścianki, geometria tulei oraz sposób zacisku lub rozszerzania muszą być do siebie dopasowane.</p>

        <p>W typowej instalacji wodnej przewód układa się w jednej ciągłej pętli od belki zasilającej do belki powrotnej. W jastrychu nie planuje się połączeń. Sam materiał PE-X nie koroduje tak jak stal, lecz do zamkniętego układu nadal może przenikać tlen, dlatego znaczenie ma bariera antydyfuzyjna oraz jakość wody instalacyjnej.</p>

        <div class="rk-pex-spec-grid" aria-label="Cztery najważniejsze kryteria doboru rury PEX">
          <div class="rk-pex-spec"><b>16×2,0</b><span>częsty wymiar pętli w budownictwie mieszkaniowym</span></div>
          <div class="rk-pex-spec"><b>Klasa 4</b><span>zastosowanie obejmujące ogrzewanie podłogowe i niskotemperaturowe</span></div>
          <div class="rk-pex-spec"><b>DIN 4726</b><span>punkt odniesienia dla bariery przeciw dyfuzji tlenu</span></div>
          <div class="rk-pex-spec"><b>Projekt</b><span>potwierdzenie przepływu, długości, rozstawu i oporu pętli</span></div>
        </div>

        <div class="rk-pex-truth">
          <p><strong>Najważniejsza prawda:</strong> dobra rura nie naprawi złego projektu. Przewód o świetnych parametrach nadal będzie pracował źle, jeśli pętle okażą się zbyt długie, przepływy nie zostaną zbilansowane albo rozstaw nie pokryje obciążenia cieplnego pomieszczenia.</p>
        </div>

        <p>Jeżeli chcesz najpierw porównać wszystkie grupy materiałowe, przejdź do osobnego opracowania: <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rury do ogrzewania podłogowego – kompletny poradnik</a>.</p>
      </section>

      <section class="rk-pex-section" id="rk-pex-rodzaje" aria-labelledby="rk-pex-s2">
        <div class="rk-pex-section-head">
          <div class="rk-pex-section-no">2</div>
          <div>
            <h2 id="rk-pex-s2">PEX-a, PEX-b czy PEX-c do podłogówki?</h2>
            <p>Litera opisuje metodę sieciowania polietylenu, a nie miejsce w rankingu jakości.</p>
          </div>
        </div>

        <p>PEX, zapisywany w normach jako PE-X, jest polietylenem, w którym pomiędzy łańcuchami polimeru utworzono dodatkowe wiązania poprzeczne. Sieciowanie ogranicza płynięcie materiału pod długotrwałym obciążeniem i podnosi jego przydatność w instalacjach pracujących z ciepłą wodą. Sposób wykonania wiązań określa oznaczenie PE-Xa, PE-Xb lub PE-Xc.</p>

        <div class="rk-pex-table-wrap">
          <span class="rk-pex-table-title">Porównanie metod sieciowania rur PE-X</span>
          <table>
            <thead>
              <tr>
                <th>Rodzaj</th>
                <th>Metoda sieciowania</th>
                <th>Typowe zachowanie montażowe</th>
                <th>Co naprawdę sprawdzić</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td data-label="Rodzaj"><strong>PE-Xa</strong></td>
                <td data-label="Metoda">Proces nadtlenkowy, prowadzony w fazie stopionej polimeru.</td>
                <td data-label="Montaż">Zwykle duża elastyczność i wyraźna pamięć kształtu. Konkretna metoda naprawy załamania zależy od dokumentacji systemu.</td>
                <td data-label="Sprawdź">Klasę zastosowania, ciśnienie projektowe, promień gięcia, barierę tlenową i kompatybilne złączki.</td>
              </tr>
              <tr>
                <td data-label="Rodzaj"><strong>PE-Xb</strong></td>
                <td data-label="Metoda">Sieciowanie silanowe z udziałem wilgoci po uformowaniu przewodu.</td>
                <td data-label="Montaż">Często nieco większa sztywność niż w PE-Xa, lecz parametr zależy również od receptury i konstrukcji warstwowej.</td>
                <td data-label="Sprawdź">Te same parametry systemowe; nie zakładaj niższej trwałości wyłącznie na podstawie litery „b”.</td>
              </tr>
              <tr>
                <td data-label="Rodzaj"><strong>PE-Xc</strong></td>
                <td data-label="Metoda">Sieciowanie promieniowaniem po wytłoczeniu przewodu.</td>
                <td data-label="Montaż">Właściwości zależą od dawki, geometrii rury i kontroli procesu; sama nazwa nie przesądza o elastyczności całego produktu.</td>
                <td data-label="Sprawdź">Deklarowane warunki pracy, badania systemowe, dokumenty i sposób postępowania po mechanicznym uszkodzeniu.</td>
              </tr>
            </tbody>
          </table>
        </div>

        <div class="rk-pex-note">
          <p><strong>PE-Xa nie jest automatycznie „najtrwalszy”, a PE-Xb nie jest automatycznie „gorszy”.</strong> Metoda sieciowania wpływa na zachowanie materiału, ale o przydatności rury decyduje komplet parametrów: konstrukcja ściany, stopień sieciowania, stabilizacja, bariera tlenowa, tolerancje wymiarowe, klasa zastosowania oraz jakość systemu połączeń.</p>
        </div>

        <h3>PEX z EVOH a PEX/Al/PEX – to nie jest ta sama konstrukcja</h3>
        <p>Jednorodna rura PE-X z barierą EVOH pozostaje przewodem z tworzywa o stosunkowo dużej rozszerzalności liniowej. Rura PEX/Al/PEX jest przewodem wielowarstwowym z warstwą aluminium, która ogranicza wydłużenie i zwiększa stabilność kształtu. Aluminium może jednocześnie pełnić funkcję bariery tlenowej, ale wymaga prawidłowo wykonanych połączeń warstw oraz kompatybilnego systemu złączek.</p>

        <div class="rk-pex-card-grid">
          <div class="rk-pex-card">
            <span class="rk-pex-card-tag">Nie oceniaj po kolorze</span>
            <h4>Biała, czerwona lub niebieska rura</h4>
            <p>Kolor jest elementem identyfikacyjnym i marketingowym. Nie informuje samodzielnie o klasie zastosowania, barierze tlenowej ani parametrach ciśnieniowych.</p>
          </div>
          <div class="rk-pex-card">
            <span class="rk-pex-card-tag">Nie oceniaj po literze</span>
            <h4>PE-Xa, PE-Xb i PE-Xc</h4>
            <p>Oznaczenie wskazuje technologię sieciowania. Do porównania dwóch rur potrzebna jest dokumentacja techniczna, a nie samo oznaczenie materiału.</p>
          </div>
          <div class="rk-pex-card">
            <span class="rk-pex-card-tag">Oceniaj system</span>
            <h4>Rura, złączki i narzędzia</h4>
            <p>Wymiary nominalne nie gwarantują kompatybilności. Bezpieczeństwo zapewnia system, którego elementy przewidziano do wspólnej pracy.</p>
          </div>
        </div>

        <p>Porównanie z drugim popularnym materiałem znajduje się w osobnym artykule: <a href="https://projekt-ogrzewania.pl/rura-pert-do-ogrzewania-podlogowego/">rura PE-RT do ogrzewania podłogowego</a>. W dalszej części tego poradnika wrócimy do najważniejszych różnic bez powtarzania całego odrębnego opracowania.</p>
      </section>

      <section class="rk-pex-section" id="rk-pex-oznaczenia" aria-labelledby="rk-pex-s3">
        <div class="rk-pex-section-head">
          <div class="rk-pex-section-no">3</div>
          <div>
            <h2 id="rk-pex-s3">Jak czytać oznaczenia rury PEX?</h2>
            <p>Najważniejsze informacje powinny być na przewodzie i w dokumentacji, nie tylko w opisie sklepu.</p>
          </div>
        </div>

        <p>Aktualne wydania ISO 15875-1:2025 oraz ISO 15875-2:2025 opisują systemy rurowe z usieciowanego polietylenu przeznaczone między innymi do instalacji grzewczych. Norma odnosi parametry przewodu do klasy zastosowania, temperatur projektowych oraz ciśnienia projektowego. Oznacza to, że pojedynczej liczby „95°C” lub „10 bar” nie wolno interpretować w oderwaniu od czasu działania i temperatury.</p>

        <div class="rk-pex-formula" aria-label="Przykładowy układ oznaczeń na rurze PEX">
          <span class="rk-pex-formula-label">Przykładowy zapis na nadruku – układ informacji</span>
          <div class="rk-pex-equation">PE-Xa 16×2,0 • klasa 4 / p<sub>D</sub> • bariera DIN 4726 • norma systemowa • partia • data
            <small>To przykład kolejności danych, a nie gotowe oznaczenie konkretnego produktu. Wartości ciśnienia i klasy należy odczytać z nadruku oraz deklaracji producenta danej rury.</small>
          </div>
        </div>

        <div class="rk-pex-check-grid">
          <div class="rk-pex-check">
            <div class="rk-pex-check-no" aria-hidden="true">01</div>
            <div><h4>Materiał i konstrukcja</h4><p>PE-Xa, PE-Xb albo PE-Xc oraz informacja, czy jest to rura jednorodna z EVOH, czy konstrukcja wielowarstwowa.</p></div>
          </div>
          <div class="rk-pex-check">
            <div class="rk-pex-check-no" aria-hidden="true">02</div>
            <div><h4>Wymiar</h4><p>Średnica zewnętrzna i grubość ścianki, np. 16×2,0 mm. Do hydrauliki potrzebna jest wynikająca z nich średnica wewnętrzna.</p></div>
          </div>
          <div class="rk-pex-check">
            <div class="rk-pex-check-no" aria-hidden="true">03</div>
            <div><h4>Klasa zastosowania</h4><p>Dla podłogówki szukaj deklaracji odpowiedniej dla ogrzewania płaszczyznowego, zwykle klasy 4 według systemu klasyfikacji instalacji z tworzyw.</p></div>
          </div>
          <div class="rk-pex-check">
            <div class="rk-pex-check-no" aria-hidden="true">04</div>
            <div><h4>Ciśnienie projektowe</h4><p>Wartość musi być powiązana z klasą i profilem temperatur. Napis „10 bar” przy 20°C nie oznacza automatycznie 10 bar przy każdej temperaturze.</p></div>
          </div>
          <div class="rk-pex-check">
            <div class="rk-pex-check-no" aria-hidden="true">05</div>
            <div><h4>Bariera tlenowa</h4><p>Sprawdź odwołanie do aktualnych wymagań dotyczących dyfuzji tlenu, a nie tylko ogólne hasło „EVOH” na etykiecie.</p></div>
          </div>
          <div class="rk-pex-check">
            <div class="rk-pex-check-no" aria-hidden="true">06</div>
            <div><h4>Identyfikowalność</h4><p>Partia, data, metraż i oznaczenie zakładu umożliwiają rozpoznanie produktu po wykonaniu instalacji i podczas ewentualnej reklamacji.</p></div>
          </div>
        </div>

        <h3>Cztery dokumenty, które opisują różne rzeczy</h3>
        <div class="rk-pex-table-wrap">
          <span class="rk-pex-table-title">Norma materiałowa to nie to samo co norma projektowania podłogówki</span>
          <table>
            <thead>
              <tr>
                <th>Dokument</th>
                <th>Zakres</th>
                <th>Znaczenie przy wyborze rury</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td data-label="Dokument"><strong>ISO 15875:2025</strong></td>
                <td data-label="Zakres">Systemy rurowe PE-X do instalacji ciepłej i zimnej wody oraz ogrzewania.</td>
                <td data-label="Znaczenie">Opisuje wymagania ogólne, właściwości rur i przydatność systemu do pracy.</td>
              </tr>
              <tr>
                <td data-label="Dokument"><strong>ISO 10508</strong></td>
                <td data-label="Zakres">Klasyfikacja warunków pracy ciśnieniowych instalacji z tworzyw.</td>
                <td data-label="Znaczenie">Pomaga rozumieć zależność między temperaturą, czasem działania, klasą i ciśnieniem.</td>
              </tr>
              <tr>
                <td data-label="Dokument"><strong>DIN 4726:2024</strong></td>
                <td data-label="Zakres">Rury z tworzyw i wielowarstwowe do ogrzewania płaszczyznowego oraz podłączeń grzejników.</td>
                <td data-label="Znaczenie">Stanowi punkt odniesienia dla wymagań dotyczących bariery przeciw dyfuzji tlenu.</td>
              </tr>
              <tr>
                <td data-label="Dokument"><strong>EN 1264</strong></td>
                <td data-label="Zakres">Wodne systemy ogrzewania i chłodzenia płaszczyznowego: moc, wymiarowanie i wykonanie.</td>
                <td data-label="Znaczenie">Dotyczy działania kompletnego systemu podłogowego, a nie wyłącznie materiału rury.</td>
              </tr>
            </tbody>
          </table>
        </div>

        <div class="rk-pex-warning">
          <p><strong>CE i atest do wody pitnej nie zastępują parametrów grzewczych.</strong> Oznaczenie CE ma sens w zakresie właściwego aktu prawnego i odpowiedniej specyfikacji technicznej. Dokument higieniczny jest ważny dla zastosowań wody użytkowej, ale w zamkniętej instalacji podłogowej nie potwierdza hydrauliki, klasy 4 ani bariery tlenowej. W pierwszej kolejności czytaj przeznaczenie, normę systemową i deklarowane warunki pracy.</p>
        </div>

        <p>Szersze omówienie znajduje się w materiale <a href="https://projekt-ogrzewania.pl/norma-en-iso-15875/">norma EN ISO 15875</a> oraz w przewodniku <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">norma obliczeń ogrzewania podłogowego EN 1264</a>.</p>
      </section>

      <section class="rk-pex-section" id="rk-pex-srednica" aria-labelledby="rk-pex-s4">
        <div class="rk-pex-section-head">
          <div class="rk-pex-section-no">4</div>
          <div>
            <h2 id="rk-pex-s4">Rura PEX 16×2 czy 20×2 mm?</h2>
            <p>O hydraulice decyduje średnica wewnętrzna, a nie sama liczba widoczna w nazwie handlowej.</p>
          </div>
        </div>

        <p>W zapisie 16×2,0 mm pierwsza wartość oznacza średnicę zewnętrzną, a druga grubość ścianki. Idealizowana średnica wewnętrzna wynosi więc 12 mm. Dla rury 20×2,0 mm otrzymujemy 16 mm. Ta różnica wygląda niewinnie, lecz pole przekroju rośnie proporcjonalnie do kwadratu średnicy, dlatego wpływ na pojemność wodną i opory przepływu jest bardzo duży.</p>

        <div class="rk-pex-formula">
          <span class="rk-pex-formula-label">Średnica wewnętrzna i objętość jednego metra</span>
          <div class="rk-pex-equation">d<sub>i</sub> = d<sub>e</sub> − 2e &nbsp;&nbsp; | &nbsp;&nbsp; V<sub>1m</sub> = π · d<sub>i</sub><sup>2</sup> / 4 · 1 m
            <small>d<sub>e</sub> – średnica zewnętrzna, e – grubość ścianki, d<sub>i</sub> – średnica wewnętrzna. Wynik geometryczny nie uwzględnia tolerancji produkcyjnych.</small>
          </div>
        </div>

        <div class="rk-pex-table-wrap">
          <span class="rk-pex-table-title">Geometria popularnych wymiarów rur do ogrzewania płaszczyznowego</span>
          <table>
            <thead>
              <tr>
                <th>Wymiar zewnętrzny</th>
                <th>Średnica wewnętrzna</th>
                <th>Pole przepływu</th>
                <th>Woda w 1 m</th>
                <th>SDR = d<sub>e</sub>/e</th>
                <th>Typowe zastosowanie</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td data-label="Wymiar"><strong>12×2,0 mm</strong></td>
                <td data-label="Średnica wewn.">8 mm</td>
                <td data-label="Pole przepływu">50,3 mm²</td>
                <td data-label="Woda w 1 m">0,050 l/m</td>
                <td data-label="SDR">6,0</td>
                <td data-label="Zastosowanie">Systemy specjalne i cienkowarstwowe – tylko według dokumentacji danego rozwiązania.</td>
              </tr>
              <tr>
                <td data-label="Wymiar"><strong>14×2,0 mm</strong></td>
                <td data-label="Średnica wewn.">10 mm</td>
                <td data-label="Pole przepływu">78,5 mm²</td>
                <td data-label="Woda w 1 m">0,079 l/m</td>
                <td data-label="SDR">7,0</td>
                <td data-label="Zastosowanie">Renowacje i systemy o krótszych pętlach; wyższy opór przy tym samym przepływie.</td>
              </tr>
              <tr>
                <td data-label="Wymiar"><strong>16×2,0 mm</strong></td>
                <td data-label="Średnica wewn.">12 mm</td>
                <td data-label="Pole przepływu">113,1 mm²</td>
                <td data-label="Woda w 1 m">0,113 l/m</td>
                <td data-label="SDR">8,0</td>
                <td data-label="Zastosowanie">Najczęstszy wymiar w domowych systemach mokrych.</td>
              </tr>
              <tr>
                <td data-label="Wymiar"><strong>17×2,0 mm</strong></td>
                <td data-label="Średnica wewn.">13 mm</td>
                <td data-label="Pole przepływu">132,7 mm²</td>
                <td data-label="Woda w 1 m">0,133 l/m</td>
                <td data-label="SDR">8,5</td>
                <td data-label="Zastosowanie">Systemy przewidziane dla tego wymiaru; mniejszy opór niż 16×2 przy tym samym przepływie.</td>
              </tr>
              <tr>
                <td data-label="Wymiar"><strong>20×2,0 mm</strong></td>
                <td data-label="Średnica wewn.">16 mm</td>
                <td data-label="Pole przepływu">201,1 mm²</td>
                <td data-label="Woda w 1 m">0,201 l/m</td>
                <td data-label="SDR">10,0</td>
                <td data-label="Zastosowanie">Duże powierzchnie, określone systemy przemysłowe lub układy wymagające ograniczenia oporów.</td>
              </tr>
            </tbody>
          </table>
        </div>

        <div class="rk-pex-note">
          <p><strong>Wniosek:</strong> rura 20×2 mm nie jest automatycznie „lepsza” od 16×2 mm. Ma około 78% większą pojemność jednostkową i znacznie niższy opór przy tym samym przepływie, ale wymaga większego promienia gięcia, innego osprzętu i odpowiednio zaprojektowanego rozstawu. Większa średnica nie jest pozwoleniem na dowolnie długą pętlę.</p>
        </div>

        <h3>Jak obliczyć przepływ w pętli ogrzewania podłogowego?</h3>
        <div class="rk-pex-formula">
          <span class="rk-pex-formula-label">Przepływ objętościowy wody</span>
          <div class="rk-pex-equation">V̇ [l/h] ≈ 0,86 · Q [W] / ΔT [K]
            <small>Q – moc przekazywana przez pętlę, ΔT – przyjęta różnica temperatury między zasilaniem i powrotem. Współczynnik dotyczy wody i typowego zakresu temperatur instalacji grzewczej.</small>
          </div>
        </div>

        <p><strong>Przykład:</strong> jeżeli pętla ma przekazać 800 W, a projektowa różnica temperatur wynosi 5 K, wymagany przepływ to około 0,86 × 800 / 5 = <strong>138 l/h</strong>, czyli około <strong>2,3 l/min</strong>. Dopiero dla tego przepływu i konkretnej średnicy wewnętrznej można policzyć prędkość oraz stratę ciśnienia.</p>

        <div class="rk-pex-formula">
          <span class="rk-pex-formula-label">Prędkość wody w przewodzie</span>
          <div class="rk-pex-equation">v = 4 · V̇ / (π · d<sub>i</sub><sup>2</sup>)
            <small>W obliczeniu jednostkowym V̇ należy podać w m³/s, a średnicę wewnętrzną w metrach. Dla tego samego przepływu mniejsza średnica oznacza większą prędkość i wyższy opór.</small>
          </div>
        </div>

        <p>Szczegółowe rozwinięcie znajdziesz w artykułach <a href="https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/">średnice rur w ogrzewaniu podłogowym</a> oraz <a href="https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/">ile wody mieści się w jednym metrze rury 16×2 mm</a>.</p>
      </section>

      <section class="rk-pex-section" id="rk-pex-ile" aria-labelledby="rk-pex-s5">
        <div class="rk-pex-section-head">
          <div class="rk-pex-section-no">5</div>
          <div>
            <h2 id="rk-pex-s5">Ile rury PEX potrzeba na m² ogrzewania podłogowego?</h2>
            <p>Zużycie wynika przede wszystkim z rozstawu, ale całkowita długość obejmuje również łuki i dobiegi do rozdzielacza.</p>
          </div>
        </div>

        <div class="rk-pex-formula">
          <span class="rk-pex-formula-label">Wzór do wstępnego oszacowania długości rury</span>
          <div class="rk-pex-equation">L = (A / s) · k + L<sub>d</sub>
            <small>L – całkowita długość rury [m], A – aktywna powierzchnia grzewcza [m²], s – rozstaw osiowy rur [m], k – współczynnik na łuki i geometrię, zwykle 1,03–1,08, L<sub>d</sub> – łączna długość odcinków dobiegowych zasilania i powrotu.</small>
          </div>
        </div>

        <p>Wartość A oznacza powierzchnię faktycznie pokrytą rurami, a nie powierzchnię użytkową z projektu architektonicznego. Z obliczenia trzeba wyłączyć stałą zabudowę, miejsca niewskazane do ogrzewania oraz strefy zajęte przez elementy instalacyjne. Rozstaw należy dobierać do obciążenia cieplnego i konstrukcji podłogi, a nie wyłącznie do rodzaju pomieszczenia.</p>

        <div class="rk-pex-table-wrap">
          <span class="rk-pex-table-title">Orientacyjne zużycie rury zależnie od rozstawu</span>
          <table>
            <thead>
              <tr>
                <th>Rozstaw</th>
                <th>Geometria bez zapasu</th>
                <th>Z łukami +5%</th>
                <th>Rura na 12 m² aktywnej podłogi</th>
                <th>Ważna uwaga</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td data-label="Rozstaw"><strong>10 cm</strong></td>
                <td data-label="Bez zapasu">10,00 m/m²</td>
                <td data-label="Z łukami +5%">10,50 m/m²</td>
                <td data-label="Na 12 m²">126,0 m</td>
                <td data-label="Uwaga">Dla 12 m² prawie zawsze potrzebny będzie podział na co najmniej dwie pętle.</td>
              </tr>
              <tr>
                <td data-label="Rozstaw"><strong>12,5 cm</strong></td>
                <td data-label="Bez zapasu">8,00 m/m²</td>
                <td data-label="Z łukami +5%">8,40 m/m²</td>
                <td data-label="Na 12 m²">100,8 m</td>
                <td data-label="Uwaga">Dojścia do rozdzielacza mogą przesądzić o konieczności drugiej pętli.</td>
              </tr>
              <tr>
                <td data-label="Rozstaw"><strong>15 cm</strong></td>
                <td data-label="Bez zapasu">6,67 m/m²</td>
                <td data-label="Z łukami +5%">7,00 m/m²</td>
                <td data-label="Na 12 m²">84,0 m</td>
                <td data-label="Uwaga">Do wyniku trzeba dodać pełną długość zasilania i powrotu do rozdzielacza.</td>
              </tr>
              <tr>
                <td data-label="Rozstaw"><strong>20 cm</strong></td>
                <td data-label="Bez zapasu">5,00 m/m²</td>
                <td data-label="Z łukami +5%">5,25 m/m²</td>
                <td data-label="Na 12 m²">63,0 m</td>
                <td data-label="Uwaga">Rzadszy rozstaw musi nadal pokryć obciążenie cieplne i zapewnić równomierną temperaturę podłogi.</td>
              </tr>
              <tr>
                <td data-label="Rozstaw"><strong>25 cm</strong></td>
                <td data-label="Bez zapasu">4,00 m/m²</td>
                <td data-label="Z łukami +5%">4,20 m/m²</td>
                <td data-label="Na 12 m²">50,4 m</td>
                <td data-label="Uwaga">Rozwiązanie do wybranych stref o małym obciążeniu; nie jest standardem dla każdego pokoju.</td>
              </tr>
            </tbody>
          </table>
        </div>

        <div class="rk-pex-chart" role="img" aria-label="Wykres geometrycznego zużycia rury na metr kwadratowy przy rozstawie 10, 12,5, 15, 20 i 25 centymetrów">
          <h3>Wykres: rozstaw a liczba metrów rury na 1 m²</h3>
          <p class="rk-pex-chart-sub">Wartość geometryczna bez dobiegów do rozdzielacza i bez dodatkowego współczynnika na łuki.</p>
          <div class="rk-pex-bars">
            <div class="rk-pex-bar-row"><span class="rk-pex-bar-label">10 cm</span><div class="rk-pex-bar-track"><div class="rk-pex-bar-fill" style="width:100%"></div></div><span class="rk-pex-bar-value">10,00 m/m²</span></div>
            <div class="rk-pex-bar-row"><span class="rk-pex-bar-label">12,5 cm</span><div class="rk-pex-bar-track"><div class="rk-pex-bar-fill" style="width:80%"></div></div><span class="rk-pex-bar-value">8,00 m/m²</span></div>
            <div class="rk-pex-bar-row"><span class="rk-pex-bar-label">15 cm</span><div class="rk-pex-bar-track"><div class="rk-pex-bar-fill" style="width:66.7%"></div></div><span class="rk-pex-bar-value">6,67 m/m²</span></div>
            <div class="rk-pex-bar-row"><span class="rk-pex-bar-label">20 cm</span><div class="rk-pex-bar-track"><div class="rk-pex-bar-fill" style="width:50%"></div></div><span class="rk-pex-bar-value">5,00 m/m²</span></div>
            <div class="rk-pex-bar-row"><span class="rk-pex-bar-label">25 cm</span><div class="rk-pex-bar-track"><div class="rk-pex-bar-fill" style="width:40%"></div></div><span class="rk-pex-bar-value">4,00 m/m²</span></div>
          </div>
        </div>

        <h3>Przykład: pomieszczenie 24 m², rura co 15 cm</h3>
        <p>Przyjmijmy 24 m² aktywnej powierzchni, rozstaw 0,15 m, współczynnik k = 1,05 i łącznie 12 m odcinków dobiegowych. Otrzymujemy:</p>

        <div class="rk-pex-formula">
          <span class="rk-pex-formula-label">Obliczenie przykładowe</span>
          <div class="rk-pex-equation">L = (24 / 0,15) · 1,05 + 12 = 180 m
            <small>Jedna pętla o długości 180 m byłaby hydraulicznie nieuzasadniona. Pomieszczenie należy podzielić przykładowo na dwie zbliżone pętle po około 90 m, a następnie sprawdzić przepływ i opór każdej z nich.</small>
          </div>
        </div>

        <div class="rk-pex-warning">
          <p><strong>Nie dodawaj automatycznie 10% do całego budynku i nie dziel wyniku przez 100.</strong> Dobiegi dla każdej pętli są różne, a podział pomieszczeń musi uwzględniać dylatacje, strefy brzegowe, granice obwodów i położenie rozdzielacza. Dokładny kalkulator i rozwinięcie metody znajdziesz w artykule <a href="https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/">ile rury na m² ogrzewania podłogowego</a>.</p>
        </div>

        <p>Rozstaw 10 lub 15 cm powinien wynikać z obliczeń, dlatego warto również przeczytać: <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstaw rur w wodnym ogrzewaniu podłogowym</a>.</p>
      </section>

      <section class="rk-pex-section" id="rk-pex-petla" aria-labelledby="rk-pex-s6">
        <div class="rk-pex-section-head">
          <div class="rk-pex-section-no">6</div>
          <div>
            <h2 id="rk-pex-s6">Maksymalna długość pętli rury PEX 16×2 mm</h2>
            <p>Zakres 80–100 m jest użyteczną praktyką projektową, lecz nie uniwersalną stałą zapisaną dla każdej instalacji.</p>
          </div>
        </div>

        <p>Dopuszczalna długość pętli zależy od wymaganej mocy, projektowego spadku temperatury, przepływu, średnicy wewnętrznej, temperatury i rodzaju czynnika, oporów rozdzielacza, zaworów oraz dostępnej wysokości podnoszenia pompy. Dwie pętle po 90 m mogą mieć zupełnie inne opory, jeśli jedna przenosi 400 W, a druga 900 W.</p>

        <div class="rk-pex-formula">
          <span class="rk-pex-formula-label">Strata ciśnienia w prostym przewodzie – Darcy-Weisbach</span>
          <div class="rk-pex-equation">Δp = λ · (L / d<sub>i</sub>) · (ρ · v² / 2)
            <small>λ – współczynnik tarcia zależny od liczby Reynoldsa i chropowatości, L – długość rury, d<sub>i</sub> – średnica wewnętrzna, ρ – gęstość czynnika, v – średnia prędkość przepływu. Do wyniku trzeba dodać opory miejscowe i armaturę.</small>
          </div>
        </div>

        <div class="rk-pex-chart">
          <h3>Wykres: orientacyjna jednostkowa strata ciśnienia</h3>
          <p class="rk-pex-chart-sub">Model Darcy-Weisbacha dla wody o temperaturze około 35°C, chropowatości bezwzględnej przyjętej na poziomie 0,007 mm oraz średnic wewnętrznych 12 i 16 mm. Dla przepływu laminarnego zastosowano λ = 64/Re, a dla turbulentnego przybliżenie Haalanda; obszar przejściowy ma charakter orientacyjny. Wykres pokazuje skalę różnicy i nie zastępuje tabel technicznych konkretnej rury.</p>

          <svg viewBox="0 0 660 340" role="img" aria-labelledby="rk-pex-chart-title rk-pex-chart-desc">
            <title id="rk-pex-chart-title">Strata ciśnienia w rurze 16×2 i 20×2 w zależności od przepływu</title>
            <desc id="rk-pex-chart-desc">Dla przepływów od 60 do 180 litrów na godzinę rura 16×2 ma wyższą jednostkową stratę ciśnienia niż rura 20×2.</desc>
            <rect x="0" y="0" width="660" height="340" rx="14" fill="#ffffff"></rect>
            <g stroke="#dce8ee" stroke-width="1">
              <line x1="70" y1="40" x2="600" y2="40"></line>
              <line x1="70" y1="113.3" x2="600" y2="113.3"></line>
              <line x1="70" y1="186.7" x2="600" y2="186.7"></line>
              <line x1="70" y1="260" x2="600" y2="260"></line>
              <line x1="70" y1="40" x2="70" y2="260"></line>
              <line x1="200" y1="40" x2="200" y2="260"></line>
              <line x1="330" y1="40" x2="330" y2="260"></line>
              <line x1="460" y1="40" x2="460" y2="260"></line>
              <line x1="590" y1="40" x2="590" y2="260"></line>
            </g>
            <g fill="#687986" font-family="Inter, sans-serif" font-size="12">
              <text x="24" y="44">0,30</text>
              <text x="24" y="117">0,20</text>
              <text x="24" y="191">0,10</text>
              <text x="36" y="264">0</text>
              <text x="61" y="286">60</text>
              <text x="190" y="286">90</text>
              <text x="316" y="286">120</text>
              <text x="446" y="286">150</text>
              <text x="576" y="286">180</text>
              <text x="255" y="316">przepływ [l/h]</text>
              <text transform="rotate(-90 14 195)" x="14" y="195">Δp [kPa/m]</text>
            </g>
            <path d="M70 228.5 L200 197.7 L330 158.8 L460 111.1 L590 56.1" fill="none" stroke="#e33d35" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"></path>
            <path d="M70 254.9 L200 243.9 L330 233.6 L460 221.9 L590 207.9" fill="none" stroke="#078fbe" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"></path>
            <g fill="#ffffff" stroke-width="4">
              <circle cx="70" cy="228.5" r="6" stroke="#e33d35"></circle><circle cx="200" cy="197.7" r="6" stroke="#e33d35"></circle><circle cx="330" cy="158.8" r="6" stroke="#e33d35"></circle><circle cx="460" cy="111.1" r="6" stroke="#e33d35"></circle><circle cx="590" cy="56.1" r="6" stroke="#e33d35"></circle>
              <circle cx="70" cy="254.9" r="6" stroke="#078fbe"></circle><circle cx="200" cy="243.9" r="6" stroke="#078fbe"></circle><circle cx="330" cy="233.6" r="6" stroke="#078fbe"></circle><circle cx="460" cy="221.9" r="6" stroke="#078fbe"></circle><circle cx="590" cy="207.9" r="6" stroke="#078fbe"></circle>
            </g>
          </svg>

          <div class="rk-pex-chart-legend" aria-hidden="true">
            <span class="rk-pex-legend-item"><span class="rk-pex-legend-line" style="background:#e33d35"></span>rura 16×2,0 mm – d<sub>i</sub> = 12 mm</span>
            <span class="rk-pex-legend-item"><span class="rk-pex-legend-line" style="background:#078fbe"></span>rura 20×2,0 mm – d<sub>i</sub> = 16 mm</span>
          </div>
        </div>

        <div class="rk-pex-table-wrap">
          <span class="rk-pex-table-title">Dane dostępne także bez odczytywania wykresu</span>
          <table>
            <thead>
              <tr>
                <th>Przepływ</th>
                <th>16×2,0 mm</th>
                <th>20×2,0 mm</th>
                <th>Strata na 80 m – 16×2</th>
                <th>Strata na 80 m – 20×2</th>
              </tr>
            </thead>
            <tbody>
              <tr><td data-label="Przepływ"><strong>60 l/h</strong></td><td data-label="16×2">0,043 kPa/m</td><td data-label="20×2">0,007 kPa/m</td><td data-label="80 m – 16×2">3,4 kPa</td><td data-label="80 m – 20×2">0,6 kPa</td></tr>
              <tr><td data-label="Przepływ"><strong>90 l/h</strong></td><td data-label="16×2">0,085 kPa/m</td><td data-label="20×2">0,022 kPa/m</td><td data-label="80 m – 16×2">6,8 kPa</td><td data-label="80 m – 20×2">1,8 kPa</td></tr>
              <tr><td data-label="Przepływ"><strong>120 l/h</strong></td><td data-label="16×2">0,138 kPa/m</td><td data-label="20×2">0,036 kPa/m</td><td data-label="80 m – 16×2">11,0 kPa</td><td data-label="80 m – 20×2">2,9 kPa</td></tr>
              <tr><td data-label="Przepływ"><strong>150 l/h</strong></td><td data-label="16×2">0,203 kPa/m</td><td data-label="20×2">0,052 kPa/m</td><td data-label="80 m – 16×2">16,2 kPa</td><td data-label="80 m – 20×2">4,2 kPa</td></tr>
              <tr><td data-label="Przepływ"><strong>180 l/h</strong></td><td data-label="16×2">0,278 kPa/m</td><td data-label="20×2">0,071 kPa/m</td><td data-label="80 m – 16×2">22,2 kPa</td><td data-label="80 m – 20×2">5,7 kPa</td></tr>
            </tbody>
          </table>
        </div>

        <p>Wartości obejmują jedynie prosty odcinek rury. Projekt musi doliczyć rozdzielacz, rotametr, zawory, łuki i przewody zasilające rozdzielacz. Dla mieszaniny wody z glikolem lepkość będzie większa, więc straty wzrosną.</p>

        <div class="rk-pex-warning">
          <p><strong>Nie istnieje jedna „normowa maksymalna długość” dla każdej rury 16 mm.</strong> Zakres 80–100 m jest praktycznym punktem kontrolnym, ale prawidłowy limit ustala obliczenie hydrauliczne. Więcej przykładów zawiera poradnik <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">maksymalna długość pętli ogrzewania podłogowego</a>.</p>
        </div>
      </section>

      <section class="rk-pex-section" id="rk-pex-temperatura" aria-labelledby="rk-pex-s7">
        <div class="rk-pex-section-head">
          <div class="rk-pex-section-no">7</div>
          <div>
            <h2 id="rk-pex-s7">Temperatura pracy rury PEX – dlaczego 95°C może wprowadzać w błąd?</h2>
            <p>Temperatura awaryjna lub maksymalna nie jest zalecaną temperaturą zasilania podłogówki.</p>
          </div>
        </div>

        <p>Ogrzewanie podłogowe jest systemem niskotemperaturowym. W dobrze zaprojektowanych budynkach temperatura zasilania często mieści się w przedziale około 28–40°C, zależnie od obciążenia cieplnego, rozstawu rur, oporu warstw podłogowych oraz temperatury obliczeniowej na zewnątrz. Jeżeli na rurze widzisz 70°C, 95°C albo 100°C, nie oznacza to, że posadzka powinna pracować przy takiej temperaturze.</p>

        <h3>Klasa 4 to profil obciążenia w czasie, a nie jedna temperatura</h3>
        <p>Klasy zastosowania tworzyw opisują kombinację temperatur projektowych, maksymalnych i awaryjnych wraz z czasem oddziaływania. Ocena systemu na wieloletni okres nie jest równoznaczna z pozwoleniem na stałą pracę przy wartości awaryjnej. Ciśnienie dopuszczalne również trzeba czytać w powiązaniu z klasą, nie jako niezależny parametr.</p>

        <div class="rk-pex-table-wrap">
          <span class="rk-pex-table-title">Trzy różne temperatury, których nie należy mylić</span>
          <table>
            <thead>
              <tr>
                <th>Temperatura</th>
                <th>Co opisuje</th>
                <th>Jak ją interpretować</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td data-label="Temperatura"><strong>Zasilania w projekcie</strong></td>
                <td data-label="Opis">Temperaturę wody dopływającej do pętli w określonych warunkach obliczeniowych.</td>
                <td data-label="Interpretacja">Wynika z mocy podłogi, rozstawu, warstw i źródła ciepła. W podłogówce zwykle jest znacznie niższa od granic materiału.</td>
              </tr>
              <tr>
                <td data-label="Temperatura"><strong>Maksymalna w klasie</strong></td>
                <td data-label="Opis">Podwyższony poziom przewidziany w profilu eksploatacyjnym przez ograniczony czas.</td>
                <td data-label="Interpretacja">Nie jest wartością do ustawienia na stałe na regulatorze.</td>
              </tr>
              <tr>
                <td data-label="Temperatura"><strong>Awaryjna</strong></td>
                <td data-label="Opis">Krótkotrwały warunek nieprawidłowej pracy przewidziany w systemie klasyfikacji.</td>
                <td data-label="Interpretacja">Nie służy do projektowania mocy i nie stanowi normalnego punktu pracy.</td>
              </tr>
            </tbody>
          </table>
        </div>

        <h3>Rozszerzalność cieplna PE-X</h3>
        <div class="rk-pex-formula">
          <span class="rk-pex-formula-label">Wydłużenie swobodnego odcinka</span>
          <div class="rk-pex-equation">ΔL = α · L · ΔT
            <small>α – współczynnik liniowej rozszerzalności cieplnej z dokumentacji rury, L – długość swobodnego odcinka, ΔT – zmiana temperatury. Dla jednorodnego PE-X α jest wielokrotnie większe niż dla przewodu z warstwą aluminium.</small>
          </div>
        </div>

        <p>W pętli zatopionej w jastrychu wydłużenie nie zachodzi tak jak w całkowicie swobodnym prostym odcinku – przewód jest prowadzony łukami i współpracuje z warstwami podłogi. Problem jest bardziej widoczny na odkrytych podejściach, gdzie trzeba zachować właściwe mocowanie oraz konstrukcyjną możliwość kompensacji.</p>

        <div class="rk-pex-note">
          <p><strong>Wysoka odporność temperaturowa rury jest rezerwą bezpieczeństwa, a nie argumentem za wysoką temperaturą zasilania.</strong> Dobrze zaprojektowany układ uzyskuje wymaganą moc przy możliwie niskiej temperaturze wody i z zachowaniem dopuszczalnej temperatury powierzchni podłogi.</p>
        </div>
      </section>

      <section class="rk-pex-section" id="rk-pex-evoh" aria-labelledby="rk-pex-s8">
        <div class="rk-pex-section-head">
          <div class="rk-pex-section-no">8</div>
          <div>
            <h2 id="rk-pex-s8">Rura PEX z barierą EVOH – po co chronić instalację przed tlenem?</h2>
            <p>Tworzywo nie rdzewieje, ale tlen przenikający do wody może zaszkodzić metalowym elementom układu.</p>
          </div>
        </div>

        <p>EVOH jest warstwą o bardzo małej przepuszczalności tlenu. Jej zadaniem nie jest wzmacnianie rury ani zwiększanie jej odporności na ciśnienie, lecz ograniczenie dyfuzji tlenu przez ściankę przewodu. W zamkniętej instalacji ma to znaczenie dla ochrony stalowych korpusów, wymienników, pomp, zaworów oraz innych elementów podatnych na korozję.</p>

        <p>Aktualna DIN 4726:2024 dotyczy przewodów z tworzyw i rur wielowarstwowych przeznaczonych do ogrzewania płaszczyznowego oraz podłączeń grzejników, w tym wymagań wobec warstwy ograniczającej dyfuzję tlenu. Dlatego bezpieczniejsza jest deklarowana zgodność z odpowiednim dokumentem niż samo hasło „bariera EVOH”.</p>

        <div class="rk-pex-card-grid">
          <div class="rk-pex-card">
            <span class="rk-pex-card-tag">Bariera zewnętrzna</span>
            <h4>Wymaga ochrony przed otarciem</h4>
            <p>Jeśli EVOH znajduje się na zewnętrznej powierzchni, uszkodzenie podczas transportu i układania może przerwać ciągłość warstwy.</p>
          </div>
          <div class="rk-pex-card">
            <span class="rk-pex-card-tag">Bariera chroniona</span>
            <h4>Warstwa schowana w konstrukcji</h4>
            <p>Dodatkowa warstwa polimeru może chronić EVOH mechanicznie. Trzeba jednak nadal sprawdzić całą budowę rury i jej dokumentację.</p>
          </div>
          <div class="rk-pex-card">
            <span class="rk-pex-card-tag">Warstwa aluminium</span>
            <h4>Inny typ przewodu</h4>
            <p>W rurze wielowarstwowej aluminium ogranicza dyfuzję i rozszerzalność, ale wprowadza inne zasady gięcia, kalibracji i łączenia.</p>
          </div>
        </div>

        <div class="rk-pex-warning">
          <p><strong>Stare twierdzenie, że „EN ISO 15875 dopuszcza 0,5 g/m³ na dobę”, jest niewłaściwym uproszczeniem.</strong> ISO 15875 opisuje systemy PE-X i dopuszcza przewody z warstwą barierową lub bez niej, natomiast wymagania wobec dyfuzji tlenu dla zastosowań grzewczych trzeba weryfikować w odpowiedniej normie oraz dokumentacji konkretnej rury.</p>
        </div>

        <h3>Co jeszcze ogranicza korozję?</h3>
        <p>Bariera tlenowa nie zastępuje prawidłowego napełnienia, odpowietrzenia i uzdatnienia wody. Instalacja powinna być szczelna, pozbawiona niepotrzebnych częstych dolewek i wykonana z materiałów zgodnych ze sobą chemicznie. Każde uzupełnienie świeżej wody wprowadza nową porcję tlenu i składników mineralnych.</p>
      </section>

      <section class="rk-pex-section" id="rk-pex-montaz" aria-labelledby="rk-pex-s9">
        <div class="rk-pex-section-head">
          <div class="rk-pex-section-no">9</div>
          <div>
            <h2 id="rk-pex-s9">Montaż rury PEX – błędy, które zostają pod wylewką</h2>
            <p>Najdroższa awaria nie musi wynikać ze słabego materiału. Częściej zaczyna się od niewłaściwego obchodzenia z rurą.</p>
          </div>
        </div>

        <div class="rk-pex-check-grid">
          <div class="rk-pex-check">
            <div class="rk-pex-check-no" aria-hidden="true">01</div>
            <div><h4>Transport i przechowywanie</h4><p>Chronić przed promieniowaniem UV, zabrudzeniem, ostrymi krawędziami oraz zgniataniem zwoju. Końce przewodu zabezpieczyć przed pyłem i wodą budowlaną.</p></div>
          </div>
          <div class="rk-pex-check">
            <div class="rk-pex-check-no" aria-hidden="true">02</div>
            <div><h4>Rozwijanie bez skręcania</h4><p>Rurę odwijać ze stabilnego rozwijaka. Zrzucanie zwoju na podłogę i wyciąganie przewodu bokiem powoduje skręcenie oraz utrudnia zachowanie rozstawu.</p></div>
          </div>
          <div class="rk-pex-check">
            <div class="rk-pex-check-no" aria-hidden="true">03</div>
            <div><h4>Promień gięcia</h4><p>Stosować wartość podaną dla konkretnej rury i temperatury montażu. Nie ma jednego bezpiecznego promienia dla wszystkich PE-Xa, PE-Xb i rur wielowarstwowych.</p></div>
          </div>
          <div class="rk-pex-check">
            <div class="rk-pex-check-no" aria-hidden="true">04</div>
            <div><h4>Brak planowanych złączek</h4><p>Każdą pętlę prowadzić w jednym odcinku. Jeżeli dojdzie do uszkodzenia, sposób naprawy musi wynikać z dokumentacji systemu i zostać dokładnie oznaczony.</p></div>
          </div>
          <div class="rk-pex-check">
            <div class="rk-pex-check-no" aria-hidden="true">05</div>
            <div><h4>Ochrona przy dylatacjach</h4><p>Przejście przez szczelinę dylatacyjną wykonać w tulei ochronnej o długości i średnicy zgodnej z projektem wykonawczym.</p></div>
          </div>
          <div class="rk-pex-check">
            <div class="rk-pex-check-no" aria-hidden="true">06</div>
            <div><h4>Dokumentacja fotograficzna</h4><p>Przed jastrychem sfotografować przebieg pętli, przejścia, dobiegi i oznaczenia obwodów. Zdjęcia warto powiązać z rzutem powykonawczym.</p></div>
          </div>
        </div>

        <h3>Czy można wyprostować załamaną rurę PEX?</h3>
        <p>Nie wolno przyjmować jednej procedury dla wszystkich odmian PEX. Niektóre systemy PE-Xa dopuszczają kontrolowane odtworzenie kształtu ciepłem, ale wymagana temperatura, narzędzie i sposób chłodzenia muszą wynikać z instrukcji konkretnego systemu. W innych przypadkach uszkodzony fragment należy usunąć. Samowolne ogrzewanie opalarką może uszkodzić barierę EVOH lub strukturę wielowarstwową.</p>

        <div class="rk-pex-truth">
          <p><strong>Zasada odbiorowa:</strong> przewężenie pozostawione w pętli nie jest błędem estetycznym. Zmniejsza pole przepływu, lokalnie zwiększa prędkość i stratę ciśnienia, a jednocześnie oznacza mechaniczne uszkodzenie przewodu. Taki fragment trzeba ocenić przed wykonaniem jastrychu.</p>
        </div>

        <h3>Próba szczelności przed wylewką</h3>
        <p>Po ułożeniu i podłączeniu pętli instalację należy napełnić, odpowietrzyć i poddać próbie zgodnej z projektem, wymaganiami systemu oraz EN 1264-4. Protokół powinien zawierać co najmniej medium próbne, ciśnienie, czas, temperaturę otoczenia, wyniki kontroli i podpis osoby wykonującej próbę. Podczas wykonywania jastrychu przewody powinny pozostawać pod wymaganym ciśnieniem próbnym lub roboczym określonym w procedurze.</p>

        <p>Pełną kolejność czynności opisuje poradnik <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próba szczelności ogrzewania podłogowego</a>. Warto również sprawdzić zestawienie <a href="https://projekt-ogrzewania.pl/jakie-materialy-sa-potrzebne-do-instalacji-ogrzewania-podlogowego/">jakie materiały są potrzebne do instalacji ogrzewania podłogowego</a>.</p>

        <div class="rk-pex-cta">
          <div>
            <h3>Rura jest tylko jednym elementem obliczanego systemu</h3>
            <p>Projekt określa obciążenia pomieszczeń, rozstawy, przebieg i długości pętli, przepływy, opory hydrauliczne oraz nastawy rozdzielacza. Dzięki temu zakup materiału wynika z dokumentacji, a nie z przybliżenia dla całego domu.</p>
          </div>
          <div class="rk-pex-cta-actions">
            <a class="rk-pex-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
            <a class="rk-pex-button" href="https://projekt-ogrzewania.pl/darmowy-projekt-ogrzewania-podlogowego/" style="background:linear-gradient(145deg,#078fbe,#28c9da)">Sprawdź projekt dostępny bezpłatnie</a>
            <small>Oba odnośniki prowadzą do usług Projekt-Ogrzewania.pl, serwisu należącego do autora artykułu.</small>
          </div>
        </div>
      </section>

      <section class="rk-pex-section" id="rk-pex-porownanie" aria-labelledby="rk-pex-s10">
        <div class="rk-pex-section-head">
          <div class="rk-pex-section-no">10</div>
          <div>
            <h2 id="rk-pex-s10">PEX czy PE-RT do ogrzewania podłogowego?</h2>
            <p>Oba materiały mogą stworzyć trwały system. Nie da się uczciwie przyznać zwycięstwa bez porównania konkretnych deklaracji.</p>
          </div>
        </div>

        <div class="rk-pex-table-wrap">
          <span class="rk-pex-table-title">Porównanie materiałów bez marketingowego werdyktu</span>
          <table>
            <thead>
              <tr>
                <th>Kryterium</th>
                <th>PE-X</th>
                <th>PE-RT</th>
                <th>Wniosek projektowy</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td data-label="Kryterium"><strong>Budowa materiału</strong></td>
                <td data-label="PE-X">Polietylen usieciowany chemicznie lub fizycznie.</td>
                <td data-label="PE-RT">Polietylen o podwyższonej odporności termicznej bez procesu sieciowania.</td>
                <td data-label="Wniosek">Inna technologia nie oznacza automatycznie lepszego lub gorszego zastosowania.</td>
              </tr>
              <tr>
                <td data-label="Kryterium"><strong>Elastyczność</strong></td>
                <td data-label="PE-X">Zależy od odmiany, receptury, warstw i temperatury montażu.</td>
                <td data-label="PE-RT">Często łatwy do układania, ale parametr także zależy od produktu.</td>
                <td data-label="Wniosek">Porównać minimalny promień gięcia i zachowanie zwoju w warunkach budowy.</td>
              </tr>
              <tr>
                <td data-label="Kryterium"><strong>Naprawa załamania</strong></td>
                <td data-label="PE-X">Dla części systemów PE-Xa możliwa procedura cieplna, jeżeli dopuszcza ją dokumentacja.</td>
                <td data-label="PE-RT">Zwykle uszkodzony fragment ocenia się według instrukcji systemu; nie stosuje się automatycznie procedury PE-Xa.</td>
                <td data-label="Wniosek">Nigdy nie naprawiać „z pamięci” bez instrukcji konkretnego przewodu.</td>
              </tr>
              <tr>
                <td data-label="Kryterium"><strong>Bariera tlenowa</strong></td>
                <td data-label="PE-X">Może występować EVOH albo warstwa aluminium w rurze wielowarstwowej.</td>
                <td data-label="PE-RT">Może występować EVOH albo aluminium w konstrukcji wielowarstwowej.</td>
                <td data-label="Wniosek">Liczy się deklarowana skuteczność bariery, nie nazwa polimeru bazowego.</td>
              </tr>
              <tr>
                <td data-label="Kryterium"><strong>Trwałość</strong></td>
                <td data-label="PE-X">Zależy od klasy, ciśnienia, temperatury, jakości wykonania i eksploatacji.</td>
                <td data-label="PE-RT">Zależy od tych samych warunków oraz klasy materiału i konstrukcji rury.</td>
                <td data-label="Wniosek">Nie ma podstaw, aby obiecywać przewagę o „20–30 lat” bez danych dla konkretnych systemów.</td>
              </tr>
            </tbody>
          </table>
        </div>

        <p>Jeśli dwa systemy mają właściwą klasę zastosowania, potwierdzoną barierę tlenową, odpowiednie parametry ciśnieniowe i zgodne elementy połączeniowe, o wyborze mogą zdecydować hydraulika, łatwość montażu, dostępność kompletnego systemu oraz warunki gwarancji. Szczegółowy materiał porównawczy: <a href="https://projekt-ogrzewania.pl/rura-pert-do-ogrzewania-podlogowego/">rura PE-RT do ogrzewania podłogowego</a>.</p>
      </section>

      <section class="rk-pex-section" id="rk-pex-koszty" aria-labelledby="rk-pex-s11">
        <div class="rk-pex-section-head">
          <div class="rk-pex-section-no">11</div>
          <div>
            <h2 id="rk-pex-s11">Czy droższa rura PEX zwraca się na rachunkach?</h2>
            <p>Sama zmiana materiału przewodu nie tworzy oszczędności energii, które można uczciwie przeliczyć na okres zwrotu.</p>
          </div>
        </div>

        <p>Koszt ogrzewania zależy przede wszystkim od strat ciepła budynku, sprawności źródła, temperatury zasilania, regulacji, bilansu hydraulicznego i zachowania użytkowników. Rura ma zapewnić bezpieczny transport czynnika i trwałość instalacji. Nie można przypisać jej samodzielnie „15–20% oszczędności” ani zwrotu po 5–7 latach w porównaniu z innym materiałem.</p>

        <div class="rk-pex-card-grid">
          <div class="rk-pex-card">
            <span class="rk-pex-card-tag">Koszt zakupu</span>
            <h4>Cena za metr to tylko początek</h4>
            <p>Znaczenie mają również złączki, rozdzielacze, liczba pętli, odpady ze zwojów, narzędzia i dostępność elementów całego systemu.</p>
          </div>
          <div class="rk-pex-card">
            <span class="rk-pex-card-tag">Koszt pracy</span>
            <h4>Sztywność wpływa na montaż</h4>
            <p>Przewód trudny do rozwijania może zwiększyć czas wykonania, liczbę mocowań i ryzyko załamania. Nie da się jednak przyjąć jednej wartości procentowej dla każdego domu.</p>
          </div>
          <div class="rk-pex-card">
            <span class="rk-pex-card-tag">Koszt ryzyka</span>
            <h4>Dokumentacja ma wartość</h4>
            <p>Identyfikowalność partii, zgodny system i prawidłowy protokół próby są ważniejsze niż niewielka różnica ceny przewodu ukrywanego pod posadzką.</p>
          </div>
        </div>

        <div class="rk-pex-truth">
          <p><strong>Brutalnie uczciwy wniosek:</strong> nie kupuj najdroższej rury dlatego, że reklama obiecuje oszczędności. Nie kupuj też najtańszej, jeżeli brakuje jasnej deklaracji zastosowania, bariery tlenowej, identyfikowalności albo kompatybilnego systemu. Kup parametry, dokumentację i prawidłowy projekt.</p>
        </div>

        <h3>Lista kontrolna przed zakupem rury</h3>
        <div class="rk-pex-check-grid" id="rk-pex-selection-checklist">
          <div class="rk-pex-check"><div class="rk-pex-check-no" aria-hidden="true">1</div><div><h4>Projekt</h4><p>Znasz średnicę, rozstawy, długości pętli, liczbę obwodów i przepływy.</p></div></div>
          <div class="rk-pex-check"><div class="rk-pex-check-no" aria-hidden="true">2</div><div><h4>Przeznaczenie</h4><p>Dokumentacja obejmuje ogrzewanie płaszczyznowe i właściwą klasę zastosowania.</p></div></div>
          <div class="rk-pex-check"><div class="rk-pex-check-no" aria-hidden="true">3</div><div><h4>Bariera</h4><p>Producent deklaruje ochronę przed dyfuzją tlenu według odpowiednich wymagań.</p></div></div>
          <div class="rk-pex-check"><div class="rk-pex-check-no" aria-hidden="true">4</div><div><h4>System</h4><p>Rura, złączki, tuleje i narzędzia są przewidziane do wspólnego zastosowania.</p></div></div>
          <div class="rk-pex-check"><div class="rk-pex-check-no" aria-hidden="true">5</div><div><h4>Nadruk</h4><p>Na przewodzie znajduje się materiał, wymiar, norma, partia, data i metraż.</p></div></div>
          <div class="rk-pex-check"><div class="rk-pex-check-no" aria-hidden="true">6</div><div><h4>Logistyka</h4><p>Długości zwojów pozwalają wykonać pętle bez złączek i nadmiernych odpadów.</p></div></div>
        </div>
      </section>

      <section class="rk-pex-section" id="rk-pex-faq" aria-labelledby="rk-pex-s12">
        <div class="rk-pex-section-head">
          <div class="rk-pex-section-no">12</div>
          <div>
            <h2 id="rk-pex-s12">FAQ – rura PEX do ogrzewania podłogowego</h2>
            <p>Krótkie odpowiedzi na pytania tworzące najważniejsze frazy długiego ogona.</p>
          </div>
        </div>

        <div class="rk-pex-faq">
          <details id="rk-pex-faq-1">
            <summary>Jaka rura PEX do ogrzewania podłogowego jest najczęściej stosowana?</summary>
            <div class="rk-pex-faq-answer"><p>W domach jednorodzinnych najczęściej stosuje się PE-X 16×2,0 mm przeznaczoną do klasy zastosowania 4, z potwierdzoną barierą przeciw dyfuzji tlenu. Ostateczny wybór powinien wynikać z obliczeń długości, przepływu i oporu pętli oraz ze zgodności rury ze złączkami danego systemu.</p></div>
          </details>

          <details id="rk-pex-faq-2">
            <summary>Czym różni się PEX-a od PEX-b i PEX-c?</summary>
            <div class="rk-pex-faq-answer"><p>Oznaczenia opisują metodę sieciowania polietylenu: PE-Xa jest sieciowany metodą nadtlenkową, PE-Xb metodą silanową, a PE-Xc promieniowaniem. Różnią się zachowaniem montażowym, lecz litera nie stanowi samodzielnego rankingu trwałości ani jakości kompletnego systemu.</p></div>
          </details>

          <details id="rk-pex-faq-3">
            <summary>Czy PEX-a jest zawsze najlepszy do podłogówki?</summary>
            <div class="rk-pex-faq-answer"><p>Nie. PE-Xa często jest bardzo elastyczny i w części systemów ma dopuszczoną procedurę odtwarzania kształtu po załamaniu, ale dobry PE-Xb lub PE-Xc również może spełniać wymagania ogrzewania podłogowego. Należy porównywać klasę zastosowania, ciśnienie, konstrukcję, barierę tlenową, dokumenty i cały system połączeń.</p></div>
          </details>

          <details id="rk-pex-faq-4">
            <summary>Rura PEX 16×2 czy 20×2 mm – którą wybrać?</summary>
            <div class="rk-pex-faq-answer"><p>16×2,0 mm jest najczęstszym wyborem dla domowych pętli. Rura 20×2,0 mm ma większą średnicę wewnętrzną i znacznie mniejsze opory przy tym samym przepływie, ale wymaga większego promienia gięcia i odpowiedniego systemu. Doboru nie wykonuje się wyłącznie na podstawie powierzchni pomieszczenia.</p></div>
          </details>

          <details id="rk-pex-faq-5">
            <summary>Ile metrów rury PEX potrzeba na 1 m² podłogówki?</summary>
            <div class="rk-pex-faq-answer"><p>Geometrycznie około 10 m/m² przy rozstawie 10 cm, 6,67 m/m² przy 15 cm, 5 m/m² przy 20 cm i 4 m/m² przy 25 cm. Do wyniku trzeba doliczyć łuki oraz pełne odcinki dobiegowe od rozdzielacza i podzielić instalację na hydraulicznie uzasadnione pętle.</p></div>
          </details>

          <details id="rk-pex-faq-6">
            <summary>Jaka jest maksymalna długość pętli PEX 16×2 mm?</summary>
            <div class="rk-pex-faq-answer"><p>Około 80–100 m jest popularnym zakresem praktycznym, lecz nie uniwersalnym limitem. Maksymalną długość wyznacza wymagany przepływ, dopuszczalna strata ciśnienia, moc pętli, parametry czynnika, opory armatury i możliwości pompy oraz regulacji.</p></div>
          </details>

          <details id="rk-pex-faq-7">
            <summary>Czy rura PEX może stale pracować przy 95°C?</summary>
            <div class="rk-pex-faq-answer"><p>Nie należy tak interpretować pojedynczej temperatury z etykiety. Warunki pracy rur z tworzyw są opisane klasą zastosowania, profilem temperatur w czasie i ciśnieniem projektowym. Ogrzewanie podłogowe normalnie pracuje przy znacznie niższej temperaturze zasilania.</p></div>
          </details>

          <details id="rk-pex-faq-8">
            <summary>Czy rura PEX do podłogówki musi mieć barierę EVOH?</summary>
            <div class="rk-pex-faq-answer"><p>W zamkniętych instalacjach grzewczych należy stosować przewód z odpowiednią barierą przeciw dyfuzji tlenu albo inną konstrukcją spełniającą wymagania systemu. EVOH ogranicza przenikanie tlenu, chroniąc metalowe elementy instalacji przed przyspieszoną korozją.</p></div>
          </details>

          <details id="rk-pex-faq-9">
            <summary>Czy PEX jest trwalszy od PE-RT o 20–30 lat?</summary>
            <div class="rk-pex-faq-answer"><p>Nie można podać takiej uniwersalnej przewagi. Trwałość obu systemów zależy od klasy zastosowania, ciśnienia, temperatur, stabilizacji materiału, jakości wykonania i eksploatacji. Porównywać należy deklaracje konkretnych systemów, a nie wyłącznie nazwę polimeru.</p></div>
          </details>

          <details id="rk-pex-faq-10">
            <summary>Czy PEX/Al/PEX jest tym samym co PEX z EVOH?</summary>
            <div class="rk-pex-faq-answer"><p>Nie. PEX z EVOH jest rurą z warstwą polimerową ograniczającą dyfuzję tlenu. PEX/Al/PEX jest rurą wielowarstwową z aluminium, które ogranicza również rozszerzalność i stabilizuje kształt. Oba rozwiązania wymagają złączek przewidzianych dla swojej konstrukcji.</p></div>
          </details>

          <details id="rk-pex-faq-11">
            <summary>Czy załamaną rurę PEX można podgrzać opalarką?</summary>
            <div class="rk-pex-faq-answer"><p>Tylko wtedy, gdy dokumentacja konkretnego systemu wyraźnie dopuszcza taką procedurę i określa sposób jej wykonania. Nie wolno przenosić instrukcji dla jednej rury PE-Xa na PE-Xb, PE-Xc ani na przewody wielowarstwowe, ponieważ można uszkodzić strukturę lub barierę tlenową.</p></div>
          </details>

          <details id="rk-pex-faq-12">
            <summary>Czy można łączyć rurę PEX pod wylewką?</summary>
            <div class="rk-pex-faq-answer"><p>Pętle należy projektować i wykonywać z jednego odcinka bez planowanych połączeń w jastrychu. Jeżeli dojdzie do awaryjnej naprawy, trzeba użyć rozwiązania dopuszczonego przez system, oznaczyć miejsce, udokumentować je i wykonać ponowną próbę szczelności.</p></div>
          </details>

          <details id="rk-pex-faq-13">
            <summary>Czy rura PEX rzeczywiście wytrzyma 50 lat?</summary>
            <div class="rk-pex-faq-answer"><p>Normowa klasyfikacja opiera ocenę systemu na długim profilu eksploatacyjnym, lecz nie jest bezwarunkową gwarancją kalendarzową. Rzeczywista trwałość zależy od zgodności produktu, ciśnienia i temperatur, jakości montażu, ochrony przed tlenem, składu wody oraz braku uszkodzeń mechanicznych.</p></div>
          </details>
        </div>
      </section>

      <section class="rk-pex-section" id="rk-pex-podsumowanie" aria-labelledby="rk-pex-s13">
        <div class="rk-pex-section-head">
          <div class="rk-pex-section-no">13</div>
          <div>
            <h2 id="rk-pex-s13">Podsumowanie: parametry ważniejsze od logo i koloru</h2>
            <p>Wybór rury można sprowadzić do kilku twardych pytań kontrolnych.</p>
          </div>
        </div>

        <p><strong>Rura PEX do ogrzewania podłogowego</strong> powinna mieć wymiar wynikający z hydrauliki, deklarowaną klasę zastosowania odpowiednią dla systemu grzewczego, skuteczną barierę tlenową, czytelny nadruk produkcyjny i zgodne elementy połączeniowe. W typowym domu często będzie to 16×2,0 mm, ale powierzchnia budynku nie jest wystarczającą podstawą do doboru.</p>

        <p>Najpierw należy obliczyć zapotrzebowanie na ciepło pomieszczeń. Następnie dobiera się temperaturę zasilania, rozstaw, liczbę i przebieg pętli. Z wymaganej mocy oraz projektowego ΔT wynika przepływ, a z przepływu, średnicy i długości – strata ciśnienia. Dopiero taki ciąg obliczeń pozwala ocenić, czy wybrana rura będzie pracować poprawnie.</p>

        <div class="rk-pex-truth">
          <p><strong>Jednozdaniowy werdykt:</strong> wybierz udokumentowany system PE-X, najczęściej 16×2,0 mm z barierą tlenową i klasą 4, ale długość oraz liczbę pętli zatwierdź obliczeniem hydraulicznym – nie tabelką z opakowania.</p>
        </div>

        <div class="rk-pex-sources" aria-label="Źródła techniczne opracowania">
          <strong>Źródła i podstawa techniczna opracowania</strong>
          <ol>
            <li id="rk-pex-source-iso15875-1"><a href="https://www.iso.org/standard/79775.html" target="_blank" rel="noopener noreferrer external">ISO 15875-1:2025 – PE-X, część 1: wymagania ogólne</a>.</li>
            <li id="rk-pex-source-iso15875-2"><a href="https://www.iso.org/standard/79776.html" target="_blank" rel="noopener noreferrer external">ISO 15875-2:2025 – PE-X, część 2: wymagania dotyczące rur</a>.</li>
            <li id="rk-pex-source-iso10508"><a href="https://www.iso.org/standard/35045.html" target="_blank" rel="noopener noreferrer external">ISO 10508:2006 – klasyfikacja i projektowanie instalacji ciśnieniowych z tworzyw</a>.</li>
            <li id="rk-pex-source-din4726"><a href="https://www.dinmedia.de/en/standard/din-4726/380677149" target="_blank" rel="noopener noreferrer external">DIN 4726:2024-12 – rury do ogrzewania płaszczyznowego i wymagania bariery tlenowej</a>.</li>
            <li id="rk-pex-source-en1264-2"><a href="https://www.dinmedia.de/en/standard/din-en-1264-2/332537063" target="_blank" rel="noopener noreferrer external">DIN EN 1264-2:2021 – wyznaczanie mocy cieplnej ogrzewania podłogowego</a>.</li>
            <li id="rk-pex-source-en1264-3"><a href="https://www.dinmedia.de/en/standard/din-en-1264-3/332537135" target="_blank" rel="noopener noreferrer external">DIN EN 1264-3:2021 – wymiarowanie wodnych systemów płaszczyznowych</a>.</li>
            <li id="rk-pex-source-en1264-4"><a href="https://www.dinmedia.de/en/standard/din-en-1264-4/332536919" target="_blank" rel="noopener noreferrer external">DIN EN 1264-4:2021 – wymagania wykonawcze i instalacyjne</a>.</li>
            <li id="rk-pex-source-flow"><a href="https://ecommons.udayton.edu/cgi/viewcontent.cgi?article=1013&amp;context=cee_coursenotes" target="_blank" rel="noopener noreferrer external">University of Dayton – Head Loss in Pipes, równanie Darcy-Weisbacha</a>.</li>
            <li id="rk-pex-source-water"><a href="https://webbook.nist.gov/chemistry/fluid/" target="_blank" rel="noopener noreferrer external">NIST – właściwości termofizyczne płynów</a>.</li>
            <li id="rk-pex-source-polymer"><a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC11859537/" target="_blank" rel="noopener noreferrer external">Polymers / PubMed Central – metody sieciowania polietylenu i właściwości PE-X</a>.</li>
            <li id="rk-pex-source-ce"><a href="https://single-market-economy.ec.europa.eu/sectors/construction/construction-products-regulation-cpr/declaration-performance-and-ce-marking_en" target="_blank" rel="noopener noreferrer external">Komisja Europejska – deklaracja właściwości użytkowych i oznakowanie CE</a>.</li>
          </ol>
        </div>

        <aside class="rk-pex-author-box" aria-labelledby="rk-pex-author-title" itemprop="author" itemscope="" itemtype="https://schema.org/Person">
          <div class="rk-pex-author-head">
            <div>
              <h2 id="rk-pex-author-title">Autor opracowania</h2>
              <p>Praktyka projektowa, wiedza techniczna i język zrozumiały dla inwestora.</p>
            </div>
            <span class="rk-pex-author-badge" aria-label="Doświadczenie, eksperckość, autorytet i wiarygodność w branży HVAC">E-E-A-T • HVAC</span>
          </div>

          <div class="rk-pex-author-layout">
            <div class="rk-pex-author-profile">
              <img decoding="async" class="rk-pex-author-photo" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski – projektant instalacji sanitarnych i specjalista ogrzewania podłogowego" width="180" height="180" loading="lazy" itemprop="image">
              <h3 class="rk-pex-author-name" itemprop="name">Robert Kucharski</h3>
              <span class="rk-pex-author-role" itemprop="jobTitle">Projektant instalacji sanitarnych<br>specjalista HVAC i ogrzewania podłogowego</span>

              <div class="rk-pex-author-links" aria-label="Profile Roberta Kucharskiego">
                <a class="rk-pex-author-link" href="https://www.facebook.com/robert.kucharski.budowa.bez.sciemy" target="_blank" rel="noopener noreferrer me" itemprop="sameAs">Facebook</a>
                <a class="rk-pex-author-link" href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer me" itemprop="sameAs">LinkedIn</a>
                <a class="rk-pex-author-link" href="https://projekt-ogrzewania.pl/author/admin3399/" itemprop="url">Profil autora</a>
              </div>
            </div>

            <div class="rk-pex-author-main">
              <blockquote class="rk-pex-author-quote">
                <span class="rk-pex-quote-mark" aria-hidden="true">“</span>
                <p>Rury nie wybiera się po kolorze ani obietnicy z etykiety. Po zalaniu jej w posadzce zostają już tylko parametry materiału, hydraulika pętli i jakość wykonania – dlatego każdy metr instalacji powinien wynikać z projektu, a nie z przyzwyczajenia wykonawcy.</p>
                <footer>Robert Kucharski</footer>
              </blockquote>

              <div class="rk-pex-author-tabs" role="tablist" aria-label="Szczegółowe informacje o autorze">
                <button class="rk-pex-author-tab" id="rk-pex-author-tab-about" type="button" role="tab" aria-selected="true" aria-controls="rk-pex-author-panel-about">O autorze</button>
                <button class="rk-pex-author-tab" id="rk-pex-author-tab-experience" type="button" role="tab" aria-selected="false" aria-controls="rk-pex-author-panel-experience" tabindex="-1">Doświadczenie</button>
                <button class="rk-pex-author-tab" id="rk-pex-author-tab-portals" type="button" role="tab" aria-selected="false" aria-controls="rk-pex-author-panel-portals" tabindex="-1">Portale</button>
              </div>

              <div class="rk-pex-author-panels">
                <div class="rk-pex-author-panel" id="rk-pex-author-panel-about" role="tabpanel" aria-labelledby="rk-pex-author-tab-about" itemprop="description">
                  <p>Specjalizuję się w projektowaniu wodnych systemów ogrzewania podłogowego, obliczeniach obciążenia cieplnego oraz hydraulice instalacji. Łączę wymagania techniczne z praktycznym spojrzeniem inwestora: projekt ma być policzony, czytelny i możliwy do poprawnego wykonania.</p>
                  <p>W publikacjach wyjaśniam nie tylko, jakie rozwiązanie zastosować, lecz także z czego wynika jego dobór i jakie konsekwencje może mieć pominięcie obliczeń.</p>
                </div>

                <div class="rk-pex-author-panel" id="rk-pex-author-panel-experience" role="tabpanel" aria-labelledby="rk-pex-author-tab-experience" hidden="">
                  <div class="rk-pex-experience-grid" aria-label="Obszary doświadczenia autora">
                    <div class="rk-pex-experience-card">
                      <strong>Projektowanie instalacji</strong>
                      <span>Rozstawy i przebieg pętli, dobór średnic, przepływów, oporów oraz nastaw rozdzielaczy.</span>
                    </div>
                    <div class="rk-pex-experience-card">
                      <strong>Analizy techniczne</strong>
                      <span>Obciążenia cieplne, praca źródeł niskotemperaturowych, hydraulika i efektywność energetyczna.</span>
                    </div>
                    <div class="rk-pex-experience-card">
                      <strong>Publikacje branżowe</strong>
                      <span>Praktyczne poradniki o HVAC, budowie i remoncie przygotowywane dla inwestorów oraz wykonawców.</span>
                    </div>
                  </div>
                </div>

                <div class="rk-pex-author-panel" id="rk-pex-author-panel-portals" role="tabpanel" aria-labelledby="rk-pex-author-tab-portals" hidden="">
                  <div class="rk-pex-portal-grid" aria-label="Portale należące do Roberta Kucharskiego">
                    <a class="rk-pex-portal-card" href="https://projekt-ogrzewania.pl/">
                      <strong>Projekt-Ogrzewania.pl</strong>
                      <span>Projektowanie ogrzewania podłogowego, hydraulika instalacji i wiedza techniczna HVAC.</span>
                    </a>
                    <a class="rk-pex-portal-card" href="https://remont.biz.pl/" target="_blank" rel="noopener noreferrer">
                      <strong>Remont.biz.pl</strong>
                      <span>Budowa, modernizacja, remont oraz świadome prowadzenie inwestycji.</span>
                    </a>
                    <a class="rk-pex-portal-card" href="https://sobir.pl/" target="_blank" rel="noopener noreferrer">
                      <strong>Sobir.pl</strong>
                      <span>Budownictwo, instalacje, energooszczędność i rozwiązania dla domu.</span>
                    </a>
                  </div>
                  <p class="rk-pex-owner-note">Jestem właścicielem wszystkich trzech wymienionych serwisów. Informację tę podaję jawnie, aby czytelnik znał autorstwo, powiązania wydawnicze i kontekst linkowania.</p>
                </div>
              </div>
            </div>
          </div>
        </aside>

        <p class="rk-pex-disclaimer">Opracowanie ma charakter techniczno-edukacyjny. Przykładowe obliczenia hydrauliczne wykonano dla wskazanych założeń i nie zastępują projektu konkretnego budynku ani danych oporów podanych dla wybranego systemu rurowego. Parametry montażowe, promień gięcia, sposób naprawy i procedurę próby należy każdorazowo potwierdzić w dokumentacji zastosowanego systemu.</p>
      </section>
    </div>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#article",
      "url": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/",
      "headline": "Rura PEX do ogrzewania podłogowego.",
      "alternativeHeadline": "Rura PEX do ogrzewania podłogowego – dobór, średnica, długość pętli i obliczenia",
      "description": "Techniczny poradnik o rurach PE-X do ogrzewania podłogowego: PE-Xa, PE-Xb, PE-Xc, średnice, bariera EVOH, długość pętli, przepływ, opory i montaż.",
      "mainEntityOfPage": {
        "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#webpage"
      },
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "datePublished": "2025-03-03",
      "dateModified": "2026-08-22",
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "proficiencyLevel": "Intermediate",
      "articleSection": [
        "Ogrzewanie podłogowe",
        "Rury do ogrzewania",
        "Projektowanie instalacji",
        "Hydraulika instalacji",
        "Normy techniczne",
        "Montaż instalacji"
      ],
      "keywords": "Rura PEX do ogrzewania podłogowego, jaka rura PEX do podłogówki, PEX-a czy PEX-b, PEX 16x2 czy 20x2, ile rury PEX na m2, maksymalna długość pętli PEX 16x2, bariera EVOH, klasa 4, DIN 4726, ISO 15875",
      "about": [
        {
          "@type": "Thing",
          "name": "Rura PEX do ogrzewania podłogowego"
        },
        {
          "@type": "Thing",
          "name": "Usieciowany polietylen PE-X"
        },
        {
          "@type": "Thing",
          "name": "Wodne ogrzewanie podłogowe"
        },
        {
          "@type": "Thing",
          "name": "Hydraulika instalacji grzewczych"
        }
      ],
      "mentions": [
        {
          "@type": "DefinedTerm",
          "name": "PE-Xa",
          "description": "Polietylen sieciowany metodą nadtlenkową."
        },
        {
          "@type": "DefinedTerm",
          "name": "PE-Xb",
          "description": "Polietylen sieciowany metodą silanową."
        },
        {
          "@type": "DefinedTerm",
          "name": "PE-Xc",
          "description": "Polietylen sieciowany promieniowaniem."
        },
        {
          "@type": "DefinedTerm",
          "name": "EVOH",
          "description": "Polimerowa warstwa ograniczająca dyfuzję tlenu przez ściankę rury."
        },
        {
          "@type": "DefinedTerm",
          "name": "Klasa zastosowania 4",
          "description": "Klasa warunków pracy obejmująca ogrzewanie podłogowe i grzejniki niskotemperaturowe."
        },
        {
          "@type": "Thing",
          "name": "ISO 15875:2025"
        },
        {
          "@type": "Thing",
          "name": "ISO 10508:2006"
        },
        {
          "@type": "Thing",
          "name": "DIN 4726:2024"
        },
        {
          "@type": "Thing",
          "name": "EN 1264:2021"
        },
        {
          "@type": "Thing",
          "name": "Równanie Darcy-Weisbacha"
        }
      ],
      "citation": [
        {
          "@type": "CreativeWork",
          "name": "ISO 15875-1:2025 – Plastics piping systems – Crosslinked polyethylene – General",
          "url": "https://www.iso.org/standard/79775.html"
        },
        {
          "@type": "CreativeWork",
          "name": "ISO 15875-2:2025 – Plastics piping systems – Crosslinked polyethylene – Pipes",
          "url": "https://www.iso.org/standard/79776.html"
        },
        {
          "@type": "CreativeWork",
          "name": "ISO 10508:2006 – Guidance for classification and design",
          "url": "https://www.iso.org/standard/35045.html"
        },
        {
          "@type": "CreativeWork",
          "name": "DIN 4726:2024-12 – Warm water surface heating systems and radiator connections",
          "url": "https://www.dinmedia.de/en/standard/din-4726/380677149"
        },
        {
          "@type": "CreativeWork",
          "name": "DIN EN 1264-2:2021 – Floor heating thermal output",
          "url": "https://www.dinmedia.de/en/standard/din-en-1264-2/332537063"
        },
        {
          "@type": "CreativeWork",
          "name": "DIN EN 1264-3:2021 – Dimensioning",
          "url": "https://www.dinmedia.de/en/standard/din-en-1264-3/332537135"
        },
        {
          "@type": "CreativeWork",
          "name": "DIN EN 1264-4:2021 – Installation",
          "url": "https://www.dinmedia.de/en/standard/din-en-1264-4/332536919"
        },
        {
          "@type": "CreativeWork",
          "name": "Head Loss in Pipes – University of Dayton",
          "url": "https://ecommons.udayton.edu/cgi/viewcontent.cgi?article=1013&context=cee_coursenotes"
        },
        {
          "@type": "CreativeWork",
          "name": "Thermophysical Properties of Fluid Systems – NIST",
          "url": "https://webbook.nist.gov/chemistry/fluid/"
        },
        {
          "@type": "ScholarlyArticle",
          "name": "Changes in Heat Resistance and Mechanical Properties of Peroxide Cross-Linked Polyethylene",
          "url": "https://pmc.ncbi.nlm.nih.gov/articles/PMC11859537/"
        },
        {
          "@type": "WebPage",
          "name": "Declaration of Performance and CE marking – European Commission",
          "url": "https://single-market-economy.ec.europa.eu/sectors/construction/construction-products-regulation-cpr/declaration-performance-and-ce-marking_en"
        }
      ],
      "hasPart": [
        {
          "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-selection-checklist"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-1"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-2"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-3"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-4"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-5"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-6"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-7"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-8"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-9"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-10"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-11"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-12"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-13"
        }
      ]
    },
    {
      "@type": [
        "WebPage",
        "FAQPage"
      ],
      "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#webpage",
      "url": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/",
      "name": "Rura PEX do ogrzewania podłogowego.",
      "description": "Dobór rury PE-X do podłogówki: rodzaje, wymiary, długość pętli, przepływ, opory, bariera tlenowa, normy i montaż.",
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/#website"
      },
      "breadcrumb": {
        "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#breadcrumb"
      },
      "datePublished": "2025-03-03",
      "dateModified": "2026-08-22",
      "inLanguage": "pl-PL",
      "mainEntity": [
        {
          "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-1"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-2"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-3"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-4"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-5"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-6"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-7"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-8"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-9"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-10"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-11"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-12"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-13"
        }
      ],
      "potentialAction": {
        "@type": "ReadAction",
        "target": [
          "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/"
        ]
      }
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
        "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
        "caption": "Robert Kucharski – projektant instalacji sanitarnych i specjalista HVAC"
      },
      "jobTitle": "Projektant instalacji sanitarnych i specjalista branży budowlano-instalacyjnej",
      "description": "Projektant instalacji sanitarnych, specjalista ogrzewania podłogowego, hydrauliki instalacji, obliczeń obciążenia cieplnego i systemów HVAC. Właściciel serwisów Projekt-Ogrzewania.pl, Remont.biz.pl i Sobir.pl.",
      "worksFor": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "affiliation": [
        {
          "@id": "https://projekt-ogrzewania.pl/#website"
        },
        {
          "@id": "https://remont.biz.pl/#website"
        },
        {
          "@id": "https://sobir.pl/#website"
        }
      ],
      "knowsAbout": [
        "HVAC",
        "ogrzewanie podłogowe",
        "projektowanie instalacji sanitarnych",
        "hydraulika instalacji grzewczych",
        "obliczenia OZC",
        "rury PE-X",
        "pompy ciepła",
        "efektywność energetyczna"
      ],
      "sameAs": [
        "https://projekt-ogrzewania.pl/",
        "https://remont.biz.pl/",
        "https://sobir.pl/",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt-Ogrzewania.pl",
      "url": "https://projekt-ogrzewania.pl/",
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-ogrzewania-logo-1.jpg",
        "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-ogrzewania-logo-1.jpg"
      },
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/"
      ]
    },
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt-Ogrzewania.pl",
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "creator": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "inLanguage": "pl-PL"
    },
    {
      "@type": "WebSite",
      "@id": "https://remont.biz.pl/#website",
      "url": "https://remont.biz.pl/",
      "name": "Remont.biz.pl",
      "creator": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "inLanguage": "pl-PL"
    },
    {
      "@type": "WebSite",
      "@id": "https://sobir.pl/#website",
      "url": "https://sobir.pl/",
      "name": "Sobir.pl",
      "creator": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "inLanguage": "pl-PL"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Strona główna",
          "item": "https://projekt-ogrzewania.pl/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": "https://projekt-ogrzewania.pl/blog/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Rura PEX do ogrzewania podłogowego",
          "item": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/"
        }
      ]
    },
    {
      "@type": "ItemList",
      "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-selection-checklist",
      "name": "Lista kontrolna wyboru rury PEX do ogrzewania podłogowego",
      "numberOfItems": 6,
      "itemListOrder": "https://schema.org/ItemListOrderAscending",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Projekt instalacji",
          "description": "Określenie średnicy, rozstawów, długości pętli, liczby obwodów i przepływów."
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Przeznaczenie i klasa zastosowania",
          "description": "Potwierdzenie przeznaczenia do ogrzewania płaszczyznowego i odpowiedniej klasy pracy."
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Bariera tlenowa",
          "description": "Weryfikacja deklaracji ochrony przed dyfuzją tlenu."
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Kompatybilność systemu",
          "description": "Zgodność rury, złączek, tulei i narzędzi montażowych."
        },
        {
          "@type": "ListItem",
          "position": 5,
          "name": "Nadruk i identyfikowalność",
          "description": "Sprawdzenie materiału, wymiaru, normy, partii, daty i metrażu."
        },
        {
          "@type": "ListItem",
          "position": 6,
          "name": "Długości zwojów",
          "description": "Zaplanowanie pętli bez połączeń i z ograniczeniem odpadów."
        }
      ]
    },
    {
      "@type": "Question",
      "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-1",
      "name": "Jaka rura PEX do ogrzewania podłogowego jest najczęściej stosowana?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "W domach jednorodzinnych najczęściej stosuje się PE-X 16×2,0 mm przeznaczoną do klasy zastosowania 4, z potwierdzoną barierą przeciw dyfuzji tlenu. Ostateczny wybór powinien wynikać z obliczeń długości, przepływu i oporu pętli oraz ze zgodności rury ze złączkami danego systemu."
      }
    },
    {
      "@type": "Question",
      "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-2",
      "name": "Czym różni się PEX-a od PEX-b i PEX-c?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Oznaczenia opisują metodę sieciowania polietylenu: PE-Xa jest sieciowany metodą nadtlenkową, PE-Xb metodą silanową, a PE-Xc promieniowaniem. Różnią się zachowaniem montażowym, lecz litera nie stanowi samodzielnego rankingu trwałości ani jakości kompletnego systemu."
      }
    },
    {
      "@type": "Question",
      "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-3",
      "name": "Czy PEX-a jest zawsze najlepszy do podłogówki?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Nie. PE-Xa często jest bardzo elastyczny i w części systemów ma dopuszczoną procedurę odtwarzania kształtu po załamaniu, ale dobry PE-Xb lub PE-Xc również może spełniać wymagania ogrzewania podłogowego. Należy porównywać klasę zastosowania, ciśnienie, konstrukcję, barierę tlenową, dokumenty i cały system połączeń."
      }
    },
    {
      "@type": "Question",
      "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-4",
      "name": "Rura PEX 16×2 czy 20×2 mm – którą wybrać?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "16×2,0 mm jest najczęstszym wyborem dla domowych pętli. Rura 20×2,0 mm ma większą średnicę wewnętrzną i znacznie mniejsze opory przy tym samym przepływie, ale wymaga większego promienia gięcia i odpowiedniego systemu. Doboru nie wykonuje się wyłącznie na podstawie powierzchni pomieszczenia."
      }
    },
    {
      "@type": "Question",
      "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-5",
      "name": "Ile metrów rury PEX potrzeba na 1 m² podłogówki?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Geometrycznie około 10 m/m² przy rozstawie 10 cm, 6,67 m/m² przy 15 cm, 5 m/m² przy 20 cm i 4 m/m² przy 25 cm. Do wyniku trzeba doliczyć łuki oraz pełne odcinki dobiegowe od rozdzielacza i podzielić instalację na hydraulicznie uzasadnione pętle."
      }
    },
    {
      "@type": "Question",
      "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-6",
      "name": "Jaka jest maksymalna długość pętli PEX 16×2 mm?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Około 80–100 m jest popularnym zakresem praktycznym, lecz nie uniwersalnym limitem. Maksymalną długość wyznacza wymagany przepływ, dopuszczalna strata ciśnienia, moc pętli, parametry czynnika, opory armatury i możliwości pompy oraz regulacji."
      }
    },
    {
      "@type": "Question",
      "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-7",
      "name": "Czy rura PEX może stale pracować przy 95°C?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Nie należy tak interpretować pojedynczej temperatury z etykiety. Warunki pracy rur z tworzyw są opisane klasą zastosowania, profilem temperatur w czasie i ciśnieniem projektowym. Ogrzewanie podłogowe normalnie pracuje przy znacznie niższej temperaturze zasilania."
      }
    },
    {
      "@type": "Question",
      "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-8",
      "name": "Czy rura PEX do podłogówki musi mieć barierę EVOH?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "W zamkniętych instalacjach grzewczych należy stosować przewód z odpowiednią barierą przeciw dyfuzji tlenu albo inną konstrukcją spełniającą wymagania systemu. EVOH ogranicza przenikanie tlenu, chroniąc metalowe elementy instalacji przed przyspieszoną korozją."
      }
    },
    {
      "@type": "Question",
      "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-9",
      "name": "Czy PEX jest trwalszy od PE-RT o 20–30 lat?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Nie można podać takiej uniwersalnej przewagi. Trwałość obu systemów zależy od klasy zastosowania, ciśnienia, temperatur, stabilizacji materiału, jakości wykonania i eksploatacji. Porównywać należy deklaracje konkretnych systemów, a nie wyłącznie nazwę polimeru."
      }
    },
    {
      "@type": "Question",
      "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-10",
      "name": "Czy PEX/Al/PEX jest tym samym co PEX z EVOH?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Nie. PEX z EVOH jest rurą z warstwą polimerową ograniczającą dyfuzję tlenu. PEX/Al/PEX jest rurą wielowarstwową z aluminium, które ogranicza również rozszerzalność i stabilizuje kształt. Oba rozwiązania wymagają złączek przewidzianych dla swojej konstrukcji."
      }
    },
    {
      "@type": "Question",
      "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-11",
      "name": "Czy załamaną rurę PEX można podgrzać opalarką?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Tylko wtedy, gdy dokumentacja konkretnego systemu wyraźnie dopuszcza taką procedurę i określa sposób jej wykonania. Nie wolno przenosić instrukcji dla jednej rury PE-Xa na PE-Xb, PE-Xc ani na przewody wielowarstwowe, ponieważ można uszkodzić strukturę lub barierę tlenową."
      }
    },
    {
      "@type": "Question",
      "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-12",
      "name": "Czy można łączyć rurę PEX pod wylewką?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Pętle należy projektować i wykonywać z jednego odcinka bez planowanych połączeń w jastrychu. Jeżeli dojdzie do awaryjnej naprawy, trzeba użyć rozwiązania dopuszczonego przez system, oznaczyć miejsce, udokumentować je i wykonać ponowną próbę szczelności."
      }
    },
    {
      "@type": "Question",
      "@id": "https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#rk-pex-faq-13",
      "name": "Czy rura PEX rzeczywiście wytrzyma 50 lat?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Normowa klasyfikacja opiera ocenę systemu na długim profilu eksploatacyjnym, lecz nie jest bezwarunkową gwarancją kalendarzową. Rzeczywista trwałość zależy od zgodności produktu, ciśnienia i temperatur, jakości montażu, ochrony przed tlenem, składu wody oraz braku uszkodzeń mechanicznych."
      }
    }
  ]
}
</script>

<script>
  (function () {
    "use strict";

    var root = document.getElementById("rk-pex-guide");
    if (!root) return;

    var progress = root.querySelector(".rk-pex-progress");
    var ticking = false;

    function updateProgress() {
      var rect = root.getBoundingClientRect();
      var viewport = window.innerHeight || document.documentElement.clientHeight;
      var total = Math.max(root.offsetHeight - viewport, 1);
      var passed = Math.min(Math.max(-rect.top, 0), total);
      var value = Math.min(100, Math.max(0, passed / total * 100));
      if (progress) progress.style.width = value.toFixed(2) + "%";
      ticking = false;
    }

    function requestProgress() {
      if (!ticking) {
        window.requestAnimationFrame(updateProgress);
        ticking = true;
      }
    }

    root.querySelectorAll('a[href^="#"]').forEach(function (link) {
      link.addEventListener("click", function (event) {
        var target = root.querySelector(link.getAttribute("href"));
        if (!target) return;
        event.preventDefault();
        target.scrollIntoView({
          behavior: window.matchMedia("(prefers-reduced-motion: reduce)").matches ? "auto" : "smooth",
          block: "start"
        });
      });
    });

    var authorTabs = Array.prototype.slice.call(root.querySelectorAll(".rk-pex-author-tab"));
    var authorPanels = Array.prototype.slice.call(root.querySelectorAll(".rk-pex-author-panel"));

    function activateAuthorTab(tab, moveFocus) {
      var panelId = tab.getAttribute("aria-controls");

      authorTabs.forEach(function (item) {
        var active = item === tab;
        item.setAttribute("aria-selected", active ? "true" : "false");
        item.setAttribute("tabindex", active ? "0" : "-1");
      });

      authorPanels.forEach(function (panel) {
        panel.hidden = panel.id !== panelId;
      });

      if (moveFocus) tab.focus();
    }

    authorTabs.forEach(function (tab, index) {
      tab.addEventListener("click", function () {
        activateAuthorTab(tab, false);
      });

      tab.addEventListener("keydown", function (event) {
        var nextIndex;

        if (event.key === "ArrowRight" || event.key === "ArrowDown") {
          nextIndex = (index + 1) % authorTabs.length;
        } else if (event.key === "ArrowLeft" || event.key === "ArrowUp") {
          nextIndex = (index - 1 + authorTabs.length) % authorTabs.length;
        } else if (event.key === "Home") {
          nextIndex = 0;
        } else if (event.key === "End") {
          nextIndex = authorTabs.length - 1;
        } else {
          return;
        }

        event.preventDefault();
        activateAuthorTab(authorTabs[nextIndex], true);
      });
    });

    window.addEventListener("scroll", requestProgress, { passive: true });
    window.addEventListener("resize", requestProgress, { passive: true });
    updateProgress();
  }());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/">Rura PEX 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/rura-pex-do-ogrzewania-podlogowego/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Czy trzeba mieć projekt na ogrzewanie podłogowe?</title>
		<link>https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/</link>
					<comments>https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 09 Feb 2025 10:59:16 +0000</pubDate>
				<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Montaż ogrzewania]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Oszczędność energii]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Technologie budowlane]]></category>
		<category><![CDATA[dokumentacja techniczna]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[montaż ogrzewania]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[porady budowlane]]></category>
		<category><![CDATA[projekt podłogówki]]></category>
		<category><![CDATA[remont domu]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2146</guid>

					<description><![CDATA[<p>Planujesz montaż ogrzewania podłogowego i zastanawiasz się, czy potrzebujesz profesjonalnego projektu? W artykule „Czy trzeba mieć projekt na ogrzewanie podłogowe?” znajdziesz odpowiedzi na wszystkie nurtujące pytania. Dowiesz się, dlaczego dokumentacja techniczna to klucz do efektywnego systemu grzewczego, jakie są koszty braku projektu oraz gdzie zamówić go za darmo. Poznasz również praktyczne przykłady i porady, które pomogą Ci uniknąć błędów. Sprawdź, jak zaoszczędzić energię i zapewnić sobie komfort na lata!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/">Czy trzeba mieć projekt na ogrzewanie podłogowe?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-primary: #0284c7;
    --rk-intro-bg: #ffffff;
    --rk-intro-surface: #f8fafc;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #334155;
    --rk-intro-danger: #ef4444;
    --rk-intro-success: #10b981;
    --rk-intro-gold: #d97706;
}

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

/* Układ główny */
.rk-intro-layout {
    display: grid;
    grid-template-columns: 1fr 380px;
    background: var(--rk-intro-bg);
}

/* Lewa Kolumna - Hook i Szybka Odpowiedź */
.rk-intro-main {
    padding: 40px 50px;
    background: #ffffff;
    border-right: 1px solid var(--rk-intro-border);
}

.rk-intro-header {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 25px;
    padding-bottom: 25px;
    border-bottom: 2px solid var(--rk-intro-surface);
}

.rk-intro-author-img {
    width: 70px;
    height: 70px;
    border-radius: 50%;
    border: 3px solid var(--rk-intro-primary);
    object-fit: cover;
    flex-shrink: 0;
}

.rk-intro-header-text h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    margin: 0 0 5px 0;
    line-height: 1.2;
}

.rk-intro-header-text p {
    font-size: 14px;
    font-weight: 700;
    color: #64748b;
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-intro-hook {
    font-size: 17px;
    line-height: 1.7;
    color: var(--rk-intro-text);
    margin: 0 0 25px 0;
}

.rk-intro-hook strong {
    color: var(--rk-intro-danger);
    font-weight: 800;
}

/* Quick Answer Box */
.rk-quick-answer {
    background: #f0f9ff;
    border-left: 5px solid var(--rk-intro-primary);
    padding: 25px 30px;
    border-radius: 0 12px 12px 0;
}

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

.rk-qa-text {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-intro-dark);
    margin: 0;
    font-weight: 600;
}

/* Prawa Kolumna - Agenda i Długi Ogon */
.rk-intro-agenda {
    background: var(--rk-intro-surface);
    padding: 40px 30px;
    display: flex;
    flex-direction: column;
}

.rk-agenda-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    margin: 0 0 20px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-agenda-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 30px;
}

.rk-agenda-item {
    background: #ffffff;
    border: 1px solid var(--rk-intro-border);
    border-radius: 12px;
    overflow: hidden;
}

.rk-agenda-btn {
    width: 100%;
    text-align: left;
    padding: 16px 20px;
    background: transparent;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-intro-dark);
    transition: background 0.2s;
}

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

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

.rk-agenda-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-intro-primary);
}

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

.rk-agenda-content {
    display: none;
    padding: 0 20px 20px 52px;
    font-size: 13px;
    line-height: 1.6;
    color: #64748b;
    border-top: 1px solid transparent;
}

.rk-agenda-btn.active + .rk-agenda-content {
    display: block;
    background: var(--rk-intro-primary);
    color: #e0f2fe;
}

/* Kluczowe zagadnienia (Długi Ogon w prawej kolumnie) */
.rk-related-topics {
    margin-top: auto; /* Wypycha na dół prawej kolumny */
    padding-top: 25px;
    border-top: 1px dashed var(--rk-intro-border);
}

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

.rk-related-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.rk-related-tag {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-intro-primary);
    background: #e0f2fe;
    padding: 6px 12px;
    border-radius: 6px;
    border: 1px solid #bae6fd;
    transition: all 0.2s ease;
}

.rk-related-tag:hover {
    background: var(--rk-intro-primary);
    color: #ffffff;
    border-color: var(--rk-intro-primary);
}

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-intro-layout { grid-template-columns: 1fr; }
    .rk-intro-main { padding: 30px 20px; border-right: none; border-bottom: 1px solid var(--rk-intro-border); }
    .rk-intro-header { flex-direction: column; text-align: center; gap: 15px; }
    .rk-intro-agenda { padding: 30px 20px; }
    .rk-quick-answer { padding: 20px; }
    .rk-agenda-content { padding-left: 20px; }
    .rk-related-topics { margin-top: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/"
    },
    "headline": "Czy trzeba mieć projekt na ogrzewanie podłogowe?",
    "description": "Zgodnie z Prawem Budowlanym projekt nie jest wymogiem do pozwolenia, jednak bez obliczeń inżynierskich OZC i spełnienia norm WT 2021 instalacja wygeneruje ogromne koszty.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-14",
    "dateModified": "2026-06-14"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#dataset-wstep",
    "name": "Zestawienie ryzyk i wymogów instalacyjnych HVAC",
    "description": "Baza danych określająca skutki prawne, finansowe i techniczne montażu instalacji ogrzewania płaszczyznowego bez oparcia o normatywny projekt wykonawczy.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy trzeba mieć projekt na ogrzewanie podłogowe",
      "weryfikacja projektu instalacji grzewczej",
      "wymagania warunków technicznych wt 2021 ogrzewanie",
      "projektowe obciążenie cieplne ozc",
      "wymogi dotacji czyste powietrze",
      "norma PN-EN 12831 w podłogówce",
      "zrównoważenie hydrauliczne rotametry",
      "maksymalna długość pętli ogrzewania"
    ],
    "measurementTechnique": "Weryfikacja rygorów technicznych w oparciu o normę PN-EN 1264 oraz Prawo Budowlane w aspekcie uzyskania odbioru technicznego i dofinansowań.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Prawo Budowlane: Brak formalnego wymogu do PNB, ale obowiązek dostosowania do WT 2021 (wskaźnik EP).",
        "Odbiór i dotacje: Brak OZC i protokołów zrównoważenia wyklucza odbiór kierownika budowy oraz blokuje wypłatę Czystego Powietrza.",
        "Ryzyko eksploatacyjne: Pozorna oszczędność 300-500 PLN prowadzi do drastycznego spadku sprawności pompy ciepła."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#webapp-wstep",
    "name": "Interaktywny Nawigator Merytoryczny (Agenda)",
    "description": "Moduł wprowadzający ułatwiający czytelnikowi nawigację po zaawansowanych narzędziach inżynierskich, z uwzględnieniem zagadnień z długiego ogona SEO.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and CSS3",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container">
    <div class="rk-intro-layout">
        
        <!-- Lewa Kolumna (Hook i TL;DR) -->
        <div class="rk-intro-main">
            <div class="rk-intro-header">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Ekspert HVAC" class="rk-intro-author-img">
                <div class="rk-intro-header-text">
                    <h2>Czy trzeba mieć projekt na ogrzewanie podłogowe?</h2>
                    <p>Weryfikacja specjalisty – Robert Kucharski</p>
                </div>
            </div>

            <p class="rk-intro-hook">
                Inwestorzy na etapie stanu surowego zadają sobie jedno kluczowe pytanie: zlecić profesjonalną dokumentację, czy zaufać &#8222;wieloletniemu doświadczeniu&#8221; hydraulika? Pozorna oszczędność rzędu 300–500 PLN na odrzuceniu dokumentacji to <strong>najdroższy błąd, jaki możesz popełnić na swojej budowie</strong>, który będzie drenował Twój portfel przez kolejne 30 lat.
            </p>

            <div class="rk-quick-answer">
                <div class="rk-qa-title">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
                    Szybka Odpowiedź (TL;DR)
                </div>
                <p class="rk-qa-text">
                    Zgodnie z Prawem Budowlanym projekt nie jest wymogiem do uzyskania pozwolenia na budowę. Jednak bez inżynierskiego obliczenia OZC nie spełnisz norm prawnych <strong>WT 2021</strong>, kierownik budowy może odmówić odbioru technicznego, a Ty bezpowrotnie <strong>stracisz prawo do dotacji</strong> (Czyste Powietrze, Moje Ciepło) z powodu braku dowodów na zrównoważenie hydrauliczne instalacji.
                </p>
            </div>
        </div>

        <!-- Prawa Kolumna (Narzędzia / Agenda) -->
        <div class="rk-intro-agenda">
            <h3 class="rk-agenda-title">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="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>
                Co sprawdzisz w poradniku?
            </h3>
            
            <div class="rk-agenda-list" id="introAgendaList">
                
                <div class="rk-agenda-item">
                    <button class="rk-agenda-btn active">
                        <div class="rk-agenda-icon">
                            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="9" y1="3" x2="9" y2="21"></line></svg>
                        </div>
                        Kalkulator Inwestycyjny (ROI)
                    </button>
                    <div class="rk-agenda-content">
                        Poniżej znajdziesz interaktywne zestawienie kosztów. Przekonasz się na twardych liczbach, jak szybko zwraca się zakup projektu.
                    </div>
                </div>

                <div class="rk-agenda-item">
                    <button class="rk-agenda-btn">
                        <div class="rk-agenda-icon">
                            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4M12 8h.01"></path></svg>
                        </div>
                        Algorytm Oporów Pętli
                    </button>
                    <div class="rk-agenda-content">
                        Udostępniamy inżynierski suwak. Sprawdzisz samodzielnie, w którym momencie zbyt długa pętla zablokuje przepływ wody.
                    </div>
                </div>

                <div class="rk-agenda-item">
                    <button class="rk-agenda-btn">
                        <div class="rk-agenda-icon">
                            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><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>
                        Symulator Kosztów Prądu
                    </button>
                    <div class="rk-agenda-content">
                        Narzędzie pokazujące wpływ błędu instalatora na krzywą grzewczą pompy ciepła i drastyczny spadek wskaźnika COP.
                    </div>
                </div>

                <div class="rk-agenda-item">
                    <button class="rk-agenda-btn">
                        <div class="rk-agenda-icon">
                            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"></polygon></svg>
                        </div>
                        Case Study inwestora
                    </button>
                    <div class="rk-agenda-content">
                        Na przykładzie budowy Pani Janiny wprost rozprawiamy się z absurdalnymi zaleceniami, z jakimi inwestorzy spotykają się na budowach.
                    </div>
                </div>

            </div>

            <!-- Zagospodarowanie pustej przestrzeni (Długi ogon SEO) -->
            <div class="rk-related-topics">
                <h4 class="rk-related-title">Kluczowe zagadnienia techniczne:</h4>
                <div class="rk-related-tags">
                    <span class="rk-related-tag">Obliczenia OZC</span>
                    <span class="rk-related-tag">Norma PN-EN 1264</span>
                    <span class="rk-related-tag">Zrównoważenie hydrauliczne</span>
                    <span class="rk-related-tag">Efektywność COP</span>
                    <span class="rk-related-tag">Straty ciśnienia</span>
                </div>
            </div>

        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const agendaBtns = document.querySelectorAll('.rk-agenda-btn');

    agendaBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            const isActive = this.classList.contains('active');
            
            // Zamknij wszystkie
            agendaBtns.forEach(b => b.classList.remove('active'));
            
            // Otwórz kliknięty, o ile nie był już aktywny
            if (!isActive) {
                this.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-law-dark: #0f172a;
    --rk-law-primary: #0284c7;
    --rk-law-bg: #ffffff;
    --rk-law-surface: #f8fafc;
    --rk-law-border: #e2e8f0;
    --rk-law-text: #334155;
    --rk-law-danger: #ef4444;
    --rk-law-danger-bg: #fef2f2;
    --rk-law-success: #10b981;
    --rk-law-success-bg: #ecfdf5;
    --rk-law-gold: #d97706;
}

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

/* Nagłówek */
.rk-law-header {
    padding: 35px 40px;
    background: var(--rk-law-dark);
    color: #ffffff;
    border-bottom: 4px solid var(--rk-law-gold);
    position: relative;
    overflow: hidden;
}

.rk-law-header::after {
    content: '';
    position: absolute;
    right: -20px;
    top: -20px;
    width: 150px;
    height: 150px;
    background: radial-gradient(circle, rgba(217,119,6,0.15) 0%, rgba(217,119,6,0) 70%);
}

.rk-law-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 10px 0;
    color: #ffffff;
    line-height: 1.3;
    display: flex;
    align-items: center;
    gap: 15px;
    position: relative;
    z-index: 2;
}

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

.rk-law-header p {
    font-size: 15px;
    color: #cbd5e1;
    margin: 0;
    line-height: 1.6;
    position: relative;
    z-index: 2;
    max-width: 700px;
}

/* Układ główny - Jedna kolumna */
.rk-law-interactive {
    padding: 40px;
    background: var(--rk-law-surface);
    display: flex;
    flex-direction: column;
    align-items: center;
    border-bottom: 1px solid var(--rk-law-border);
}

/* Przełącznik opcji */
.rk-law-toggle-wrapper {
    display: flex;
    background: #e2e8f0;
    padding: 6px;
    border-radius: 16px;
    margin-bottom: 40px;
    width: 100%;
    max-width: 650px;
    position: relative;
}

.rk-law-toggle-btn {
    flex: 1;
    padding: 16px 20px;
    border: none;
    background: transparent;
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-law-toggle-btn.active[data-audit="fail"] {
    color: var(--rk-law-danger);
    background: #ffffff;
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.15);
}

.rk-law-toggle-btn.active[data-audit="pass"] {
    color: var(--rk-law-success);
    background: #ffffff;
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.15);
}

.rk-law-toggle-icon {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 2px solid currentColor;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rk-law-toggle-btn.active .rk-law-toggle-icon::after {
    content: '';
    width: 8px;
    height: 8px;
    background: currentColor;
    border-radius: 50%;
}

/* Wizualizacja dokumentu i pieczątki */
.rk-law-doc-container {
    position: relative;
    width: 160px;
    height: 180px;
    margin-bottom: 30px;
}

.rk-law-doc-svg {
    width: 100%;
    height: 100%;
    filter: drop-shadow(0 15px 25px rgba(0,0,0,0.08));
    overflow: visible; /* Zapobiega ucinaniu pieczątki */
}

/* Animacja Pieczątek z efektem uderzenia */
.rk-doc-stamp {
    transform-origin: center;
    transition: all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.state-fail .rk-doc-stamp-fail {
    opacity: 1;
    transform: scale(1) rotate(-15deg);
}
.state-fail .rk-doc-stamp-pass { 
    opacity: 0; 
    transform: scale(3) translateY(-30px); 
}

.state-pass .rk-doc-stamp-pass {
    opacity: 1;
    transform: scale(1) rotate(10deg);
}
.state-pass .rk-doc-stamp-fail { 
    opacity: 0; 
    transform: scale(3) translateY(-30px); 
}

/* Wyniki - Paragrafy prawne */
.rk-law-articles {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    width: 100%;
    max-width: 750px;
}

.rk-article-item {
    background: #ffffff;
    padding: 20px;
    border-radius: 12px;
    border-top: 4px solid var(--rk-law-border);
    transition: all 0.4s ease;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.state-fail .rk-article-item {
    border-top-color: var(--rk-law-danger);
    background: var(--rk-law-danger-bg);
}

.state-pass .rk-article-item {
    border-top-color: var(--rk-law-success);
    background: var(--rk-law-success-bg);
}

.rk-article-title {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    margin: 0 0 8px 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rk-article-status {
    font-weight: 900;
    font-size: 14px;
    padding: 2px 8px;
    border-radius: 6px;
    background: #ffffff;
}
.state-fail .rk-article-status { color: var(--rk-law-danger); }
.state-pass .rk-article-status { color: var(--rk-law-success); }

.rk-article-desc {
    font-size: 15px;
    color: var(--rk-law-dark);
    margin: 0;
    font-weight: 600;
    line-height: 1.5;
}

/* Sekcja Tekstowa */
.rk-law-text-section {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-law-text-section p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-law-text);
    margin: 0 0 20px 0;
}

.rk-law-text-section p:last-child {
    margin-bottom: 0;
}

.rk-law-text-section strong {
    color: var(--rk-law-dark);
    font-weight: 800;
}

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

.rk-law-text-section a:hover {
    color: #0369a1;
    border-bottom-color: #0369a1;
}

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-law-header { padding: 30px 20px; }
    .rk-law-header h2 { font-size: 22px; }
    
    .rk-law-interactive { padding: 30px 20px; }
    .rk-law-toggle-wrapper { flex-direction: column; padding: 4px; gap: 4px; }
    .rk-law-toggle-btn { padding: 14px; }
    
    .rk-law-articles { grid-template-columns: 1fr; gap: 15px; }
    .rk-law-text-section { padding: 30px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#article-prawo",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/"
    },
    "headline": "Czy projekt ogrzewania podłogowego jest wymagany przez prawo budowlane?",
    "description": "Audyt prawny instalacji HVAC. Sprawdź, dlaczego zgodnie z art. 34 Prawa Budowlanego i § 134 WT projekt techniczny OZC jest niezbędny do odbioru budynku.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-14",
    "dateModified": "2026-06-14"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#dataset-prawo",
    "name": "Wymogi Prawne i Normatywne dla Instalacji Ogrzewania Podłogowego",
    "description": "Zestawienie regulacji prawnych określających legalność i techniczne parametry odbiorowe instalacji grzewczych w nowo powstających obiektach budowlanych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy do ogrzewania podłogowego potrzebny jest projekt",
      "zgłoszenie zakończenia budowy ogrzewanie",
      "prawo budowlane projekt techniczny instalacji",
      "norma pn-en 12831 w podłogówce",
      "odbiór budynku z pompą ciepła"
    ],
    "measurementTechnique": "Weryfikacja zgodności parametrów projektowych (OZC) z aktami prawnymi (Prawo Budowlane, Warunki Techniczne WT 2021) na etapie odbioru kierownika budowy.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Art. 34 ust. 3 pkt 3 lit. b Prawa Budowlanego: Obowiązek posiadania projektu technicznego z rozwiązaniami instalacyjnymi.",
        "Warunki Techniczne § 134 ust. 1: Nakaz instalowania urządzeń dostosowanych do obliczeniowego zapotrzebowania na ciepło.",
        "Norma PN-EN ISO 12831: Metodologia obliczania projektowego obciążenia cieplnego (OZC)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#webapp-prawo",
    "name": "Symulator Odbioru Budowlanego Instalacji",
    "description": "Interaktywne narzędzie audytowe demonstrujące konsekwencje braku dokumentacji projektowej w zderzeniu z wymogami Prawa Budowlanego podczas urzędowego odbioru budynku.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-law-container">
    <div class="rk-law-header">
        <h2>
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
                <path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path>
                <path d="M12 8v4"></path>
                <path d="M12 16h.01"></path>
            </svg>
            Czy projekt jest wymagany przez prawo budowlane?
        </h2>
        <p>Wykonanie instalacji &#8222;z pamięci&#8221; to nie tylko błąd techniczny, ale również bezpośrednie złamanie obowiązujących przepisów i Warunków Technicznych.</p>
    </div>

    <div class="rk-law-interactive state-fail" id="uiLawAuditPanel">
        
        <div class="rk-law-toggle-wrapper">
            <button class="rk-law-toggle-btn active" data-audit="fail" id="btnAuditFail">
                <div class="rk-law-toggle-icon"></div>
                Instalacja z pamięci (Brak OZC)
            </button>
            <button class="rk-law-toggle-btn" data-audit="pass" id="btnAuditPass">
                <div class="rk-law-toggle-icon"></div>
                Pełen projekt wykonawczy
            </button>
        </div>

        <div class="rk-law-doc-container">
            <svg class="rk-law-doc-svg" viewBox="0 0 120 150" fill="none" style="overflow: visible;">
                <path d="M15 10 L105 10 C 110 10 115 15 115 20 L115 130 C 115 135 110 140 105 140 L15 140 C 10 140 5 135 5 130 L5 20 C 5 15 10 10 15 10 Z" fill="#ffffff" stroke="var(--rk-law-border)" stroke-width="4"/>
                
                <line x1="25" y1="35" x2="65" y2="35" stroke="#cbd5e1" stroke-width="4" stroke-linecap="round"/>
                <line x1="25" y1="55" x2="95" y2="55" stroke="#cbd5e1" stroke-width="3" stroke-linecap="round"/>
                <line x1="25" y1="70" x2="80" y2="70" stroke="#cbd5e1" stroke-width="3" stroke-linecap="round"/>
                <line x1="25" y1="85" x2="95" y2="85" stroke="#cbd5e1" stroke-width="3" stroke-linecap="round"/>
                <line x1="25" y1="100" x2="60" y2="100" stroke="#cbd5e1" stroke-width="3" stroke-linecap="round"/>
                
                <g transform="translate(60, 85)">
                    <g class="rk-doc-stamp rk-doc-stamp-fail">
                        <rect x="-45" y="-18" width="90" height="36" fill="#ffffff" stroke="var(--rk-law-danger)" stroke-width="4" rx="4"/>
                        <text x="0" y="6" font-family="Arial" font-size="13" font-weight="900" fill="var(--rk-law-danger)" text-anchor="middle">ODRZUCONE</text>
                    </g>

                    <g class="rk-doc-stamp rk-doc-stamp-pass">
                        <rect x="-50" y="-18" width="100" height="36" fill="#ffffff" stroke="var(--rk-law-success)" stroke-width="4" rx="4"/>
                        <text x="0" y="6" font-family="Arial" font-size="12" font-weight="900" fill="var(--rk-law-success)" text-anchor="middle">ZGODNOŚĆ WT</text>
                    </g>
                </g>
            </svg>
        </div>

        <div class="rk-law-articles">
            <div class="rk-article-item">
                <div class="rk-article-title">
                    Prawo Budowlane Art. 34
                    <span class="rk-article-status" id="txtStatusPB">NARUSZONY</span>
                </div>
                <p class="rk-article-desc">Wymóg posiadania projektu technicznego z wliczonymi rozwiązaniami instalacyjnymi budynku.</p>
            </div>
            <div class="rk-article-item">
                <div class="rk-article-title">
                    Warunki Techniczne § 134
                    <span class="rk-article-status" id="txtStatusWT">NARUSZONY</span>
                </div>
                <p class="rk-article-desc">Wydajność urządzeń grzewczych musi być ściśle dostosowana do obliczeniowego OZC.</p>
            </div>
        </div>

    </div>

    <div class="rk-law-text-section">
        <p>
            Zgodnie z <strong>art. 34 ust. 3 pkt 3 lit. b ustawy Prawo Budowlane</strong>, obiekt budowlany musi posiadać projekt techniczny zawierający m.in. projektowane rozwiązania instalacyjne. Oznacza to, że charakterystyka energetyczna i obliczeniowe obciążenie cieplne budynku według normy <strong><a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">PN-EN ISO 12831</a></strong> są integralną częścią dokumentacji niezbędnej do prawidłowego zgłoszenia zakończenia budowy u Powiatowego Inspektora Nadzoru Budowlanego.
        </p>
        <p>
            Instalacja grzewcza wykonana bez precyzyjnych obliczeń inżynierskich bezpośrednio łamie <strong>rozporządzenie Ministra Infrastruktury w sprawie warunków technicznych</strong>, jakim powinny odpowiadać budynki i ich usytuowanie (§ 134 ust. 1). Przepis ten jednoznacznie nakazuje instalowanie urządzeń o wydajności dostosowanej do obliczeniowego zapotrzebowania na ciepło.
        </p>
        <p>
            Zastanawiając się, <a href="https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/">czy projekt instalacji ogrzewania podłogowego jest potrzebny</a>, pamiętaj: decydując się na montaż w systemie &#8222;zróbmy to na oko&#8221;, zmuszasz kierownika budowy do poświadczenia nieprawdy w dzienniku budowy, a w przypadku audytu związanego z programami dotacyjnymi – ryzykujesz nakaz zwrotu wypłaconych środków z powodu niespełnienia kryteriów <strong>Warunków Technicznych (WT 2021)</strong>.
        </p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btnFail = document.getElementById('btnAuditFail');
    const btnPass = document.getElementById('btnAuditPass');
    const uiPanel = document.getElementById('uiLawAuditPanel');
    
    const txtStatusPB = document.getElementById('txtStatusPB');
    const txtStatusWT = document.getElementById('txtStatusWT');

    function setAuditState(state) {
        if (state === 'fail') {
            btnFail.classList.add('active');
            btnPass.classList.remove('active');
            
            uiPanel.classList.remove('state-pass');
            uiPanel.classList.add('state-fail');
            
            txtStatusPB.textContent = 'NARUSZONY';
            txtStatusWT.textContent = 'NARUSZONY';
        } else {
            btnPass.classList.add('active');
            btnFail.classList.remove('active');
            
            uiPanel.classList.remove('state-fail');
            uiPanel.classList.add('state-pass');
            
            txtStatusPB.textContent = 'ZGODNY';
            txtStatusWT.textContent = 'ZGODNY';
        }
    }

    btnFail.addEventListener('click', () => setAuditState('fail'));
    btnPass.addEventListener('click', () => setAuditState('pass'));
});
</script>



<style>
:root {
    --rk-roi-dark: #0f172a;
    --rk-roi-primary: #0284c7;
    --rk-roi-bg: #ffffff;
    --rk-roi-surface: #f8fafc;
    --rk-roi-border: #e2e8f0;
    --rk-roi-text: #334155;
    --rk-roi-danger: #ef4444;
    --rk-roi-danger-light: #fef2f2;
    --rk-roi-success: #10b981;
    --rk-roi-success-light: #ecfdf5;
}

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

/* Nagłówek */
.rk-roi-header {
    padding: 40px 50px 30px;
    background: var(--rk-roi-dark);
    color: #ffffff;
    border-bottom: 4px solid var(--rk-roi-success);
}

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

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

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

/* Interaktywny Panel */
.rk-roi-interactive {
    padding: 40px 50px;
    background: var(--rk-roi-surface);
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* Switcher / Toggle */
.rk-roi-toggle-wrapper {
    display: flex;
    background: #e2e8f0;
    padding: 6px;
    border-radius: 16px;
    margin-bottom: 40px;
    width: 100%;
    max-width: 600px;
    position: relative;
}

.rk-roi-toggle-btn {
    flex: 1;
    padding: 16px 20px;
    border: none;
    background: transparent;
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-roi-toggle-btn.active[data-state="danger"] {
    color: var(--rk-roi-danger);
    background: #ffffff;
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.15);
}

.rk-roi-toggle-btn.active[data-state="success"] {
    color: var(--rk-roi-success);
    background: #ffffff;
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.15);
}

/* Karty danych */
.rk-roi-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    width: 100%;
}

.rk-roi-card {
    background: #ffffff;
    border: 2px solid var(--rk-roi-border);
    border-radius: 16px;
    padding: 25px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.rk-roi-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 6px;
    height: 100%;
    background: var(--rk-roi-border);
    transition: background 0.4s;
}

.rk-roi-card.state-danger {
    border-color: #fca5a5;
    background: var(--rk-roi-danger-light);
}
.rk-roi-card.state-danger::before { background: var(--rk-roi-danger); }

.rk-roi-card.state-success {
    border-color: #6ee7b7;
    background: var(--rk-roi-success-light);
}
.rk-roi-card.state-success::before { background: var(--rk-roi-success); }

.rk-roi-card-title {
    font-size: 13px;
    font-weight: 800;
    color: #64748b;
    text-transform: uppercase;
    margin: 0 0 10px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-roi-card-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-roi-dark);
    margin: 0;
    transition: color 0.3s;
}

.state-danger .rk-roi-card-val { color: var(--rk-roi-danger); }
.state-success .rk-roi-card-val { color: var(--rk-roi-success); }

/* Tekst i Wyjaśnienia */
.rk-roi-content {
    padding: 40px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-roi-border);
}

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

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

.rk-roi-content strong {
    color: var(--rk-roi-dark);
    font-weight: 800;
}

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

.rk-roi-content a:hover {
    color: #0369a1;
    border-bottom-color: #0369a1;
}

.rk-roi-highlight-box {
    background: var(--rk-roi-surface);
    border-radius: 12px;
    padding: 20px;
    margin: 25px 0;
    display: flex;
    align-items: center;
    gap: 20px;
    border: 1px solid var(--rk-roi-border);
}

.rk-roi-highlight-icon {
    width: 48px;
    height: 48px;
    background: var(--rk-roi-success);
    color: #ffffff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rk-roi-highlight-text {
    margin: 0 !important;
    font-size: 15px !important;
}

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-roi-header, .rk-roi-interactive, .rk-roi-content { padding: 30px 20px; }
    .rk-roi-header h2 { font-size: 24px; }
    
    .rk-roi-toggle-wrapper { flex-direction: column; padding: 4px; gap: 4px; }
    .rk-roi-toggle-btn { padding: 14px; }
    
    .rk-roi-grid { grid-template-columns: 1fr; }
    .rk-roi-highlight-box { flex-direction: column; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#article-koszty",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/"
    },
    "headline": "Ile kosztuje projekt ogrzewania podłogowego i dlaczego inwestycja zwraca się w pierwszym sezonie?",
    "description": "Zrozum opłacalność inżynieryjnego projektu OZC. Sprawdź interaktywne porównanie kosztów materiałowych, zużycia rur i temperatury zasilania dla domu 150m2.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski – Budowa bez ściemy",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-14",
    "dateModified": "2026-06-14"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#dataset-koszty",
    "name": "Analiza zwrotu z inwestycji (ROI) w projekt ogrzewania płaszczyznowego",
    "description": "Szczegółowa macierz porównawcza parametrów kosztowych i technicznych instalacji wykonanej 'na oko' względem instalacji zoptymalizowanej inżyniersko dla budynku 150 m2.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski – Budowa bez ściemy"
    },
    "keywords": [
      "ile kosztuje projekt ogrzewania podłogowego",
      "rozstaw rur w wodnym ogrzewaniu podłogowym",
      "maksymalna temperatura zasilania podłogówki",
      "rotametr wskaźnik przepływu ogrzewania",
      "koszty materiałów instalacji grzewczej"
    ],
    "measurementTechnique": "Porównanie kosztorysu powykonawczego (zużycie rury PEX w mb) oraz parametrów hydraulicznych na podstawie audytu zrównoważenia przepływów na rotametrach.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Koszt projektu: 350 PLN – 900 PLN, zwraca się w 3 do 6 miesięcy sezonu grzewczego.",
        "Oszczędność materiałowa: Zmniejszenie zużycia rur PEX o 150–250 mb (z 1100 mb na 820-880 mb dla 150 m2).",
        "Zysk efektywności energetycznej: Spadek zużycia energii przez pompę ciepła o 15-22% rocznie."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#webapp-koszty",
    "name": "Interaktywny Kalkulator Zysków Inwestycyjnych",
    "description": "Narzędzie typu 'Toggle' (przełącznik) demonstrujące kolosalne straty ukryte w montażu bezdokumentacyjnym w opozycji do twardych danych z optymalizacji.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski – Budowa bez ściemy"
    }
  }
]
</script>

<div class="rk-roi-container" id="roi-kalkulator-app">
    <div class="rk-roi-header">
        <h2>
            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
                <line x1="12" y1="1" x2="12" y2="23"></line>
                <path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path>
            </svg>
            Dlaczego projekt ogrzewania to nie wydatek, a inwestycja?
        </h2>
        <p>Zobacz różnicę w materiałach i kosztach eksploatacji dla przykładowego domu o powierzchni 150 m².</p>
    </div>

    <div class="rk-roi-interactive">
        
        <div class="rk-roi-toggle-wrapper" id="roiToggle">
            <button class="rk-roi-toggle-btn" data-state="danger" id="btnDanger">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                Instalacja &#8222;na oko&#8221; (Brak projektu)
            </button>
            <button class="rk-roi-toggle-btn active" data-state="success" id="btnSuccess">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                Projekt Inżynierski OZC
            </button>
        </div>

        <div class="rk-roi-grid">
            
            <div class="rk-roi-card state-success" id="cardSpacing">
                <p class="rk-roi-card-title">Średni rozstaw rur</p>
                <p class="rk-roi-card-val" id="valSpacing">Zmienny: 10, 15, 20 cm</p>
            </div>

            <div class="rk-roi-card state-success" id="cardPipe">
                <p class="rk-roi-card-title">Zużycie rury na 150 m²</p>
                <p class="rk-roi-card-val" id="valPipe">820 &#8211; 880 m.b.</p>
            </div>

            <div class="rk-roi-card state-success" id="cardTemp">
                <p class="rk-roi-card-title">Wymagana Temp. Zasilania (Tz)</p>
                <p class="rk-roi-card-val" id="valTemp">32°C &#8211; 35°C</p>
            </div>

            <div class="rk-roi-card state-success" id="cardCost">
                <p class="rk-roi-card-title">Startowe zużycie materiałów</p>
                <p class="rk-roi-card-val" id="valCost">Optymalne, wg normy</p>
            </div>

        </div>

    </div>

    <div class="rk-roi-content">
        <p>
            Profesjonalny, rzetelny projekt instalacji bazujący na pełnym OZC (Obliczeniowym Zapotrzebowaniu na Ciepło) <strong>kosztuje średnio od 350 PLN do 900 PLN</strong> dla standardowego domu jednorodzinnego. Zastanawiając się, <a href="https://projekt-ogrzewania.pl/ile-kosztuje-projekt-ogrzewania-podlogowego/">ile kosztuje projekt ogrzewania podłogowego</a>, musisz spojrzeć na to przez pryzmat natychmiastowego zwrotu.
        </p>

        <div class="rk-roi-highlight-box">
            <div class="rk-roi-highlight-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
            </div>
            <p class="rk-roi-highlight-text">
                <strong>Szybki zwrot (ROI):</strong> Inwestycja ta zwraca się całkowicie w ciągu pierwszych 3 do 6 miesięcy sezonu grzewczego. Wynika to z drastycznej redukcji kosztów zakupu nadmiarowych rur (często o 150–250 metrów) oraz spadku zużycia energii przez sprężarkę pompy ciepła o 15% do 22% w skali roku.
            </p>
        </div>

        <p>
            Układanie rur &#8222;z głowy&#8221; zawsze kończy się przewymiarowaniem. Instalator dla bezpieczeństwa zagęszcza <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstaw rur w ogrzewaniu podłogowym</a> wszędzie co 10 cm. Generuje to kolosalne straty na zakupie materiałów (często wyższe o 1200–1800 PLN).
        </p>
        <p>
            Dodatkowo, bez obliczeń dławień hydraulicznych, brakuje wytycznych nastaw dla belek. Skutkuje to losowymi przepływami na <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrach</a>, powodując, że by dogrzać chłodniejsze pętle, zmuszeni jesteśmy podnieść <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">temperaturę zasilania podłogówki</a> z optymalnych 35°C do rujnujących portfel 45°C.
        </p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btnDanger = document.getElementById('btnDanger');
    const btnSuccess = document.getElementById('btnSuccess');
    
    // Karty
    const cards = [
        document.getElementById('cardSpacing'),
        document.getElementById('cardPipe'),
        document.getElementById('cardTemp'),
        document.getElementById('cardCost')
    ];

    // Wartości w kartach
    const valSpacing = document.getElementById('valSpacing');
    const valPipe = document.getElementById('valPipe');
    const valTemp = document.getElementById('valTemp');
    const valCost = document.getElementById('valCost');

    // Baza danych dla stanów
    const data = {
        danger: {
            spacing: "Stały (10 cm lub 15 cm)",
            pipe: "Ponad 1100 m.b.",
            temp: "Wysoka: 42°C - 45°C",
            cost: "+ 1200 do 1800 PLN"
        },
        success: {
            spacing: "Zmienny: 10, 15, 20 cm",
            pipe: "820 - 880 m.b.",
            temp: "Niska (optymalna): 32°C - 35°C",
            cost: "Optymalne, wg normy"
        }
    };

    function switchState(state) {
        // Zmiana przycisków
        if (state === 'danger') {
            btnDanger.classList.add('active');
            btnSuccess.classList.remove('active');
        } else {
            btnSuccess.classList.add('active');
            btnDanger.classList.remove('active');
        }

        // Zmiana klas kart (kolory)
        cards.forEach(card => {
            card.classList.remove('state-danger', 'state-success');
            card.classList.add('state-' + state);
        });

        // Wstrzykiwanie danych
        valSpacing.textContent = data[state].spacing;
        valPipe.textContent = data[state].pipe;
        valTemp.textContent = data[state].temp;
        valCost.textContent = data[state].cost;
    }

    btnDanger.addEventListener('click', () => switchState('danger'));
    btnSuccess.addEventListener('click', () => switchState('success'));
});
</script>



<style>
:root {
    --rk-cop-dark: #0f172a;
    --rk-cop-primary: #0284c7;
    --rk-cop-bg: #ffffff;
    --rk-cop-surface: #f8fafc;
    --rk-cop-border: #e2e8f0;
    --rk-cop-text: #334155;
    --rk-cop-success: #10b981;
    --rk-cop-warning: #f59e0b;
    --rk-cop-danger: #ef4444;
}

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

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

.rk-cop-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 10px 0;
    color: #ffffff;
    line-height: 1.3;
    display: flex;
    align-items: center;
    gap: 12px;
}

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

/* Układ główny - Jedna kolumna */
.rk-cop-layout {
    display: flex;
    flex-direction: column;
    background: var(--rk-cop-bg);
}

/* Sekcja Symulatora (Góra) */
.rk-cop-sim-panel {
    padding: 40px 50px 30px 50px;
    display: flex;
    flex-direction: column;
    align-items: center;
    background: var(--rk-cop-surface);
}

/* Suwak */
.rk-slider-wrapper {
    width: 100%;
    max-width: 700px;
    background: #ffffff;
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-cop-border);
    margin-bottom: 25px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

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

.rk-slider-label {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-cop-dark);
    margin: 0;
}

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

input[type=range].rk-cop-slider {
    -webkit-appearance: none;
    width: 100%;
    background: transparent;
}
input[type=range].rk-cop-slider:focus { outline: none; }
input[type=range].rk-cop-slider::-webkit-slider-runnable-track {
    width: 100%;
    height: 10px;
    background: linear-gradient(90deg, var(--rk-cop-success) 0%, var(--rk-cop-warning) 50%, var(--rk-cop-danger) 100%);
    border-radius: 5px;
}
input[type=range].rk-cop-slider::-webkit-slider-thumb {
    height: 30px;
    width: 30px;
    border-radius: 50%;
    background: #ffffff;
    border: 5px solid var(--rk-cop-dark);
    cursor: pointer;
    -webkit-appearance: none;
    margin-top: -10px;
    box-shadow: 0 3px 8px rgba(0,0,0,0.2);
    transition: transform 0.1s;
}
input[type=range].rk-cop-slider::-webkit-slider-thumb:active {
    transform: scale(1.15);
}

/* Wyniki finansowe na żywo */
.rk-cop-results {
    width: 100%;
    max-width: 700px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

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

.rk-cop-stat-title {
    font-size: 13px;
    font-weight: 800;
    color: #64748b;
    text-transform: uppercase;
    margin: 0 0 8px 0;
}

.rk-cop-stat-val {
    font-size: 36px;
    font-weight: 900;
    margin: 0;
    transition: color 0.3s;
}

/* Sekcja Wyjaśnień (Dół) */
.rk-cop-text-panel {
    padding: 40px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-cop-border);
}

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

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

.rk-cop-text-panel p strong {
    color: var(--rk-cop-dark);
}

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

.rk-cop-text-panel a:hover {
    color: #0369a1;
    border-bottom-color: #0369a1;
}

.rk-alert-card {
    background: #fff5f5;
    border-left: 4px solid var(--rk-cop-danger);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin-top: 20px;
}

.rk-alert-card p {
    margin: 0;
    font-size: 15px;
    color: var(--rk-cop-dark);
}

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-cop-header { padding: 30px 20px; }
    .rk-cop-header h2 { font-size: 22px; }
    .rk-cop-sim-panel { padding: 30px 20px; }
    .rk-cop-text-panel { padding: 30px 20px; }
    .rk-cop-results { grid-template-columns: 1fr; gap: 15px; }
    .rk-cop-stat-val { font-size: 32px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#article-pompa",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/"
    },
    "headline": "Jak brak projektu ogrzewania podłogowego niszczy efektywność pompy ciepła?",
    "description": "Zobacz, jak przewymiarowany rozstaw rur i błędna hydraulika zmuszają pompę ciepła do pracy na wysokich parametrach, drastycznie obniżając jej wskaźnik COP i podnosząc rachunki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-14",
    "dateModified": "2026-06-14"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#dataset-pompa",
    "name": "Spadek współczynnika COP pompy ciepła w funkcji temperatury zasilania",
    "description": "Zestawienie analityczne obrazujące spadek efektywności grzewczej i wzrost kosztów eksploatacyjnych na skutek braku zrównoważenia instalacji ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "niska temperatura zasilania pompy ciepła",
      "sprawność pompy ciepła podłogówka",
      "rozstaw rur ogrzewania podłogowego przy pompie ciepła",
      "koszty prądu pompy ciepła kalkulator",
      "pompa obiegowa podłogówka"
    ],
    "measurementTechnique": "Algorytm wyliczający degradację wskaźnika COP o 12.5% na każde 5°C wzrostu temperatury zasilania instalacji płaszczyznowej, sprzężony z estymacją rocznych kosztów prądu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Punkt optymalny: Temperatura zasilania 35°C (COP referencyjne, minimalne koszty).",
        "Degradacja COP: Spadek efektywności grzewczej urządzenia o 12,5% co każde dodatkowe 5°C.",
        "Wzrost oporów: Zbyt długie pętle zwiększają obciążenie pompy obiegowej i zużycie mechaniczne."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#webapp-pompa",
    "name": "Symulator Efektywności Pompy Ciepła (COP)",
    "description": "Narzędzie interaktywne ilustrujące wizualnie i finansowo konsekwencje nieprawidłowego wymiarowania rozstawu rur podłogówki dla sprężarki pompy ciepła.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cop-container">
    <div class="rk-cop-header">
        <h2>
            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
                <path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path>
            </svg>
            Jak brak projektu niszczy efektywność pompy ciepła?
        </h2>
        <p>Błędny montaż wymusza drastyczne podniesienie temperatury zasilania. Zobacz na żywo, jak spadek wskaźnika COP wysysa pieniądze z Twojego portfela.</p>
    </div>

    <div class="rk-cop-layout">
        
        <div class="rk-cop-sim-panel">
            
            <div class="rk-slider-wrapper">
                <div class="rk-slider-header">
                    <p class="rk-slider-label">Wymuszone zasilanie (T<sub>z</sub>):</p>
                    <div class="rk-slider-badge" id="rkCopTempBadge">35°C</div>
                </div>
                <input type="range" class="rk-cop-slider" id="rkCopTempSlider" min="35" max="55" step="1" value="35">
            </div>

            <div class="rk-cop-results">
                <div class="rk-cop-stat-box">
                    <p class="rk-cop-stat-title">Wskaźnik COP</p>
                    <p class="rk-cop-stat-val" id="rkCopValCop" style="color: var(--rk-cop-success);">4.80</p>
                </div>
                <div class="rk-cop-stat-box">
                    <p class="rk-cop-stat-title">Roczne rachunki</p>
                    <p class="rk-cop-stat-val" id="rkCopValCost" style="color: var(--rk-cop-dark);">3000 zł</p>
                </div>
            </div>

        </div>

        <div class="rk-cop-text-panel">
            <h3>Spadek COP to ukryte koszty</h3>
            <p>
                Wykonanie instalacji bez precyzyjnych obliczeń zmusza instalatora do kompensacji błędów poprzez podniesienie krzywej grzewczej. Każde dodatkowe <strong>5°C</strong> powyżej wartości projektowej obniża współczynnik efektywności grzewczej (COP) urządzenia aż o <strong>12,5%</strong>.
            </p>
            <p>
                Zgodnie z inżynieryjną sztuką, <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">niska temperatura zasilania pompy ciepła</a> powinna wynosić <strong>35°C</strong> przy powrocie 30°C (różnica temperatur ΔT = 5K). Tylko to pozwala nowoczesnym sprężarkom na bezstresową pracę w optymalnym punkcie modulacji.
            </p>
            
            <div class="rk-alert-card">
                <p><strong>Zabójcze opory hydrauliczne:</strong> Gdy instalator układa rury bez znajomości strat ciepła, zagęszcza rozstaw lub rozciąga pętle poza bezpieczny limit. Skutkuje to drastycznym oporem wody, zmuszając <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompę obiegową</a> do pracy na najwyższym biegu, co podnosi pobór prądu i niszczy jej podzespoły.</p>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Używamy unikalnych ID dla tego kontenera
    const slider = document.getElementById('rkCopTempSlider');
    const badge = document.getElementById('rkCopTempBadge');
    const valCop = document.getElementById('rkCopValCop');
    const valCost = document.getElementById('rkCopValCost');

    // Parametry referencyjne
    const baseTemp = 35;
    const baseCOP = 4.80;
    const baseCost = 3000;

    function updateCOP() {
        if (!slider || !badge || !valCop || !valCost) return; // Zabezpieczenie przed brakiem elementu

        const currentTemp = parseInt(slider.value);
        badge.textContent = currentTemp + '°C';

        // Algorytm spadku COP: -12.5% co każde 5 stopni
        const steps = (currentTemp - baseTemp) / 5;
        const currentCOP = baseCOP * Math.pow(0.875, steps);
        
        // Wyliczenie rachunku
        const currentCost = baseCost * (baseCOP / currentCOP);

        // Aktualizacja UI
        valCop.textContent = currentCOP.toFixed(2);
        valCost.textContent = Math.round(currentCost) + ' zł';

        // Zmiana kolorystyki w zależności od obciążenia
        if (currentTemp <= 38) {
            valCop.style.color = 'var(--rk-cop-success)';
            valCost.style.color = 'var(--rk-cop-dark)';
        } else if (currentTemp > 38 && currentTemp <= 45) {
            valCop.style.color = 'var(--rk-cop-warning)';
            valCost.style.color = 'var(--rk-cop-warning)';
        } else {
            valCop.style.color = 'var(--rk-cop-danger)';
            valCost.style.color = 'var(--rk-cop-danger)';
        }
    }

    if (slider) {
        slider.addEventListener('input', updateCOP);
        // Inicjalizacja przy załadowaniu
        updateCOP();
    }
});
</script>



<style>
:root {
    --rk-opory-dark: #0f172a;
    --rk-opory-primary: #0284c7;
    --rk-opory-bg: #ffffff;
    --rk-opory-border: #e2e8f0;
    --rk-opory-text: #334155;
    --rk-opory-danger: #ef4444;
    --rk-opory-danger-bg: #fef2f2;
    --rk-opory-warning: #f59e0b;
    --rk-opory-success: #10b981;
}

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

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

.rk-opory-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 10px 0;
    color: #ffffff;
    line-height: 1.3;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-opory-header h2 svg {
    color: var(--rk-opory-primary);
}

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

/* Główny układ - Jedna Kolumna */
.rk-opory-layout {
    display: flex;
    flex-direction: column;
    background: var(--rk-opory-bg);
}

/* Sekcja Symulatora (Góra) */
.rk-opory-sim-panel {
    padding: 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* Animowany Wskaźnik (Gauge) */
.rk-gauge-wrapper {
    position: relative;
    width: 240px;
    height: 130px;
    margin-bottom: 30px;
}

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

.rk-gauge-bg {
    fill: none;
    stroke: #e2e8f0;
    stroke-width: 12;
    stroke-linecap: round;
}

.rk-gauge-val {
    fill: none;
    stroke: var(--rk-opory-success);
    stroke-width: 12;
    stroke-linecap: round;
    stroke-dasharray: 283;
    stroke-dashoffset: 283;
    transition: stroke-dashoffset 0.4s ease, stroke 0.4s ease;
}

.rk-gauge-text {
    position: absolute;
    bottom: -15px;
    left: 0;
    width: 100%;
    text-align: center;
}

.rk-gauge-kpa {
    font-size: 38px;
    font-weight: 900;
    color: var(--rk-opory-dark);
    line-height: 1;
    margin: 0;
}

.rk-gauge-label {
    font-size: 14px;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    margin: 6px 0 0 0;
}

/* Stan przepływu rury */
.rk-pipe-status {
    width: 100%;
    max-width: 600px;
    height: 14px;
    background: #e2e8f0;
    border-radius: 7px;
    margin-bottom: 40px;
    position: relative;
    overflow: hidden;
}

.rk-pipe-water {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    background: repeating-linear-gradient(
        45deg,
        var(--rk-opory-primary),
        var(--rk-opory-primary) 12px,
        #38bdf8 12px,
        #38bdf8 24px
    );
    background-size: 34px 100%;
    animation: flowPipe 1s linear infinite;
    transition: opacity 0.3s;
}

@keyframes flowPipe {
    0% { background-position: 0 0; }
    100% { background-position: 34px 0; }
}

/* Sekcja Suwaka */
.rk-slider-box {
    width: 100%;
    max-width: 600px;
    background: #f8fafc;
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-opory-border);
}

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

.rk-slider-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-opory-dark);
    margin: 0;
}

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

input[type=range].rk-custom-slider {
    -webkit-appearance: none;
    width: 100%;
    background: transparent;
}

input[type=range].rk-custom-slider:focus { outline: none; }

input[type=range].rk-custom-slider::-webkit-slider-runnable-track {
    width: 100%;
    height: 10px;
    background: #cbd5e1;
    border-radius: 5px;
}

input[type=range].rk-custom-slider::-webkit-slider-thumb {
    height: 28px;
    width: 28px;
    border-radius: 50%;
    background: #ffffff;
    border: 5px solid var(--rk-opory-primary);
    cursor: pointer;
    -webkit-appearance: none;
    margin-top: -9px;
    box-shadow: 0 3px 6px rgba(0,0,0,0.2);
    transition: transform 0.1s;
}

input[type=range].rk-custom-slider::-webkit-slider-thumb:active {
    transform: scale(1.15);
}

.rk-alert-msg {
    margin-top: 20px;
    padding: 12px;
    background: var(--rk-opory-danger-bg);
    border: 1px solid #fecaca;
    border-radius: 8px;
    color: var(--rk-opory-danger);
    font-size: 14px;
    font-weight: 800;
    text-align: center;
    display: none;
}

/* Sekcja Wyliczeń (Dół) */
.rk-opory-math-panel {
    padding: 0 40px 40px 40px;
}

.rk-opory-math-panel h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-opory-dark);
    margin: 0 0 20px 0;
    border-top: 1px solid var(--rk-opory-border);
    padding-top: 40px;
}

.rk-math-text {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-opory-text);
    margin: 0 0 25px 0;
}

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

.rk-math-main-eq {
    font-family: 'Courier New', Courier, monospace;
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-opory-dark);
    margin: 0 0 20px 0;
    text-align: center;
    background: #ffffff;
    padding: 12px;
    border: 1px solid var(--rk-opory-border);
    border-radius: 8px;
}

.rk-math-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-math-list li {
    font-size: 15px;
    padding-left: 20px;
    position: relative;
    color: var(--rk-opory-text);
}

.rk-math-list li::before {
    content: '→';
    position: absolute;
    left: 0;
    color: var(--rk-opory-primary);
    font-weight: 900;
}

.rk-math-highlight {
    font-weight: 800;
    color: var(--rk-opory-dark);
}

.rk-math-danger {
    color: var(--rk-opory-danger);
    font-weight: 900;
}

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-opory-header { padding: 30px 20px; }
    .rk-opory-header h2 { font-size: 24px; }
    .rk-opory-sim-panel, .rk-opory-math-panel { padding: 25px 20px; }
    .rk-opory-math-panel h3 { padding-top: 30px; }
    .rk-math-list { grid-template-columns: 1fr; }
    .rk-gauge-wrapper { width: 200px; height: 110px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#article-opory",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/"
    },
    "headline": "Jak za długa pętla podłogówki blokuje przepływ wody i jak tego uniknąć?",
    "description": "Zrozum fizykę instalacji. Sprawdź inżynieryjne wyliczenia oporów hydraulicznych i przetestuj interaktywny symulator blokady przepływu wody w rurach PEX.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-14",
    "dateModified": "2026-06-14"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#dataset-opory",
    "name": "Parametry oporów hydraulicznych rury grzewczej 16 mm",
    "description": "Zestawienie obliczeniowe obrazujące przyrost strat ciśnienia w funkcji długości pętli ogrzewania płaszczyznowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna długość pętli ogrzewania podłogowego",
      "za długa pętla podłogówki",
      "opory hydrauliczne podłogówki",
      "obliczenia przepływu i strat ciśnienia",
      "zrównoważenie hydrauliczne rotametry"
    ],
    "measurementTechnique": "Algorytmiczne wyznaczanie strat ciśnienia z zastosowaniem fizycznego wzoru na ciepło właściwe wody i przepływ masowy w korelacji z oporem jednostkowym 180 Pa/m.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Limit normatywny: 120 metrów bieżących dla przewodu PEX 16mm (wraz z dobiegiem).",
        "Przepływ graniczny: Opór jednostkowy na poziomie ok. 180 Pa/m przy przepływie 3,4 l/min.",
        "Blokada hydrauliczna: Przekroczenie 120m generuje opory liniowe przekraczające 25-30 kPa, zatrzymując przepływ na rotametrach."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#webapp-opory",
    "name": "Symulator Oporów Hydraulicznych Pętli",
    "description": "Interaktywny panel wizualizujący na wirtualnym manometrze moment blokady przepływu wody w przypadku błędnego wytyczenia zbyt długiej pętli grzewczej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-opory-container">
    <div class="rk-opory-header">
        <h2>
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
                <path d="M22 12h-4l-3 9L9 3l-3 9H2"></path>
            </svg>
            Jak za długa pętla blokuje instalację?
        </h2>
        <p>Maksymalna dopuszczalna długość pojedynczej pętli dla rury 16 mm wynosi dokładnie 120 mb. Zobacz, co się stanie na manometrze, gdy przekroczysz tę wartość.</p>
    </div>

    <div class="rk-opory-layout">
        
        <div class="rk-opory-sim-panel">
            
            <div class="rk-gauge-wrapper">
                <svg class="rk-gauge-svg" viewBox="0 0 200 100">
                    <path class="rk-gauge-bg" d="M 10 90 A 90 90 0 0 1 190 90"></path>
                    <path class="rk-gauge-val" id="svgGaugeVal" d="M 10 90 A 90 90 0 0 1 190 90"></path>
                </svg>
                <div class="rk-gauge-text">
                    <p class="rk-gauge-kpa" id="uiPressureVal">10.8</p>
                    <p class="rk-gauge-label">Strata (kPa)</p>
                </div>
            </div>

            <div class="rk-pipe-status" id="uiPipeFlow">
                <div class="rk-pipe-water" id="uiPipeWater"></div>
            </div>

            <div class="rk-slider-box">
                <div class="rk-slider-header">
                    <p class="rk-slider-title">Zaprojektowana długość pętli:</p>
                    <div class="rk-slider-val-badge" id="uiLengthBadge">60 mb</div>
                </div>
                <input type="range" class="rk-custom-slider" id="sliderLength" min="60" max="160" step="1" value="60">
                <div class="rk-alert-msg" id="uiAlertMsg">
                    UWAGA! Przepływ całkowicie zablokowany. Opory przekraczają wydolność standardowej pompy obiegowej.
                </div>
            </div>

        </div>

        <div class="rk-opory-math-panel">
            <h3>Inżynieryjne wyliczenie strat ciśnienia</h3>
            <p class="rk-math-text">
                W profesjonalnym projekcie dąży się do tego, aby długości poszczególnych pętli w obrębie jednego rozdzielacza były zbliżone do siebie z tolerancją do 10-15%. Przekroczenie limitu generuje potężne opory, co uniemożliwia hydrauliczne zrównoważenie instalacji na rotametrach.
            </p>
            
            <div class="rk-math-formula-box">
                <div class="rk-math-main-eq">Q = m &times; c<sub>w</sub> &times; &Delta;T</div>
                <ul class="rk-math-list">
                    <li>Zapotrzebowanie pokoju: <span class="rk-math-highlight">Q = 1200 W</span></li>
                    <li>Zakładana różnica temp.: <span class="rk-math-highlight">&Delta;T = 5 K</span></li>
                    <li>Ciepło właściwe wody: <span class="rk-math-highlight">c<sub>w</sub> = 4186 J/(kg&middot;K)</span></li>
                    <li>Wymagany przepływ masowy (m): <span class="rk-math-highlight">206 kg/h</span> (ok. 3,4 l/min)</li>
                </ul>
            </div>

            <p class="rk-math-text">
                Dla standardowej rury 16x2 mm przy takim przepływie, opór jednostkowy wynosi około <strong>180 Pa/m</strong>.
            </p>
            
            <p class="rk-math-text">
                Dla granicznej pętli 120 m łączna strata ciśnienia to:<br>
                <span class="rk-math-highlight" style="font-size: 18px;">120 &times; 180 = 21600 Pa = <span class="rk-math-danger">21,6 kPa</span></span>
            </p>
            <p class="rk-math-text">
                Otrzymana wartość to fizyczna granica tłoczenia dla standardowych pomp obiegowych wbudowanych w domowe urządzenia grzewcze. Ułożenie pętli o długości 150-160 mb generuje opory liniowe przekraczające 25-30 kPa, co całkowicie blokuje swobodny przepływ wody.
            </p>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const slider = document.getElementById('sliderLength');
    const badge = document.getElementById('uiLengthBadge');
    const pressureVal = document.getElementById('uiPressureVal');
    const gaugePath = document.getElementById('svgGaugeVal');
    const pipeWater = document.getElementById('uiPipeWater');
    const alertMsg = document.getElementById('uiAlertMsg');

    // Całkowity obwód ścieżki (dla promienia 90) to ok 283
    const maxDash = 283; 

    function updateSimulator() {
        const length = parseFloat(slider.value);
        badge.textContent = length + ' mb';

        // Wyliczenie: Długość * 180 Pa / 1000 = kPa
        const kpa = (length * 180) / 1000;
        pressureVal.textContent = kpa.toFixed(1);

        // Skalowanie manometru (zakres od 60m do 160m)
        const percentage = (length - 60) / (160 - 60); 
        const offset = maxDash - (percentage * maxDash);
        gaugePath.style.strokeDashoffset = offset;

        // Logika ostrzegawcza
        if (length > 120) {
            gaugePath.style.stroke = 'var(--rk-opory-danger)';
            pipeWater.style.opacity = '0.1'; // Brak przepływu
            alertMsg.style.display = 'block';
            pipeWater.style.animation = 'none';
        } else {
            const safePercentage = length / 120;
            
            // Kolorystyka wskaźnika
            if (length > 100) {
                gaugePath.style.stroke = 'var(--rk-opory-warning)';
            } else {
                gaugePath.style.stroke = 'var(--rk-opory-success)';
            }
            
            pipeWater.style.opacity = '1';
            alertMsg.style.display = 'none';
            
            // Szybkość animacji zwalnia w miarę wzrostu oporów
            const animDuration = 0.5 + (safePercentage * 1.5);
            pipeWater.style.animation = `flowPipe ${animDuration}s linear infinite`;
        }
    }

    slider.addEventListener('input', updateSimulator);
    
    // Inicjalizacja przy pierwszym załadowaniu
    updateSimulator();
});
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-primary: #0284c7;
    --rk-calc-bg: #ffffff;
    --rk-calc-surface: #f8fafc;
    --rk-calc-border: #e2e8f0;
    --rk-calc-text: #334155;
    --rk-calc-danger: #ef4444;
    --rk-calc-success: #10b981;
    --rk-calc-warning: #f59e0b;
}

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

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

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

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

/* UI Kalkulatora */
.rk-calc-ui {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: var(--rk-calc-bg);
}

/* Sekcja Inputów */
.rk-calc-inputs {
    padding: 40px;
    background: #ffffff;
    border-right: 1px solid var(--rk-calc-border);
}

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

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

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

.rk-calc-value-badge {
    color: var(--rk-calc-primary);
    background: #f0f9ff;
    padding: 4px 10px;
    border-radius: 6px;
    font-weight: 800;
    font-size: 14px;
}

input[type=range].rk-slider {
    -webkit-appearance: none;
    width: 100%;
    background: transparent;
}

input[type=range].rk-slider:focus {
    outline: none;
}

input[type=range].rk-slider::-webkit-slider-runnable-track {
    width: 100%;
    height: 8px;
    cursor: pointer;
    background: #e2e8f0;
    border-radius: 4px;
    border: 1px solid #cbd5e1;
}

input[type=range].rk-slider::-webkit-slider-thumb {
    height: 24px;
    width: 24px;
    border-radius: 50%;
    background: var(--rk-calc-primary);
    cursor: pointer;
    -webkit-appearance: none;
    margin-top: -9px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    border: 3px solid #ffffff;
    transition: transform 0.1s;
}

input[type=range].rk-slider::-webkit-slider-thumb:active {
    transform: scale(1.15);
}

/* Sekcja Wyników */
.rk-calc-outputs {
    padding: 40px;
    background: var(--rk-calc-surface);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 15px;
}

.rk-out-box {
    background: #ffffff;
    border: 1px solid var(--rk-calc-border);
    border-radius: 12px;
    padding: 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-out-title {
    font-size: 13px;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    margin: 0;
}

.rk-out-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-calc-dark);
    margin: 5px 0 0 0;
}

/* Główny wynik - Długość pętli */
.rk-out-primary {
    background: var(--rk-calc-primary);
    color: #ffffff;
    border: none;
    flex-direction: column;
    align-items: flex-start;
    position: relative;
    overflow: hidden;
    transition: all 0.3s ease;
}

.rk-out-primary .rk-out-title {
    color: #bae6fd;
}

.rk-out-primary .rk-out-val {
    color: #ffffff;
    font-size: 38px;
    margin-bottom: 5px;
}

.rk-out-primary::after {
    content: 'm.b.';
    position: absolute;
    right: 20px;
    top: 20px;
    font-size: 24px;
    font-weight: 800;
    opacity: 0.3;
}

/* Stan Zmiany - Wymagany podział */
.rk-out-primary.is-warning {
    background: var(--rk-calc-danger);
}

.rk-out-primary.is-warning .rk-out-title {
    color: #fca5a5;
}

.rk-division-info {
    display: none;
    width: 100%;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid rgba(255,255,255,0.2);
}

.rk-out-primary.is-warning .rk-division-info {
    display: block;
}

.rk-division-text {
    font-size: 15px;
    font-weight: 800;
    color: #ffffff;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-division-text span {
    background: #ffffff;
    color: var(--rk-calc-danger);
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 16px;
}

/* Sekcja Algorytmu (Tekst) */
.rk-calc-text-section {
    padding: 40px;
    background: #ffffff;
    border-top: 1px solid var(--rk-calc-border);
}

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

.rk-step {
    margin-bottom: 20px;
    padding-left: 20px;
    border-left: 3px solid var(--rk-calc-primary);
}

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

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

.rk-formula {
    display: inline-block;
    background: #f1f5f9;
    padding: 4px 10px;
    border-radius: 6px;
    font-family: monospace;
    font-weight: 700;
    color: var(--rk-calc-primary);
    border: 1px solid #e2e8f0;
    margin-top: 8px;
}

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

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

.rk-calc-cta p {
    color: #64748b;
    margin: 0 auto 25px auto;
    max-width: 600px;
    line-height: 1.6;
}

.rk-btn-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: var(--rk-calc-primary);
    color: #ffffff;
    font-size: 16px;
    font-weight: 800;
    padding: 18px 35px;
    border-radius: 12px;
    text-decoration: none !important;
    transition: all 0.3s;
}

.rk-btn-action:hover {
    background: #0369a1;
    transform: translateY(-3px);
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.4);
}

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-calc-header { padding: 25px 20px; }
    .rk-calc-header h2 { font-size: 22px; }
    
    .rk-calc-ui { grid-template-columns: 1fr; }
    .rk-calc-inputs, .rk-calc-outputs, .rk-calc-text-section, .rk-calc-cta { padding: 25px 20px; }
    
    .rk-calc-inputs { border-right: none; border-bottom: 1px solid var(--rk-calc-border); }
    
    .rk-out-primary .rk-out-val { font-size: 32px; }
    .rk-out-primary::after { display: none; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#article-kalkulator",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/"
    },
    "headline": "Algorytm kalkulatora doboru pętli i rozstawu rur ogrzewania podłogowego",
    "description": "Zweryfikuj poprawność instalacji. Inżynierski kalkulator obliczający optymalny rozstaw rur, długość pętli i konieczność jej podziału ze względów hydraulicznych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski – Budowa bez ściemy",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-14",
    "dateModified": "2026-06-14"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#dataset-kalkulator",
    "name": "Parametry brzegowe pętli ogrzewania podłogowego według PN-EN 1264",
    "description": "Zbiór reguł matematycznych określających gęstość strumienia cieplnego, bezpieczną długość przewodu PEX 16mm oraz wymogi dotyczące podziału pętli.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski – Budowa bez ściemy"
    },
    "keywords": [
      "maksymalna długość pętli ogrzewania podłogowego",
      "jak gęsto układać rury podłogówki",
      "kalkulator długości rur ogrzewania",
      "obliczenia OZC dla podłogówki",
      "podział pętli ogrzewania podłogowego"
    ],
    "measurementTechnique": "Kalkulacja inżynierska korelująca OZC z powierzchnią grzewczą. Powyżej limitu hydraulicznego (120m) następuje matematyczny podział na wymaganą liczbę mniejszych pętli.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Dobór rozstawu: Zależny od gęstości q (W/m2). Powyżej 80 W/m2 - 10 cm, 50-80 W/m2 - 15 cm, poniżej 50 W/m2 - 20 cm.",
        "Limit hydrauliczny: Ostrzeżenie i rekomendacja podziału przy przekroczeniu długości pętli 120 mb.",
        "Optymalizacja ilości obwodów: Kalkulacja wymaganej liczby sekcji rozdzielacza do obsługi konkretnego pomieszczenia."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#webapp-kalkulator",
    "name": "Inżynierski Kalkulator Podziału Pętli Grzewczych",
    "description": "Dynamiczne narzędzie symulacyjne do wyliczania długości rur ogrzewania płaszczyznowego wraz ze zautomatyzowanym modułem sugerującym wymaganą ilość pętli.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski – Budowa bez ściemy"
    }
  }
]
</script>

<div class="rk-calc-container">
    <div class="rk-calc-header">
        <h2>Algorytm i kalkulator doboru pętli ogrzewania podłogowego</h2>
        <p>Zweryfikuj poprawność założeń instalacyjnych na podstawie inżynieryjnych wzorów fizyki budowli.</p>
    </div>

    <div class="rk-calc-ui">
        <div class="rk-calc-inputs">
            <div class="rk-calc-group">
                <div class="rk-calc-label">
                    <span>Powierzchnia grzejna pokoju</span>
                    <span class="rk-calc-value-badge" id="valArea">15 m&sup2;</span>
                </div>
                <input type="range" class="rk-slider" id="inArea" min="5" max="50" step="1" value="15">
            </div>

            <div class="rk-calc-group">
                <div class="rk-calc-label">
                    <span>Projektowe OZC pokoju</span>
                    <span class="rk-calc-value-badge" id="valOzc">1000 W</span>
                </div>
                <input type="range" class="rk-slider" id="inOzc" min="200" max="4500" step="50" value="1000">
            </div>

            <div class="rk-calc-group">
                <div class="rk-calc-label">
                    <span>Długość dobiegu do rozdzielacza</span>
                    <span class="rk-calc-value-badge" id="valDobieg">5 m</span>
                </div>
                <input type="range" class="rk-slider" id="inDobieg" min="1" max="25" step="1" value="5">
            </div>
        </div>

        <div class="rk-calc-outputs">
            <div class="rk-out-box">
                <div>
                    <p class="rk-out-title">Gęstość strumienia (q)</p>
                    <p class="rk-out-val" id="outFlux">76.7 W/m&sup2;</p>
                </div>
            </div>

            <div class="rk-out-box">
                <div>
                    <p class="rk-out-title">Zalecany rozstaw rur (b)</p>
                    <p class="rk-out-val" id="outSpacing">15 cm</p>
                </div>
            </div>

            <div class="rk-out-box rk-out-primary" id="boxLength">
                <p class="rk-out-title">Całkowita długość instalacji w pokoju</p>
                <p class="rk-out-val" id="outLength">110.5 m</p>
                
                <div class="rk-division-info" id="alertDivision">
                    <p class="rk-division-text">
                        Podział na: <span id="outLoopsCount">2 pętle</span> (śr. <span id="outSingleLoopLen">65</span> m/pętlę)
                    </p>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-calc-text-section">
        <h3>Procedura obliczeniowa krok po kroku:</h3>
        
        <div class="rk-step">
            <h4>Krok 1: Skorygowane obciążenie cieplne (Q<sub>obl</sub>)</h4>
            <p>Wyznaczamy realne zapotrzebowanie na moc grzewczą, uwzględniając sprawność systemu i straty w dół do gruntu. Współczynnik 1.15 to inżynierski zapas bezpieczeństwa.<br>
            <span class="rk-formula">Q<sub>obl</sub> = Q<sub>OZC</sub> &times; 1,15</span></p>
        </div>

        <div class="rk-step">
            <h4>Krok 2: Wymagana gęstość strumienia cieplnego (q)</h4>
            <p>Dzielimy moc przez powierzchnię. Według normy PN-EN 1264 maksymalna bezpieczna gęstość strumienia dla strefy stałego przebywania ludzi wynosi 100 W/m&sup2; (temperatura posadzki 29&deg;C).<br>
            <span class="rk-formula">q = Q<sub>obl</sub> / Powierzchnia [W/m&sup2;]</span></p>
        </div>

        <div class="rk-step">
            <h4>Krok 3: Wybór rozstawu rur (b)</h4>
            <p>Na podstawie gęstości strumienia dobieramy gęstość ułożenia rury:<br>
            &bull; <strong>q &gt; 80 W/m&sup2;</strong> &rarr; rozstaw <strong>10 cm</strong> (zapotrzebowanie: 10 m.b./m&sup2;)<br>
            &bull; <strong>q = 50 - 80 W/m&sup2;</strong> &rarr; rozstaw <strong>15 cm</strong> (zapotrzebowanie: 6,7 m.b./m&sup2;)<br>
            &bull; <strong>q &lt; 50 W/m&sup2;</strong> &rarr; rozstaw <strong>20 cm</strong> (zapotrzebowanie: 5 m.b./m&sup2;)</p>
        </div>

        <div class="rk-step">
            <h4>Krok 4: Całkowita długość rur i podział na pętle</h4>
            <p>Obliczamy całkowitą długość rury, uwzględniając dobiegi do rozdzielacza. Zgodnie z inżynierską sztuką, jeśli wynik przekracza bezpieczną granicę 100-120 mb, algorytm wymusza podział pomieszczenia na adekwatną liczbę mniejszych obwodów, aby zachować poprawne parametry hydrauliczne.<br>
            <span class="rk-formula">L = (Powierzchnia &times; Zapotrzebowanie/m&sup2;) + (Dobieg &times; 2)</span></p>
        </div>
    </div>

    <div class="rk-calc-cta">
        <h3>Nie zostawiaj hydrauliki przypadkowi</h3>
        <p>Błędnie dobrany rozstaw zablokuje przepływ i drastycznie podniesie rachunki za ogrzewanie. Zamów precyzyjne opracowanie inżynierskie.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-action">
            ZAMÓW PROJEKT PODŁOGÓWKI
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Referencje do suwaków i etykiet
    const inArea = document.getElementById('inArea');
    const valArea = document.getElementById('valArea');
    
    const inOzc = document.getElementById('inOzc');
    const valOzc = document.getElementById('valOzc');
    
    const inDobieg = document.getElementById('inDobieg');
    const valDobieg = document.getElementById('valDobieg');

    // Referencje do wyników
    const outFlux = document.getElementById('outFlux');
    const outSpacing = document.getElementById('outSpacing');
    const outLength = document.getElementById('outLength');
    
    const boxLength = document.getElementById('boxLength');
    const outLoopsCount = document.getElementById('outLoopsCount');
    const outSingleLoopLen = document.getElementById('outSingleLoopLen');

    // Główna funkcja licząca
    function calculate() {
        const area = parseFloat(inArea.value);
        const ozc = parseFloat(inOzc.value);
        const dobieg = parseFloat(inDobieg.value);

        // Krok 1 & 2
        const q_obl = ozc * 1.15;
        const q = q_obl / area;

        // Krok 3
        let spacing = 0;
        let factor = 0; // ile metrów rury na 1 m2

        if (q > 80) {
            spacing = 10;
            factor = 10;
        } else if (q >= 50 && q <= 80) {
            spacing = 15;
            factor = 6.7;
        } else {
            spacing = 20;
            factor = 5.0;
        }

        // Krok 4: Całkowita długość z dobiegami
        const totalLength = (area * factor) + (dobieg * 2);
        
        // Logika podziału na pętle (Limit 110m na jedną pętlę roboczą jako bezpieczny bufor)
        const safeLimit = 110; 
        const loopsNeeded = Math.ceil(totalLength / safeLimit);

        // Aktualizacja DOM
        outFlux.innerHTML = q.toFixed(1) + ' W/m&sup2;';
        outSpacing.innerHTML = spacing + ' cm';
        outLength.innerHTML = totalLength.toFixed(1);

        // Obsługa stanu z podziałem (wymagane > 1 pętli)
        if (loopsNeeded > 1) {
            boxLength.classList.add('is-warning');
            outLoopsCount.innerHTML = loopsNeeded + ' pętle';
            
            // Średnia długość pojedynczej pętli po podziale
            const singleLoopLen = totalLength / loopsNeeded;
            outSingleLoopLen.innerHTML = singleLoopLen.toFixed(1);
        } else {
            boxLength.classList.remove('is-warning');
        }
    }

    // Nasłuchiwacze na eventy 'input'
    inArea.addEventListener('input', function() {
        valArea.innerHTML = this.value + ' m&sup2;';
        calculate();
    });

    inOzc.addEventListener('input', function() {
        valOzc.innerHTML = this.value + ' W';
        calculate();
    });

    inDobieg.addEventListener('input', function() {
        valDobieg.innerHTML = this.value + ' m';
        calculate();
    });

    // Inicjalizacja
    calculate();
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-primary: #dc2626; /* Czerwony jako główny akcent dla sekcji błędów */
    --rk-err-primary-hover: #b91c1c;
    --rk-err-bg: #ffffff;
    --rk-err-surface: #f8fafc;
    --rk-err-border: #e2e8f0;
    --rk-err-text: #334155;
    --rk-err-blue: #0284c7;
}

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

/* Nagłówek */
.rk-err-header {
    padding: 40px 50px 35px;
    background: linear-gradient(135deg, var(--rk-err-dark) 0%, #1e293b 100%);
    color: #ffffff;
    border-bottom: 4px solid var(--rk-err-primary);
}

.rk-err-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
    display: flex;
    align-items: center;
    gap: 15px;
}

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

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

/* Układ główny */
.rk-err-layout {
    display: flex;
    background: var(--rk-err-bg);
}

/* Pasek boczny (Desktop) */
.rk-err-sidebar {
    width: 360px;
    background: var(--rk-err-surface);
    border-right: 1px solid var(--rk-err-border);
    padding: 30px 20px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rk-err-tab-btn {
    width: 100%;
    text-align: left;
    padding: 16px 20px;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    color: #64748b;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-err-tab-btn:hover {
    background: #f1f5f9;
    color: var(--rk-err-primary);
}

.rk-err-tab-btn.active {
    background: #ffffff;
    border-color: #fecaca;
    color: var(--rk-err-primary);
    box-shadow: 0 4px 10px rgba(220, 38, 38, 0.05);
}

.rk-err-tab-num {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    background: #e2e8f0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: inherit;
    font-weight: 900;
    font-size: 13px;
    transition: all 0.3s;
    flex-shrink: 0;
}

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

/* Obszar treści */
.rk-err-content-area {
    flex: 1;
    padding: 40px;
    position: relative;
    min-height: 250px;
}

.rk-err-panel {
    display: none;
    animation: errFadeIn 0.4s ease forwards;
}

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

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

/* Triggery mobilne */
.rk-err-mobile-trigger {
    display: none;
    width: 100%;
    text-align: left;
    padding: 20px;
    background: var(--rk-err-surface);
    border: 1px solid var(--rk-err-border);
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-err-dark);
    margin-bottom: 10px;
    cursor: pointer;
    align-items: center;
    justify-content: space-between;
}

.rk-err-mobile-trigger.active {
    border-color: var(--rk-err-primary);
    color: var(--rk-err-primary);
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    margin-bottom: 0;
    border-bottom: none;
    background: #fff5f5;
}

.rk-err-toggle-icon {
    transition: transform 0.3s;
}

.rk-err-mobile-trigger.active .rk-err-toggle-icon {
    transform: rotate(180deg);
}

/* Wnętrze paneli */
.rk-err-panel-inner {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

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

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

.rk-err-panel p strong {
    color: var(--rk-err-primary);
}

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

.rk-err-panel a:hover {
    color: #0369a1;
    border-bottom-color: #0369a1;
}

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-err-header, .rk-err-content-area { padding: 30px 20px; }
    .rk-err-header h2 { font-size: 24px; }
    
    .rk-err-layout { flex-direction: column; }
    .rk-err-sidebar { display: none; }
    
    .rk-err-content-area { padding: 20px; }
    
    .rk-err-panel {
        display: block;
        margin-bottom: 10px;
    }
    
    .rk-err-mobile-trigger {
        display: flex;
    }
    
    .rk-err-panel-inner {
        padding: 20px;
        background: #ffffff;
        border: 1px solid var(--rk-err-primary);
        border-top: none;
        border-bottom-left-radius: 12px;
        border-bottom-right-radius: 12px;
        display: none;
    }
    
    .rk-err-panel.active .rk-err-panel-inner {
        display: flex;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/"
    },
    "headline": "Najczęstsze błędy instalatorów przy montażu podłogówki bez projektu",
    "description": "Zestawienie krytycznych błędów instalacyjnych: brak dylatacji, błędne średnice rur, ignorowanie oporu okładzin i montaż pod stałą zabudową.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski – Budowa bez ściemy",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-14",
    "dateModified": "2026-06-14"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#dataset-bledy",
    "name": "Rejestr Krytycznych Błędów Wykonawczych Ogrzewania Płaszczyznowego",
    "description": "Baza danych powiązanych błędów fizycznych instalacji z ich mierzalnymi skutkami eksploatacyjnymi, wykraczającymi poza normy ujęte w PN-EN 1264.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski – Budowa bez ściemy"
    },
    "keywords": [
      "jak rodzaj okładziny podłogowej wpływa na ogrzewanie",
      "strefa brzegowa obwodowa w ogrzewaniu podłogowym",
      "izolacja brzegowa i dylatacje w instalacji",
      "jaka średnica rury zasilającej rozdzielacz",
      "wodne ogrzewanie podłogowe a meble"
    ],
    "measurementTechnique": "Analiza inżynierska skutków odchyleń od normatywnych projektów technicznych, diagnozująca spadek sprawności systemu oraz uszkodzenia mechaniczne jastrychu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Opór okładziny: Parkiet blokuje emisję cieplną, obniżając temp. o 4°C w stosunku do założeń.",
        "Brak dylatacji: Ryzyko pękania posadzek powyżej 40 m2 lub 8 mb długości.",
        "Zła średnica: Rura 20 mm dla 10 pętli tworzy wąskie gardło hydrauliczne.",
        "Strefy brzegowe: Ignorowanie przeszkleń prowadzi do strumieni zimna."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#webapp-bledy",
    "name": "Baza Błędów Instalacyjnych (Interaktywny Komponent)",
    "description": "Moduł edukacyjny pozwalający inwestorowi na identyfikację krytycznych punktów awarii w systemie ogrzewania płaszczyznowego wynikających z braku dokumentacji.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski – Budowa bez ściemy"
    }
  }
]
</script>

<div class="rk-err-container" id="skaner-bledow-app">
    <div class="rk-err-header">
        <h2>
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
                <path d="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>
            Skaner Krytycznych Błędów Instalatorskich
        </h2>
        <p>Montaż "na pamięć" niemal zawsze kończy się uszkodzeniem posadzki lub brakiem komfortu. Sprawdź 5 najczęstszych punktów zapalnych w instalacjach bez projektu.</p>
    </div>

    <div class="rk-err-layout">
        <div class="rk-err-sidebar">
            <button class="rk-err-tab-btn active" data-target="okladziny">
                <div class="rk-err-tab-num">1</div>
                Ignorowanie oporu okładzin
            </button>
            <button class="rk-err-tab-btn" data-target="strefy">
                <div class="rk-err-tab-num">2</div>
                Brak stref brzegowych
            </button>
            <button class="rk-err-tab-btn" data-target="dylatacje">
                <div class="rk-err-tab-num">3</div>
                Brak dylatacji (Pękanie)
            </button>
            <button class="rk-err-tab-btn" data-target="srednice">
                <div class="rk-err-tab-num">4</div>
                Złe średnice rury zasilającej
            </button>
            <button class="rk-err-tab-btn" data-target="meble">
                <div class="rk-err-tab-num">5</div>
                Montaż pod stałą zabudową
            </button>
        </div>

        <div class="rk-err-content-area" id="rkErrContentArea">
            
            <div class="rk-err-panel active" id="err-okladziny">
                <button class="rk-err-mobile-trigger active">
                    1. Ignorowanie oporu okładzin
                    <svg class="rk-err-toggle-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-err-panel-inner">
                    <div>
                        <h3>Blokada strumienia cieplnego</h3>
                        <p>Najgroźniejszym błędem jest całkowite ignorowanie zjawiska oporu termicznego materiałów. Zastosowanie grubego parkietu drewnianego zamiast płytek ceramicznych tworzy izolator, który <strong>obniża temperaturę w pomieszczeniu nawet o 4°C</strong> w stosunku do początkowych założeń i wymusza wyższe koszty pracy pompy ciepła.</p>
                        <p>Dowiedz się więcej, <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">jak rodzaj okładziny podłogowej wpływa na wydajność</a> systemu.</p>
                    </div>
                </div>
            </div>

            <div class="rk-err-panel" id="err-strefy">
                <button class="rk-err-mobile-trigger">
                    2. Brak stref brzegowych
                    <svg class="rk-err-toggle-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-err-panel-inner">
                    <div>
                        <h3>Kondensacja i strumienie zimna</h3>
                        <p>Instalatorzy rutynowo ignorują zwiększone zapotrzebowanie na moc przy oknach tarasowych typu HS. Prowadzi to do powstawania wychłodzonych mas powietrza ("strumieni zimna" spływających po szybie) oraz <strong>niebezpiecznej kondensacji pary wodnej</strong> na profilach okiennych.</p>
                        <p>Prawidłowo zaprojektowana <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/">strefa brzegowa (obwodowa)</a> w 100% rozwiązuje ten problem.</p>
                    </div>
                </div>
            </div>

            <div class="rk-err-panel" id="err-dylatacje">
                <button class="rk-err-mobile-trigger">
                    3. Brak dylatacji (Pękanie)
                    <svg class="rk-err-toggle-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-err-panel-inner">
                    <div>
                        <h3>Destrukcja jastrychu i płytek</h3>
                        <p>Brak wykonania szczelin dylatacyjnych na progach drzwiowych oraz przy powierzchniach jastrychu <strong>powyżej 40 m² (lub przy długości boku pow. 8 m)</strong> to pewna katastrofa. Praca termiczna posadzki niechybnie spowoduje pękanie płytek ceramicznych, a w skrajnych przypadkach zerwanie rur PEX pod wylewką.</p>
                        <p>Zobacz pełne normy na temat <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacji brzegowej i dylatacji</a>.</p>
                    </div>
                </div>
            </div>

            <div class="rk-err-panel" id="err-srednice">
                <button class="rk-err-mobile-trigger">
                    4. Złe średnice rury zasilającej
                    <svg class="rk-err-toggle-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-err-panel-inner">
                    <div>
                        <h3>Wąskie gardło hydrauliczne</h3>
                        <p>Nagminną praktyką jest podłączanie dużego rozdzielacza (obsługującego np. 10 lub 12 pętli grzewczych) zbyt cienką rurą. Użycie rury o średnicy <strong>20 mm zamiast wymaganej 26 mm lub 32 mm</strong> drastycznie ucina przepływ masowy czynnika do belek rozdzielacza, co dławi wydajność instalacji.</p>
                        <p>Zawsze weryfikuj projekt, sprawdzając, <a href="https://projekt-ogrzewania.pl/jaka-srednica-rury-zasilajacej-rozdzielacz-w-ukladzie-ogrzewania-podlogowego-kalkulator/">jaka średnica rury zasilającej rozdzielacz</a> jest wymagana fizycznie.</p>
                    </div>
                </div>
            </div>

            <div class="rk-err-panel" id="err-meble">
                <button class="rk-err-mobile-trigger">
                    5. Montaż pod stałą zabudową
                    <svg class="rk-err-toggle-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-err-panel-inner">
                    <div>
                        <h3>Zniszczenie wyposażenia wnętrz</h3>
                        <p>Układanie obwodów grzewczych bezpośrednio pod szafkami kuchennymi, wannami z obudową czy kuchennymi wyspami prowadzi do <strong>ekstremalnego przegrzewania mebli</strong>. Odcięty obieg powietrza marnuje wyprodukowaną energię i drastycznie przyspiesza rozsuszanie się i pękanie konstrukcji meblowych.</p>
                        <p>Prawidłowy projekt przewiduje tzw. strefy wyłączone, integrując <a href="https://projekt-ogrzewania.pl/wodne-ogrzewanie-podlogowe-a-meble-jak-polaczyc-komfort-i-aranzacje/">wodne ogrzewanie podłogowe a meble</a> w sposób bezpieczny dla obu stron.</p>
                    </div>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const isMobile = window.innerWidth <= 768;
    
    // Obsługa dla Desktop (Tabs)
    const tabBtns = document.querySelectorAll('.rk-err-tab-btn');
    const panels = document.querySelectorAll('.rk-err-panel');
    
    tabBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            if (window.innerWidth <= 768) return; 
            
            // Reset
            tabBtns.forEach(t => t.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));
            
            // Activate
            this.classList.add('active');
            const targetId = 'err-' + this.getAttribute('data-target');
            document.getElementById(targetId).classList.add('active');
        });
    });

    // Obsługa dla Mobile (Akordeon)
    const mobileTriggers = document.querySelectorAll('.rk-err-mobile-trigger');
    
    mobileTriggers.forEach(trigger => {
        trigger.addEventListener('click', function() {
            if (window.innerWidth > 768) return; 
            
            const parentPanel = this.parentElement;
            const isActive = this.classList.contains('active');
            
            // Zamknij wszystkie
            document.querySelectorAll('.rk-err-panel').forEach(p => {
                p.classList.remove('active');
                p.querySelector('.rk-err-mobile-trigger').classList.remove('active');
            });
            
            // Otwórz kliknięty jeśli był zamknięty
            if (!isActive) {
                parentPanel.classList.add('active');
                this.classList.add('active');
            }
        });
    });

    window.addEventListener('resize', function() {
        if (window.innerWidth > 768) {
            let hasActive = false;
            panels.forEach(p => { if(p.classList.contains('active')) hasActive = true; });
            
            if(!hasActive) {
                tabBtns[0].classList.add('active');
                panels[0].classList.add('active');
            }
        }
    });
});
</script>



<style>
:root {
    --rk-mat-dark: #0f172a;
    --rk-mat-primary: #0284c7;
    --rk-mat-primary-hover: #0369a1;
    --rk-mat-bg: #ffffff;
    --rk-mat-surface: #f8fafc;
    --rk-mat-border: #e2e8f0;
    --rk-mat-text: #334155;
    --rk-mat-accent: #38bdf8;
    --rk-mat-success: #10b981;
    --rk-mat-warning: #f59e0b;
}

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

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

.rk-mat-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
    display: flex;
    align-items: center;
    gap: 15px;
}

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

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

/* Układ główny - Desktop Tabs, Mobile Accordion */
.rk-mat-layout {
    display: flex;
    background: var(--rk-mat-bg);
}

/* Pasek boczny (Desktop) */
.rk-mat-sidebar {
    width: 320px;
    background: var(--rk-mat-surface);
    border-right: 1px solid var(--rk-mat-border);
    padding: 30px 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-mat-tab-btn {
    width: 100%;
    text-align: left;
    padding: 18px 20px;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 700;
    color: #64748b;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-mat-tab-btn:hover {
    background: #f1f5f9;
    color: var(--rk-mat-primary);
}

.rk-mat-tab-btn.active {
    background: #ffffff;
    border-color: var(--rk-mat-border);
    color: var(--rk-mat-primary);
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
}

.rk-mat-tab-icon {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: #e2e8f0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: inherit;
    transition: all 0.3s;
}

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

/* Obszar treści */
.rk-mat-content-area {
    flex: 1;
    padding: 40px;
    position: relative;
    min-height: 250px;
}

.rk-mat-panel {
    display: none;
    animation: matFadeIn 0.4s ease forwards;
}

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

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

/* Triggery mobilne (ukryte na desktopie) */
.rk-mat-mobile-trigger {
    display: none;
    width: 100%;
    text-align: left;
    padding: 20px;
    background: var(--rk-mat-surface);
    border: 1px solid var(--rk-mat-border);
    border-radius: 12px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-mat-dark);
    margin-bottom: 10px;
    cursor: pointer;
    align-items: center;
    justify-content: space-between;
}

.rk-mat-mobile-trigger.active {
    border-color: var(--rk-mat-primary);
    color: var(--rk-mat-primary);
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    margin-bottom: 0;
    border-bottom: none;
}

.rk-mat-toggle-icon {
    transition: transform 0.3s;
}

.rk-mat-mobile-trigger.active .rk-mat-toggle-icon {
    transform: rotate(180deg);
}

/* Wnętrze paneli */
.rk-mat-panel-inner {
    display: grid;
    gap: 15px;
}

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

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

.rk-mat-panel p strong {
    color: var(--rk-mat-dark);
}

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

.rk-mat-panel a:hover {
    color: var(--rk-mat-primary-hover);
    border-bottom-color: var(--rk-mat-primary);
}

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

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

.rk-mat-cta-section p {
    color: #64748b;
    margin: 0 auto 30px auto;
    max-width: 600px;
    line-height: 1.6;
}

.rk-btn-product {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-mat-primary);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 45px;
    border-radius: 16px;
    text-decoration: none !important;
    border: none;
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-btn-product:hover {
    transform: translateY(-5px);
    background: var(--rk-mat-primary-hover);
    box-shadow: 0 20px 35px -5px rgba(2, 132, 199, 0.5);
}

.rk-btn-product svg {
    transition: transform 0.3s;
}

.rk-btn-product:hover svg {
    transform: translateX(5px);
}

/* RWD - Mobile (Układ Pionowy / Akordeon) */
@media (max-width: 768px) {
    .rk-mat-header, .rk-mat-content-area, .rk-mat-cta-section { padding: 30px 20px; }
    .rk-mat-header h2 { font-size: 24px; }
    
    .rk-mat-layout { flex-direction: column; }
    .rk-mat-sidebar { display: none; }
    
    .rk-mat-content-area { padding: 20px; }
    
    .rk-mat-panel {
        display: block;
        margin-bottom: 10px;
    }
    
    .rk-mat-mobile-trigger {
        display: flex;
    }
    
    .rk-mat-panel-inner {
        padding: 20px;
        background: #ffffff;
        border: 1px solid var(--rk-mat-primary);
        border-top: none;
        border-bottom-left-radius: 12px;
        border-bottom-right-radius: 12px;
        display: none;
    }
    
    .rk-mat-panel.active .rk-mat-panel-inner {
        display: grid;
    }
    
    .rk-btn-product { width: 100%; padding: 18px 20px; font-size: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#article-obliczenia",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/"
    },
    "headline": "Jak profesjonalne obliczenia wpływają na projekt ogrzewania podłogowego?",
    "description": "Poznaj 4 filary poprawnej instalacji płaszczyznowej. Interaktywna matryca wpływu obliczeń OZC na dobór rur, izolacji i pompę obiegową.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-14",
    "dateModified": "2026-06-14"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#dataset-obliczenia",
    "name": "Matryca Parametrów Projektowych Ogrzewania Podłogowego",
    "description": "Zestawienie technicznych współzależności pomiędzy zapotrzebowaniem na energię cieplną a fizycznymi elementami instalacji (rury, styropian, pompa).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator strat ciepła budynku",
      "rozmieszczenie pętli grzewczych w ogrzewaniu podłogowym",
      "grubość styropianu pod ogrzewanie podłogowe",
      "dobór pompy obiegowej w ogrzewaniu podłogowym",
      "obliczeniowe zapotrzebowanie na ciepło OZC"
    ],
    "measurementTechnique": "Algorytmiczne mapowanie wyników OZC na parametry instalacji: opór cieplny izolacji, gęstość strumienia ciepła (rozstaw rur) oraz opory hydrauliczne (dobór pompy).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Integracja OZC: Precyzyjne zdefiniowanie mocy od 40 W/m2 do 90 W/m2 w zależności od przegród.",
        "Parametry izolacji: Minimum 15–20 cm EPS 100 dla podłóg na gruncie.",
        "Wysokość podnoszenia: Wyliczenie sumarycznego oporu dla doboru pompy na 4m lub 6m słupa wody."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#webapp-obliczenia",
    "name": "Symulator Wpływu Obliczeń na Instalację (Matryca HVAC)",
    "description": "Interaktywny panel ilustrujący powiązania między danymi wejściowymi (OZC) a wymiarowaniem poszczególnych komponentów systemu podłogowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-mat-container" id="matryca-obliczen-app">
    <div class="rk-mat-header">
        <h2>
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
                <rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect>
                <line x1="3" y1="9" x2="21" y2="9"></line>
                <line x1="9" y1="21" x2="9" y2="9"></line>
            </svg>
            Fundament Instalacji
        </h2>
        <p>Każdy aspekt fizyczny działania ogrzewania płaszczyznowego jest powiązany z dokumentacją techniczną, która spaja parametry źródła ciepła z właściwościami budynku.</p>
    </div>

    <div class="rk-mat-layout">
        <div class="rk-mat-sidebar">
            <button class="rk-mat-tab-btn active" data-target="ozc">
                <div class="rk-mat-tab-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg></div>
                Integracja z OZC
            </button>
            <button class="rk-mat-tab-btn" data-target="rozstaw">
                <div class="rk-mat-tab-icon"><svg width="18" height="18" 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><path d="M3 9h18M9 21V9"></path></svg></div>
                Rozstaw rur (Geometria)
            </button>
            <button class="rk-mat-tab-btn" data-target="wylewka">
                <div class="rk-mat-tab-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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>
                Styropian i Wylewka
            </button>
            <button class="rk-mat-tab-btn" data-target="pompa">
                <div class="rk-mat-tab-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4M12 8h.01"></path></svg></div>
                Parametry Pompy
            </button>
        </div>

        <div class="rk-mat-content-area" id="rkMatContentArea">
            
            <div class="rk-mat-panel active" id="panel-ozc">
                <button class="rk-mat-mobile-trigger active">
                    1. Integracja z OZC
                    <svg class="rk-mat-toggle-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-mat-panel-inner">
                    <div>
                        <h3>Obliczeniowe Zapotrzebowanie na Ciepło</h3>
                        <p>OZC determinuje dokładnie, ile watów energii ucieka przez każdą przegrodę w Twoim domu (ścianę, okno, podłogę na gruncie). Bez tego bilansu projektant nie wie, czy w danym pokoju potrzebuje dostarczyć <strong>40 W/m²</strong> czy może aż <strong>90 W/m²</strong>.</p>
                        <p>Działanie "w ciemno" skutkuje przewymiarowaniem źródła ciepła. Dowiedz się, jak wykorzystać <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">kalkulator strat ciepła budynku</a> do oceny inwestycji.</p>
                    </div>
                </div>
            </div>

            <div class="rk-mat-panel" id="panel-rozstaw">
                <button class="rk-mat-mobile-trigger">
                    2. Rozstaw rur (Geometria)
                    <svg class="rk-mat-toggle-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-mat-panel-inner">
                    <div>
                        <h3>Precyzyjny dobór rozstawu rur</h3>
                        <p>Projekt jednoznacznie określa, gdzie zagęścić rury (np. <strong>co 10 cm</strong> w łazience i strefie podokiennej), a gdzie można je rozrzedzić (<strong>co 20 cm</strong> w sypialni). Takie podejście zapobiega efektowi „zimnych stref” lub nieznośnego przegrzania pomieszczeń.</p>
                        <p>Sprawdź, jak optymalnie <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">zaplanować rozmieszczenie pętli grzewczych</a>, aby uniknąć strat ciśnienia.</p>
                    </div>
                </div>
            </div>

            <div class="rk-mat-panel" id="panel-wylewka">
                <button class="rk-mat-mobile-trigger">
                    3. Styropian i Wylewka
                    <svg class="rk-mat-toggle-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-mat-panel-inner">
                    <div>
                        <h3>Wpływ na grubość styropianu i jastrychu</h3>
                        <p>Obliczenia inżynieryjne definiują minimalny opór cieplny izolacji pionowej. Zastanawiasz się, <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">ile styropianu pod ogrzewanie podłogowe</a> na gruncie? Zazwyczaj wymaga się minimum <strong>15–20 cm EPS 100</strong>, aby ciepło nie uciekało do ziemi.</p>
                        <p>Ponadto, grubość wylewki (standardowo 4,5–5 cm powyżej korony rury dla wylewki anhydrytowej lub 6 cm dla cementowej) określa całkowitą bezwładność cieplną układu.</p>
                    </div>
                </div>
            </div>

            <div class="rk-mat-panel" id="panel-pompa">
                <button class="rk-mat-mobile-trigger">
                    4. Parametry Pompy
                    <svg class="rk-mat-toggle-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-mat-panel-inner">
                    <div>
                        <h3>Parametry hydrauliczne pompy obiegowej</h3>
                        <p>Projektant wylicza sumaryczny opór hydrauliczny najdłuższej pętli wraz z oporami miejscowymi na rozdzielaczu i sprzęgle hydraulicznym. Na tej podstawie dobiera się wysokość podnoszenia pompy (np. <strong>4m lub 6m słupa wody</strong>).</p>
                        <p>Dzięki zastosowaniu <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">kalkulatora doboru pompy obiegowej</a> oraz średnicy rury zasilającej, eliminuje się ryzyko niedostatecznego zasilenia skrajnych pętli grzewczych.</p>
                    </div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-mat-cta-section">
        <h3>Przestań zgadywać. Zacznij inwestować w pewność.</h3>
        <p>Brak projektu to gwarancja wyższych kosztów materiałowych i eksploatacyjnych. Zamów profesjonalną dokumentację wykonawczą i zyskaj 100% kontroli nad swoim budżetem i komfortem.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-product">
            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() {
    const isMobile = window.innerWidth <= 768;
    
    // Obsługa dla Desktop (Tabs)
    const tabBtns = document.querySelectorAll('.rk-mat-tab-btn');
    const panels = document.querySelectorAll('.rk-mat-panel');
    
    tabBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            if (window.innerWidth <= 768) return; 
            
            // Reset
            tabBtns.forEach(t => t.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));
            
            // Activate
            this.classList.add('active');
            const targetId = 'panel-' + this.getAttribute('data-target');
            document.getElementById(targetId).classList.add('active');
        });
    });

    // Obsługa dla Mobile (Akordeon)
    const mobileTriggers = document.querySelectorAll('.rk-mat-mobile-trigger');
    
    mobileTriggers.forEach(trigger => {
        trigger.addEventListener('click', function() {
            if (window.innerWidth > 768) return; 
            
            const parentPanel = this.parentElement;
            const isActive = this.classList.contains('active');
            
            // Zamknij wszystkie
            document.querySelectorAll('.rk-mat-panel').forEach(p => {
                p.classList.remove('active');
                p.querySelector('.rk-mat-mobile-trigger').classList.remove('active');
            });
            
            // Otwórz kliknięty jeśli był zamknięty
            if (!isActive) {
                parentPanel.classList.add('active');
                this.classList.add('active');
            }
        });
    });

    window.addEventListener('resize', function() {
        if (window.innerWidth > 768) {
            let hasActive = false;
            panels.forEach(p => { if(p.classList.contains('active')) hasActive = true; });
            
            if(!hasActive) {
                tabBtns[0].classList.add('active');
                panels[0].classList.add('active');
            }
        }
    });
});
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-primary: #0284c7;
    --rk-case-bg: #ffffff;
    --rk-case-surface: #f8fafc;
    --rk-case-border: #e2e8f0;
    --rk-case-text: #334155;
    --rk-case-danger: #ef4444;
    --rk-case-danger-bg: #fef2f2;
    --rk-case-success: #10b981;
    --rk-case-success-bg: #ecfdf5;
    --rk-case-accent: #8b5cf6; /* Fioletowy akcent dla Case Study */
}

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

/* Nagłówek */
.rk-case-header {
    padding: 35px 40px;
    background: var(--rk-case-dark);
    color: #ffffff;
    border-bottom: 4px solid var(--rk-case-accent);
    position: relative;
}

.rk-case-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(139, 92, 246, 0.2);
    color: #c4b5fd;
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(139, 92, 246, 0.3);
}

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

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

/* Układ główny */
.rk-case-layout {
    display: grid;
    grid-template-columns: 350px 1fr;
    background: var(--rk-case-bg);
}

/* Sekcja Historii (Lewa) */
.rk-case-story {
    padding: 40px 30px;
    background: var(--rk-case-surface);
    border-right: 1px solid var(--rk-case-border);
}

.rk-case-investor {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 25px;
    padding-bottom: 20px;
    border-bottom: 2px dashed var(--rk-case-border);
}

.rk-case-avatar {
    width: 50px;
    height: 50px;
    background: var(--rk-case-accent);
    color: #ffffff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    font-weight: 900;
}

.rk-case-investor-info h4 {
    margin: 0 0 4px 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-case-dark);
}

.rk-case-investor-info p {
    margin: 0;
    font-size: 13px;
    color: #64748b;
    font-weight: 600;
}

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

.rk-case-quote {
    background: #ffffff;
    padding: 15px;
    border-left: 3px solid var(--rk-case-danger);
    border-radius: 0 8px 8px 0;
    font-style: italic;
    font-weight: 600;
    color: var(--rk-case-dark);
    margin: 20px 0;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

/* Interaktywny Audyt (Prawa) */
.rk-case-audit {
    padding: 40px;
}

.rk-case-audit-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-case-dark);
    margin: 0 0 20px 0;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Zakładki / Toggles */
.rk-case-tabs {
    display: flex;
    gap: 10px;
    margin-bottom: 30px;
    background: var(--rk-case-surface);
    padding: 6px;
    border-radius: 12px;
    border: 1px solid var(--rk-case-border);
}

.rk-case-tab-btn {
    flex: 1;
    padding: 12px 15px;
    border: none;
    background: transparent;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    transition: all 0.3s;
    text-align: center;
}

.rk-case-tab-btn:hover {
    color: var(--rk-case-dark);
}

.rk-case-tab-btn.active {
    background: #ffffff;
    color: var(--rk-case-accent);
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}

/* Karty Audytu */
.rk-case-panel {
    display: none;
    animation: caseFadeIn 0.4s ease forwards;
}

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

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

.rk-case-myth, .rk-case-fact {
    padding: 25px;
    border-radius: 16px;
    margin-bottom: 20px;
    position: relative;
}

.rk-case-myth {
    background: var(--rk-case-danger-bg);
    border: 1px solid #fecaca;
}

.rk-case-fact {
    background: var(--rk-case-success-bg);
    border: 1px solid #a7f3d0;
}

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

.rk-case-card-icon {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    font-weight: 900;
}

.rk-case-myth .rk-case-card-icon { background: var(--rk-case-danger); }
.rk-case-fact .rk-case-card-icon { background: var(--rk-case-success); }

.rk-case-card-header h4 {
    margin: 0;
    font-size: 16px;
    font-weight: 900;
    text-transform: uppercase;
}

.rk-case-myth h4 { color: var(--rk-case-danger); }
.rk-case-fact h4 { color: var(--rk-case-success); }

.rk-case-card-text {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-case-dark);
    margin: 0;
    font-weight: 500;
}

.rk-case-card-text a {
    color: var(--rk-case-primary);
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-case-header { padding: 30px 20px; }
    .rk-case-header h2 { font-size: 24px; }
    
    .rk-case-layout { grid-template-columns: 1fr; }
    
    .rk-case-story { padding: 30px 20px; border-right: none; border-bottom: 1px solid var(--rk-case-border); }
    .rk-case-audit { padding: 30px 20px; }
    
    .rk-case-tabs { flex-direction: column; padding: 4px; gap: 4px; }
    .rk-case-tab-btn { padding: 14px; }
    
    .rk-case-myth, .rk-case-fact { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/"
    },
    "headline": "Case Study: Zderzenie inwestora z mitami instalatorów",
    "description": "Analiza przypadku Pani Janiny z Suwałk. Weryfikacja popularnych mitów instalacyjnych: układania rur 'co 10 cm', losowych długości pętli oraz braku zapotrzebowania energetycznego OZC.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski – Budowa bez ściemy",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-14",
    "dateModified": "2026-06-14"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#dataset-casestudy",
    "name": "Zestawienie: Praktyka potoczna vs Standard inżynierski HVAC",
    "description": "Porównanie błędnych, uogólnionych zaleceń monterskich z precyzyjnymi normami doboru parametrów ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski – Budowa bez ściemy"
    },
    "keywords": [
      "rozstaw rur w wodnym ogrzewaniu podłogowym",
      "maksymalna długość pętli ogrzewania podłogowego",
      "projektowe obciążenie cieplne ozc",
      "najczęstsze błędy przy montażu ogrzewania podłogowego",
      "weryfikacja instalatora podłogówki"
    ],
    "measurementTechnique": "Jakościowa ocena poprawności parametrów brzegowych (długość obwodu, rozstaw przewodów, moc cieplna) względem rygorów technicznych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Weryfikacja rozstawu: Obalenie mitu 'zawsze 10 cm' na rzecz rozstawu zmiennego opartego na gęstości strumienia cieplnego.",
        "Weryfikacja długości: Parametryzacja długości pętli (80m vs 120m) na podstawie oporów hydraulicznych i wydajności pompy.",
        "Weryfikacja OZC: Konieczność wykonania bilansu jako jedynej podstawy legalnego i sprawnego doboru komponentów."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#webapp-casestudy",
    "name": "Interaktywny Audyt Inwestorski",
    "description": "Narzędzie edukacyjne pozwalające na interaktywną weryfikację potocznych stwierdzeń wykonawców grzewczych z inżynieryjnym stanem faktycznym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski – Budowa bez ściemy"
    }
  }
]
</script>

<div class="rk-case-container">
    <div class="rk-case-header">
        <div class="rk-case-badge">Case Study #402</div>
        <h2>Pani Janina z Suwałk i mit "Zawsze tak robimy"</h2>
        <p>Zobacz, jak inżynieryjne fakty demaskują zgubne rzemieślnicze nawyki na realnym przykładzie z budowy.</p>
    </div>

    <div class="rk-case-layout">
        
        <div class="rk-case-story">
            <div class="rk-case-investor">
                <div class="rk-case-avatar">J</div>
                <div class="rk-case-investor-info">
                    <h4>Pani Janina</h4>
                    <p>Budowa: Dom parterowy, 120 m² (Suwałki)</p>
                </div>
            </div>

            <p class="rk-case-story-text">
                Pani Janina zwróciła się do naszego zespołu kompletnie zdezorientowana. Była po wstępnych rozmowach z trzema różnymi ekipami hydraulicznymi i każda mówiła co innego. 
            </p>
            <p class="rk-case-story-text">
                Jeden z instalatorów zarzekał się, że pętle mogą mieć maksymalnie 80 metrów, inny twierdził, że spokojnie ułoży 120 metrów. Co ciekawe, <strong>wszyscy trzej byli całkowicie zgodni w jednym aspekcie:</strong>
            </p>

            <div class="rk-case-quote">
                "Pani Janino, rurkę kładziemy wszędzie gęsto, co 10 centymetrów. Będzie ciepło i na pewno będzie Pani zadowolona!"
            </div>

            <p class="rk-case-story-text">
                Gdy świadoma inwestorka dopytała, na jakiej podstawie dobrali ten rozstaw i czy wykonali wcześniej bilans energetyczny (OZC) budynku, usłyszała klasykę polskiej budowlanki: <em>"A po co te papiery? Zawsze tak robimy i nikt jeszcze nie narzekał"</em>.
            </p>
        </div>

        <div class="rk-case-audit">
            <h3 class="rk-case-audit-title">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-case-accent)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="margin-top:-2px;"><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="9" y1="15" x2="15" y2="15"></line></svg>
                Audyt Ekspercki
            </h3>

            <div class="rk-case-tabs">
                <button class="rk-case-tab-btn active" data-myth="ozc">Brak OZC</button>
                <button class="rk-case-tab-btn" data-myth="rozstaw">Rozstaw "co 10 cm"</button>
                <button class="rk-case-tab-btn" data-myth="dlugosc">Długość pętli</button>
            </div>

            <div class="rk-case-panel active" id="myth-ozc">
                <div class="rk-case-myth">
                    <div class="rk-case-card-header">
                        <div class="rk-case-card-icon">
                            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
                        </div>
                        <h4>Instalator mówił:</h4>
                    </div>
                    <p class="rk-case-card-text">"Po co te papiery i OZC? Przecież dom to dom, wrzuci się podłogówkę i będzie działać."</p>
                </div>

                <div class="rk-case-fact">
                    <div class="rk-case-card-header">
                        <div class="rk-case-card-icon">
                            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                        </div>
                        <h4>Werdykt Inżyniera:</h4>
                    </div>
                    <p class="rk-case-card-text">
                        Brak wyliczeń to absolutny fundament <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">najczęstszych błędów przy montażu</a>. Bez precyzyjnego <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowego obciążenia cieplnego (OZC)</a> nikt – nawet najlepszy fachowiec – nie wie, ile energii ucieka przez przegrody. To prowadzi do drastycznego przewymiarowania lub niedogrzania systemu.
                    </p>
                </div>
            </div>

            <div class="rk-case-panel" id="myth-rozstaw">
                <div class="rk-case-myth">
                    <div class="rk-case-card-header">
                        <div class="rk-case-card-icon">
                            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
                        </div>
                        <h4>Instalator mówił:</h4>
                    </div>
                    <p class="rk-case-card-text">"Dajemy wszędzie gęsto, równo co 10 centymetrów na całej powierzchni podłogi."</p>
                </div>

                <div class="rk-case-fact">
                    <div class="rk-case-card-header">
                        <div class="rk-case-card-icon">
                            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                        </div>
                        <h4>Werdykt Inżyniera:</h4>
                    </div>
                    <p class="rk-case-card-text">
                        Rozstaw rur to zmienna. W łazience możemy dać rurki co 10 cm, ale w dobrze wyizolowanej sypialni układanie co 10 cm to marnotrawstwo rury i gwarancja przegrzania (dyskomfortu do spania). Prawidłowy <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstaw rur w wodnym ogrzewaniu podłogowym</a> wylicza się na podstawie gęstości strumienia cieplnego.
                    </p>
                </div>
            </div>

            <div class="rk-case-panel" id="myth-dlugosc">
                <div class="rk-case-myth">
                    <div class="rk-case-card-header">
                        <div class="rk-case-card-icon">
                            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
                        </div>
                        <h4>Instalator mówił:</h4>
                    </div>
                    <p class="rk-case-card-text">Jeden chciał robić pętle po 80 metrów, drugi twierdził, że "spokojnie pociągnie" do 120 metrów rury na jednym obwodzie.</p>
                </div>

                <div class="rk-case-fact">
                    <div class="rk-case-card-header">
                        <div class="rk-case-card-icon">
                            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                        </div>
                        <h4>Werdykt Inżyniera:</h4>
                    </div>
                    <p class="rk-case-card-text">
                        Prawda leży w hydraulice. <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">Maksymalna długość pętli</a> dla rury 16x2.0 nie powinna przekraczać 120m, ale dąży się do wyrównania długości pętli na jednym rozdzielaczu. Mieszanie pętli 40-metrowych ze 120-metrowymi uniemożliwi zrównoważenie układu na rotametrach. Woda poleci po linii najmniejszego oporu (najkrótszą pętlą).
                    </p>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const tabs = document.querySelectorAll('.rk-case-tab-btn');
    const panels = document.querySelectorAll('.rk-case-panel');

    tabs.forEach(tab => {
        tab.addEventListener('click', function() {
            // Usunięcie klasy active ze wszystkich tabów i paneli
            tabs.forEach(t => t.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

            // Dodanie klasy active do klikniętego
            this.classList.add('active');
            const targetId = 'myth-' + this.getAttribute('data-myth');
            document.getElementById(targetId).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-auth-dark: #0f172a;
    --rk-auth-primary: #0284c7;
    --rk-auth-bg: #ffffff;
    --rk-auth-surface: #f8fafc;
    --rk-auth-border: #e2e8f0;
    --rk-auth-text: #334155;
    --rk-auth-gold: #d97706;
    --rk-auth-gold-light: #fef3c7;
}

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

/* Układ główny */
.rk-auth-layout {
    display: grid;
    grid-template-columns: 320px 1fr;
    background: var(--rk-auth-bg);
}

/* Lewa Kolumna - Zdjęcie i Social Media */
.rk-auth-profile {
    background: var(--rk-auth-dark);
    padding: 40px 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    border-right: 4px solid var(--rk-auth-gold);
}

.rk-auth-image-box {
    width: 160px;
    height: 160px;
    border-radius: 50%;
    border: 4px solid var(--rk-auth-gold);
    overflow: hidden;
    margin-bottom: 20px;
    background: #1e293b;
}

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

.rk-auth-name {
    font-size: 22px;
    font-weight: 900;
    color: #ffffff;
    margin: 0 0 5px 0;
}

.rk-auth-role {
    font-size: 13px;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0 0 25px 0;
}

.rk-auth-social {
    display: flex;
    gap: 15px;
    width: 100%;
    justify-content: center;
}

.rk-auth-social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: rgba(255,255,255,0.1);
    color: #ffffff;
    text-decoration: none;
    transition: background 0.2s, color 0.2s;
}

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

/* Prawa Kolumna - Treść i Cytat */
.rk-auth-content {
    padding: 40px;
    display: flex;
    flex-direction: column;
}

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

/* Sekcja Cytatu */
.rk-auth-quote-box {
    background: var(--rk-auth-gold-light);
    border-left: 5px solid var(--rk-auth-gold);
    padding: 25px 30px;
    border-radius: 0 12px 12px 0;
    margin-bottom: 35px;
    position: relative;
}

.rk-auth-quote-icon {
    position: absolute;
    top: -15px;
    left: 20px;
    background: var(--rk-auth-gold);
    color: #ffffff;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
}

.rk-auth-quote-text {
    font-size: 17px;
    line-height: 1.7;
    color: var(--rk-auth-dark);
    font-weight: 600;
    font-style: italic;
    margin: 0;
}

/* Zakładki (Tabs) statyczne */
.rk-auth-tabs-nav {
    display: flex;
    gap: 10px;
    border-bottom: 2px solid var(--rk-auth-border);
    margin-bottom: 25px;
}

.rk-auth-tab-btn {
    padding: 12px 20px;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    margin-bottom: -2px;
}

.rk-auth-tab-btn:hover {
    color: var(--rk-auth-primary);
}

.rk-auth-tab-btn.active {
    color: var(--rk-auth-primary);
    border-bottom-color: var(--rk-auth-primary);
}

.rk-auth-tab-content {
    display: none;
}

.rk-auth-tab-content.active {
    display: block;
}

.rk-auth-tab-text {
    font-size: 15px;
    line-height: 1.8;
    color: var(--rk-auth-text);
    margin: 0;
}

.rk-auth-tab-text strong {
    color: var(--rk-auth-dark);
}

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-auth-layout { grid-template-columns: 1fr; }
    .rk-auth-profile { border-right: none; border-bottom: 4px solid var(--rk-auth-gold); padding: 30px 20px; }
    .rk-auth-content { padding: 30px 20px; }
    .rk-auth-header h2 { font-size: 22px; }
    .rk-auth-quote-box { padding: 25px 20px; }
    .rk-auth-tabs-nav { flex-direction: column; border-bottom: none; gap: 5px; }
    .rk-auth-tab-btn { border: 1px solid var(--rk-auth-border); border-radius: 8px; margin-bottom: 0; text-align: left; }
    .rk-auth-tab-btn.active { border-color: var(--rk-auth-primary); border-bottom-color: var(--rk-auth-primary); background: var(--rk-auth-surface); }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#article-ekspert",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/"
    },
    "headline": "Projekt ogrzewania podłogowego okiem eksperta – Robert Kucharski",
    "description": "Zrozum inżynierskie podejście do instalacji HVAC. Autorska perspektywa Roberta Kucharskiego na temat bezpieczeństwa i opłacalności projektów ogrzewania płaszczyznowego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-14",
    "dateModified": "2026-06-14"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#dataset-ekspert",
    "name": "Standardy Inżynierskie i Wytyczne Wykonawcze HVAC",
    "description": "Zestawienie autorskich standardów projektowych Roberta Kucharskiego zderzających amatorskie praktyki monterskie z normami fizyki budowli.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": "https://www.linkedin.com/in/robert-kucharski-38069b48/"
    },
    "keywords": [
      "robert kucharski ogrzewanie",
      "ekspert hvac projektowanie",
      "budowa bez ściemy instalacje",
      "weryfikacja projektu podłogówki",
      "standardy wykonawcze ogrzewania"
    ],
    "measurementTechnique": "Weryfikacja jakości wykonawstwa na podstawie autorskich kryteriów bezpieczeństwa hydraulicznego i energetycznego (1000+ zweryfikowanych instalacji).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zasada Bezpieczeństwa: Instalacja to fizyka, a nie intuicja. Brak obliczeń OZC to gwarancja awarii.",
        "Weryfikacja Inżynierska: Opieranie parametrów zasilania wyłącznie na twardych danych z bilansu cieplnego.",
        "Ochrona inwestora: Projekt wykonawczy jako jedyna polisa ubezpieczeniowa przed błędami instalatora."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#webapp-ekspert",
    "name": "Baza Wiedzy i Standardów Inżynierskich",
    "description": "Moduł przełącznikowy prezentujący autorskie podejście do projektowania, różnice między rzemiosłem a inżynierią oraz gwarancje bezpieczeństwa inwestycji.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-auth-container">
    <div class="rk-auth-layout">
        
        <div class="rk-auth-profile">
            <div class="rk-auth-image-box">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Główny inżynier projekt-ogrzewania.pl">
            </div>
            <h3 class="rk-auth-name">Robert Kucharski</h3>
            <p class="rk-auth-role">Główny Specjalista HVAC & CEO</p>
            
            <div class="rk-auth-social">
                <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener nofollow" class="rk-auth-social-link" aria-label="Facebook Projekt Ogrzewania">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="currentColor"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
                </a>
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener nofollow" class="rk-auth-social-link" aria-label="LinkedIn Robert Kucharski">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="currentColor"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect x="2" y="9" width="4" height="12"></rect><circle cx="4" cy="4" r="2"></circle></svg>
                </a>
            </div>
        </div>

        <div class="rk-auth-content">
            
            <div class="rk-auth-header">
                <h2>Projekt ogrzewania podłogowego okiem eksperta – Robert Kucharski</h2>
            </div>

            <div class="rk-auth-quote-box">
                <div class="rk-auth-quote-icon">
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1.5.5 1.5 1.5 0 1.5-1.5 2.5-2.5 2.5-1.25 0-2 .75-2 2s.75 2 2 2z"></path><path d="M15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1.5.5 1.5 1.5 0 1.5-1.5 2.5-2.5 2.5-1.25 0-2 .75-2 2s.75 2 2 2z"></path></svg>
                </div>
                <p class="rk-auth-quote-text">
                    Zdaniem Roberta Kucharskiego: Instalacja ogrzewania podłogowego to nie układanie rurek na styropianie, to precyzyjna inżynieria fizyki budowli. Błędy zignorowane na etapie braku obliczeń OZC mszczą się bezlitośnie przez kolejne dekady w postaci wyższych rachunków i pękających posadzek.
                </p>
            </div>

            <div class="rk-auth-tabs-nav" id="authTabsNav">
                <button class="rk-auth-tab-btn active" data-tab="filozofia">Filozofia Inżynierska</button>
                <button class="rk-auth-tab-btn" data-tab="bezpieczenstwo">Ochrona Inwestora</button>
            </div>

            <div class="rk-auth-tab-content active" id="tab-filozofia">
                <p class="rk-auth-tab-text">
                    W branży instalacyjnej panuje mit "doświadczonego montera", który rzekomo potrafi ułożyć optymalny rozstaw pętli wyłącznie na podstawie wieloletniej praktyki. <strong>Fizyka nie akceptuje kompromisów.</strong> Nawet najlepszy instalator nie jest w stanie bez obliczeń przewidzieć dokładnych strat ciepła przez przegrody, oporu wybranej okładziny czy parametrów hydraulicznych źródła ciepła dla konkretnego rzutu budynku.
                </p>
            </div>

            <div class="rk-auth-tab-content" id="tab-bezpieczenstwo">
                <p class="rk-auth-tab-text">
                    Dokumentacja techniczna to Twoja jedyna tarcza ochronna na budowie. Jeśli wykonawca popełni błąd – przegrzeje strefy, zablokuje przepływy zbyt długą pętlą lub zignoruje dylatacje – to <strong>brak projektu odbiera Ci wszelkie argumenty do reklamacji</strong>. Inżynieryjne podejście do instalacji to gwarancja, że system pracuje dla Ciebie, a nie Ty na poprawki systemu.
                </p>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const tabBtns = document.querySelectorAll('.rk-auth-tab-btn');
    const tabContents = document.querySelectorAll('.rk-auth-tab-content');

    tabBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Czyszczenie klas active
            tabBtns.forEach(t => t.classList.remove('active'));
            tabContents.forEach(c => c.classList.remove('active'));

            // Dodawanie klasy active do klikniętego
            this.classList.add('active');
            const targetId = 'tab-' + this.getAttribute('data-tab');
            document.getElementById(targetId).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-faq2-dark: #1e293b;
    --rk-faq2-primary: #0369a1; /* Ciemniejszy niebieski dla odróżnienia, buduje autorytet */
    --rk-faq2-primary-hover: #0284c7;
    --rk-faq2-bg: #ffffff;
    --rk-faq2-surface: #f1f5f9;
    --rk-faq2-border: #cbd5e1;
    --rk-faq2-text: #334155;
    --rk-faq2-accent: #f59e0b; /* Bursztynowy akcent dla ożywienia */
    --rk-faq2-danger: #ef4444;
}

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

/* Nagłówek */
.rk-faq2-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-faq2-dark) 0%, #0f172a 100%);
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-faq2-primary);
}

.rk-faq2-header h2 {
    font-size: 30px;
    font-weight: 900;
    margin: 0 0 10px 0;
    display: flex;
    align-items: center;
    gap: 15px;
    letter-spacing: -0.5px;
}

.rk-faq2-header h2 svg {
    color: var(--rk-faq2-accent);
}

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

/* Zawartość Akordeonu */
.rk-faq2-body {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-faq2-item {
    background: var(--rk-faq2-surface);
    border: 1px solid transparent;
    border-radius: 14px;
    margin-bottom: 12px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq2-item:hover {
    background: #e2e8f0;
}

.rk-faq2-item.active {
    background: var(--rk-faq2-bg);
    border-color: var(--rk-faq2-primary);
    box-shadow: 0 10px 20px -5px rgba(3, 105, 161, 0.15);
}

/* Przycisk pytania */
.rk-faq2-question {
    width: 100%;
    text-align: left;
    padding: 22px 30px;
    background: transparent;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

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

.rk-faq2-item.active .rk-faq2-question h3 {
    color: var(--rk-faq2-primary);
}

/* Ikona Toggle (+/-) */
.rk-faq2-toggle {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: #ffffff;
    border: 1px solid var(--rk-faq2-border);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-faq2-primary);
    transition: all 0.3s;
    position: relative;
}

.rk-faq2-toggle::before, .rk-faq2-toggle::after {
    content: '';
    position: absolute;
    background: currentColor;
    border-radius: 2px;
    transition: transform 0.3s;
}

.rk-faq2-toggle::before { width: 14px; height: 2px; }
.rk-faq2-toggle::after { width: 2px; height: 14px; }

.rk-faq2-item.active .rk-faq2-toggle {
    background: var(--rk-faq2-primary);
    color: #ffffff;
    border-color: var(--rk-faq2-primary);
}

.rk-faq2-item.active .rk-faq2-toggle::after {
    transform: rotate(90deg) scale(0);
}

/* Odpowiedź */
.rk-faq2-answer-wrapper {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq2-answer-inner {
    padding: 0 30px 25px;
    display: flex;
    gap: 20px;
}

.rk-faq2-answer-icon {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    color: var(--rk-faq2-accent);
    margin-top: 2px;
}

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

.rk-faq2-answer-text a {
    color: var(--rk-faq2-primary);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid rgba(3, 105, 161, 0.3);
    transition: all 0.2s;
}

.rk-faq2-answer-text a:hover {
    border-bottom-color: var(--rk-faq2-primary);
    color: var(--rk-faq2-primary-hover);
}

.rk-faq2-answer-text strong {
    color: var(--rk-faq2-dark);
    font-weight: 800;
}

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-faq2-header { padding: 30px 20px; }
    .rk-faq2-header h2 { font-size: 24px; }
    .rk-faq2-body { padding: 25px 20px; }
    .rk-faq2-question { padding: 20px; }
    .rk-faq2-question h3 { font-size: 16px; }
    .rk-faq2-answer-inner { padding: 0 20px 20px; gap: 15px; }
    .rk-faq2-answer-icon { display: none; } /* Ukrywamy ikonę odpowiedzi na telefonach by zaoszczędzić miejsce */
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#faq-section",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy bez projektu ogrzewania podłogowego otrzymam dotację z programu Czyste Powietrze?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, ponieważ nowoczesne procedury audytowe i odbiorcze wymagają przedstawienia dokumentacji potwierdzającej prawidłowe zrównoważenie hydrauliczne instalacji oraz dopasowanie źródła ciepła do parametrów technicznych budynku. Brak projektu uniemożliwi poprawne rozliczenie wniosku finansowego w urzędzie."
        }
      },
      {
        "@type": "Question",
        "name": "Co się stanie, jeśli wykonawca ułoży za długą pętlę ogrzewania podłogowego?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Za długa pętla (powyżej 120 m dla rury 16 mm) wygeneruje tak duże opory hydrauliczne, że woda grzewcza nie będzie w stanie przez nią swobodnie przepływać. W efekcie podłoga w tym pomieszczeniu pozostanie zimna, pomimo prawidłowej pracy pompy ciepła i maksymalnego otwarcia rotametrów."
        }
      },
      {
        "@type": "Question",
        "name": "Czy układ meandrowy można stosować zamiennie z układem ślimakowym bez obliczeń?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, ponieważ układ ślimakowy zapewnia idealnie równomierny rozkład temperatur na powierzchni posadzki dzięki naprzemiennemu układaniu rury zasilającej i powrotnej. Układ meandrowy generuje duże straty temperatury wzdłuż pętli, dlatego projektuje się go wyłącznie w strefach brzegowych o wysokim zapotrzebowaniu na moc."
        }
      },
      {
        "@type": "Question",
        "name": "Jak grubość wylewki betonowej wpływa na parametry projektowe ogrzewania podłogowego?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Zbyt gruba wylewka (powyżej 7-8 cm nad rurami) drastycznie zwiększa bezwładność cieplną układu, wydłużając czas reakcji automatyki na zmiany temperatury zewnętrznej. Z kolei zbyt cienka wylewka (poniżej 4 cm) grozi pękaniem jastrychu pod wpływem naprężeń termicznych i powoduje nierównomierny rozkład temperatury (efekt pasmowy)."
        }
      },
      {
        "@type": "Question",
        "name": "Czy można zalać instalację podłogówki zwykłą wodą z kranu bez projektu i badań?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Napełnienie instalacji surową wodą wodociągową prowadzi do szybkiego odkładania się kamienia kotłowego oraz przyspieszonej korozji metalowych elementów rozdzielacza. Zgodnie z normami technicznymi, instalację należy napełnić wodą demineralizowaną z dodatkiem odpowiednich inhibitorów korozji, gwarantujących stabilność fizykochemiczną zładu."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/"
    },
    "headline": "Często zadawane pytania (FAQ) - Parametry Projektowe Ogrzewania",
    "description": "Najważniejsze pytania techniczne dotyczące wymogów prawnych, długości pętli, rodzajów wylewek i wody kotłowej w ogrzewaniu podłogowym.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski – Budowa bez ściemy",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-14",
    "dateModified": "2026-06-14"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#dataset-faq",
    "name": "Limity i Wymogi Techniczne Instalacji Płaszczyznowych (FAQ Data)",
    "description": "Zbiór kluczowych wartości brzegowych wymienianych w pytaniach FAQ, takich jak dopuszczalna długość rur, minimalna i maksymalna grubość jastrychu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski – Budowa bez ściemy"
    },
    "keywords": [
      "wymogi dofinansowania Czyste Powietrze 2026",
      "maksymalna długość pętli ogrzewania",
      "grubość jastrychu podłogowego",
      "parametry wody kotłowej instalacyjnej",
      "układ ślimakowy i meandrowy"
    ],
    "measurementTechnique": "Określanie parametrów granicznych instalacji w oparciu o wytyczne producentów systemów i ogólne zasady fizyki budowli.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Limit hydrauliczny pętli: Maksymalnie 120 mb dla rury o średnicy 16x2.0.",
        "Grubość wylewki: Minimum 4 cm nad rurę w celu uniknięcia pęknięć, optymalnie do 7-8 cm w celu zachowania sterowalności.",
        "Chemia zładu: Obowiązkowe napełnianie wodą demineralizowaną w celu zatrzymania korozji elementów metalowych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#webapp-faq",
    "name": "Interaktywny Akordeon Edukacyjny HVAC",
    "description": "Komponent interfejsu użytkownika (UI) obsługujący ukrywanie i rozwijanie zaawansowanych odpowiedzi inżynieryjnych na pytania czytelników portalu.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski – Budowa bez ściemy"
    }
  }
]
</script>

<div class="rk-faq2-container" id="faq-sekcja-podlogowka">
    <div class="rk-faq2-header">
        <h2>
            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
                <path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path>
                <polyline points="14 2 14 8 20 8"></polyline>
                <circle cx="12" cy="13" r="2"></circle>
                <line x1="12" y1="17" x2="12.01" y2="17"></line>
            </svg>
            Często zadawane pytania (FAQ)
        </h2>
        <p>Inżynieryjne odpowiedzi na najczęstsze obiekcje inwestorów. Zobacz, jak błędy w podejściu do wylewki czy dotacji wpływają na odbiór całego budynku.</p>
    </div>

    <div class="rk-faq2-body" id="rkFaq2Accordion">
        
        <div class="rk-faq2-item">
            <button class="rk-faq2-question" aria-expanded="false">
                <h3>Czy bez projektu ogrzewania podłogowego otrzymam dotację z programu Czyste Powietrze?</h3>
                <div class="rk-faq2-toggle"></div>
            </button>
            <div class="rk-faq2-answer-wrapper">
                <div class="rk-faq2-answer-inner">
                    <svg class="rk-faq2-answer-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                    <p class="rk-faq2-answer-text">
                        <strong>Nie</strong>, ponieważ nowoczesne procedury audytowe i odbiorcze wymagają przedstawienia dokumentacji potwierdzającej prawidłowe zrównoważenie hydrauliczne instalacji oraz dopasowanie źródła ciepła do parametrów technicznych budynku. Zobacz, jak <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-a-dotacje-czyste-powietrze-i-moje-cieplo-2026/">projekt techniczny wpływa na dotacje</a> – brak rzetelnego opracowania uniemożliwi poprawne rozliczenie wniosku finansowego w urzędzie.
                    </p>
                </div>
            </div>
        </div>

        <div class="rk-faq2-item">
            <button class="rk-faq2-question" aria-expanded="false">
                <h3>Co się stanie, jeśli wykonawca ułoży za długą pętlę ogrzewania podłogowego?</h3>
                <div class="rk-faq2-toggle"></div>
            </button>
            <div class="rk-faq2-answer-wrapper">
                <div class="rk-faq2-answer-inner">
                    <svg class="rk-faq2-answer-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                    <p class="rk-faq2-answer-text">
                        <strong>Za długa pętla</strong> (powyżej 120 m dla rury 16 mm) wygeneruje tak duże opory hydrauliczne, że woda grzewcza nie będzie w stanie przez nią swobodnie przepływać. Zjawisko to dokładnie opisuję w artykule o <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/">konsekwencjach za długich pętli podłogówki</a>. W efekcie podłoga w tym pomieszczeniu pozostanie zimna, pomimo prawidłowej pracy pompy ciepła i maksymalnego otwarcia rotametrów na rozdzielaczu.
                    </p>
                </div>
            </div>
        </div>

        <div class="rk-faq2-item">
            <button class="rk-faq2-question" aria-expanded="false">
                <h3>Czy układ meandrowy można stosować zamiennie z układem ślimakowym bez obliczeń?</h3>
                <div class="rk-faq2-toggle"></div>
            </button>
            <div class="rk-faq2-answer-wrapper">
                <div class="rk-faq2-answer-inner">
                    <svg class="rk-faq2-answer-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="16"></line><line x1="8" y1="12" x2="16" y2="12"></line></svg>
                    <p class="rk-faq2-answer-text">
                        <strong>Nie.</strong> Układ ślimakowy zapewnia idealnie równomierny rozkład temperatur na powierzchni posadzki dzięki naprzemiennemu układaniu rury zasilającej i powrotnej. <a href="https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/">Układ meandrowy</a> generuje potężne straty temperatury wzdłuż pętli, dlatego projektuje się go wyłącznie i świadomie w strefach brzegowych o wysokim zapotrzebowaniu na moc (np. przy oknach tarasowych HS).
                    </p>
                </div>
            </div>
        </div>

        <div class="rk-faq2-item">
            <button class="rk-faq2-question" aria-expanded="false">
                <h3>Jak grubość wylewki betonowej wpływa na parametry projektowe ogrzewania podłogowego?</h3>
                <div class="rk-faq2-toggle"></div>
            </button>
            <div class="rk-faq2-answer-wrapper">
                <div class="rk-faq2-answer-inner">
                    <svg class="rk-faq2-answer-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                    <p class="rk-faq2-answer-text">
                        Zbyt gruba wylewka (powyżej 7-8 cm nad rurami) drastycznie zwiększa bezwładność cieplną układu, wydłużając czas reakcji automatyki na zmiany temperatury zewnętrznej. Z kolei zbyt cienka <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/">wylewka betonowa</a> (poniżej 4 cm) grozi pękaniem jastrychu pod wpływem naprężeń termicznych i powoduje nierównomierny rozkład temperatury, odczuwalny jako tzw. efekt pasmowy.
                    </p>
                </div>
            </div>
        </div>

        <div class="rk-faq2-item">
            <button class="rk-faq2-question" aria-expanded="false">
                <h3>Czy można zalać instalację podłogówki zwykłą wodą z kranu bez projektu i badań?</h3>
                <div class="rk-faq2-toggle"></div>
            </button>
            <div class="rk-faq2-answer-wrapper">
                <div class="rk-faq2-answer-inner">
                    <svg class="rk-faq2-answer-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path></svg>
                    <p class="rk-faq2-answer-text">
                        Napełnienie instalacji surową wodą wodociągową prowadzi do szybkiego odkładania się kamienia kotłowego oraz przyspieszonej korozji metalowych elementów rozdzielacza. Zgodnie z normami technicznymi i gwarancjami producentów, instalację należy napełnić <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-z-inhibitorem-korozji-do-ogrzewania-podlogowego/">wodą demineralizowaną z dodatkiem odpowiednich inhibitorów korozji</a>, gwarantujących pełną stabilność fizykochemiczną zładu.
                    </p>
                </div>
            </div>
        </div>

    </div>
</div>

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

    faqItems.forEach(item => {
        const btn = item.querySelector('.rk-faq2-question');
        const wrapper = item.querySelector('.rk-faq2-answer-wrapper');
        const inner = item.querySelector('.rk-faq2-answer-inner');

        btn.addEventListener('click', () => {
            const isActive = item.classList.contains('active');

            // Zamykamy inne otwarte elementy
            faqItems.forEach(otherItem => {
                otherItem.classList.remove('active');
                otherItem.querySelector('.rk-faq2-question').setAttribute('aria-expanded', 'false');
                otherItem.querySelector('.rk-faq2-answer-wrapper').style.maxHeight = null;
            });

            // Jeśli kliknięto w zamknięty element - otwórz go
            if (!isActive) {
                item.classList.add('active');
                btn.setAttribute('aria-expanded', 'true');
                wrapper.style.maxHeight = inner.scrollHeight + "px";
            }
        });
    });
});
</script>



<style>
:root {
    --rk-fin-dark: #0f172a;
    --rk-fin-primary: #0284c7;
    --rk-fin-bg: #ffffff;
    --rk-fin-surface: #f8fafc;
    --rk-fin-border: #e2e8f0;
    --rk-fin-text: #334155;
    --rk-fin-danger: #ef4444;
    --rk-fin-danger-bg: #fef2f2;
    --rk-fin-success: #10b981;
    --rk-fin-success-bg: #ecfdf5;
}

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

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

.rk-fin-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    line-height: 1.3;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-fin-header h2 svg {
    color: #38bdf8;
    flex-shrink: 0;
}

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

.rk-fin-header p strong {
    color: #ffffff;
}

.rk-fin-header a {
    color: #38bdf8;
    text-decoration: underline;
    text-underline-offset: 3px;
    font-weight: 700;
    transition: color 0.2s;
}

.rk-fin-header a:hover {
    color: #ffffff;
}

/* Panel Nawigacyjny (Tabs) */
.rk-fin-interactive {
    padding: 40px 50px;
    background: var(--rk-fin-bg);
}

.rk-fin-tabs-wrapper {
    display: flex;
    gap: 10px;
    background: var(--rk-fin-surface);
    padding: 8px;
    border-radius: 14px;
    border: 1px solid var(--rk-fin-border);
    margin-bottom: 35px;
}

.rk-fin-tab-btn {
    flex: 1;
    padding: 14px 20px;
    background: transparent;
    border: none;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-fin-tab-btn:hover {
    color: var(--rk-fin-primary);
    background: rgba(2, 132, 199, 0.05);
}

.rk-fin-tab-btn.active {
    background: #ffffff;
    color: var(--rk-fin-primary);
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

.rk-fin-step-num {
    background: #cbd5e1;
    color: #ffffff;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-size: 12px;
    transition: background 0.2s;
}

.rk-fin-tab-btn.active .rk-fin-step-num {
    background: var(--rk-fin-primary);
}

/* Zawartość Paneli */
.rk-fin-panel {
    display: none;
    animation: finFadeIn 0.3s ease forwards;
}

.rk-fin-panel.active {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
}

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

.rk-fin-card {
    background: #ffffff;
    border: 1px solid var(--rk-fin-border);
    border-radius: 12px;
    padding: 30px;
    position: relative;
}

.rk-fin-card.card-success { 
    border-top: 5px solid var(--rk-fin-success); 
    background: var(--rk-fin-success-bg);
}

.rk-fin-card.card-danger { 
    border-top: 5px solid var(--rk-fin-danger); 
    background: var(--rk-fin-danger-bg);
}

.rk-fin-card h4 {
    font-size: 18px;
    font-weight: 900;
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.card-success h4 { color: var(--rk-fin-success); }
.card-danger h4 { color: var(--rk-fin-danger); }

/* Subtelne ikony inline obok tytułu zamiast wielkich grafik */
.rk-fin-inline-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    color: #ffffff;
    flex-shrink: 0;
}

.card-success .rk-fin-inline-icon { background: var(--rk-fin-success); }
.card-danger .rk-fin-inline-icon { background: var(--rk-fin-danger); }

.rk-fin-card p {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-fin-dark);
    margin: 0;
    font-weight: 500;
}

/* Tagi Długiego Ogona (Bez hashtagów) */
.rk-fin-tags-section {
    padding: 0 50px 35px 50px;
    background: var(--rk-fin-bg);
}

.rk-fin-tags-title {
    font-size: 12px;
    font-weight: 800;
    color: #94a3b8;
    text-transform: uppercase;
    margin-bottom: 15px;
    display: block;
    text-align: center;
    letter-spacing: 0.5px;
}

.rk-fin-tag-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
}

.rk-clean-tag {
    display: inline-flex;
    align-items: center;
    background: #f1f5f9;
    color: #475569;
    padding: 8px 16px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 700;
    border: 1px solid var(--rk-fin-border);
    transition: all 0.2s;
    cursor: default;
}

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

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-fin-header { padding: 30px 20px; }
    .rk-fin-interactive { padding: 30px 20px; }
    .rk-fin-tags-section { padding: 0 20px 30px 20px; }
    
    .rk-fin-tabs-wrapper {
        flex-direction: column;
        gap: 5px;
        background: transparent;
        border: none;
        padding: 0;
    }
    
    .rk-fin-tab-btn {
        background: var(--rk-fin-surface);
        border: 1px solid var(--rk-fin-border);
        justify-content: flex-start;
        padding: 16px;
    }
    
    .rk-fin-panel.active {
        grid-template-columns: 1fr;
        gap: 15px;
    }
    
    .rk-fin-card { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/"
    },
    "headline": "Podsumowanie: Instalacja Grzewcza jako System Naczyń Połączonych",
    "description": "Dlaczego rezygnacja z projektu podłogówki to pozorna oszczędność? Sprawdź inżynieryjne zestawienie zależności między OZC, geometrią pętli i hydrauliką.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-14",
    "dateModified": "2026-06-14"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#dataset-podsumowanie",
    "name": "Analiza Cyklu Życia Instalacji (LCC) – Projekt Inżynierski vs Brak Projektu",
    "description": "Zestawienie technologicznych współzależności wykazujące, jak błąd na etapie braku obliczeń OZC propaguje się na opory hydrauliczne i koszty eksploatacji.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "pękanie posadzki na podłogówce",
      "obliczenia OZC a hydraulika",
      "koszty eksploatacji bez projektu",
      "pozorna oszczędność na podłogówce",
      "system naczyń połączonych HVAC"
    ],
    "measurementTechnique": "Modelowanie kaskadowe błędów wykonawczych: analiza wpływu braku danych cieplnych na przewymiarowanie pętli i zaburzenie przepływów na rotametrach.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wpływ OZC: Brak obliczeń skutkuje błędnym rozstawem, co prowadzi do niedogrzania lub przegrzania.",
        "Wpływ Geometrii: Zbyt długie pętle blokują przepływ masowy czynnika.",
        "Wpływ Hydrauliki: Niezrównoważony układ drastycznie obniża sprawność pompy ciepła i podnosi rachunki."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#webapp-podsumowanie",
    "name": "Symulator Zależności Instalacyjnych HVAC",
    "description": "Interaktywny panel edukacyjny (tabbed UI) pozbawiony rozpraszaczy graficznych, ilustrujący jak etapy projektowania wpływają na komfort cieplny.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-fin-container" id="podsumowanie-techniczne">
    <div class="rk-fin-header">
        <h2>
            <svg width="30" height="30" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
                <rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect>
                <line x1="3" y1="9" x2="21" y2="9"></line>
                <line x1="9" y1="21" x2="9" y2="9"></line>
            </svg>
            Podsumowanie: System naczyń połączonych
        </h2>
        <p>
            Decyzja o rezygnacji z projektu ogrzewania podłogowego to klasyczny przykład <strong>pozornej oszczędności finansowej</strong>, która generuje lawinę <a href="https://projekt-ogrzewania.pl/wady-wodnego-ogrzewania-podlogowego-na-co-zwrocic-uwage-przed-instalacja/">problemów technicznych na etapie eksploatacji budynku</a>. Prawidłowo zaprojektowana instalacja grzewcza to system naczyń połączonych – od dokładności obliczeń OZC, przez geometrię ułożenia pętli, aż po <a href="https://projekt-ogrzewania.pl/obieg-grzewczy-w-wodnym-ogrzewaniu-podlogowym/">precyzyjną hydraulikę</a> dedykowaną dla niskotemperaturowych źródeł ciepła.
        </p>
        <br>
        <p>
            Zamiast ryzykować <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">pękaniem posadzek</a>, niedogrzaniem pomieszczeń i drastycznym zawyżeniem rachunków, należy bezwzględnie oprzeć inwestycję na profesjonalnej dokumentacji technicznej. Tylko precyzyjny projekt inżynierski gwarantuje, że instalacja osiągnie pełną sprawność.
        </p>
    </div>

    <div class="rk-fin-interactive">
        
        <!-- Nawigacja Tabs -->
        <div class="rk-fin-tabs-wrapper" id="rkFinTabs">
            <button class="rk-fin-tab-btn active" data-target="ozc">
                <span class="rk-fin-step-num">1</span> Obliczenia OZC
            </button>
            <button class="rk-fin-tab-btn" data-target="geometry">
                <span class="rk-fin-step-num">2</span> Geometria Pętli
            </button>
            <button class="rk-fin-tab-btn" data-target="hydraulics">
                <span class="rk-fin-step-num">3</span> Hydraulika
            </button>
        </div>

        <!-- Panel 1: OZC -->
        <div class="rk-fin-panel active" id="panel-ozc">
            <div class="rk-fin-card card-success">
                <h4>
                    <div class="rk-fin-inline-icon">
                        <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                    </div>
                    Z projektem: Precyzyjny dobór
                </h4>
                <p>Dokładne wyliczenie strat ciepła dla każdego pomieszczenia (OZC) pozwala idealnie dobrać moc źródła i zagęścić rury tylko tam, gdzie to fizycznie potrzebne (np. strefy brzegowe przy przeszkleniach).</p>
            </div>
            <div class="rk-fin-card card-danger">
                <h4>
                    <div class="rk-fin-inline-icon">
                        <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
                    </div>
                    Bez projektu: Gra w ruletkę
                </h4>
                <p>Układanie rur na ślepo "wszędzie co 10 cm" to marnowanie tysięcy złotych na zbędny materiał. Ignorowanie zysków pasywnych z okien gwarantuje nieznośne przegrzewanie salonu.</p>
            </div>
        </div>

        <!-- Panel 2: Geometria -->
        <div class="rk-fin-panel" id="panel-geometry">
            <div class="rk-fin-card card-success">
                <h4>
                    <div class="rk-fin-inline-icon">
                        <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                    </div>
                    Z projektem: Optymalne pętle
                </h4>
                <p>Długość żadnej pętli nie przekracza normatywnych 120 metrów dla rury 16mm. Układ ślimakowy gwarantuje równomierny rozkład temperatury na całej powierzchni jastrychu.</p>
            </div>
            <div class="rk-fin-card card-danger">
                <h4>
                    <div class="rk-fin-inline-icon">
                        <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
                    </div>
                    Bez projektu: Krytyczne opory
                </h4>
                <p>Zbyt długie pętle (np. 150m) drastycznie zwiększają opory liniowe. Woda krąży wolniej, oddaje ciepło na początku pętli, pozostawiając resztę pokoju całkowicie wyziębioną.</p>
            </div>
        </div>

        <!-- Panel 3: Hydraulika -->
        <div class="rk-fin-panel" id="panel-hydraulics">
            <div class="rk-fin-card card-success">
                <h4>
                    <div class="rk-fin-inline-icon">
                        <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                    </div>
                    Z projektem: Stabilny przepływ
                </h4>
                <p>Otrzymujesz dokładne nastawy dla rotametrów (np. 1.5 l/min). Pompa obiegowa i sprężarka pompy ciepła pracują w optymalnym punkcie krzywej, maksymalizując wskaźnik COP.</p>
            </div>
            <div class="rk-fin-card card-danger">
                <h4>
                    <div class="rk-fin-inline-icon">
                        <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
                    </div>
                    Bez projektu: Chaos sprzętowy
                </h4>
                <p>Krótkie pętle kradną cały przepływ, długie pętle stoją w miejscu. Próba ratowania sytuacji mocniejszą pompą podnosi rachunki za prąd i generuje uciążliwe szumy w rozdzielaczu.</p>
            </div>
        </div>

    </div>

    <!-- Pigułki wiedzy (Zamiast hashtagów) -->
    <div class="rk-fin-tags-section">
        <span class="rk-fin-tags-title">Kluczowe zagadnienia techniczne poruszane w artykule:</span>
        <div class="rk-fin-tag-wrapper">
            <span class="rk-clean-tag">Pękanie posadzki na podłogówce</span>
            <span class="rk-clean-tag">Wysokie rachunki za ogrzewanie</span>
            <span class="rk-clean-tag">Precyzyjna hydraulika pompy ciepła</span>
            <span class="rk-clean-tag">Obliczenia OZC a hydraulika</span>
            <span class="rk-clean-tag">Kompleksowy projekt inżynierski</span>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const tabs = document.querySelectorAll('.rk-fin-tab-btn');
    const panels = document.querySelectorAll('.rk-fin-panel');

    tabs.forEach(tab => {
        tab.addEventListener('click', function() {
            // Czyszczenie
            tabs.forEach(t => t.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));
            
            // Aktywacja
            this.classList.add('active');
            const targetId = 'panel-' + this.getAttribute('data-target');
            document.getElementById(targetId).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-primary: #0284c7;
    --rk-dl-primary-hover: #0369a1;
    --rk-dl-bg: #ffffff;
    --rk-dl-surface: #f8fafc;
    --rk-dl-border: #e2e8f0;
    --rk-dl-text: #334155;
    --rk-dl-success: #10b981;
    --rk-dl-accent: #38bdf8;
}

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

/* Nagłówek */
.rk-dl-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-dl-dark) 0%, #1e293b 100%);
    color: #ffffff;
    border-bottom: 4px solid var(--rk-dl-primary);
}

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

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

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

/* Układ 2-kolumnowy */
.rk-dl-layout {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    background: var(--rk-dl-bg);
}

/* Sekcja Podglądu Grafiki */
.rk-dl-preview {
    padding: 40px;
    background: var(--rk-dl-surface);
    border-right: 1px solid var(--rk-dl-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.rk-dl-image-box {
    width: 100%;
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    border: 2px solid var(--rk-dl-border);
    box-shadow: 0 10px 20px rgba(0,0,0,0.05);
    cursor: zoom-in;
    transition: transform 0.3s ease, border-color 0.3s ease;
}

.rk-dl-image-box:hover {
    transform: translateY(-5px);
    border-color: var(--rk-dl-primary);
}

.rk-dl-image-box img {
    width: 100%;
    height: auto;
    display: block;
}

.rk-dl-zoom-overlay {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.rk-dl-image-box:hover .rk-dl-zoom-overlay {
    opacity: 1;
}

.rk-dl-zoom-icon {
    background: var(--rk-dl-primary);
    color: #ffffff;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}

/* Sekcja Informacji i Pobierania */
.rk-dl-info {
    padding: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

.rk-dl-list {
    list-style: none;
    padding: 0;
    margin: 0 0 30px 0;
}

.rk-dl-list li {
    font-size: 15px;
    color: var(--rk-dl-text);
    margin-bottom: 12px;
    padding-left: 32px;
    position: relative;
    line-height: 1.6;
    font-weight: 500;
}

.rk-dl-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 2px;
    width: 20px;
    height: 20px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2310b981' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
}

.rk-btn-download {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-dl-primary);
    color: #ffffff;
    font-size: 16px;
    font-weight: 800;
    padding: 18px 30px;
    border-radius: 14px;
    text-decoration: none !important;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.3);
}

.rk-btn-download:hover {
    background: var(--rk-dl-primary-hover);
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(2, 132, 199, 0.4);
}

.rk-btn-download svg {
    transition: transform 0.3s;
}

.rk-btn-download:hover svg {
    transform: translateY(3px);
}

/* Stopka: Copyright i Tagi */
.rk-dl-footer {
    padding: 25px 40px;
    background: var(--rk-dl-surface);
    border-top: 1px solid var(--rk-dl-border);
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-dl-copyright {
    font-size: 13px;
    color: #64748b;
    margin: 0;
    line-height: 1.6;
    text-align: center;
}

.rk-dl-tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
}

.rk-dl-tag {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-dl-primary);
    background: #e0f2fe;
    padding: 6px 14px;
    border-radius: 6px;
    border: 1px solid #bae6fd;
}

/* --- LIGHTBOX (Modal) --- */
.rk-lightbox {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.95);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
    backdrop-filter: blur(5px);
}

.rk-lightbox.active {
    opacity: 1;
    pointer-events: auto;
}

.rk-lightbox-content {
    position: relative;
    max-width: 90vw;
    max-height: 90vh;
    transform: scale(0.95);
    transition: transform 0.3s ease;
}

.rk-lightbox.active .rk-lightbox-content {
    transform: scale(1);
}

.rk-lightbox-img {
    max-width: 100%;
    max-height: 90vh;
    border-radius: 12px;
    box-shadow: 0 25px 50px -12px rgba(0,0,0,0.5);
    display: block;
}

.rk-lightbox-close {
    position: absolute;
    top: -20px;
    right: -20px;
    background: #ffffff;
    color: var(--rk-dl-dark);
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,0.3);
    border: none;
    transition: background 0.2s;
}

.rk-lightbox-close:hover {
    background: #f1f5f9;
}

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-dl-header { padding: 30px 20px; }
    .rk-dl-header h2 { font-size: 24px; }
    .rk-dl-layout { grid-template-columns: 1fr; }
    .rk-dl-preview { padding: 30px 20px; border-right: none; border-bottom: 1px solid var(--rk-dl-border); }
    .rk-dl-info { padding: 30px 20px; }
    .rk-dl-footer { padding: 25px 20px; }
    .rk-btn-download { width: 100%; font-size: 15px; }
    .rk-lightbox-close { top: 10px; right: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/"
    },
    "headline": "Materiały dodatkowe: Infografika wymogów prawa budowlanego",
    "description": "Pobierz darmową infografikę w formacie PDF. Eksperckie zestawienie norm prawnych, wymogów odbioru i parametrów montażowych instalacji grzewczej.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-15",
    "dateModified": "2026-06-15"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#dataset-infografika",
    "name": "Infografika techniczna: Prawo budowlane a projekt podłogówki",
    "description": "Graficzne zestawienie norm prawnych i parametrów montażowych, gotowe do wydruku dla inwestora.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "darmowy projekt ogrzewania podłogowego pdf",
      "schemat instalacji ogrzewania podłogowego",
      "odbiór instalacji ogrzewania podłogowego",
      "jak czytać projekt ogrzewania podłogowego",
      "warunki techniczne odbioru instalacji hvac"
    ],
    "measurementTechnique": "Zestawienie wizualne opierające się na wytycznych normy PN-EN 1264 oraz uwarunkowaniach Prawa Budowlanego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Format danych: Dokument PDF przystosowany do weryfikacji na budowie.",
        "Status prawny: Materiał autorski z możliwością redystrybucji z zachowaniem oryginalnego logotypu.",
        "Zawartość merytoryczna: Algorytmy doboru, wytyczne do odbioru technicznego i wymogi programu Czyste Powietrze."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/#webapp-infografika",
    "name": "Interaktywna Przeglądarka Dokumentacji",
    "description": "Wbudowany moduł Lightbox pozwalający na podgląd infografiki inżynierskiej w wysokiej rozdzielczości oraz bezpośrednie pobranie certyfikowanego dokumentu PDF.",
    "applicationCategory": "MultimediaApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5, CSS3",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-container">
    <div class="rk-dl-header">
        <h2>
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
                <path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path>
                <polyline points="14 2 14 8 20 8"></polyline>
                <line x1="12" y1="18" x2="12" y2="12"></line>
                <polyline points="9 15 12 18 15 15"></polyline>
            </svg>
            Baza Wiedzy: Podsumowanie w pigułce
        </h2>
        <p>Pobierz autorską infografikę. Zabierz twarde dane na budowę i miej pewność, że wykonawca przestrzega standardów inżynierskich.</p>
    </div>

    <div class="rk-dl-layout">
        
        <div class="rk-dl-preview">
            <div class="rk-dl-image-box" id="rkOpenLightbox" role="button" aria-label="Powiększ infografikę">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe.webp" alt="Podgląd infografiki: Czy trzeba mieć projekt na ogrzewanie podłogowe">
                <div class="rk-dl-zoom-overlay">
                    <div class="rk-dl-zoom-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-dl-info">
            <h3>Co znajdziesz w materiale?</h3>
            <ul class="rk-dl-list">
                <li>Zestawienie twardych norm PN-EN dotyczących instalacji.</li>
                <li>Wizualny algorytm prawidłowego rozstawu pętli.</li>
                <li>Skrócony wykaz wymogów prawnych do odbioru budynku.</li>
                <li>Porównanie kosztów (instalacja z głowy vs dokumentacja).</li>
            </ul>
            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe.pdf" download="" class="rk-btn-download">
                <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
                Pobierz materiał PDF
            </a>
        </div>
    </div>

    <div class="rk-dl-footer">
        <div class="rk-dl-tags">
            <span class="rk-dl-tag">schemat instalacji ogrzewania podłogowego</span>
            <span class="rk-dl-tag">darmowy projekt ogrzewania podłogowego pdf</span>
            <span class="rk-dl-tag">odbiór instalacji ogrzewania podłogowego</span>
            <span class="rk-dl-tag">jak czytać projekt ogrzewania podłogowego</span>
        </div>
        <p class="rk-dl-copyright">
            © 2026 Projekt-Ogrzewania.pl | Autor: Robert Kucharski. Udostępnianie materiału PDF dozwolone wyłącznie z zachowaniem logotypu portalu i bez modyfikacji pliku.
        </p>
    </div>
</div>

<div class="rk-lightbox" id="rkLightboxOverlay">
    <div class="rk-lightbox-content">
        <button class="rk-lightbox-close" id="rkCloseLightbox" aria-label="Zamknij podgląd">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
        </button>
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe.webp" alt="Pełny podgląd infografiki" class="rk-lightbox-img">
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const openBtn = document.getElementById('rkOpenLightbox');
    const closeBtn = document.getElementById('rkCloseLightbox');
    const overlay = document.getElementById('rkLightboxOverlay');

    // Otwórz Lightbox
    openBtn.addEventListener('click', function() {
        overlay.classList.add('active');
        document.body.style.overflow = 'hidden'; // Zablokowanie scrollowania strony
    });

    // Zamknij Lightbox (X button)
    closeBtn.addEventListener('click', function() {
        overlay.classList.remove('active');
        document.body.style.overflow = '';
    });

    // Zamknij Lightbox klikając w tło
    overlay.addEventListener('click', function(e) {
        if (e.target === overlay) {
            overlay.classList.remove('active');
            document.body.style.overflow = '';
        }
    });

    // Zamknij Lightbox klawiszem ESC
    document.addEventListener('keydown', function(e) {
        if (e.key === 'Escape' && overlay.classList.contains('active')) {
            overlay.classList.remove('active');
            document.body.style.overflow = '';
        }
    });
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/">Czy trzeba mieć projekt na 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/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Maksymalna długość pętli ogrzewania podłogowego.</title>
		<link>https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/</link>
					<comments>https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Wed, 05 Feb 2025 20:55:07 +0000</pubDate>
				<category><![CDATA[Budowa i remont]]></category>
		<category><![CDATA[Dom pasywny]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Hydraulika]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Projektowanie systemów grzewczych]]></category>
		<category><![CDATA[Technologie budowlane]]></category>
		<category><![CDATA[długość pętli grzewczej]]></category>
		<category><![CDATA[izolacja termiczna]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[pętla ogrzewania podłogowego]]></category>
		<category><![CDATA[pex 16 mm]]></category>
		<category><![CDATA[pex 20 mm]]></category>
		<category><![CDATA[pompa obiegowa]]></category>
		<category><![CDATA[projektowanie ogrzewania]]></category>
		<category><![CDATA[równoważenie hydrauliczne]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2095</guid>

					<description><![CDATA[<p>Planujesz montaż ogrzewania podłogowego? Maksymalna długość pętli ogrzewania podłogowego to parametr, od którego zależy komfort cieplny i oszczędność energii. Zbyt długa pętla powoduje zimne strefy na podłodze, przeciąża pompę i zwiększa rachunki. W artykule wyjaśniamy, jak dobrać optymalną długość rur PEX 16 mm i 20 mm, jak obliczyć wydajność pompy oraz dlaczego izolacja podłogi jest kluczowa. Poznaj praktyczne przykłady, wzory i błędy, których warto uniknąć, by system działał sprawnie przez lata!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">Maksymalna długość pętli ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-loop-guide {
    --rk-dark: #102536;
    --rk-navy: #14384d;
    --rk-navy-2: #0c2d40;
    --rk-blue: #078fbe;
    --rk-cyan: #27c8d9;
    --rk-cyan-soft: #e9fbff;
    --rk-orange: #ff6f3d;
    --rk-orange-soft: #fff1eb;
    --rk-green: #17846d;
    --rk-green-soft: #eaf8f3;
    --rk-yellow: #e7ad2f;
    --rk-yellow-soft: #fff8df;
    --rk-red: #d94b3d;
    --rk-red-soft: #fff0ee;
    --rk-purple: #695ac9;
    --rk-purple-soft: #f1efff;
    --rk-ink: #1f2c37;
    --rk-text: #475967;
    --rk-muted: #6b7e8a;
    --rk-line: #d5e4eb;
    --rk-soft: #f4f9fb;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1180px;
    margin: 34px auto 72px;
    color: var(--rk-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 18px;
    line-height: 1.75;
  }

  #rk-loop-guide,
  #rk-loop-guide * {
    box-sizing: border-box;
  }

  #rk-loop-guide img,
  #rk-loop-guide svg {
    max-width: 100%;
  }

  #rk-loop-guide a {
    color: var(--rk-blue);
    text-decoration-thickness: 1.5px;
    text-underline-offset: 3px;
  }

  #rk-loop-guide a:hover,
  #rk-loop-guide a:focus-visible {
    color: var(--rk-orange);
  }

  #rk-loop-guide button,
  #rk-loop-guide input,
  #rk-loop-guide select,
  #rk-loop-guide label,
  #rk-loop-guide summary,
  #rk-loop-guide a {
    font: inherit;
  }

  #rk-loop-guide button,
  #rk-loop-guide input,
  #rk-loop-guide select,
  #rk-loop-guide summary,
  #rk-loop-guide a {
    outline-offset: 3px;
  }

  #rk-loop-guide .rk-loop-shell {
    overflow: hidden;
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 30px;
    box-shadow: 0 24px 70px rgba(16, 37, 54, 0.11);
  }

  #rk-loop-guide .rk-loop-hero {
    position: relative;
    overflow: hidden;
    padding: 68px 58px 62px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 88% 18%, rgba(39, 200, 217, 0.26) 0, rgba(39, 200, 217, 0) 34%),
      linear-gradient(135deg, var(--rk-dark) 0%, var(--rk-navy) 58%, #175269 100%);
  }

  #rk-loop-guide .rk-loop-hero::before,
  #rk-loop-guide .rk-loop-hero::after {
    position: absolute;
    border-radius: 999px;
    content: "";
    pointer-events: none;
  }

  #rk-loop-guide .rk-loop-hero::before {
    top: -110px;
    right: -85px;
    width: 330px;
    height: 330px;
    border: 34px solid rgba(255, 255, 255, 0.055);
  }

  #rk-loop-guide .rk-loop-hero::after {
    right: 80px;
    bottom: -145px;
    width: 290px;
    height: 290px;
    border: 2px solid rgba(39, 200, 217, 0.35);
  }

  #rk-loop-guide .rk-loop-hero-inner {
    position: relative;
    z-index: 1;
    max-width: 910px;
  }

  #rk-loop-guide .rk-loop-eyebrow,
  #rk-loop-guide .rk-loop-kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
    color: var(--rk-blue);
    font-size: 0.76rem;
    font-weight: 850;
    letter-spacing: 0.1em;
    line-height: 1.35;
    text-transform: uppercase;
  }

  #rk-loop-guide .rk-loop-eyebrow {
    color: #8af2ff;
  }

  #rk-loop-guide .rk-loop-eyebrow b {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--rk-orange);
    box-shadow: 0 0 0 6px rgba(255, 111, 61, 0.14);
  }

  #rk-loop-guide .rk-loop-hero-title {
    max-width: 860px;
    margin: 0;
    color: var(--rk-white);
    font-size: clamp(2.15rem, 5vw, 4.15rem);
    font-weight: 920;
    letter-spacing: -0.055em;
    line-height: 1.02;
  }

  #rk-loop-guide .rk-loop-hero-lead {
    max-width: 820px;
    margin: 25px 0 0;
    color: #d8edf5;
    font-size: 1.12rem;
    line-height: 1.72;
  }

  #rk-loop-guide .rk-loop-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 22px;
    margin-top: 29px;
    color: #b9d7e2;
    font-size: 0.84rem;
    font-weight: 700;
  }

  #rk-loop-guide .rk-loop-meta span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
  }

  #rk-loop-guide .rk-loop-meta i {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--rk-cyan);
  }

  #rk-loop-guide .rk-loop-nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    padding: 22px 28px;
    background: var(--rk-white);
    border-bottom: 1px solid var(--rk-line);
  }

  #rk-loop-guide .rk-loop-nav strong {
    margin-right: 5px;
    color: var(--rk-dark);
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.07em;
    text-transform: uppercase;
  }

  #rk-loop-guide .rk-loop-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 9px 15px;
    color: var(--rk-navy);
    background: var(--rk-soft);
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 820;
    line-height: 1.25;
    text-decoration: none;
  }

  #rk-loop-guide .rk-loop-nav a:hover,
  #rk-loop-guide .rk-loop-nav a:focus-visible {
    color: var(--rk-dark);
    background: var(--rk-cyan-soft);
    border-color: #a9eaf1;
  }

  #rk-loop-guide .rk-loop-section {
    padding: 66px 58px;
    scroll-margin-top: 24px;
  }

  #rk-loop-guide .rk-loop-section:nth-of-type(even) {
    background: #fbfdfe;
  }

  #rk-loop-guide .rk-loop-section + .rk-loop-section {
    border-top: 1px solid var(--rk-line);
  }

  #rk-loop-guide h2,
  #rk-loop-guide h3,
  #rk-loop-guide h4,
  #rk-loop-guide p {
    margin-top: 0;
  }

  #rk-loop-guide h2 {
    max-width: 900px;
    margin-bottom: 20px;
    color: var(--rk-dark);
    font-size: clamp(1.8rem, 3.5vw, 2.75rem);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1.12;
  }

  #rk-loop-guide h3 {
    margin-bottom: 10px;
    color: var(--rk-navy);
    font-size: 1.2rem;
    font-weight: 850;
    letter-spacing: -0.02em;
    line-height: 1.28;
  }

  #rk-loop-guide h4 {
    margin-bottom: 8px;
    color: var(--rk-dark);
    font-size: 0.98rem;
    font-weight: 850;
    line-height: 1.35;
  }

  #rk-loop-guide p {
    margin-bottom: 18px;
    color: var(--rk-text);
  }

  #rk-loop-guide .rk-loop-intro {
    max-width: 940px;
    margin-bottom: 30px;
    color: #3e5361;
    font-size: 1.08rem;
    line-height: 1.78;
  }

  #rk-loop-guide .rk-loop-answer {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(260px, 0.75fr);
    gap: 18px;
    margin: 30px 0;
  }

  #rk-loop-guide .rk-loop-answer-main,
  #rk-loop-guide .rk-loop-answer-side,
  #rk-loop-guide .rk-loop-card,
  #rk-loop-guide .rk-loop-note,
  #rk-loop-guide .rk-loop-step,
  #rk-loop-guide .rk-loop-error {
    border: 1px solid var(--rk-line);
    border-radius: 19px;
  }

  #rk-loop-guide .rk-loop-answer-main {
    padding: 28px;
    background: linear-gradient(135deg, var(--rk-cyan-soft), var(--rk-white));
    border-left: 5px solid var(--rk-cyan);
  }

  #rk-loop-guide .rk-loop-answer-side {
    padding: 28px;
    background: var(--rk-yellow-soft);
    border-left: 5px solid var(--rk-yellow);
  }

  #rk-loop-guide .rk-loop-answer p:last-child,
  #rk-loop-guide .rk-loop-card p:last-child,
  #rk-loop-guide .rk-loop-note p:last-child,
  #rk-loop-guide .rk-loop-step p:last-child,
  #rk-loop-guide .rk-loop-error p:last-child {
    margin-bottom: 0;
  }

  #rk-loop-guide .rk-loop-grid-2,
  #rk-loop-guide .rk-loop-grid-3,
  #rk-loop-guide .rk-loop-grid-4 {
    display: grid;
    gap: 18px;
    margin: 28px 0;
  }

  #rk-loop-guide .rk-loop-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-loop-guide .rk-loop-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-loop-guide .rk-loop-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #rk-loop-guide .rk-loop-card {
    padding: 25px;
    background: var(--rk-white);
    box-shadow: 0 8px 25px rgba(16, 37, 54, 0.045);
  }

  #rk-loop-guide .rk-loop-card-number {
    display: inline-flex;
    margin-bottom: 13px;
    color: var(--rk-blue);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.075em;
    text-transform: uppercase;
  }

  #rk-loop-guide .rk-loop-badge {
    display: inline-flex;
    align-items: center;
    padding: 5px 10px;
    margin: 0 4px 4px 0;
    color: var(--rk-dark);
    background: var(--rk-cyan-soft);
    border: 1px solid #a9eaf1;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 820;
  }

  #rk-loop-guide .rk-loop-formula {
    display: grid;
    gap: 7px;
    margin: 27px 0;
    padding: 23px 27px;
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-dark), var(--rk-navy));
    border-radius: 18px;
  }

  #rk-loop-guide .rk-loop-formula strong {
    overflow-wrap: anywhere;
    color: #8af2ff;
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
    font-size: 1.06rem;
    line-height: 1.55;
  }

  #rk-loop-guide .rk-loop-formula span {
    color: #c5dfe8;
    font-size: 0.83rem;
    line-height: 1.55;
  }

  #rk-loop-guide .rk-loop-note {
    margin: 25px 0;
    padding: 22px 25px;
    background: var(--rk-soft);
    border-left: 5px solid var(--rk-blue);
  }

  #rk-loop-guide .rk-loop-note.rk-loop-warning {
    background: var(--rk-yellow-soft);
    border-left-color: var(--rk-yellow);
  }

  #rk-loop-guide .rk-loop-note.rk-loop-danger {
    background: var(--rk-red-soft);
    border-left-color: var(--rk-red);
  }

  #rk-loop-guide .rk-loop-route {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
    align-items: stretch;
    margin: 30px 0;
  }

  #rk-loop-guide .rk-loop-route-item {
    position: relative;
    display: flex;
    min-height: 115px;
    flex-direction: column;
    justify-content: center;
    padding: 18px 16px;
    color: var(--rk-dark);
    text-align: center;
    background: var(--rk-soft);
    border: 1px solid var(--rk-line);
    border-radius: 16px;
  }

  #rk-loop-guide .rk-loop-route-item:not(:last-child)::after {
    position: absolute;
    top: 50%;
    right: -15px;
    z-index: 2;
    width: 20px;
    height: 20px;
    color: var(--rk-blue);
    background: var(--rk-white);
    border-radius: 50%;
    content: "›";
    font-size: 1.5rem;
    font-weight: 900;
    line-height: 17px;
  }

  #rk-loop-guide .rk-loop-route-item b {
    display: block;
    margin-bottom: 5px;
    color: var(--rk-navy);
    font-size: 0.92rem;
  }

  #rk-loop-guide .rk-loop-route-item span {
    color: var(--rk-muted);
    font-size: 0.76rem;
    line-height: 1.45;
  }

  #rk-loop-guide .rk-loop-sequence {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    margin: 28px 0;
  }

  #rk-loop-guide .rk-loop-sequence article {
    padding: 20px 17px;
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-top: 4px solid var(--rk-cyan);
    border-radius: 15px;
  }

  #rk-loop-guide .rk-loop-sequence b {
    display: inline-grid;
    width: 31px;
    height: 31px;
    margin-bottom: 11px;
    place-items: center;
    color: var(--rk-white);
    background: var(--rk-navy);
    border-radius: 10px;
    font-size: 0.8rem;
  }

  #rk-loop-guide .rk-loop-sequence strong {
    display: block;
    margin-bottom: 6px;
    color: var(--rk-dark);
    font-size: 0.9rem;
    line-height: 1.35;
  }

  #rk-loop-guide .rk-loop-sequence span {
    display: block;
    color: var(--rk-muted);
    font-size: 0.76rem;
    line-height: 1.45;
  }

  #rk-loop-guide .rk-loop-table-wrap {
    margin: 28px 0;
  }

  #rk-loop-guide table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    font-size: 0.88rem;
  }

  #rk-loop-guide thead {
    color: var(--rk-white);
    background: var(--rk-navy);
  }

  #rk-loop-guide th,
  #rk-loop-guide td {
    padding: 15px 17px;
    text-align: left;
    vertical-align: top;
  }

  #rk-loop-guide th {
    font-size: 0.76rem;
    font-weight: 850;
    letter-spacing: 0.025em;
    line-height: 1.35;
  }

  #rk-loop-guide td {
    color: var(--rk-text);
    border-top: 1px solid var(--rk-line);
    line-height: 1.5;
  }

  #rk-loop-guide tbody tr:first-child td {
    border-top: 0;
  }

  #rk-loop-guide tbody tr:nth-child(even) {
    background: #f8fbfc;
  }

  #rk-loop-guide .rk-loop-tool-section {
    padding: 0;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 90% 10%, rgba(39, 200, 217, 0.18), transparent 31%),
      linear-gradient(155deg, #0d2b3d 0%, #12384d 58%, #102d3f 100%);
  }

  #rk-loop-guide .rk-loop-tool-head {
    padding: 58px 58px 31px;
  }

  #rk-loop-guide .rk-loop-tool-head .rk-loop-kicker {
    color: #7ff1ff;
  }

  #rk-loop-guide .rk-loop-tool-head h2 {
    margin-bottom: 16px;
    color: var(--rk-white);
  }

  #rk-loop-guide .rk-loop-tool-head p {
    max-width: 930px;
    margin-bottom: 0;
    color: #c3dce6;
  }

  #rk-loop-guide .rk-loop-tool {
    padding: 0 34px 45px;
  }

  #rk-loop-guide .rk-loop-tool-panel {
    padding: 29px;
    background: rgba(255, 255, 255, 0.045);
    border: 1px solid rgba(157, 221, 235, 0.24);
    border-radius: 21px;
  }

  #rk-loop-guide .rk-loop-tool-panel + .rk-loop-tool-panel {
    margin-top: 20px;
  }

  #rk-loop-guide .rk-loop-tool-panel h3 {
    margin-bottom: 7px;
    color: var(--rk-white);
  }

  #rk-loop-guide .rk-loop-tool-panel > p {
    margin-bottom: 23px;
    color: #b8d2dd;
    font-size: 0.84rem;
  }

  #rk-loop-guide .rk-loop-input-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
  }

  #rk-loop-guide .rk-loop-fieldset {
    min-width: 0;
    margin: 0;
    padding: 22px;
    border: 1px solid rgba(166, 220, 233, 0.25);
    border-radius: 17px;
  }

  #rk-loop-guide .rk-loop-fieldset legend {
    padding: 0 9px;
    color: #86f2ff;
    font-size: 0.79rem;
    font-weight: 900;
    letter-spacing: 0.055em;
    text-transform: uppercase;
  }

  #rk-loop-guide .rk-loop-field {
    display: block;
    margin-bottom: 16px;
  }

  #rk-loop-guide .rk-loop-field:last-child {
    margin-bottom: 0;
  }

  #rk-loop-guide .rk-loop-field-label {
    display: block;
    margin-bottom: 7px;
    color: #eaf8fc;
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1.35;
  }

  #rk-loop-guide .rk-loop-field small {
    display: block;
    margin-top: 6px;
    color: #8fb3c1;
    font-size: 0.69rem;
    line-height: 1.42;
  }

  #rk-loop-guide .rk-loop-input-row {
    position: relative;
  }

  #rk-loop-guide .rk-loop-input-row input,
  #rk-loop-guide .rk-loop-input-row select {
    width: 100%;
    min-height: 48px;
    padding: 10px 48px 10px 13px;
    color: var(--rk-dark);
    background: var(--rk-white);
    border: 1px solid #bed3dc;
    border-radius: 10px;
    font-size: 0.91rem;
    font-weight: 750;
  }

  #rk-loop-guide .rk-loop-input-row select {
    padding-right: 13px;
  }

  #rk-loop-guide .rk-loop-input-row input:disabled {
    color: #78909b;
    background: #dbe6ea;
    cursor: not-allowed;
  }

  #rk-loop-guide .rk-loop-unit {
    position: absolute;
    top: 50%;
    right: 13px;
    color: #667d88;
    font-size: 0.69rem;
    font-weight: 850;
    transform: translateY(-50%);
    pointer-events: none;
  }

  #rk-loop-guide .rk-loop-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 22px;
  }

  #rk-loop-guide .rk-loop-button {
    min-height: 48px;
    padding: 11px 20px;
    color: var(--rk-dark);
    background: var(--rk-cyan);
    border: 0;
    border-radius: 11px;
    cursor: pointer;
    font-size: 0.82rem;
    font-weight: 900;
  }

  #rk-loop-guide .rk-loop-button:hover,
  #rk-loop-guide .rk-loop-button:focus-visible {
    background: #72e9f4;
  }

  #rk-loop-guide .rk-loop-button-secondary {
    color: #d9edf4;
    background: transparent;
    border: 1px solid #53778a;
  }

  #rk-loop-guide .rk-loop-button-secondary:hover,
  #rk-loop-guide .rk-loop-button-secondary:focus-visible {
    color: var(--rk-white);
    background: rgba(255, 255, 255, 0.08);
  }

  #rk-loop-guide .rk-loop-results {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 13px;
    margin-top: 23px;
  }

  #rk-loop-guide .rk-loop-result {
    min-width: 0;
    padding: 18px;
    background: rgba(6, 29, 42, 0.48);
    border: 1px solid rgba(152, 218, 232, 0.2);
    border-radius: 14px;
  }

  #rk-loop-guide .rk-loop-result span {
    display: block;
    margin-bottom: 7px;
    color: #91b7c5;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.045em;
    line-height: 1.35;
    text-transform: uppercase;
  }

  #rk-loop-guide .rk-loop-result strong {
    display: block;
    overflow-wrap: anywhere;
    color: var(--rk-white);
    font-size: 1.32rem;
    font-weight: 900;
    line-height: 1.15;
  }

  #rk-loop-guide .rk-loop-result small {
    display: block;
    margin-top: 6px;
    color: #759cab;
    font-size: 0.65rem;
    line-height: 1.35;
  }

  #rk-loop-guide .rk-loop-status {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 15px;
    align-items: start;
    margin-top: 18px;
    padding: 19px 21px;
    background: rgba(23, 132, 109, 0.19);
    border: 1px solid rgba(96, 224, 186, 0.4);
    border-left: 5px solid #4fd5af;
    border-radius: 14px;
  }

  #rk-loop-guide .rk-loop-status.rk-loop-status-warning {
    background: rgba(231, 173, 47, 0.16);
    border-color: rgba(239, 195, 94, 0.42);
    border-left-color: var(--rk-yellow);
  }

  #rk-loop-guide .rk-loop-status.rk-loop-status-danger {
    background: rgba(217, 75, 61, 0.17);
    border-color: rgba(235, 118, 104, 0.42);
    border-left-color: var(--rk-red);
  }

  #rk-loop-guide .rk-loop-status-icon {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    color: var(--rk-dark);
    background: #5addb7;
    border-radius: 12px;
    font-weight: 950;
  }

  #rk-loop-guide .rk-loop-status-warning .rk-loop-status-icon {
    background: var(--rk-yellow);
  }

  #rk-loop-guide .rk-loop-status-danger .rk-loop-status-icon {
    color: var(--rk-white);
    background: var(--rk-red);
  }

  #rk-loop-guide .rk-loop-status strong {
    display: block;
    margin-bottom: 4px;
    color: var(--rk-white);
    font-size: 0.96rem;
  }

  #rk-loop-guide .rk-loop-status p {
    margin: 0;
    color: #c4dce5;
    font-size: 0.8rem;
    line-height: 1.55;
  }

  #rk-loop-guide .rk-loop-chart-wrap {
    padding: 20px;
    background: var(--rk-white);
    border-radius: 17px;
  }

  #rk-loop-guide .rk-loop-chart {
    display: block;
    width: 100%;
    min-height: 350px;
  }

  #rk-loop-guide .rk-loop-chart-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin-top: 13px;
    color: #52707d;
    font-size: 0.72rem;
    font-weight: 780;
  }

  #rk-loop-guide .rk-loop-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 7px;
  }

  #rk-loop-guide .rk-loop-legend-line {
    width: 23px;
    height: 4px;
    border-radius: 4px;
  }

  #rk-loop-guide .rk-loop-chart-note {
    margin: 14px 0 0;
    color: #657c87;
    font-size: 0.72rem;
    line-height: 1.5;
  }

  #rk-loop-guide .rk-loop-tool-table table {
    background: rgba(255, 255, 255, 0.04);
    border-color: rgba(161, 218, 231, 0.22);
  }

  #rk-loop-guide .rk-loop-tool-table thead {
    background: rgba(6, 29, 42, 0.65);
  }

  #rk-loop-guide .rk-loop-tool-table td {
    color: #d1e5ec;
    border-color: rgba(161, 218, 231, 0.18);
  }

  #rk-loop-guide .rk-loop-tool-table tbody tr:nth-child(even) {
    background: rgba(255, 255, 255, 0.025);
  }

  #rk-loop-guide .rk-loop-diagnostics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 13px;
    margin-top: 20px;
  }

  #rk-loop-guide .rk-loop-diagnostic {
    padding: 17px;
    color: #c4dce5;
    background: rgba(6, 29, 42, 0.36);
    border: 1px solid rgba(155, 214, 228, 0.18);
    border-radius: 13px;
    font-size: 0.74rem;
    line-height: 1.5;
  }

  #rk-loop-guide .rk-loop-diagnostic b {
    display: block;
    margin-bottom: 5px;
    color: #8af2ff;
    font-size: 0.76rem;
  }

  #rk-loop-guide .rk-loop-tool-disclaimer {
    margin: 22px 0 0;
    padding: 18px 20px;
    color: #b5d0da;
    background: rgba(255, 255, 255, 0.05);
    border-left: 4px solid var(--rk-orange);
    border-radius: 12px;
    font-size: 0.75rem;
    line-height: 1.55;
  }

  #rk-loop-guide .rk-loop-cta,
  #rk-loop-guide .rk-loop-final-cta {
    padding: 48px 52px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 90% 12%, rgba(39, 200, 217, 0.22), transparent 32%),
      linear-gradient(135deg, var(--rk-dark), var(--rk-navy));
  }

  #rk-loop-guide .rk-loop-cta {
    margin: 0;
    border-top: 1px solid rgba(160, 220, 233, 0.18);
  }

  #rk-loop-guide .rk-loop-cta-title {
    max-width: 860px;
    margin: 0 0 13px;
    color: var(--rk-white);
    font-size: clamp(1.65rem, 3vw, 2.35rem);
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.15;
  }

  #rk-loop-guide .rk-loop-cta p,
  #rk-loop-guide .rk-loop-final-cta p {
    max-width: 900px;
    color: #c5dfe8;
  }

  #rk-loop-guide .rk-loop-cta-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 12px 23px;
    margin-top: 8px;
    color: var(--rk-dark);
    background: var(--rk-cyan);
    border: 0;
    border-radius: 12px;
    box-shadow: 0 10px 28px rgba(39, 200, 217, 0.19);
    font-size: 0.84rem;
    font-weight: 900;
    line-height: 1.35;
    text-align: center;
    text-decoration: none;
  }

  #rk-loop-guide .rk-loop-cta-button:hover,
  #rk-loop-guide .rk-loop-cta-button:focus-visible {
    color: var(--rk-dark);
    background: #7cf0fa;
    transform: translateY(-1px);
  }

  #rk-loop-guide .rk-loop-disclosure {
    display: block;
    margin-top: 13px;
    color: #87adbc;
    font-size: 0.67rem;
    line-height: 1.45;
  }

  #rk-loop-guide .rk-loop-steps {
    display: grid;
    gap: 13px;
    margin: 28px 0;
    counter-reset: rk-loop-step;
  }

  #rk-loop-guide .rk-loop-step {
    position: relative;
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 17px;
    padding: 21px 23px;
    background: var(--rk-white);
    counter-increment: rk-loop-step;
  }

  #rk-loop-guide .rk-loop-step::before {
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    color: var(--rk-white);
    background: var(--rk-blue);
    border-radius: 13px;
    content: counter(rk-loop-step, decimal-leading-zero);
    font-size: 0.76rem;
    font-weight: 900;
  }

  #rk-loop-guide .rk-loop-errors {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px;
    margin: 28px 0;
  }

  #rk-loop-guide .rk-loop-error {
    padding: 23px;
    background: var(--rk-white);
    border-left: 5px solid var(--rk-red);
  }

  #rk-loop-guide .rk-loop-error b {
    display: inline-flex;
    margin-bottom: 10px;
    color: var(--rk-red);
    font-size: 0.73rem;
    font-weight: 900;
    letter-spacing: 0.07em;
    text-transform: uppercase;
  }

  #rk-loop-guide .rk-loop-faq {
    display: grid;
    gap: 12px;
    margin-top: 27px;
  }

  #rk-loop-guide .rk-loop-faq details {
    overflow: hidden;
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 15px;
  }

  #rk-loop-guide .rk-loop-faq summary {
    position: relative;
    padding: 19px 55px 19px 21px;
    color: var(--rk-dark);
    cursor: pointer;
    font-size: 0.94rem;
    font-weight: 850;
    line-height: 1.4;
    list-style: none;
  }

  #rk-loop-guide .rk-loop-faq summary::-webkit-details-marker {
    display: none;
  }

  #rk-loop-guide .rk-loop-faq summary::after {
    position: absolute;
    top: 50%;
    right: 20px;
    display: grid;
    width: 29px;
    height: 29px;
    place-items: center;
    color: var(--rk-white);
    background: var(--rk-blue);
    border-radius: 9px;
    content: "+";
    font-size: 1.15rem;
    transform: translateY(-50%);
  }

  #rk-loop-guide .rk-loop-faq details[open] summary::after {
    content: "−";
  }

  #rk-loop-guide .rk-loop-faq-answer {
    padding: 0 21px 20px;
  }

  #rk-loop-guide .rk-loop-faq-answer p:last-child {
    margin-bottom: 0;
  }

  #rk-loop-guide .rk-loop-sources {
    display: grid;
    gap: 12px;
    margin-top: 26px;
  }

  #rk-loop-guide .rk-loop-source {
    padding: 19px 21px;
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 14px;
  }

  #rk-loop-guide .rk-loop-source b {
    display: block;
    margin-bottom: 5px;
    color: var(--rk-dark);
  }

  #rk-loop-guide .rk-loop-source p {
    margin-bottom: 7px;
    font-size: 0.82rem;
  }

  #rk-loop-guide .rk-loop-source a {
    overflow-wrap: anywhere;
    font-size: 0.79rem;
    font-weight: 800;
  }

  #rk-loop-guide .rk-loop-update {
    margin-top: 25px;
    color: var(--rk-muted);
    font-size: 0.72rem;
    font-weight: 750;
  }

  #rk-loop-guide .rk-loop-author {
    position: relative;
    padding: 0;
    background: #f4f9fb;
    border-top: 1px solid var(--rk-line);
    scroll-margin-top: 24px;
  }

  #rk-loop-guide .rk-loop-author > input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
  }

  #rk-loop-guide .rk-loop-author-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    padding: 42px 50px 28px;
    background: var(--rk-white);
    border-bottom: 1px solid var(--rk-line);
  }

  #rk-loop-guide .rk-loop-author-head h2 {
    margin: 0 0 5px;
    font-size: 2rem;
  }

  #rk-loop-guide .rk-loop-author-head p {
    margin: 0;
    font-size: 0.84rem;
  }

  #rk-loop-guide .rk-loop-author-mark {
    flex: 0 0 auto;
    padding: 8px 12px;
    color: var(--rk-dark);
    background: var(--rk-cyan-soft);
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.065em;
  }

  #rk-loop-guide .rk-loop-author-layout {
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
  }

  #rk-loop-guide .rk-loop-author-side {
    padding: 38px 31px;
    color: var(--rk-white);
    text-align: center;
    background: var(--rk-dark);
  }

  #rk-loop-guide .rk-loop-author-photo {
    width: 158px;
    height: 158px;
    margin: 0 auto 20px;
    overflow: hidden;
    background: var(--rk-white);
    border: 6px solid rgba(255, 255, 255, 0.18);
    border-radius: 50%;
  }

  #rk-loop-guide .rk-loop-author-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  #rk-loop-guide .rk-loop-author-name {
    color: var(--rk-white);
    font-size: 1.23rem;
    font-weight: 900;
  }

  #rk-loop-guide .rk-loop-author-name a {
    color: inherit;
    text-decoration: none;
  }

  #rk-loop-guide .rk-loop-author-role {
    margin-top: 7px;
    color: #b7d0db;
    font-size: 0.76rem;
    line-height: 1.55;
  }

  #rk-loop-guide .rk-loop-author-social-label {
    margin-top: 27px;
    color: #89a9b7;
    font-size: 0.65rem;
    font-weight: 850;
    letter-spacing: 0.07em;
    text-transform: uppercase;
  }

  #rk-loop-guide .rk-loop-author-social {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 12px;
  }

  #rk-loop-guide .rk-loop-author-social a {
    display: grid;
    width: 43px;
    height: 43px;
    place-items: center;
    color: #d7edf5;
    border: 1px solid #456879;
    border-radius: 50%;
  }

  #rk-loop-guide .rk-loop-author-social a:hover,
  #rk-loop-guide .rk-loop-author-social a:focus-visible {
    color: var(--rk-dark);
    background: var(--rk-cyan);
    border-color: var(--rk-cyan);
  }

  #rk-loop-guide .rk-loop-author-social svg {
    width: 20px;
    height: 20px;
    fill: currentColor;
  }

  #rk-loop-guide .rk-loop-author-main {
    padding: 36px 40px 42px;
  }

  #rk-loop-guide .rk-loop-author-quote {
    position: relative;
    margin: 0 0 24px;
    padding: 25px 28px 25px 68px;
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 17px;
  }

  #rk-loop-guide .rk-loop-author-quote::before {
    position: absolute;
    top: 18px;
    left: 22px;
    color: var(--rk-cyan);
    content: "“";
    font-family: Georgia, serif;
    font-size: 3.8rem;
    font-weight: 900;
    line-height: 1;
  }

  #rk-loop-guide .rk-loop-author-quote p {
    margin: 0;
    color: var(--rk-dark);
    font-size: 0.92rem;
    font-weight: 780;
  }

  #rk-loop-guide .rk-loop-author-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-bottom: 19px;
  }

  #rk-loop-guide .rk-loop-author-tab {
    padding: 9px 15px;
    color: #69808b;
    background: #e6eff3;
    border-radius: 999px;
    cursor: pointer;
    font-size: 0.72rem;
    font-weight: 850;
  }

  #rk-loop-guide .rk-loop-author-panel {
    display: none;
    padding: 20px 22px;
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 15px;
  }

  #rk-loop-guide .rk-loop-author-panel p {
    font-size: 0.85rem;
  }

  #rk-loop-guide .rk-loop-author-panel p:last-child {
    margin-bottom: 0;
  }

  #rk-loop-author-about:checked ~ .rk-loop-author-layout .rk-loop-author-panel-about,
  #rk-loop-author-exp:checked ~ .rk-loop-author-layout .rk-loop-author-panel-exp,
  #rk-loop-author-sites:checked ~ .rk-loop-author-layout .rk-loop-author-panel-sites {
    display: block;
  }

  #rk-loop-author-about:checked ~ .rk-loop-author-layout label[for="rk-loop-author-about"],
  #rk-loop-author-exp:checked ~ .rk-loop-author-layout label[for="rk-loop-author-exp"],
  #rk-loop-author-sites:checked ~ .rk-loop-author-layout label[for="rk-loop-author-sites"] {
    color: var(--rk-white);
    background: var(--rk-blue);
  }

  #rk-loop-guide .rk-loop-site-links {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 14px;
  }

  #rk-loop-guide .rk-loop-site-links a {
    padding: 7px 11px;
    background: var(--rk-soft);
    border-radius: 9px;
    font-size: 0.73rem;
    font-weight: 820;
    text-decoration: none;
  }

  #rk-loop-guide .rk-loop-final-cta {
    border-top: 1px solid rgba(161, 220, 233, 0.2);
  }

  @media (max-width: 960px) {
    #rk-loop-guide .rk-loop-input-grid,
    #rk-loop-guide .rk-loop-grid-3,
    #rk-loop-guide .rk-loop-grid-4,
    #rk-loop-guide .rk-loop-results,
    #rk-loop-guide .rk-loop-diagnostics {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-loop-guide .rk-loop-route,
    #rk-loop-guide .rk-loop-sequence {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    #rk-loop-guide .rk-loop-route-item:not(:last-child)::after {
      display: none;
    }

    #rk-loop-guide .rk-loop-author-layout {
      grid-template-columns: 280px minmax(0, 1fr);
    }
  }

  @media (max-width: 760px) {
    #rk-loop-guide {
      margin: 16px auto 48px;
      font-size: 16px;
    }

    #rk-loop-guide .rk-loop-shell {
      border-radius: 20px;
    }

    #rk-loop-guide .rk-loop-hero,
    #rk-loop-guide .rk-loop-section {
      padding: 45px 24px;
    }

    #rk-loop-guide .rk-loop-tool-head {
      padding: 45px 24px 25px;
    }

    #rk-loop-guide .rk-loop-tool {
      padding: 0 16px 30px;
    }

    #rk-loop-guide .rk-loop-nav {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
      padding: 18px;
    }

    #rk-loop-guide .rk-loop-nav strong {
      grid-column: 1 / -1;
      margin: 0 0 2px;
    }

    #rk-loop-guide .rk-loop-nav a {
      justify-content: center;
      min-height: 44px;
      padding: 8px 10px;
      border-radius: 11px;
      text-align: center;
    }

    #rk-loop-guide .rk-loop-answer,
    #rk-loop-guide .rk-loop-grid-2,
    #rk-loop-guide .rk-loop-grid-3,
    #rk-loop-guide .rk-loop-grid-4,
    #rk-loop-guide .rk-loop-input-grid,
    #rk-loop-guide .rk-loop-results,
    #rk-loop-guide .rk-loop-diagnostics,
    #rk-loop-guide .rk-loop-errors,
    #rk-loop-guide .rk-loop-route,
    #rk-loop-guide .rk-loop-sequence,
    #rk-loop-guide .rk-loop-author-layout {
      grid-template-columns: 1fr;
    }

    #rk-loop-guide .rk-loop-fieldset {
      padding: 18px;
    }

    #rk-loop-guide .rk-loop-tool-panel {
      padding: 20px;
    }

    #rk-loop-guide .rk-loop-chart-wrap {
      padding: 10px;
    }

    #rk-loop-guide .rk-loop-chart {
      min-height: 300px;
    }

    #rk-loop-guide .rk-loop-cta,
    #rk-loop-guide .rk-loop-final-cta {
      padding: 40px 24px;
    }

    #rk-loop-guide .rk-loop-author-head {
      align-items: flex-start;
      flex-direction: column;
      padding: 34px 24px 23px;
    }

    #rk-loop-guide .rk-loop-author-side,
    #rk-loop-guide .rk-loop-author-main {
      padding: 32px 24px;
    }

    #rk-loop-guide .rk-loop-author-quote {
      padding: 58px 20px 22px;
    }

    #rk-loop-guide .rk-loop-author-quote::before {
      top: 11px;
      left: 18px;
    }

    #rk-loop-guide table,
    #rk-loop-guide thead,
    #rk-loop-guide tbody,
    #rk-loop-guide tr,
    #rk-loop-guide th,
    #rk-loop-guide td {
      display: block;
      width: 100%;
    }

    #rk-loop-guide thead {
      position: absolute;
      width: 1px;
      height: 1px;
      overflow: hidden;
      clip: rect(0 0 0 0);
      white-space: nowrap;
    }

    #rk-loop-guide table {
      background: transparent;
      border: 0;
      border-radius: 0;
    }

    #rk-loop-guide tbody {
      display: grid;
      gap: 13px;
    }

    #rk-loop-guide tbody tr,
    #rk-loop-guide .rk-loop-tool-table tbody tr {
      padding: 9px 15px;
      background: var(--rk-white);
      border: 1px solid var(--rk-line);
      border-radius: 15px;
    }

    #rk-loop-guide .rk-loop-tool-table tbody tr {
      background: rgba(255, 255, 255, 0.055);
      border-color: rgba(161, 218, 231, 0.22);
    }

    #rk-loop-guide td,
    #rk-loop-guide .rk-loop-tool-table td {
      display: grid;
      grid-template-columns: minmax(110px, 0.9fr) minmax(0, 1.1fr);
      gap: 12px;
      padding: 10px 0;
      border-top: 1px solid var(--rk-line);
    }

    #rk-loop-guide .rk-loop-tool-table td {
      border-color: rgba(161, 218, 231, 0.18);
    }

    #rk-loop-guide td:first-child {
      border-top: 0;
    }

    #rk-loop-guide td::before {
      color: var(--rk-dark);
      content: attr(data-label);
      font-size: 0.69rem;
      font-weight: 850;
      letter-spacing: 0.025em;
      line-height: 1.4;
      text-transform: uppercase;
    }

    #rk-loop-guide .rk-loop-tool-table td::before {
      color: #8ec2d2;
    }
  }

  @media (max-width: 500px) {
    #rk-loop-guide .rk-loop-nav {
      grid-template-columns: 1fr;
    }

    #rk-loop-guide .rk-loop-hero-title {
      font-size: 2.05rem;
    }

    #rk-loop-guide .rk-loop-meta {
      align-items: flex-start;
      flex-direction: column;
    }

    #rk-loop-guide .rk-loop-results,
    #rk-loop-guide .rk-loop-diagnostics {
      grid-template-columns: 1fr;
    }

    #rk-loop-guide .rk-loop-actions {
      flex-direction: column;
    }

    #rk-loop-guide .rk-loop-button,
    #rk-loop-guide .rk-loop-cta-button {
      width: 100%;
    }

    #rk-loop-guide .rk-loop-status {
      grid-template-columns: 1fr;
    }

    #rk-loop-guide .rk-loop-step {
      grid-template-columns: 1fr;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    #rk-loop-guide *,
    #rk-loop-guide *::before,
    #rk-loop-guide *::after {
      scroll-behavior: auto !important;
      transition: none !important;
      animation: none !important;
    }
  }
</style>

<article id="rk-loop-guide" aria-label="Maksymalna długość pętli ogrzewania podłogowego">
  <div class="rk-loop-shell">
    <header class="rk-loop-hero">
      <div class="rk-loop-hero-inner">
        <span class="rk-loop-eyebrow"><b aria-hidden="true"></b> Hydraulika pętli • aktualizacja 2026</span>
        <div class="rk-loop-hero-title">100 metrów to punkt kontrolny, a nie uniwersalna granica</div>
        <p class="rk-loop-hero-lead">Maksymalna długość pętli wynika z przepływu, średnicy wewnętrznej, właściwości medium, oporów armatury i dostępnego budżetu ciśnienia. Sprawdź konkretny obwód zamiast dobierać go z jednej tabeli.</p>
        <div class="rk-loop-meta">
          <span><i aria-hidden="true"></i> Model Darcy’ego-Weisbacha</span>
          <span><i aria-hidden="true"></i> Analizator hydrauliczny i wykres</span>
          <span><i aria-hidden="true"></i> Aktualizacja: 1 września 2026 r.</span>
        </div>
      </div>
    </header>

    <nav class="rk-loop-nav" aria-label="Nawigacja po wszystkich nagłówkach H2">
      <strong>Na skróty — wszystkie H2</strong>
      <a href="#rk-loop-answer">Szybka odpowiedź</a>
      <a href="#rk-loop-100m">Dlaczego nie zawsze 100 m</a>
      <a href="#rk-loop-total">Długość całkowita</a>
      <a href="#rk-loop-hydraulics">Przepływ i opory</a>
      <a href="#rk-loop-analyzer">Analizator</a>
      <a href="#rk-loop-parallel">Pętle równoległe</a>
      <a href="#rk-loop-diameters">Średnice rur</a>
      <a href="#rk-loop-balancing">Różne długości</a>
      <a href="#rk-loop-split">Podział na pętle</a>
      <a href="#rk-loop-diagnosis">Pętla 120–140 m</a>
      <a href="#rk-loop-errors">Błędy</a>
      <a href="#rk-loop-checklist">Checklista</a>
      <a href="#rk-loop-faq">FAQ</a>
      <a href="#rk-loop-sources">Źródła</a>
      <a href="#rk-loop-author">Autor</a>
    </nav>

    <main>
      <section class="rk-loop-section" id="rk-loop-answer">
        <span class="rk-loop-kicker">Odpowiedź w 60 sekund</span>
        <h2>Jaka jest maksymalna długość pętli ogrzewania podłogowego?</h2>
        <p class="rk-loop-intro">Nie istnieje jedna długość właściwa dla każdego obwodu. Dla popularnej rury 16 × 2 mm zakres około 80–100 m jest rozsądnym punktem wstępnej kontroli, ale poprawność pętli trzeba potwierdzić przy projektowym przepływie oraz rzeczywistym budżecie ciśnienia.</p>

        <div class="rk-loop-answer">
          <div class="rk-loop-answer-main">
            <h3>Najważniejsza zasada</h3>
            <p><strong>Maksymalna długość jest wynikiem obliczenia, a nie daną wejściową.</strong> Najpierw ustala się moc pętli i przepływ, następnie średnicę wewnętrzną, stratę ciśnienia oraz opory elementów wspólnych. Dopiero później ocenia się, czy pompa zapewni wymagany przepływ.</p>
          </div>
          <div class="rk-loop-answer-side">
            <h3>80–100 m dla 16 × 2</h3>
            <p>Traktuj ten zakres jako praktyczny alarm kontrolny. Nie oznacza on, że 99 m zawsze działa, a 101 m zawsze przestaje działać.</p>
          </div>
        </div>

        <div class="rk-loop-grid-3">
          <article class="rk-loop-card">
            <span class="rk-loop-card-number">Długość</span>
            <h3>Cały obwód od belki do belki</h3>
            <p>Wlicza się rurę w polu grzewczym, zasilający dobieg do pomieszczenia oraz powrót do rozdzielacza.</p>
          </article>
          <article class="rk-loop-card">
            <span class="rk-loop-card-number">Przepływ</span>
            <h3>Wynika z mocy i ΔT</h3>
            <p>Ta sama rura przy 0,8 l/min stawia zdecydowanie mniejszy opór niż przy 2,5 l/min.</p>
          </article>
          <article class="rk-loop-card">
            <span class="rk-loop-card-number">Ocena</span>
            <h3>Dotyczy całej drogi krytycznej</h3>
            <p>Do pętli dochodzą opory rozdzielacza, zaworów, magistrali, filtrów i pozostałych elementów obiegu.</p>
          </article>
        </div>

        <p>Jeżeli chcesz najpierw wyznaczyć ilość rury z powierzchni, rozstawu oraz dobiegów, skorzystaj z osobnego poradnika <a href="https://projekt-ogrzewania.pl/ile-metrow-podlogowki-na-jednej-petli/">ile metrów podłogówki można zaplanować na jednej pętli</a>. Ten artykuł odpowiada na inne pytanie: czy wskazana długość jest hydraulicznie możliwa przy konkretnym przepływie.</p>
      </section>

      <section class="rk-loop-section" id="rk-loop-100m">
        <span class="rk-loop-kicker">Bez „magicznej” liczby</span>
        <h2>Dlaczego 100 m nie jest uniwersalną granicą pętli?</h2>
        <p class="rk-loop-intro">Opór nie wykonuje skoku pomiędzy 100 a 101 metrem. Rośnie wraz z długością, ale jego wartość zależy jednocześnie od przepływu, średnicy wewnętrznej, lepkości medium i oporów miejscowych.</p>

        <div class="rk-loop-grid-3">
          <article class="rk-loop-card">
            <span class="rk-loop-card-number">Przykład A</span>
            <h3>100 m przy małym przepływie</h3>
            <p>Obwód obsługujący niewielką moc może wymagać małego przepływu. Jego strata ciśnienia może mieścić się w przyjętym budżecie mimo długości wynoszącej 100 m.</p>
          </article>
          <article class="rk-loop-card">
            <span class="rk-loop-card-number">Przykład B</span>
            <h3>80 m przy dużym przepływie</h3>
            <p>Krótsza pętla o dużej mocy i wysokim przepływie może stawiać większy opór niż dłuższy obwód pracujący przy spokojniejszych warunkach.</p>
          </article>
          <article class="rk-loop-card">
            <span class="rk-loop-card-number">Przykład C</span>
            <h3>Ta sama średnica zewnętrzna</h3>
            <p>Rury 16 × 2 i 16 × 2,2 mm nie mają tej samej średnicy wewnętrznej. Nie wolno przypisywać im identycznej charakterystyki hydraulicznej.</p>
          </article>
        </div>

        <div class="rk-loop-note rk-loop-warning">
          <h3>Co wynika z norm?</h3>
          <p>Dokumenty z serii ISO 11855 i EN 1264 dotyczą określania wydajności, projektowania oraz wymiarowania wodnych systemów powierzchniowych. Nie będziemy przypisywać im uniwersalnej tabeli „16 mm = 100 m”, ponieważ jedna liczba nie zastępuje obliczenia konkretnego obwodu.</p>
        </div>

        <p>W praktyce projektowej długość kontrolna nadal jest przydatna. Pozwala szybko zauważyć obwód wymagający dokładniejszego sprawdzenia, ale nie może być jedynym kryterium akceptacji.</p>
      </section>

      <section class="rk-loop-section" id="rk-loop-total">
        <span class="rk-loop-kicker">Od zasilania do powrotu</span>
        <h2>Co wlicza się do całkowitej długości pętli?</h2>
        <p class="rk-loop-intro">Pętla zaczyna się na belce zasilającej rozdzielacza i kończy na belce powrotnej. Rura biegnąca przez korytarz nie znika z hydrauliki tylko dlatego, że nie ogrzewa docelowego pomieszczenia.</p>

        <div class="rk-loop-route" aria-label="Droga rury w pętli ogrzewania podłogowego">
          <div class="rk-loop-route-item"><b>Belka zasilająca</b><span>Początek analizowanego obwodu</span></div>
          <div class="rk-loop-route-item"><b>Dobieg zasilający</b><span>Droga od szafki do pola grzewczego</span></div>
          <div class="rk-loop-route-item"><b>Pole grzewcze</b><span>Rura ułożona w pomieszczeniu lub strefie</span></div>
          <div class="rk-loop-route-item"><b>Dobieg powrotny</b><span>Powrót z pola do szafki</span></div>
          <div class="rk-loop-route-item"><b>Belka powrotna</b><span>Koniec analizowanego obwodu</span></div>
        </div>

        <div class="rk-loop-formula">
          <strong>L całkowita = L pola + L dobiegu zasilającego + L dobiegu powrotnego</strong>
          <span>Jeżeli rozdzielacz znajduje się 8 m od początku pola, same dobiegi mogą zużyć około 16 m rury.</span>
        </div>

        <div class="rk-loop-grid-2">
          <article class="rk-loop-card">
            <span class="rk-loop-card-number">Geometria</span>
            <h3>Rozstaw nie wyznacza sam hydrauliki</h3>
            <p>Gęstszy rozstaw zwiększa ilość rury w polu i zwykle wymaga większej liczby obwodów. Najpierw trzeba jednak sprawdzić, czy wybrany rozstaw zapewni wymaganą moc cieplną. Zobacz porównanie <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstawu rur 10 i 15 cm</a>.</p>
          </article>
          <article class="rk-loop-card">
            <span class="rk-loop-card-number">Lokalizacja szafki</span>
            <h3>Długie dobiegi zmieniają podział pętli</h3>
            <p>Położenie rozdzielacza nie musi być geometrycznie centralne za wszelką cenę, ale powinno zostać ocenione razem z przebiegiem rur, długościami obwodów, strefami tranzytowymi i możliwością regulacji.</p>
          </article>
        </div>
      </section>

      <section class="rk-loop-section" id="rk-loop-hydraulics">
        <span class="rk-loop-kicker">Właściwa kolejność obliczeń</span>
        <h2>Jak przepływ i średnica wyznaczają opór pętli?</h2>
        <p class="rk-loop-intro">Nie zaczynamy od wyboru maksymalnej liczby metrów. Zaczynamy od mocy, którą obwód ma przekazać, oraz od projektowej różnicy temperatury wody.</p>

        <div class="rk-loop-sequence">
          <article><b>1</b><strong>Moc pętli</strong><span>Wynika ze strat ciepła i udziału obwodu w ogrzewaniu strefy.</span></article>
          <article><b>2</b><strong>Przepływ</strong><span>Obliczany z mocy i przyjętego ΔT.</span></article>
          <article><b>3</b><strong>Prędkość</strong><span>Zależy od przepływu oraz średnicy wewnętrznej.</span></article>
          <article><b>4</b><strong>Spadek ciśnienia</strong><span>Rura i elementy miejscowe tworzą opór obwodu.</span></article>
          <article><b>5</b><strong>Weryfikacja</strong><span>Wynik porównujemy z dostępnym budżetem ciśnienia.</span></article>
        </div>

        <div class="rk-loop-formula">
          <strong>V̇ [l/min] ≈ Q [W] ÷ (69,8 × ΔT [K])</strong>
          <span>Orientacyjna zależność dla wody w typowych temperaturach ogrzewania podłogowego.</span>
        </div>

        <div class="rk-loop-formula">
          <strong>Δp = λ × (L ÷ dᵢ) × (ρv² ÷ 2) + ΣΔp miejscowe</strong>
          <span>Model Darcy’ego-Weisbacha łączy długość, średnicę wewnętrzną, prędkość, gęstość, współczynnik tarcia oraz dodatkowe opory.</span>
        </div>

        <div class="rk-loop-note">
          <h3>Budżet 20 kPa nie jest uniwersalną normą</h3>
          <p>Może być przyjętym celem projektowym dla pętli, ale analizator pozostawia tę wartość edytowalną. Ostateczna ocena wymaga charakterystyki pompy i uwzględnienia wszystkich elementów wspólnych instalacji.</p>
        </div>
      </section>

      <section class="rk-loop-tool-section" id="rk-loop-analyzer">
        <div class="rk-loop-tool-head">
          <span class="rk-loop-kicker">Narzędzie interaktywne</span>
          <h2>Analizator hydraulicznej długości pętli</h2>
          <p>Wpisz dane jednego kompletnego obwodu. Narzędzie obliczy przepływ, prędkość, spadek ciśnienia i długość odpowiadającą wprowadzonemu budżetowi. Wynik nie jest normowym limitem — dotyczy wyłącznie podanych założeń.</p>
        </div>

        <div class="rk-loop-tool" id="rk-loop-tool">
          <div class="rk-loop-tool-panel">
            <h3>Dane do analizy</h3>
            <p>Jeżeli znasz przepływ z projektu, wybierz tryb „Znany przepływ”. W przeciwnym razie analizator obliczy go z mocy pętli i ΔT.</p>

            <div class="rk-loop-input-grid">
              <fieldset class="rk-loop-fieldset">
                <legend>1. Moc i przepływ</legend>

                <label class="rk-loop-field">
                  <span class="rk-loop-field-label">Sposób określenia przepływu</span>
                  <span class="rk-loop-input-row">
                    <select id="rk-loop-mode">
                      <option value="power" selected>Z mocy pętli i ΔT</option>
                      <option value="flow">Znany przepływ z projektu</option>
                    </select>
                  </span>
                </label>

                <label class="rk-loop-field">
                  <span class="rk-loop-field-label">Projektowa moc pętli</span>
                  <span class="rk-loop-input-row">
                    <input id="rk-loop-power" type="number" min="50" max="4000" step="10" value="600" inputmode="decimal">
                    <span class="rk-loop-unit">W</span>
                  </span>
                  <small>Moc przypisana do jednego obwodu, nie do całego budynku.</small>
                </label>

                <label class="rk-loop-field">
                  <span class="rk-loop-field-label">Projektowa różnica temperatur ΔT</span>
                  <span class="rk-loop-input-row">
                    <input id="rk-loop-delta" type="number" min="1" max="20" step="0.1" value="5" inputmode="decimal">
                    <span class="rk-loop-unit">K</span>
                  </span>
                </label>

                <label class="rk-loop-field">
                  <span class="rk-loop-field-label">Znany przepływ pętli</span>
                  <span class="rk-loop-input-row">
                    <input id="rk-loop-known-flow" type="number" min="0.1" max="8" step="0.01" value="1.72" inputmode="decimal" disabled>
                    <span class="rk-loop-unit">l/min</span>
                  </span>
                  <small>Aktywny tylko w trybie przepływu z projektu.</small>
                </label>
              </fieldset>

              <fieldset class="rk-loop-fieldset">
                <legend>2. Rura i medium</legend>

                <label class="rk-loop-field">
                  <span class="rk-loop-field-label">Wymiar rury</span>
                  <span class="rk-loop-input-row">
                    <select id="rk-loop-pipe">
                      <option value="12" selected>16 × 2,0 mm — dᵢ 12,0 mm</option>
                      <option value="11.6">16 × 2,2 mm — dᵢ 11,6 mm</option>
                      <option value="13">17 × 2,0 mm — dᵢ 13,0 mm</option>
                      <option value="16">20 × 2,0 mm — dᵢ 16,0 mm</option>
                      <option value="custom">Własna średnica wewnętrzna</option>
                    </select>
                  </span>
                </label>

                <label class="rk-loop-field">
                  <span class="rk-loop-field-label">Własna średnica wewnętrzna</span>
                  <span class="rk-loop-input-row">
                    <input id="rk-loop-custom-id" type="number" min="6" max="30" step="0.1" value="12" inputmode="decimal" disabled>
                    <span class="rk-loop-unit">mm</span>
                  </span>
                  <small>Wpisz wartość z dokumentacji konkretnej rury.</small>
                </label>

                <label class="rk-loop-field">
                  <span class="rk-loop-field-label">Średnia temperatura wody</span>
                  <span class="rk-loop-input-row">
                    <input id="rk-loop-water-temp" type="number" min="10" max="60" step="1" value="30" inputmode="decimal">
                    <span class="rk-loop-unit">°C</span>
                  </span>
                  <small>Model interpoluje gęstość i lepkość wody w zakresie 10–60°C.</small>
                </label>
              </fieldset>

              <fieldset class="rk-loop-fieldset">
                <legend>3. Długość i budżet</legend>

                <label class="rk-loop-field">
                  <span class="rk-loop-field-label">Całkowita długość pętli</span>
                  <span class="rk-loop-input-row">
                    <input id="rk-loop-length" type="number" min="5" max="220" step="1" value="90" inputmode="decimal">
                    <span class="rk-loop-unit">m</span>
                  </span>
                  <small>Łącznie z dobiegami od rozdzielacza i do rozdzielacza.</small>
                </label>

                <label class="rk-loop-field">
                  <span class="rk-loop-field-label">Dodatkowe opory obwodu</span>
                  <span class="rk-loop-input-row">
                    <input id="rk-loop-extra" type="number" min="0" max="50" step="0.1" value="3" inputmode="decimal">
                    <span class="rk-loop-unit">kPa</span>
                  </span>
                  <small>Rozdzielacz, zawór, przyłącza i inne elementy przypisane do pętli.</small>
                </label>

                <label class="rk-loop-field">
                  <span class="rk-loop-field-label">Przyjęty budżet ciśnienia dla pętli</span>
                  <span class="rk-loop-input-row">
                    <input id="rk-loop-budget" type="number" min="1" max="100" step="0.5" value="20" inputmode="decimal">
                    <span class="rk-loop-unit">kPa</span>
                  </span>
                  <small>Edytowalne założenie projektowe, a nie limit normowy.</small>
                </label>
              </fieldset>
            </div>

            <div class="rk-loop-actions">
              <button class="rk-loop-button" id="rk-loop-calculate" type="button">Przelicz analizę</button>
              <button class="rk-loop-button rk-loop-button-secondary" id="rk-loop-reset" type="button">Przywróć przykład</button>
            </div>
          </div>

          <div class="rk-loop-tool-panel" aria-live="polite">
            <h3>Wynik dla wprowadzonych danych</h3>
            <p>Wartości dotyczą wody i gładkiej rury tworzywowej o referencyjnej chropowatości. Dla mieszaniny z glikolem należy użyć właściwości konkretnego medium.</p>

            <div class="rk-loop-results">
              <div class="rk-loop-result"><span>Przepływ pętli</span><strong id="rk-loop-result-flow">—</strong><small id="rk-loop-result-flow-hour">—</small></div>
              <div class="rk-loop-result"><span>Prędkość w rurze</span><strong id="rk-loop-result-velocity">—</strong><small>wartość kontrolna</small></div>
              <div class="rk-loop-result"><span>Gradient ciśnienia</span><strong id="rk-loop-result-gradient">—</strong><small>strata liniowa</small></div>
              <div class="rk-loop-result"><span>Strata na rurze</span><strong id="rk-loop-result-pipe-loss">—</strong><small>bez oporów dodatkowych</small></div>
              <div class="rk-loop-result"><span>Strata całej pętli</span><strong id="rk-loop-result-total-loss">—</strong><small>rura i wpisane dodatki</small></div>
              <div class="rk-loop-result"><span>Rezerwa budżetu</span><strong id="rk-loop-result-reserve">—</strong><small>wartość może być ujemna</small></div>
              <div class="rk-loop-result"><span>Długość z budżetu</span><strong id="rk-loop-result-max-length">—</strong><small>dla niezmienionego przepływu</small></div>
              <div class="rk-loop-result"><span>Liczba Reynoldsa</span><strong id="rk-loop-result-reynolds">—</strong><small id="rk-loop-result-regime">—</small></div>
            </div>

            <div class="rk-loop-status" id="rk-loop-status">
              <span class="rk-loop-status-icon" id="rk-loop-status-icon">✓</span>
              <div>
                <strong id="rk-loop-status-title">Trwa obliczanie</strong>
                <p id="rk-loop-status-copy">Wynik pojawi się po przeliczeniu danych.</p>
              </div>
            </div>

            <div class="rk-loop-diagnostics" id="rk-loop-diagnostics"></div>
          </div>

          <div class="rk-loop-tool-panel">
            <h3>Spadek ciśnienia a długość pętli</h3>
            <p>Krzywe porównują popularne średnice przy tym samym przepływie. Pozioma linia pokazuje wpisany budżet, a punkt — analizowaną długość i wybraną rurę.</p>
            <div class="rk-loop-chart-wrap">
              <svg class="rk-loop-chart" id="rk-loop-chart" viewBox="0 0 920 430" role="img" aria-label="Wykres spadku ciśnienia w zależności od długości pętli"></svg>
              <div class="rk-loop-chart-legend" aria-hidden="true">
                <span class="rk-loop-legend-item"><i class="rk-loop-legend-line" style="background:#078fbe"></i>16 × 2,0</span>
                <span class="rk-loop-legend-item"><i class="rk-loop-legend-line" style="background:#17846d"></i>17 × 2,0</span>
                <span class="rk-loop-legend-item"><i class="rk-loop-legend-line" style="background:#ff6f3d"></i>20 × 2,0</span>
                <span class="rk-loop-legend-item"><i class="rk-loop-legend-line" style="height:2px;background:#d94b3d"></i>budżet ciśnienia</span>
              </div>
              <p class="rk-loop-chart-note">Wykres nie pokazuje charakterystyki pompy ani oporów wspólnej magistrali. Te elementy trzeba dodać podczas oceny najbardziej wymagającej drogi przepływu.</p>
            </div>
          </div>

          <div class="rk-loop-tool-panel rk-loop-tool-table">
            <h3>Te same warunki, różne średnice</h3>
            <p>Porównanie zachowuje identyczny przepływ, długość, temperaturę wody, opory dodatkowe i budżet ciśnienia. Dzięki temu widać wpływ samej średnicy wewnętrznej.</p>
            <div class="rk-loop-table-wrap">
              <table>
                <thead>
                  <tr>
                    <th>Rura</th>
                    <th>Średnica wewnętrzna</th>
                    <th>Prędkość</th>
                    <th>Gradient</th>
                    <th>Strata całkowita</th>
                    <th>Długość z budżetu</th>
                  </tr>
                </thead>
                <tbody id="rk-loop-comparison-body"></tbody>
              </table>
            </div>
          </div>

          <p class="rk-loop-tool-disclaimer"><strong>Zakres modelu:</strong> wynik jest wstępną analizą referencyjną jednego obwodu. Nie sprawdza mocy powierzchni grzewczej, temperatury posadzki, charakterystyki pompy, oporów magistrali, filtrów, źródła ciepła ani zachowania zaworów przy częściowo zamkniętych pętlach. Nie zastępuje projektu i dokumentacji konkretnego systemu.</p>
        </div>
      </section>

      <aside class="rk-loop-cta" aria-label="Projekt z obliczoną hydrauliką pętli">
        <span class="rk-loop-kicker" style="color:#7ff1ff">Wynik jednej pętli to dopiero początek</span>
        <div class="rk-loop-cta-title" role="heading" aria-level="2">Analizator nie zna całej drogi krytycznej Twojej instalacji</div>
        <p>Narzędzie sprawdza jeden obwód dla wprowadzonych danych, ale nie zna przebiegu wszystkich pętli, oporów magistrali, rozdzielacza, zaworów, krzywej pompy ani wymaganych nastaw. Jeżeli chcesz otrzymać pętle naniesione na rzut wraz z długościami, przepływami, stratami ciśnienia i nastawami rozdzielacza, potrzebny jest indywidualny projekt.</p>
        <a class="rk-loop-cta-button rk-loop-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt z obliczoną hydrauliką pętli</a>
        <small class="rk-loop-disclosure">Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
      </aside>

      <section class="rk-loop-section" id="rk-loop-parallel">
        <span class="rk-loop-kicker">Rozdzielacz i pompa</span>
        <h2>Jak pracują równoległe pętle i droga krytyczna?</h2>
        <p class="rk-loop-intro">Pętle podłączone do wspólnego rozdzielacza są gałęziami równoległymi. Nie dodajemy do siebie ich strat ciśnienia. Sumujemy natomiast przepływy obwodów pracujących jednocześnie.</p>

        <div class="rk-loop-grid-3">
          <article class="rk-loop-card">
            <span class="rk-loop-card-number">Ciśnienie</span>
            <h3>Każda pętla ma tę samą różnicę pomiędzy belkami</h3>
            <p>Przepływ w gałęzi wynika z jej oporu i położenia zaworu. Nie opisujemy tego jako „uciekania całego ciśnienia” do krótkiej pętli.</p>
          </article>
          <article class="rk-loop-card">
            <span class="rk-loop-card-number">Przepływ całkowity</span>
            <h3>Pompa obsługuje sumę aktywnych obwodów</h3>
            <p>Jeżeli dziesięć pętli wymaga po 1,5 l/min, przepływ rozdzielacza wynosi łącznie około 15 l/min.</p>
          </article>
          <article class="rk-loop-card">
            <span class="rk-loop-card-number">Wysokość podnoszenia</span>
            <h3>Liczy się najbardziej wymagająca droga</h3>
            <p>Do krytycznej pętli dodaje się opory wspólnej magistrali, źródła, filtrów, zaworów i rozdzielacza.</p>
          </article>
        </div>

        <p>Dobór całego urządzenia możesz prześledzić w osobnym <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">kalkulatorze pompy obiegowej do ogrzewania podłogowego</a>. Nie należy dobierać pompy wyłącznie do liczby sekcji rozdzielacza ani zwiększać jej biegu bez sprawdzenia punktu pracy.</p>
      </section>

      <section class="rk-loop-section" id="rk-loop-diameters">
        <span class="rk-loop-kicker">Liczy się światło przepływu</span>
        <h2>Rura 16 × 2, 16 × 2,2, 17 × 2 i 20 × 2 — co się zmienia?</h2>
        <p class="rk-loop-intro">Porównanie rur musi opierać się na rzeczywistej średnicy wewnętrznej oraz danych konkretnego wyrobu. Oznaczenie handlowe nie jest kompletną charakterystyką hydrauliczną.</p>

        <div class="rk-loop-table-wrap">
          <table>
            <thead>
              <tr>
                <th>Wymiar nominalny</th>
                <th>Średnica wewnętrzna z geometrii</th>
                <th>Znaczenie hydrauliczne</th>
                <th>Wniosek projektowy</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td data-label="Wymiar nominalny"><strong>16 × 2,0 mm</strong></td>
                <td data-label="Średnica wewnętrzna">około 12,0 mm</td>
                <td data-label="Znaczenie">Popularny punkt odniesienia dla pętli podłogowych.</td>
                <td data-label="Wniosek">Zakres 80–100 m może być kontrolą wstępną, ale wymaga obliczenia przepływu i oporów.</td>
              </tr>
              <tr>
                <td data-label="Wymiar nominalny"><strong>16 × 2,2 mm</strong></td>
                <td data-label="Średnica wewnętrzna">około 11,6 mm</td>
                <td data-label="Znaczenie">Mniejsze światło zwiększa prędkość i opór przy tym samym przepływie.</td>
                <td data-label="Wniosek">Nie wolno kopiować wyniku obliczonego dla rury 16 × 2,0 mm.</td>
              </tr>
              <tr>
                <td data-label="Wymiar nominalny"><strong>17 × 2,0 mm</strong></td>
                <td data-label="Średnica wewnętrzna">około 13,0 mm</td>
                <td data-label="Znaczenie">Większe światło może zmniejszyć spadek ciśnienia.</td>
                <td data-label="Wniosek">Nie oznacza automatycznego pozwolenia na konkretną długość bez pozostałych danych.</td>
              </tr>
              <tr>
                <td data-label="Wymiar nominalny"><strong>20 × 2,0 mm</strong></td>
                <td data-label="Średnica wewnętrzna">około 16,0 mm</td>
                <td data-label="Znaczenie">Znacznie mniejszy opór przy tym samym przepływie.</td>
                <td data-label="Wniosek">Trzeba równocześnie uwzględnić system podłogi, promień gięcia, wysokość konstrukcji i sposób wykonania.</td>
              </tr>
            </tbody>
          </table>
        </div>

        <div class="rk-loop-note rk-loop-warning">
          <h3>Wymiary geometryczne nie zastępują dokumentacji</h3>
          <p>Rzeczywista średnica, tolerancje, dopuszczalne promienie gięcia, temperatura i ciśnienie pracy muszą pochodzić z dokumentacji zastosowanej rury. W artykule nie linkujemy do producentów ani sklepów.</p>
        </div>
      </section>

      <section class="rk-loop-section" id="rk-loop-balancing">
        <span class="rk-loop-kicker">Nie wyrównuj metrów na siłę</span>
        <h2>Czy pętle na jednym rozdzielaczu muszą mieć podobną długość?</h2>
        <p class="rk-loop-intro">Podobne długości mogą ułatwić regulację, ale nie istnieje uniwersalna zasada, że różnica musi zawsze mieścić się w 10, 15 albo 20%. Każdy obwód powinien otrzymać przepływ wynikający z przypisanej mu mocy i ΔT.</p>

        <div class="rk-loop-grid-2">
          <article class="rk-loop-card">
            <span class="rk-loop-card-number">Dobra praktyka</span>
            <h3>Projektuj pętle możliwe do wyregulowania</h3>
            <p>Trzeba sprawdzić wymagany przepływ, opór gałęzi, zakres rotametru lub zaworu oraz dostępne ciśnienie. Krótszą pętlę można zdławić do wartości projektowej, jeżeli armatura pozwala na stabilną regulację.</p>
          </article>
          <article class="rk-loop-card">
            <span class="rk-loop-card-number">Zła praktyka</span>
            <h3>Nie dodawaj rury tylko dla równej liczby metrów</h3>
            <p>Niepotrzebne prowadzenie przewodu zwiększa materiał, pojemność i opór. Celem nie są identyczne długości, lecz poprawne przepływy i równomierna praca instalacji.</p>
          </article>
        </div>

        <p>Do regulacji służą przepływomierze i zawory. Zobacz, jak prawidłowo <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">odczytać i ustawić rotametr na rozdzielaczu</a>.</p>
      </section>

      <section class="rk-loop-section" id="rk-loop-split">
        <span class="rk-loop-kicker">Podział wynika z kilku kryteriów</span>
        <h2>Kiedy pomieszczenie trzeba podzielić na dwie lub więcej pętli?</h2>
        <p class="rk-loop-intro">O liczbie obwodów nie decyduje wyłącznie metraż. Podział powinien jednocześnie spełnić wymagania cieplne, geometryczne i hydrauliczne.</p>

        <div class="rk-loop-grid-3">
          <article class="rk-loop-card">
            <span class="rk-loop-card-number">Kryterium 1</span>
            <h3>Za duża ilość rury</h3>
            <p>Powierzchnia czynna i rozstaw prowadzą do długości, która przy wymaganym przepływie przekracza przyjęty budżet ciśnienia.</p>
          </article>
          <article class="rk-loop-card">
            <span class="rk-loop-card-number">Kryterium 2</span>
            <h3>Za duża moc jednej pętli</h3>
            <p>Duża moc przy niewielkim ΔT wymaga przepływu powodującego wysoką prędkość albo stratę ciśnienia.</p>
          </article>
          <article class="rk-loop-card">
            <span class="rk-loop-card-number">Kryterium 3</span>
            <h3>Geometria i dylatacje</h3>
            <p>Układ pomieszczenia, strefy bez rur, przejścia przez drzwi i pola jastrychu mogą wymagać osobnych obwodów niezależnie od samej hydrauliki.</p>
          </article>
        </div>

        <p>Dla dużej otwartej strefy warto przejść do praktycznego poradnika <a href="https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/">ile pętli podłogówki zaplanować w salonie</a>. Liczbę obwodów należy ustalić przed wykonaniem jastrychu, gdy można jeszcze bezpiecznie zmienić przebieg instalacji.</p>
      </section>

      <section class="rk-loop-section" id="rk-loop-diagnosis">
        <span class="rk-loop-kicker">Najpierw pomiar, później decyzja</span>
        <h2>Czy istniejąca pętla 120 albo 140 m może działać?</h2>
        <p class="rk-loop-intro">Sama długość nie pozwala wydać wiarygodnego wyroku. Długi obwód może mieć problem z osiągnięciem projektowego przepływu, ale diagnoza powinna zacząć się od danych, a nie od automatycznej wymiany pompy.</p>

        <div class="rk-loop-steps">
          <article class="rk-loop-step">
            <div><h3>Ustal rzeczywistą długość i średnicę wewnętrzną</h3><p>Sprawdź dokumentację powykonawczą, oznaczenie rury i przebieg dobiegów. Bez tych informacji obliczenie będzie tylko zgadywaniem.</p></div>
          </article>
          <article class="rk-loop-step">
            <div><h3>Sprawdź wymagany oraz rzeczywisty przepływ</h3><p>Odczytaj rotametr przy otwartej pętli, stabilnej pracy pompy i odpowietrzonej instalacji. Porównaj odczyt z wartością projektową.</p></div>
          </article>
          <article class="rk-loop-step">
            <div><h3>Zmierz temperaturę zasilania i powrotu</h3><p>ΔT pomaga ocenić, czy obwód przenosi zakładaną moc. Nie przypisuj długiej pętli z góry różnicy 10 K.</p></div>
          </article>
          <article class="rk-loop-step">
            <div><h3>Sprawdź zawory, siłownik, filtr i zapowietrzenie</h3><p>Brak przepływu może wynikać z zamknięcia, zanieczyszczenia, powietrza albo nieprawidłowej nastawy, a nie wyłącznie z długości rury.</p></div>
          </article>
          <article class="rk-loop-step">
            <div><h3>Porównaj punkt pracy pompy z drogą krytyczną</h3><p>Nie zwiększaj biegu w ciemno. Oceń wymagany przepływ całkowity, wysokość podnoszenia oraz zachowanie pozostałych obwodów.</p></div>
          </article>
        </div>

        <div class="rk-loop-note rk-loop-danger">
          <h3>Mocniejsza pompa nie jest automatycznym „ratunkiem”</h3>
          <p>Może zwiększyć dostępne ciśnienie, ale również zmienić przepływy wszystkich gałęzi, zwiększyć hałas i pobór energii. Jeżeli problemem jest zbyt mała powierzchnia grzewcza albo błędny rozstaw, sama pompa tego nie naprawi. Więcej objawów znajdziesz w opracowaniu o <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/">za długiej pętli podłogówki</a>.</p>
        </div>
      </section>

      <section class="rk-loop-section" id="rk-loop-errors">
        <span class="rk-loop-kicker">Bez skrótów projektowych</span>
        <h2>Najczęstsze błędy przy ustalaniu maksymalnej długości pętli</h2>

        <div class="rk-loop-errors">
          <article class="rk-loop-error"><b>Błąd 01</b><h3>„Norma pozwala na 100 m”</h3><p>Jedna długość nie zastępuje wyznaczenia przepływu, oporów i dostępnego ciśnienia.</p></article>
          <article class="rk-loop-error"><b>Błąd 02</b><h3>Pomijanie dobiegów</h3><p>Odcinki od rozdzielacza do pola i z powrotem należą do tej samej drogi przepływu.</p></article>
          <article class="rk-loop-error"><b>Błąd 03</b><h3>Dobór z samej średnicy zewnętrznej</h3><p>O hydraulice decyduje między innymi rzeczywista średnica wewnętrzna.</p></article>
          <article class="rk-loop-error"><b>Błąd 04</b><h3>Przypisywanie stałego ΔT do długości</h3><p>Różnica temperatur wynika z mocy oddawanej przez obwód i rzeczywistego przepływu.</p></article>
          <article class="rk-loop-error"><b>Błąd 05</b><h3>Sumowanie strat równoległych pętli</h3><p>Sumuje się przepływy gałęzi, natomiast ciśnienie sprawdza się na najbardziej wymagającej drodze.</p></article>
          <article class="rk-loop-error"><b>Błąd 06</b><h3>Jednakowy przepływ na wszystkich rotametrach</h3><p>Każda pętla może mieć inną moc i inną wartość projektową.</p></article>
          <article class="rk-loop-error"><b>Błąd 07</b><h3>Większa pompa bez obliczeń</h3><p>Zmiana urządzenia może zamaskować część problemów i rozregulować pozostałe obwody.</p></article>
          <article class="rk-loop-error"><b>Błąd 08</b><h3>Wyrównywanie długości zbędną rurą</h3><p>Nie projektujemy dodatkowych metrów wyłącznie po to, aby wszystkie obwody wyglądały podobnie w tabeli.</p></article>
        </div>
      </section>

      <section class="rk-loop-section" id="rk-loop-checklist">
        <span class="rk-loop-kicker">Przed ułożeniem rur</span>
        <h2>Checklista weryfikacji długości pętli</h2>
        <p class="rk-loop-intro">Poniższa kolejność ogranicza ryzyko, że długość zostanie wybrana z przyzwyczajenia zamiast z obliczeń.</p>

        <div class="rk-loop-steps">
          <article class="rk-loop-step"><div><h3>Oblicz stratę ciepła pomieszczenia</h3><p>Bez wymaganej mocy nie da się uczciwie wyznaczyć przepływu ani sprawdzić, czy powierzchnia podłogi wystarczy.</p></div></article>
          <article class="rk-loop-step"><div><h3>Wyznacz powierzchnię czynną i rozstaw rur</h3><p>Odejmij trwałą zabudowę oraz pola wyłączone z ogrzewania. Rozstaw sprawdź cieplnie.</p></div></article>
          <article class="rk-loop-step"><div><h3>Rozrysuj rzeczywisty przebieg wraz z dobiegami</h3><p>Uwzględnij przejścia przez drzwi, dylatacje, strefy brzegowe i drogę powrotną do rozdzielacza.</p></div></article>
          <article class="rk-loop-step"><div><h3>Przypisz moc i ΔT do każdego obwodu</h3><p>Na tej podstawie oblicz wymagany przepływ, zamiast ustawiać wszystkim pętlom jedną wartość.</p></div></article>
          <article class="rk-loop-step"><div><h3>Policz opór rury oraz elementów miejscowych</h3><p>Użyj średnicy wewnętrznej, właściwości medium, rzeczywistej długości i danych armatury.</p></div></article>
          <article class="rk-loop-step"><div><h3>Sprawdź drogę krytyczną i pompę</h3><p>Dodaj opory elementów wspólnych i porównaj wymagany punkt Q/H z charakterystyką urządzenia.</p></div></article>
          <article class="rk-loop-step"><div><h3>Przygotuj tabelę przepływów i nastaw</h3><p>Każda pętla powinna mieć numer, pomieszczenie, długość, moc, przepływ i wartość do ustawienia na rozdzielaczu.</p></div></article>
          <article class="rk-loop-step"><div><h3>Zweryfikuj układ przed jastrychem</h3><p>Po próbie szczelności porównaj wykonanie z projektem i nanieś zmiany do dokumentacji powykonawczej.</p></div></article>
        </div>
      </section>

      <section class="rk-loop-section" id="rk-loop-faq">
        <span class="rk-loop-kicker">Najczęstsze pytania</span>
        <h2>FAQ — maksymalna długość pętli podłogówki</h2>

        <div class="rk-loop-faq">
          <details>
            <summary>Ile maksymalnie metrów może mieć pętla z rury 16 × 2 mm?</summary>
            <div class="rk-loop-faq-answer"><p>Zakres około 80–100 m jest często stosowany jako praktyczny punkt kontroli, ale nie jest uniwersalnym limitem. Poprawność pętli zależy od wymaganego przepływu, średnicy wewnętrznej, temperatury i rodzaju medium, oporów armatury oraz dostępnego ciśnienia.</p></div>
          </details>
          <details>
            <summary>Czy pętla 120 m z rury 16 mm będzie grzać?</summary>
            <div class="rk-loop-faq-answer"><p>Może działać, ale sama długość nie wystarcza do oceny. Trzeba obliczyć wymagany przepływ, prędkość, spadek ciśnienia i sprawdzić całą drogę krytyczną wraz z pompą. Przy dużym przepływie taki obwód może być trudny do prawidłowej regulacji.</p></div>
          </details>
          <details>
            <summary>Co zrobić, jeśli wykonano już pętlę 140 m?</summary>
            <div class="rk-loop-faq-answer"><p>Najpierw należy ustalić rzeczywisty przepływ, temperaturę zasilania i powrotu, opór obwodu, ustawienie zaworów, odpowietrzenie oraz punkt pracy pompy. Większa pompa nie jest automatycznie właściwym rozwiązaniem. Sposób naprawy zależy od przyczyny i etapu wykonania podłogi.</p></div>
          </details>
          <details>
            <summary>Czy dobiegi wliczają się do długości pętli?</summary>
            <div class="rk-loop-faq-answer"><p>Tak. Do całkowitej długości wlicza się odcinek od belki zasilającej do pola grzewczego, rurę w polu oraz powrót do belki powrotnej. Każdy z tych odcinków powoduje stratę ciśnienia.</p></div>
          </details>
          <details>
            <summary>Czy norma PN-EN 1264 ustala 100 m dla rury 16 mm?</summary>
            <div class="rk-loop-faq-answer"><p>Nie należy przedstawiać 100 m jako uniwersalnego limitu normowego. Projektowanie wymaga uwzględnienia wydajności powierzchni, przepływu, temperatur, oporów hydraulicznych i warunków konkretnego systemu.</p></div>
          </details>
          <details>
            <summary>Czy wszystkie pętle powinny mieć jednakową długość?</summary>
            <div class="rk-loop-faq-answer"><p>Nie. Podobne długości mogą ułatwiać regulację, lecz każda pętla powinna otrzymać przepływ wynikający z jej mocy i ΔT. Możliwość regulacji zależy od oporów oraz zakresu zastosowanych zaworów i rotametrów.</p></div>
          </details>
          <details>
            <summary>Czy większa średnica pozwala zawsze ułożyć dłuższą pętlę?</summary>
            <div class="rk-loop-faq-answer"><p>Większa średnica wewnętrzna zmniejsza prędkość i zwykle ogranicza spadek ciśnienia przy tym samym przepływie. Nie wyznacza jednak samodzielnie dopuszczalnej długości. Trzeba uwzględnić cały system, konstrukcję podłogi i warunki wykonania.</p></div>
          </details>
          <details>
            <summary>Czy długa pętla zawsze ma zimny koniec?</summary>
            <div class="rk-loop-faq-answer"><p>Nie. Spadek temperatury wody zależy od mocy oddawanej przez obwód i rzeczywistego przepływu. Nadmierny opór może ograniczyć przepływ i zwiększyć ΔT, ale sama liczba metrów nie narzuca jednej temperatury końca.</p></div>
          </details>
          <details>
            <summary>Czy mocniejsza pompa rozwiąże problem za długiej pętli?</summary>
            <div class="rk-loop-faq-answer"><p>Tylko w niektórych przypadkach i po obliczeniu całego punktu pracy. Zwiększenie ciśnienia wpływa na wszystkie obwody, może zwiększyć hałas i nie naprawi niewystarczającej powierzchni grzewczej, błędnego rozstawu ani problemu z zaworem lub zapowietrzeniem.</p></div>
          </details>
          <details>
            <summary>Czy można połączyć rurę pod jastrychem, aby wydłużyć pętlę?</summary>
            <div class="rk-loop-faq-answer"><p>Pętle projektuje się jako ciągłe odcinki od rozdzielacza do rozdzielacza. Każde połączenie pod jastrychem musi być ocenione zgodnie z wymaganiami zastosowanego systemu i dokumentacją techniczną. Wydłużanie obwodu złączką nie rozwiązuje problemu hydraulicznego.</p></div>
          </details>
        </div>
      </section>

      <section class="rk-loop-section" id="rk-loop-sources">
        <span class="rk-loop-kicker">Dokumenty odniesienia</span>
        <h2>Źródła i zakres techniczny opracowania</h2>
        <p class="rk-loop-intro">Linki zewnętrzne prowadzą wyłącznie do oficjalnych organizacji normalizacyjnych. Artykuł nie odsyła do producentów, sklepów ani konkurencyjnych serwisów.</p>

        <div class="rk-loop-sources">
          <article class="rk-loop-source">
            <b>ISO 11855-3:2021</b>
            <p>Projektowanie i wymiarowanie wbudowanych systemów ogrzewania oraz chłodzenia płaszczyznowego.</p>
            <a href="https://www.iso.org/standard/74684.html" target="_blank" rel="nofollow noopener noreferrer">Oficjalna karta standardu ISO 11855-3:2021</a>
          </article>
          <article class="rk-loop-source">
            <b>ISO 11855-2:2021</b>
            <p>Wyznaczanie projektowej wydajności grzewczej i chłodniczej systemów płaszczyznowych.</p>
            <a href="https://www.iso.org/standard/74683.html" target="_blank" rel="nofollow noopener noreferrer">Oficjalna karta standardu ISO 11855-2:2021</a>
          </article>
          <article class="rk-loop-source">
            <b>BS EN 1264-3:2021</b>
            <p>Wymiarowanie wodnych systemów ogrzewania i chłodzenia wbudowanych w powierzchnie przegród.</p>
            <a href="https://knowledge.bsigroup.com/products/water-based-surface-embedded-heating-and-cooling-systems-dimensioning-1" target="_blank" rel="nofollow noopener noreferrer">Oficjalna karta BS EN 1264-3:2021</a>
          </article>
        </div>

        <div class="rk-loop-note">
          <h3>Zakres odpowiedzialności</h3>
          <p>Analizator jest modelem edukacyjnym. W projekcie wykonawczym należy użyć danych konkretnej rury, rozdzielacza, zaworów, medium i pompy oraz sprawdzić wymagania systemu, warunki budynku i rzeczywisty przebieg instalacji.</p>
        </div>

        <div class="rk-loop-update">Ostatnia aktualizacja merytoryczna: 1 września 2026 r.</div>
      </section>
    </main>

    <section class="rk-loop-author" id="rk-loop-author" aria-label="Autor opracowania">
      <input type="radio" name="rk-loop-author-tabs" id="rk-loop-author-about" checked>
      <input type="radio" name="rk-loop-author-tabs" id="rk-loop-author-exp">
      <input type="radio" name="rk-loop-author-tabs" id="rk-loop-author-sites">

      <header class="rk-loop-author-head">
        <div>
          <span class="rk-loop-kicker">Autor opracowania</span>
          <h2>Robert Kucharski</h2>
          <p>Projektant instalacji sanitarnych • specjalista HVAC i ogrzewania podłogowego</p>
        </div>
        <span class="rk-loop-author-mark">HYDRAULIKA • HVAC</span>
      </header>

      <div class="rk-loop-author-layout">
        <aside class="rk-loop-author-side">
          <div class="rk-loop-author-photo">
            <img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji ogrzewania podłogowego" width="600" height="600" loading="lazy" decoding="async">
          </div>
          <div class="rk-loop-author-name"><a href="https://projekt-ogrzewania.pl/author/admin3399/">Robert Kucharski</a></div>
          <div class="rk-loop-author-role">Projektant instalacji sanitarnych<br>Specjalista HVAC i ogrzewania podłogowego</div>
          <div class="rk-loop-author-social-label">Profile autora</div>
          <div class="rk-loop-author-social" aria-label="Profile Roberta Kucharskiego w mediach społecznościowych">
            <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Robert Kucharski na LinkedIn" title="LinkedIn">
              <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5.2 7.7H1.6V22h3.6V7.7ZM3.4 2A2.1 2.1 0 1 0 3.4 6.2 2.1 2.1 0 0 0 3.4 2ZM22.4 13.8c0-4.3-2.3-6.3-5.4-6.3a4.7 4.7 0 0 0-4.2 2.3V7.7H9.2V22h3.6v-7.1c0-1.9.4-3.7 2.7-3.7 2.3 0 2.3 2.1 2.3 3.8v7h3.6l1-8.2Z"></path></svg>
            </a>
            <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Projekt-Ogrzewania.pl na Facebooku" title="Facebook">
              <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M14.2 22v-9h3l.5-3.5h-3.5V7.3c0-1 .3-1.7 1.8-1.7h1.9V2.5c-.3 0-1.5-.1-2.8-.1-2.8 0-4.7 1.7-4.7 4.8v2.3H7.2V13h3.2v9h3.8Z"></path></svg>
            </a>
            <a href="https://x.com/Projekt_HVAC" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Projekt HVAC w serwisie X" title="X">
              <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M18.9 2H22l-6.8 7.8L23.2 22H17l-4.9-6.4L6.5 22H3.3l7.3-8.4L2.8 2h6.4l4.4 5.8L18.9 2Zm-1.1 17.8h1.7L8.3 4.1H6.5l11.3 15.7Z"></path></svg>
            </a>
          </div>
        </aside>

        <div class="rk-loop-author-main">
          <blockquote class="rk-loop-author-quote">
            <p>„Długość pętli jest tylko jednym z parametrów. Dopiero połączenie mocy, przepływu, średnicy, oporów i dostępnego ciśnienia pozwala ocenić, czy obwód będzie pracował prawidłowo.”</p>
          </blockquote>

          <div class="rk-loop-author-tabs" role="tablist" aria-label="Informacje o autorze">
            <label class="rk-loop-author-tab" for="rk-loop-author-about">O autorze</label>
            <label class="rk-loop-author-tab" for="rk-loop-author-exp">Doświadczenie</label>
            <label class="rk-loop-author-tab" for="rk-loop-author-sites">Portale</label>
          </div>

          <div class="rk-loop-author-panel rk-loop-author-panel-about">
            <p>Robert Kucharski opracowuje projekty wodnego ogrzewania podłogowego dla domów nowych i modernizowanych. Łączy obliczenia strat ciepła z doborem temperatury zasilania i powrotu, rozstawów rur, powierzchni czynnej, długości obwodów oraz przepływów.</p>
            <p>Materiały edukacyjne przygotowuje z perspektywy dokumentacji, którą musi później wykorzystać instalator na budowie. Dlatego w poradnikach oddziela założenia wstępne od parametrów wymagających obliczenia konkretnego układu.</p>
          </div>

          <div class="rk-loop-author-panel rk-loop-author-panel-exp">
            <p>W praktyce projektowej analizuje nie tylko pojedynczą pętlę, ale całą drogę krytyczną: magistralę, rozdzielacz, zawory, przepływy wszystkich równoległych obwodów, straty ciśnienia i wymagany punkt pracy pompy.</p>
            <p>Dokumentacja zawiera przebieg pętli naniesiony na rzut, długości, przypisane moce, przepływy, nastawy rozdzielacza oraz dane potrzebne do uruchomienia i późniejszej kontroli instalacji.</p>
          </div>

          <div class="rk-loop-author-panel rk-loop-author-panel-sites">
            <p>Robert Kucharski jest właścicielem trzech serwisów branżowych. Informacja o powiązaniu portali jest podawana jawnie, aby czytelnik znał autorstwo, doświadczenie i kontekst publikowanych materiałów.</p>
            <div class="rk-loop-site-links">
              <a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a>
              <a href="https://remont.biz.pl/" target="_blank" rel="nofollow noopener noreferrer">Remont.biz.pl</a>
              <a href="https://sobir.pl/" target="_blank" rel="nofollow noopener noreferrer">Sobir.pl</a>
            </div>
          </div>
        </div>
      </div>
    </section>

    <section class="rk-loop-final-cta" aria-label="Końcowe zamówienie projektu ogrzewania podłogowego">
      <span class="rk-loop-kicker" style="color:#7ff1ff">Zamknij długości i przepływy przed wykonaniem jastrychu</span>
      <div class="rk-loop-cta-title" role="heading" aria-level="2">Otrzymaj projekt z każdą pętlą rozrysowaną i policzoną</div>
      <p>Projekt obejmuje straty ciepła, powierzchnie czynne, rozstawy rur, długości obwodów, przepływy, spadki ciśnienia, dobór rozdzielaczy i nastawy. Instalator otrzymuje konkretne wartości zamiast jednej ogólnej zasady „maksymalnie 100 m”.</p>
      <a class="rk-loop-cta-button rk-loop-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
      <small class="rk-loop-disclosure">Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
    </section>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/#article",
      "url": "https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/",
      "headline": "Maksymalna długość pętli ogrzewania podłogowego – od czego naprawdę zależy?",
      "description": "Techniczny poradnik i analizator długości pętli ogrzewania podłogowego uwzględniający przepływ, średnicę wewnętrzną, spadek ciśnienia i budżet hydrauliczny.",
      "inLanguage": "pl-PL",
      "dateModified": "2026-09-01",
      "mainEntityOfPage": {"@id": "https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/#webpage"},
      "author": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"},
      "publisher": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "proficiencyLevel": "Expert",
      "about": [
        {"@type": "Thing", "name": "Maksymalna długość pętli ogrzewania podłogowego"},
        {"@type": "Thing", "name": "Opory hydrauliczne"},
        {"@type": "Thing", "name": "Spadek ciśnienia"},
        {"@type": "Thing", "name": "Równoważenie hydrauliczne"},
        {"@type": "Thing", "name": "Ogrzewanie podłogowe"}
      ],
      "isPartOf": {"@id": "https://projekt-ogrzewania.pl/#website"}
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/#webpage",
      "url": "https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/",
      "name": "Maksymalna długość pętli ogrzewania podłogowego",
      "description": "Jak sprawdzić maksymalną długość pętli podłogówki z przepływu, średnicy i spadku ciśnienia.",
      "inLanguage": "pl-PL",
      "dateModified": "2026-09-01",
      "isPartOf": {"@id": "https://projekt-ogrzewania.pl/#website"},
      "breadcrumb": {"@id": "https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/#breadcrumb"},
      "mainEntity": [
        {"@id": "https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/#application"},
        {"@id": "https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/#howto"},
        {"@id": "https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/#faq"}
      ]
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/#breadcrumb",
      "itemListElement": [
        {"@type": "ListItem", "position": 1, "name": "Strona główna", "item": "https://projekt-ogrzewania.pl/"},
        {"@type": "ListItem", "position": 2, "name": "Hydraulika", "item": "https://projekt-ogrzewania.pl/category/hydraulika/"},
        {"@type": "ListItem", "position": 3, "name": "Maksymalna długość pętli ogrzewania podłogowego", "item": "https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/"}
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/#application",
      "name": "Analizator hydraulicznej długości pętli",
      "url": "https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/#rk-loop-analyzer",
      "applicationCategory": "EducationalApplication",
      "operatingSystem": "Dowolny system z przeglądarką internetową",
      "browserRequirements": "Obsługa JavaScript",
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "description": "Narzędzie oblicza przepływ, prędkość, spadek ciśnienia oraz hydrauliczną długość pętli dla wprowadzonego budżetu ciśnienia."
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/#howto",
      "name": "Jak sprawdzić maksymalną długość pętli ogrzewania podłogowego?",
      "description": "Kolejność weryfikacji cieplnej, geometrycznej i hydraulicznej pętli przed wykonaniem jastrychu.",
      "inLanguage": "pl-PL",
      "step": [
        {"@type": "HowToStep", "position": 1, "name": "Oblicz stratę ciepła pomieszczenia", "text": "Ustal wymaganą moc cieplną pomieszczenia i udział analizowanej pętli."},
        {"@type": "HowToStep", "position": 2, "name": "Wyznacz powierzchnię czynną i rozstaw rur", "text": "Odejmij trwałą zabudowę i sprawdź cieplnie wybrany rozstaw."},
        {"@type": "HowToStep", "position": 3, "name": "Rozrysuj przebieg wraz z dobiegami", "text": "Uwzględnij całą długość od belki zasilającej do belki powrotnej."},
        {"@type": "HowToStep", "position": 4, "name": "Przypisz moc i delta T", "text": "Oblicz wymagany przepływ każdego obwodu z jego mocy i projektowej różnicy temperatur."},
        {"@type": "HowToStep", "position": 5, "name": "Policz opory", "text": "Uwzględnij średnicę wewnętrzną, medium, długość oraz opory rozdzielacza i armatury."},
        {"@type": "HowToStep", "position": 6, "name": "Sprawdź drogę krytyczną i pompę", "text": "Dodaj elementy wspólne i porównaj wymagany punkt pracy z charakterystyką pompy."},
        {"@type": "HowToStep", "position": 7, "name": "Przygotuj tabelę przepływów", "text": "Zapisz dla każdej pętli długość, moc, przepływ i wymaganą nastawę rozdzielacza."},
        {"@type": "HowToStep", "position": 8, "name": "Zweryfikuj wykonanie przed jastrychem", "text": "Porównaj rzeczywisty przebieg z projektem i nanieś zmiany do dokumentacji powykonawczej."}
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/#faq",
      "inLanguage": "pl-PL",
      "mainEntity": [
        {"@type": "Question", "name": "Ile maksymalnie metrów może mieć pętla z rury 16 × 2 mm?", "acceptedAnswer": {"@type": "Answer", "text": "Zakres około 80–100 m jest często stosowany jako praktyczny punkt kontroli, ale nie jest uniwersalnym limitem. Poprawność pętli zależy od wymaganego przepływu, średnicy wewnętrznej, temperatury i rodzaju medium, oporów armatury oraz dostępnego ciśnienia."}},
        {"@type": "Question", "name": "Czy pętla 120 m z rury 16 mm będzie grzać?", "acceptedAnswer": {"@type": "Answer", "text": "Może działać, ale sama długość nie wystarcza do oceny. Trzeba obliczyć wymagany przepływ, prędkość, spadek ciśnienia i sprawdzić całą drogę krytyczną wraz z pompą."}},
        {"@type": "Question", "name": "Co zrobić, jeśli wykonano już pętlę 140 m?", "acceptedAnswer": {"@type": "Answer", "text": "Najpierw należy ustalić rzeczywisty przepływ, temperaturę zasilania i powrotu, opór obwodu, ustawienie zaworów, odpowietrzenie oraz punkt pracy pompy. Większa pompa nie jest automatycznie właściwym rozwiązaniem."}},
        {"@type": "Question", "name": "Czy dobiegi wliczają się do długości pętli?", "acceptedAnswer": {"@type": "Answer", "text": "Tak. Do całkowitej długości wlicza się odcinek od belki zasilającej do pola grzewczego, rurę w polu oraz powrót do belki powrotnej."}},
        {"@type": "Question", "name": "Czy norma PN-EN 1264 ustala 100 m dla rury 16 mm?", "acceptedAnswer": {"@type": "Answer", "text": "Nie należy przedstawiać 100 m jako uniwersalnego limitu normowego. Projektowanie wymaga uwzględnienia wydajności powierzchni, przepływu, temperatur, oporów hydraulicznych i warunków konkretnego systemu."}},
        {"@type": "Question", "name": "Czy wszystkie pętle powinny mieć jednakową długość?", "acceptedAnswer": {"@type": "Answer", "text": "Nie. Podobne długości mogą ułatwiać regulację, lecz każda pętla powinna otrzymać przepływ wynikający z jej mocy i delta T."}},
        {"@type": "Question", "name": "Czy większa średnica pozwala zawsze ułożyć dłuższą pętlę?", "acceptedAnswer": {"@type": "Answer", "text": "Większa średnica wewnętrzna zwykle ogranicza spadek ciśnienia przy tym samym przepływie, ale nie wyznacza samodzielnie dopuszczalnej długości."}},
        {"@type": "Question", "name": "Czy długa pętla zawsze ma zimny koniec?", "acceptedAnswer": {"@type": "Answer", "text": "Nie. Spadek temperatury wody zależy od mocy oddawanej przez obwód i rzeczywistego przepływu. Sama liczba metrów nie narzuca jednej temperatury końca."}},
        {"@type": "Question", "name": "Czy mocniejsza pompa rozwiąże problem za długiej pętli?", "acceptedAnswer": {"@type": "Answer", "text": "Tylko w niektórych przypadkach i po obliczeniu całego punktu pracy. Zwiększenie ciśnienia wpływa na wszystkie obwody i nie naprawi błędów cieplnych ani wykonawczych."}},
        {"@type": "Question", "name": "Czy można połączyć rurę pod jastrychem, aby wydłużyć pętlę?", "acceptedAnswer": {"@type": "Answer", "text": "Pętle projektuje się jako ciągłe odcinki od rozdzielacza do rozdzielacza. Każde połączenie pod jastrychem musi być ocenione zgodnie z wymaganiami zastosowanego systemu. Wydłużanie obwodu złączką nie rozwiązuje problemu hydraulicznego."}}
      ]
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "jobTitle": "Projektant instalacji sanitarnych, specjalista HVAC i ogrzewania podłogowego",
      "worksFor": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "affiliation": [
        {"@id": "https://projekt-ogrzewania.pl/#organization"},
        {"@id": "https://remont.biz.pl/#organization"},
        {"@id": "https://sobir.pl/#organization"}
      ],
      "knowsAbout": [
        "ogrzewanie podłogowe",
        "hydraulika instalacji grzewczych",
        "obliczenia strat ciepła",
        "dobór pomp obiegowych",
        "równoważenie hydrauliczne",
        "projektowanie instalacji sanitarnych"
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt-Ogrzewania.pl",
      "url": "https://projekt-ogrzewania.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt-Ogrzewania.pl",
      "inLanguage": "pl-PL",
      "publisher": {"@id": "https://projekt-ogrzewania.pl/#organization"}
    }
  ]
}
</script>

<script>
(function () {
  "use strict";

  var root = document.getElementById("rk-loop-guide");
  if (!root) {
    return;
  }

  function byId(id) {
    return document.getElementById(id);
  }

  function readNumber(id, fallback) {
    var element = byId(id);
    var raw;
    var value;
    if (!element) {
      return fallback;
    }
    raw = String(element.value).replace(",", ".");
    value = parseFloat(raw);
    if (!isFinite(value)) {
      return fallback;
    }
    return value;
  }

  function clamp(value, minimum, maximum) {
    if (value < minimum) {
      return minimum;
    }
    if (value > maximum) {
      return maximum;
    }
    return value;
  }

  function formatNumber(value, decimals) {
    if (!isFinite(value)) {
      return "—";
    }
    return value.toLocaleString("pl-PL", {
      minimumFractionDigits: decimals,
      maximumFractionDigits: decimals
    });
  }

  function waterProperties(temperature) {
    var points = [
      {t: 10, rho: 999.7, mu: 0.001307},
      {t: 20, rho: 998.2, mu: 0.001002},
      {t: 30, rho: 995.7, mu: 0.000798},
      {t: 40, rho: 992.2, mu: 0.000653},
      {t: 50, rho: 988.1, mu: 0.000547},
      {t: 60, rho: 983.2, mu: 0.000466}
    ];
    var temp = clamp(temperature, 10, 60);
    var i;
    var low;
    var high;
    var fraction;

    for (i = 0; i < points.length - 1; i += 1) {
      low = points[i];
      high = points[i + 1];
      if (temp >= low.t) {
        if (temp <= high.t) {
          fraction = (temp - low.t) / (high.t - low.t);
          return {
            rho: low.rho + fraction * (high.rho - low.rho),
            mu: low.mu + fraction * (high.mu - low.mu)
          };
        }
      }
    }
    return {rho: points[5].rho, mu: points[5].mu};
  }

  function frictionFactor(reynolds, diameterM) {
    var roughnessM = 0.000007;
    var term;
    var logValue;
    if (reynolds <= 0) {
      return 0;
    }
    if (reynolds < 2300) {
      return 64 / reynolds;
    }
    term = roughnessM / (3.7 * diameterM) + 5.74 / Math.pow(reynolds, 0.9);
    logValue = Math.log(term) / Math.LN10;
    return 0.25 / Math.pow(logValue, 2);
  }

  function calculateHydraulics(flowLMin, diameterMm, lengthM, waterTemp, extraKpa, budgetKpa) {
    var props = waterProperties(waterTemp);
    var diameterM = diameterMm / 1000;
    var area = Math.PI * diameterM * diameterM / 4;
    var flowM3S = flowLMin / 60000;
    var velocity = flowM3S / area;
    var reynolds = props.rho * velocity * diameterM / props.mu;
    var factor = frictionFactor(reynolds, diameterM);
    var gradientPaM = factor / diameterM * props.rho * velocity * velocity / 2;
    var pipeLossKpa = gradientPaM * lengthM / 1000;
    var totalLossKpa = pipeLossKpa + extraKpa;
    var remainingKpa = budgetKpa - totalLossKpa;
    var availableForPipeKpa = budgetKpa - extraKpa;
    var maxLengthM = 0;

    if (availableForPipeKpa > 0) {
      if (gradientPaM > 0) {
        maxLengthM = availableForPipeKpa * 1000 / gradientPaM;
      }
    }

    return {
      rho: props.rho,
      mu: props.mu,
      diameterMm: diameterMm,
      velocity: velocity,
      reynolds: reynolds,
      factor: factor,
      gradientPaM: gradientPaM,
      pipeLossKpa: pipeLossKpa,
      totalLossKpa: totalLossKpa,
      remainingKpa: remainingKpa,
      maxLengthM: maxLengthM
    };
  }

  function getSelectedDiameter() {
    var pipe = byId("rk-loop-pipe");
    if (!pipe) {
      return 12;
    }
    if (pipe.value === "custom") {
      return clamp(readNumber("rk-loop-custom-id", 12), 6, 30);
    }
    return clamp(parseFloat(pipe.value), 6, 30);
  }

  function getFlow() {
    var mode = byId("rk-loop-mode").value;
    var power;
    var delta;
    if (mode === "flow") {
      return clamp(readNumber("rk-loop-known-flow", 1.72), 0.1, 8);
    }
    power = clamp(readNumber("rk-loop-power", 600), 50, 4000);
    delta = clamp(readNumber("rk-loop-delta", 5), 1, 20);
    return power / (69.78 * delta);
  }

  function updateFieldStates() {
    var mode = byId("rk-loop-mode").value;
    var custom = byId("rk-loop-pipe").value === "custom";
    byId("rk-loop-power").disabled = mode === "flow";
    byId("rk-loop-delta").disabled = mode === "flow";
    byId("rk-loop-known-flow").disabled = mode !== "flow";
    byId("rk-loop-custom-id").disabled = !custom;
  }

  function setText(id, value) {
    var element = byId(id);
    if (element) {
      element.textContent = value;
    }
  }

  function regimeLabel(reynolds) {
    if (reynolds < 2300) {
      return "przepływ laminarny";
    }
    if (reynolds < 4000) {
      return "obszar przejściowy";
    }
    return "przepływ turbulentny";
  }

  function setStatus(result, budgetKpa, lengthM) {
    var box = byId("rk-loop-status");
    var title = byId("rk-loop-status-title");
    var copy = byId("rk-loop-status-copy");
    var icon = byId("rk-loop-status-icon");
    var ratio = result.totalLossKpa / budgetKpa;

    box.className = "rk-loop-status";
    if (result.totalLossKpa <= budgetKpa) {
      if (ratio <= 0.85) {
        icon.textContent = "✓";
        title.textContent = "Pętla mieści się w przyjętym budżecie";
        copy.textContent = "Dla wpisanych danych całkowita strata jest niższa od założonego budżetu. To nie kończy doboru — trzeba jeszcze dodać elementy wspólne i sprawdzić punkt pracy pompy.";
      } else {
        box.className += " rk-loop-status-warning";
        icon.textContent = "!";
        title.textContent = "Wariant graniczny względem wpisanego budżetu";
        copy.textContent = "Obwód mieści się w założeniu, ale rezerwa jest mała. Zweryfikuj dane konkretnej rury, armatury, magistrali i pompy oraz rzeczywisty przebieg na rzucie.";
      }
    } else {
      box.className += " rk-loop-status-danger";
      icon.textContent = "×";
      title.textContent = "Pętla przekracza przyjęty budżet ciśnienia";
      copy.textContent = "Przy niezmienionym przepływie, średnicy i oporach dodatkowych długość " + formatNumber(lengthM, 0) + " m wymaga większej różnicy ciśnienia niż wpisano. Sprawdź podział obwodu i całą drogę krytyczną.";
    }
  }

  function diagnosticCard(title, copy) {
    var card = document.createElement("div");
    var heading = document.createElement("b");
    var text = document.createTextNode(copy);
    card.className = "rk-loop-diagnostic";
    heading.textContent = title;
    card.appendChild(heading);
    card.appendChild(text);
    return card;
  }

  function renderDiagnostics(result, budgetKpa, extraKpa, diameterMm, flowLMin) {
    var container = byId("rk-loop-diagnostics");
    var velocityCopy;
    var budgetCopy;
    var diameterCopy;

    while (container.firstChild) {
      container.removeChild(container.firstChild);
    }

    if (result.velocity < 0.15) {
      velocityCopy = "Prędkość jest niższa niż orientacyjny zakres kontrolny 0,15–0,60 m/s. Nie jest to automatyczny błąd, ale wymaga oceny odpowietrzania, regulacji i rzeczywistych warunków pracy.";
    } else {
      if (result.velocity > 0.60) {
        velocityCopy = "Prędkość przekracza orientacyjny poziom kontrolny 0,60 m/s. Sprawdź hałas, opory i możliwość podziału mocy na więcej obwodów.";
      } else {
        velocityCopy = "Prędkość mieści się w orientacyjnym zakresie kontrolnym 0,15–0,60 m/s. Nadal trzeba ocenić cały układ i dane zastosowanej armatury.";
      }
    }

    if (extraKpa >= budgetKpa) {
      budgetCopy = "Same wpisane opory dodatkowe wykorzystują cały budżet lub go przekraczają. Długość rury nie może wtedy otrzymać dodatniej rezerwy w tym modelu.";
    } else {
      budgetCopy = "Po odjęciu oporów dodatkowych na samą rurę pozostaje " + formatNumber(budgetKpa - extraKpa, 1) + " kPa.";
    }

    diameterCopy = "Dla średnicy wewnętrznej " + formatNumber(diameterMm, 1) + " mm i przepływu " + formatNumber(flowLMin, 2) + " l/min analizator obliczył gradient " + formatNumber(result.gradientPaM, 0) + " Pa/m.";

    container.appendChild(diagnosticCard("Prędkość przepływu", velocityCopy));
    container.appendChild(diagnosticCard("Podział budżetu", budgetCopy));
    container.appendChild(diagnosticCard("Warunki porównania", diameterCopy));
  }

  function renderComparison(flowLMin, lengthM, waterTemp, extraKpa, budgetKpa) {
    var tbody = byId("rk-loop-comparison-body");
    var pipes = [
      {name: "16 × 2,0", diameter: 12},
      {name: "16 × 2,2", diameter: 11.6},
      {name: "17 × 2,0", diameter: 13},
      {name: "20 × 2,0", diameter: 16}
    ];
    var i;
    var result;
    var row;
    var values;
    var labels = ["Rura", "Średnica wewnętrzna", "Prędkość", "Gradient", "Strata całkowita", "Długość z budżetu"];
    var j;
    var cell;

    while (tbody.firstChild) {
      tbody.removeChild(tbody.firstChild);
    }

    for (i = 0; i < pipes.length; i += 1) {
      result = calculateHydraulics(flowLMin, pipes[i].diameter, lengthM, waterTemp, extraKpa, budgetKpa);
      values = [
        pipes[i].name + " mm",
        formatNumber(pipes[i].diameter, 1) + " mm",
        formatNumber(result.velocity, 2) + " m/s",
        formatNumber(result.gradientPaM, 0) + " Pa/m",
        formatNumber(result.totalLossKpa, 1) + " kPa",
        result.maxLengthM > 0 ? formatNumber(result.maxLengthM, 0) + " m" : "brak rezerwy"
      ];
      row = document.createElement("tr");
      for (j = 0; j < values.length; j += 1) {
        cell = document.createElement("td");
        cell.setAttribute("data-label", labels[j]);
        cell.textContent = values[j];
        row.appendChild(cell);
      }
      tbody.appendChild(row);
    }
  }

  function svgText(x, y, value, options) {
    var anchor = options.anchor || "middle";
    var size = options.size || 12;
    var fill = options.fill || "#58717d";
    var weight = options.weight || 650;
    var rotate = options.rotate || 0;
    var transform = "";
    if (rotate !== 0) {
      transform = ' transform="rotate(' + rotate + " " + x + " " + y + ')"';
    }
    return '<text x="' + x + '" y="' + y + '" text-anchor="' + anchor + '" font-size="' + size + '" font-weight="' + weight + '" fill="' + fill + '"' + transform + ">" + value + "</text>";
  }

  function renderChart(flowLMin, selectedDiameter, lengthM, waterTemp, extraKpa, budgetKpa, selectedResult) {
    var svg = byId("rk-loop-chart");
    var width = 920;
    var height = 430;
    var left = 78;
    var right = 25;
    var top = 24;
    var bottom = 62;
    var plotWidth = width - left - right;
    var plotHeight = height - top - bottom;
    var xMax = 160;
    var maxCandidate = selectedResult.maxLengthM;
    var curves = [
      {name: "16 × 2,0", diameter: 12, color: "#078fbe"},
      {name: "17 × 2,0", diameter: 13, color: "#17846d"},
      {name: "20 × 2,0", diameter: 16, color: "#ff6f3d"}
    ];
    var i;
    var x;
    var result;
    var maxLoss = budgetKpa;
    var yMax;
    var parts = [];
    var gridCountY = 5;
    var gridCountX = 8;
    var gx;
    var gy;
    var tickValue;
    var path;
    var step;
    var px;
    var py;
    var selectedX;
    var selectedY;
    var budgetY;

    if (lengthM * 1.25 > xMax) {
      xMax = Math.ceil(lengthM * 1.25 / 20) * 20;
    }
    if (maxCandidate > xMax) {
      if (maxCandidate < 220) {
        xMax = Math.ceil(maxCandidate / 20) * 20;
      }
    }
    xMax = clamp(xMax, 120, 220);

    for (i = 0; i < curves.length; i += 1) {
      result = calculateHydraulics(flowLMin, curves[i].diameter, xMax, waterTemp, extraKpa, budgetKpa);
      if (result.totalLossKpa > maxLoss) {
        maxLoss = result.totalLossKpa;
      }
    }
    if (selectedResult.totalLossKpa > maxLoss) {
      maxLoss = selectedResult.totalLossKpa;
    }
    yMax = Math.ceil(maxLoss * 1.14 / 10) * 10;
    if (yMax < 20) {
      yMax = 20;
    }

    parts.push('<rect x="0" y="0" width="' + width + '" height="' + height + '" rx="12" fill="#ffffff"></rect>');

    for (i = 0; i <= gridCountY; i += 1) {
      gy = top + plotHeight - i * plotHeight / gridCountY;
      tickValue = i * yMax / gridCountY;
      parts.push('<line x1="' + left + '" y1="' + gy + '" x2="' + (width - right) + '" y2="' + gy + '" stroke="#dce8ed" stroke-width="1"></line>');
      parts.push(svgText(left - 12, gy + 4, formatNumber(tickValue, 0), {anchor: "end", size: 11}));
    }

    for (i = 0; i <= gridCountX; i += 1) {
      gx = left + i * plotWidth / gridCountX;
      tickValue = i * xMax / gridCountX;
      parts.push('<line x1="' + gx + '" y1="' + top + '" x2="' + gx + '" y2="' + (height - bottom) + '" stroke="#e5eef2" stroke-width="1"></line>');
      parts.push(svgText(gx, height - bottom + 23, formatNumber(tickValue, 0), {size: 11}));
    }

    parts.push('<line x1="' + left + '" y1="' + (height - bottom) + '" x2="' + (width - right) + '" y2="' + (height - bottom) + '" stroke="#78909b" stroke-width="1.4"></line>');
    parts.push('<line x1="' + left + '" y1="' + top + '" x2="' + left + '" y2="' + (height - bottom) + '" stroke="#78909b" stroke-width="1.4"></line>');

    budgetY = top + plotHeight - budgetKpa / yMax * plotHeight;
    if (budgetY >= top) {
      if (budgetY <= height - bottom) {
        parts.push('<line x1="' + left + '" y1="' + budgetY + '" x2="' + (width - right) + '" y2="' + budgetY + '" stroke="#d94b3d" stroke-width="2.2" stroke-dasharray="8 7"></line>');
        parts.push(svgText(width - right - 4, budgetY - 8, "budżet " + formatNumber(budgetKpa, 1) + " kPa", {anchor: "end", size: 11, fill: "#c13d31", weight: 800}));
      }
    }

    for (i = 0; i < curves.length; i += 1) {
      path = "";
      for (step = 0; step <= 48; step += 1) {
        x = step * xMax / 48;
        result = calculateHydraulics(flowLMin, curves[i].diameter, x, waterTemp, extraKpa, budgetKpa);
        px = left + x / xMax * plotWidth;
        py = top + plotHeight - result.totalLossKpa / yMax * plotHeight;
        if (step === 0) {
          path += "M " + px.toFixed(2) + " " + py.toFixed(2);
        } else {
          path += " L " + px.toFixed(2) + " " + py.toFixed(2);
        }
      }
      parts.push('<path d="' + path + '" fill="none" stroke="' + curves[i].color + '" stroke-width="3.3" stroke-linecap="round"></path>');
    }

    selectedX = left + clamp(lengthM, 0, xMax) / xMax * plotWidth;
    selectedY = top + plotHeight - clamp(selectedResult.totalLossKpa, 0, yMax) / yMax * plotHeight;
    parts.push('<line x1="' + selectedX + '" y1="' + top + '" x2="' + selectedX + '" y2="' + (height - bottom) + '" stroke="#695ac9" stroke-width="1.8" stroke-dasharray="5 6"></line>');
    parts.push('<circle cx="' + selectedX + '" cy="' + selectedY + '" r="7" fill="#695ac9" stroke="#ffffff" stroke-width="3"></circle>');
    parts.push(svgText(selectedX, Math.max(top + 14, selectedY - 13), formatNumber(lengthM, 0) + " m • " + formatNumber(selectedResult.totalLossKpa, 1) + " kPa", {size: 11, fill: "#5447aa", weight: 850}));

    parts.push(svgText(left + plotWidth / 2, height - 13, "całkowita długość pętli [m]", {size: 12, fill: "#3e5966", weight: 800}));
    parts.push(svgText(20, top + plotHeight / 2, "całkowity spadek ciśnienia [kPa]", {size: 12, fill: "#3e5966", weight: 800, rotate: -90}));

    svg.innerHTML = parts.join("");
    svg.setAttribute("aria-label", "Wykres spadku ciśnienia. Wybrana średnica wewnętrzna " + formatNumber(selectedDiameter, 1) + " mm, długość " + formatNumber(lengthM, 0) + " m, wynik " + formatNumber(selectedResult.totalLossKpa, 1) + " kPa.");
  }

  function calculate() {
    var flowLMin = getFlow();
    var diameterMm = getSelectedDiameter();
    var lengthM = clamp(readNumber("rk-loop-length", 90), 5, 220);
    var waterTemp = clamp(readNumber("rk-loop-water-temp", 30), 10, 60);
    var extraKpa = clamp(readNumber("rk-loop-extra", 3), 0, 50);
    var budgetKpa = clamp(readNumber("rk-loop-budget", 20), 1, 100);
    var result = calculateHydraulics(flowLMin, diameterMm, lengthM, waterTemp, extraKpa, budgetKpa);
    var reservePrefix = result.remainingKpa >= 0 ? "+" : "";

    setText("rk-loop-result-flow", formatNumber(flowLMin, 2) + " l/min");
    setText("rk-loop-result-flow-hour", formatNumber(flowLMin * 60, 0) + " l/h");
    setText("rk-loop-result-velocity", formatNumber(result.velocity, 2) + " m/s");
    setText("rk-loop-result-gradient", formatNumber(result.gradientPaM, 0) + " Pa/m");
    setText("rk-loop-result-pipe-loss", formatNumber(result.pipeLossKpa, 1) + " kPa");
    setText("rk-loop-result-total-loss", formatNumber(result.totalLossKpa, 1) + " kPa");
    setText("rk-loop-result-reserve", reservePrefix + formatNumber(result.remainingKpa, 1) + " kPa");
    setText("rk-loop-result-max-length", result.maxLengthM > 0 ? formatNumber(result.maxLengthM, 0) + " m" : "brak");
    setText("rk-loop-result-reynolds", formatNumber(result.reynolds, 0));
    setText("rk-loop-result-regime", regimeLabel(result.reynolds));

    setStatus(result, budgetKpa, lengthM);
    renderDiagnostics(result, budgetKpa, extraKpa, diameterMm, flowLMin);
    renderComparison(flowLMin, lengthM, waterTemp, extraKpa, budgetKpa);
    renderChart(flowLMin, diameterMm, lengthM, waterTemp, extraKpa, budgetKpa, result);
  }

  function resetExample() {
    byId("rk-loop-mode").value = "power";
    byId("rk-loop-power").value = "600";
    byId("rk-loop-delta").value = "5";
    byId("rk-loop-known-flow").value = "1.72";
    byId("rk-loop-pipe").value = "12";
    byId("rk-loop-custom-id").value = "12";
    byId("rk-loop-water-temp").value = "30";
    byId("rk-loop-length").value = "90";
    byId("rk-loop-extra").value = "3";
    byId("rk-loop-budget").value = "20";
    updateFieldStates();
    calculate();
  }

  var interactiveInputs = root.querySelectorAll("#rk-loop-tool input, #rk-loop-tool select");
  var i;
  for (i = 0; i < interactiveInputs.length; i += 1) {
    interactiveInputs[i].addEventListener("input", function () {
      updateFieldStates();
      calculate();
    });
    interactiveInputs[i].addEventListener("change", function () {
      updateFieldStates();
      calculate();
    });
  }

  byId("rk-loop-calculate").addEventListener("click", calculate);
  byId("rk-loop-reset").addEventListener("click", resetExample);

  var faqItems = root.querySelectorAll(".rk-loop-faq details");
  for (i = 0; i < faqItems.length; i += 1) {
    faqItems[i].addEventListener("toggle", function () {
      var current = this;
      var j;
      if (!current.open) {
        return;
      }
      for (j = 0; j < faqItems.length; j += 1) {
        if (faqItems[j] !== current) {
          faqItems[j].open = false;
        }
      }
    });
  }

  updateFieldStates();
  calculate();
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">Maksymalna długość pętli 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/maksymalna-dlugosc-petli-ogrzewania-podlogowego/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
