<?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 Rozstaw pętli - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/category/rozstaw-petli/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/category/rozstaw-petli/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Thu, 06 Aug 2026 16:16:13 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.4</generator>

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa Rozstaw pętli - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/category/rozstaw-petli/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Salon ile pętli podłogówki?</title>
		<link>https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/</link>
					<comments>https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Wed, 12 Feb 2025 10:31:08 +0000</pubDate>
				<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Niskotemperaturowe systemy grzewcze]]></category>
		<category><![CDATA[Nowoczesne systemy grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Rozstaw pętli]]></category>
		<category><![CDATA[Rozstaw rur ogrzewania]]></category>
		<category><![CDATA[Rozstaw rur podłogówki]]></category>
		<category><![CDATA[Rozstaw rur w podłogówce]]></category>
		<category><![CDATA[Salon]]></category>
		<category><![CDATA[Systemy grzewcze]]></category>
		<category><![CDATA[budowa]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[instalacje]]></category>
		<category><![CDATA[ogrzewanie]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pętle grzewcze]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[poradnik]]></category>
		<category><![CDATA[remont]]></category>
		<category><![CDATA[salon]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2173</guid>

					<description><![CDATA[<p>Planujesz ogrzewanie podłogowe w salonie i zastanawiasz się, ile pętli podłogówki będzie optymalne dla Twojej przestrzeni? W tym artykule znajdziesz szczegółowe wyliczenia dla salonów o powierzchni od 20 m² do 50 m², uwzględniające rozstaw rur, długość pętli oraz praktyczne wskazówki. Dowiesz się, jak rozplanować pętle grzewcze, aby zapewnić równomierne nagrzewanie podłogi i efektywność systemu. Sprawdź, jak dostosować liczbę pętli do swojego metrażu i uniknąć typowych błędów!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/">Salon ile pętli podłogówki?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-blue: #0284c7;
    --rk-intro-light-blue: #e0f2fe;
    --rk-intro-green: #10b981;
    --rk-intro-red: #ef4444;
    --rk-intro-gray-bg: #f8fafc;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #334155;
}

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

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

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

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

/* Main Layout */
.rk-intro-body {
    display: flex;
    flex-wrap: wrap;
    background: #ffffff;
}

/* Quick Answer Section */
.rk-intro-quick-answer {
    flex: 1 1 500px;
    padding: 40px;
    border-right: 1px solid var(--rk-intro-border);
    background: #ffffff;
}

.rk-qa-badge {
    display: inline-block;
    background: var(--rk-intro-red);
    color: #ffffff;
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
}

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

.rk-qa-content p {
    margin: 0 0 15px 0;
}

.rk-qa-highlight {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    display: block;
    margin: 15px 0;
    padding: 20px;
    background: var(--rk-intro-light-blue);
    border-radius: 16px;
    border-left: 6px solid var(--rk-intro-blue);
}

.rk-qa-highlight strong {
    color: var(--rk-intro-blue);
}

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

/* Roadmap/Teaser Section */
.rk-intro-roadmap {
    flex: 1 1 350px;
    background: var(--rk-intro-gray-bg);
    padding: 40px;
    display: flex;
    flex-direction: column;
}

.rk-roadmap-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    margin: 0 0 20px 0;
    text-transform: uppercase;
}

/* Interactive Roadmap List (No Animation) */
.rk-roadmap-nav {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 20px;
}

.rk-roadmap-btn {
    padding: 15px 20px;
    background: #ffffff;
    border: 1px solid var(--rk-intro-border);
    border-radius: 12px;
    text-align: left;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-intro-text);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 12px;
    transition: all 0.2s ease;
}

.rk-roadmap-btn:hover {
    border-color: var(--rk-intro-blue);
    color: var(--rk-intro-blue);
}

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

/* Roadmap Details Content */
.rk-roadmap-panel {
    display: none;
    background: #ffffff;
    padding: 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-intro-border);
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

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

.rk-roadmap-panel p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-intro-text);
}

.rk-roadmap-panel strong {
    color: var(--rk-intro-dark);
    display: block;
    margin-bottom: 8px;
    font-size: 15px;
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-intro-header { padding: 30px 20px; }
    .rk-intro-header h2 { font-size: 26px; }
    .rk-intro-quick-answer { padding: 30px 20px; border-right: none; border-bottom: 1px solid var(--rk-intro-border); }
    .rk-qa-highlight { font-size: 18px; }
    .rk-intro-roadmap { padding: 30px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/"
    },
    "headline": "Salon ile pętli podłogówki? Wstęp do algorytmu doboru",
    "description": "Zrozum kluczowe zasady określania liczby pętli ogrzewania podłogowego w salonie. Sprawdź szybką odpowiedź eksperta oraz wykaz narzędzi symulacyjnych w artykule.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-06",
    "dateModified": "2026-08-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#dataset",
    "name": "Bazowe Parametry Hydrauliczne: Salon",
    "description": "Kompilacja podstawowych wartości dla doboru pętli podłogówki: zależność metrażu (20-50m2), rozstawów (10-15cm) oraz górnej granicy długości pętli (100m).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "salon ile pętli podłogówki",
      "liczba obwodów podłogówki w salonie",
      "ogrzewanie podłogowe maksymalna długość pętli",
      "rozstaw rur podłogówki w salonie",
      "sprawność pompy ciepła a opory hydrauliczne"
    ],
    "measurementTechnique": "Szacowanie zapotrzebowania obwodów na bazie wytycznych PN-EN 1264 dla rur PE-RT 16x2.0 mm z uwzględnieniem strefowości.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Maksymalna dopuszczalna długość pojedynczego obwodu to 100 metrów dla rury 16x2.0 mm.",
        "Dla salonów 20 m2 - 50 m2 norma wymaga ułożenia od 2 do 6 osobnych pętli.",
        "Rozstaw bazowy: 15 cm dla stref środkowych, 10 cm dla stref brzegowych przy oknach.",
        "Błąd podziału obniża efektywność układu cieplnego i generuje niedogrzania."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#webapp",
    "name": "Przewodnik Techniczny (Dashboard Informacyjny)",
    "description": "Interaktywny panel ułatwiający nawigację po narzędziach analitycznych i kalkulatorach znajdujących się w strukturze artykułu inżynieryjnego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="rk-intro-app">
    <div class="rk-intro-header">
        <h2>Salon ile pętli podłogówki?</h2>
        <div class="rk-intro-hook">
            Budowa domu to dziesiątki decyzji, ale błędy w rozplanowaniu rur w centralnym pomieszczeniu pemszczą się najszybciej. Zobacz, dlaczego pętle &#8222;robione na oko&#8221; niszczą sprawność pompy ciepła.
        </div>
    </div>

    <div class="rk-intro-body">
        
        <!-- Szybka Odpowiedź -->
        <div class="rk-intro-quick-answer">
            <span class="rk-qa-badge">Szybka Odpowiedź Eksperta</span>
            <div class="rk-qa-content">
                <p>Liczba pętli ogrzewania podłogowego w salonie zależy bezpośrednio od powierzchni pomieszczenia, przyjętego rozstawu rur (VA), oporów hydraulicznych oraz maksymalnej dopuszczalnej długości jednego obwodu.</p>
                
                <div class="rk-qa-highlight">
                    Dla standardowego salonu o powierzchni od 20 m² do 50 m² wymagana liczba pętli wynosi <strong>od 2 do nawet 6 obwodów</strong>.
                </div>

                <p>Według <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">normy PN-EN 1264</a> długość pojedynczej pętli dla rury o średnicy 16&#215;2,0 mm absolutnie nie powinna przekraczać 100 metrów. Ilość obwodów waha się w zależności od tego, czy w posadzce zastosowano rozstaw 15 cm (dla strefy centralnej), czy gęstsze 10 cm (strefa brzegowa przy dużych przeszkleniach).</p>
                
                <p>Błąd w podziale salonu na wężownice powoduje drastyczny wzrost oporów przepływu, niedogrzanie strefy wypoczynkowej oraz ostry spadek sprawności pompy ciepła (COP).</p>
            </div>
        </div>

        <!-- Spis interaktywnych narzędzi (Roadmap) -->
        <div class="rk-intro-roadmap">
            <h3 class="rk-roadmap-title">Co zawiera ten przewodnik?</h3>
            
            <div class="rk-roadmap-nav">
                <button class="rk-roadmap-btn active" data-map="kalkulator">
                    <svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="2" width="16" height="20" rx="2" ry="2"></rect><line x1="8" y1="6" x2="16" y2="6"></line><line x1="16" y1="14" x2="16" y2="14.01"></line><line x1="12" y1="14" x2="12" y2="14.01"></line><line x1="8" y1="14" x2="8" y2="14.01"></line><line x1="16" y1="18" x2="16" y2="18.01"></line><line x1="12" y1="18" x2="12" y2="18.01"></line><line x1="8" y1="18" x2="8" y2="18.01"></line></svg>
                    Kalkulator Obwodów
                </button>
                <button class="rk-roadmap-btn" data-map="symulator">
                    <svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 12h4l2-9 5 18 3-10 2 3h4"></path></svg>
                    Symulator Zjawisk
                </button>
                <button class="rk-roadmap-btn" data-map="baza">
                    <svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="m12 12 4-4"></path><path d="M12 12v4"></path></svg>
                    Skutki Oporów (kPa)
                </button>
            </div>

            <!-- Zawartość przełączana -->
            <div class="rk-roadmap-panel active" id="kalkulator">
                <strong>Algorytm na żywo</strong>
                <p>W dalszej części artykułu znajdziesz <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/">interaktywne narzędzia do obliczeń</a>. Ustawisz metraż swojego salonu i natychmiast otrzymasz precyzyjne wyliczenia długości rur dla różnych rozstawów.</p>
            </div>

            <div class="rk-roadmap-panel" id="symulator">
                <strong>Wizualizacja Termiczna</strong>
                <p>Przygotowaliśmy narzędzia symulujące zjawisko &#8222;ciągu zniżkowego&#8221; przy oknach tarasowych, obrazujące różnice pomiędzy zwykłym układem a profesjonalnym podziałem strefowym.</p>
            </div>

            <div class="rk-roadmap-panel" id="baza">
                <strong>Diagnostyka Awarii</strong>
                <p>Zobaczysz twarde parametry i dowiesz się, co dokładnie dzieje się w rurach, gdy instalator przekroczy dopuszczalne długości pętli oraz dlaczego doprowadza to do wyłączenia pompy obiegowej.</p>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const roadmapBtns = document.querySelectorAll('.rk-roadmap-btn');
    const roadmapPanels = document.querySelectorAll('.rk-roadmap-panel');

    for (let i = 0; i < roadmapBtns.length; i++) {
        roadmapBtns[i].addEventListener('click', function() {
            // Natychmiastowe czyszczenie (brak operatorow logicznych and/or)
            for (let j = 0; j < roadmapBtns.length; j++) {
                roadmapBtns[j].classList.remove('active');
            }
            for (let k = 0; k < roadmapPanels.length; k++) {
                roadmapPanels[k].classList.remove('active');
            }

            // Aktywacja wlasciwej sekcji
            this.classList.add('active');
            const targetId = this.getAttribute('data-map');
            const targetPanel = document.getElementById(targetId);

            if (targetPanel) {
                targetPanel.classList.add('active');
            }
        });
    }
});
</script>



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

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

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

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

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

/* Size Selector Area */
.rk-loop-selector-area {
    padding: 35px 40px 20px 40px;
    background: var(--rk-loop-bg);
}

.rk-loop-selector-title {
    font-size: 14px;
    font-weight: 800;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    text-align: center;
}

.rk-loop-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
}

.rk-size-btn {
    padding: 12px 24px;
    background: var(--rk-loop-gray);
    border: 2px solid var(--rk-loop-border);
    border-radius: 12px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-loop-text);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-size-btn:hover {
    border-color: #bae6fd;
    color: var(--rk-loop-blue);
    transform: translateY(-2px);
}

.rk-size-btn.active {
    background: var(--rk-loop-blue);
    border-color: var(--rk-loop-blue);
    color: #ffffff;
    box-shadow: 0 10px 15px -3px rgba(2, 132, 199, 0.3);
    transform: translateY(-2px);
}

/* Results Area */
.rk-loop-results-area {
    padding: 0 40px 40px 40px;
    background: var(--rk-loop-bg);
}

.rk-result-panel {
    display: none;
    animation: fadeInScale 0.4s ease forwards;
}

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

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

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

/* Individual Data Cards */
.rk-loop-card {
    background: var(--rk-loop-gray);
    border-radius: 20px;
    padding: 30px;
    border: 1px solid var(--rk-loop-border);
    position: relative;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-loop-card.highlight {
    background: #fef2f2;
    border-color: #fca5a5;
}

.rk-loop-card-badge {
    position: absolute;
    top: -15px;
    left: 30px;
    background: var(--rk-loop-dark);
    color: #ffffff;
    font-size: 14px;
    font-weight: 800;
    padding: 6px 16px;
    border-radius: 999px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-loop-card.highlight .rk-loop-card-badge {
    background: var(--rk-loop-red);
}

.rk-card-main-stat {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-loop-blue);
    margin: 20px 0 15px 0;
    display: flex;
    align-items: baseline;
    gap: 10px;
}

.rk-loop-card.highlight .rk-card-main-stat {
    color: var(--rk-loop-red);
}

.rk-card-main-stat span {
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-loop-text);
}

.rk-card-details {
    font-size: 15px;
    color: var(--rk-loop-text);
    line-height: 1.7;
    margin: 0;
    padding-top: 15px;
    border-top: 1px dashed #cbd5e1;
}

.rk-card-details strong {
    color: var(--rk-loop-dark);
}

.rk-warning-text {
    display: inline-block;
    color: var(--rk-loop-red);
    font-weight: 800;
    background: #fee2e2;
    padding: 2px 8px;
    border-radius: 6px;
    margin: 5px 0;
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-loop-header { padding: 30px 20px; }
    .rk-loop-header h2 { font-size: 24px; }
    .rk-loop-selector-area { padding: 25px 20px 15px 20px; }
    .rk-size-btn { flex: 1 1 calc(50% - 12px); text-align: center; }
    .rk-loop-results-area { padding: 0 20px 30px 20px; }
    .rk-result-grid { grid-template-columns: 1fr; gap: 30px; margin-top: 25px; }
    .rk-loop-card-badge { left: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#article-liczba-petli",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/"
    },
    "headline": "Ile pętli podłogówki do salonu 10 m², 20 m², 25 m², 30 m², 35 m², 40 m², 45 m² i 50 m²?",
    "description": "Precyzyjne wyliczenia zapotrzebowania na rurę i liczbę obwodów w salonie w zależności od rozstawu rur (VA 15 cm i VA 10 cm). Gotowe dane dla metraży od 10 do 50 m2.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-06",
    "dateModified": "2026-08-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#dataset-petle-metraz",
    "name": "Zestawienie: Liczba Pętli Ogrzewania Podłogowego wg Metrażu Salonu",
    "description": "Szczegółowa tabela obliczeniowa uwzględniająca długość przyłączy (5-10m), maksymalną długość rury 16x2.0 (100m) oraz zużycie materiału dla rozstawów VA15 i VA10.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ile pętli podłogówki do salonu 30m2",
      "długość rury ogrzewania podłogowego na m2",
      "rozstaw rur 15 cm a liczba obwodów",
      "salon 40m2 ile obwodów ogrzewania",
      "przekroczenie 100m pętli podłogówki"
    ],
    "measurementTechnique": "Algorytm przemnażający metraż przez wskaźnik zużycia rury (6.67 m/m2 dla 15 cm; 10 m/m2 dla 10 cm) z dodaniem 10 m przyłącza do rozdzielacza.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Salon 20 m2 (VA 15): 143.4 m rury całkowitej -> Wymagane 2 pętle po 71.7 m.",
        "Salon 30 m2 (VA 15): 210.1 m rury całkowitej -> Wymagane 3 pętle po 70 m.",
        "Salon 40 m2 (VA 15): 276.8 m rury całkowitej -> Wymagane 3 lub 4 pętle.",
        "Salon 50 m2 (VA 10): 510 m rury całkowitej -> Wymagane 6 pętli po 85 m."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#webapp-wybor-metrazu",
    "name": "Kalkulator Pętli Grzewczych wg Metrażu Salonu",
    "description": "Interaktywny moduł wyboru pozwalający błyskawicznie sprawdzić wymaganą liczbę obwodów hydraulicznych i zużycie rury dla popularnych wymiarów salonów (10-50 m2).",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-loops-container" id="rk-loops-app">
    <div class="rk-loop-header">
        <h2>Ile pętli zaprojektować do Twojego salonu?</h2>
        <p>Liczba pętli dla salonu o powierzchni 10-50 m² wynosi od 1 do 6 obwodów. Poniższe precyzyjne wyliczenia zakładają dopuszczalny limit 100 m na jedną pętlę (dla rury 16x2.0 mm) oraz uwzględniają odcinek zasilający od rozdzielacza (tzw. dobieg o długości 10 m).</p>
    </div>

    <div class="rk-loop-selector-area">
        <div class="rk-loop-selector-title">Wybierz metraż salonu</div>
        <div class="rk-loop-buttons" id="rkSizeButtons">
            <button class="rk-size-btn" data-target="size-10">10 m²</button>
            <button class="rk-size-btn" data-target="size-20">20 m²</button>
            <button class="rk-size-btn" data-target="size-25">25 m²</button>
            <button class="rk-size-btn active" data-target="size-30">30 m²</button>
            <button class="rk-size-btn" data-target="size-35">35 m²</button>
            <button class="rk-size-btn" data-target="size-40">40 m²</button>
            <button class="rk-size-btn" data-target="size-45">45 m²</button>
            <button class="rk-size-btn" data-target="size-50">50 m²</button>
        </div>
    </div>

    <div class="rk-loop-results-area">
        
        <!-- Panel 10 m2 -->
        <div class="rk-result-panel" id="size-10">
            <div class="rk-result-grid">
                <div class="rk-loop-card">
                    <div class="rk-loop-card-badge">Rozstaw 15 cm</div>
                    <div class="rk-card-main-stat">1 pętla <span>(Bezpiecznie)</span></div>
                    <p class="rk-card-details">Zużycie rury: 10 m² x 6,67 m/m² = 66,7 m.<br>Dodając 10 m przyłącza = <strong>76,7 m.</strong></p>
                </div>
                <div class="rk-loop-card highlight">
                    <div class="rk-loop-card-badge">Rozstaw 10 cm</div>
                    <div class="rk-card-main-stat">2 pętle <span>po 55 m</span></div>
                    <p class="rk-card-details">Zużycie rury: 10 m² x 10 m/m² = 100 m.<br>Z dobiegiem to 110 m. <span class="rk-warning-text">Przekroczenie limitu 100 m!</span> Wymagany podział.</p>
                </div>
            </div>
        </div>

        <!-- Panel 20 m2 -->
        <div class="rk-result-panel" id="size-20">
            <div class="rk-result-grid">
                <div class="rk-loop-card">
                    <div class="rk-loop-card-badge">Rozstaw 15 cm</div>
                    <div class="rk-card-main-stat">2 pętle <span>po 71,7 m</span></div>
                    <p class="rk-card-details">Zużycie rury: 20 m² x 6,67 m/m² = 133,4 m.<br>Dodając 10 m przyłącza = <strong>143,4 m.</strong></p>
                </div>
                <div class="rk-loop-card">
                    <div class="rk-loop-card-badge">Rozstaw 10 cm</div>
                    <div class="rk-card-main-stat">3 pętle <span>po 70 m</span></div>
                    <p class="rk-card-details">Zużycie rury: 20 m² x 10 m/m² = 200 m.<br>Dodając 10 m przyłącza = <strong>210 m.</strong></p>
                </div>
            </div>
        </div>

        <!-- Panel 25 m2 -->
        <div class="rk-result-panel" id="size-25">
            <div class="rk-result-grid">
                <div class="rk-loop-card">
                    <div class="rk-loop-card-badge">Rozstaw 15 cm</div>
                    <div class="rk-card-main-stat">2 pętle <span>po 88,4 m</span></div>
                    <p class="rk-card-details">Zużycie rury: 25 m² x 6,67 m/m² = 166,8 m.<br>Dodając 10 m przyłącza = <strong>176,8 m.</strong></p>
                </div>
                <div class="rk-loop-card">
                    <div class="rk-loop-card-badge">Rozstaw 10 cm</div>
                    <div class="rk-card-main-stat">3 pętle <span>po 86,7 m</span></div>
                    <p class="rk-card-details">Zużycie rury: 25 m² x 10 m/m² = 250 m.<br>Dodając 10 m przyłącza = <strong>260 m.</strong></p>
                </div>
            </div>
        </div>

        <!-- Panel 30 m2 -->
        <div class="rk-result-panel active" id="size-30">
            <div class="rk-result-grid">
                <div class="rk-loop-card">
                    <div class="rk-loop-card-badge">Rozstaw 15 cm</div>
                    <div class="rk-card-main-stat">3 pętle <span>po 70 m</span></div>
                    <p class="rk-card-details">Zużycie rury: 30 m² x 6,67 m/m² = 200,1 m. Dodając 10 m przyłącza = <strong>210,1 m.</strong><br>(Podział na 2 pętle po 105 m przekracza granicę bezpieczeństwa oporów).</p>
                </div>
                <div class="rk-loop-card">
                    <div class="rk-loop-card-badge">Rozstaw 10 cm</div>
                    <div class="rk-card-main-stat">4 pętle <span>po 77,5 m</span></div>
                    <p class="rk-card-details">Zużycie rury: 30 m² x 10 m/m² = 300 m.<br>Dodając 10 m przyłącza = <strong>310 m.</strong></p>
                </div>
            </div>
        </div>

        <!-- Panel 35 m2 -->
        <div class="rk-result-panel" id="size-35">
            <div class="rk-result-grid">
                <div class="rk-loop-card">
                    <div class="rk-loop-card-badge">Rozstaw 15 cm</div>
                    <div class="rk-card-main-stat">3 pętle <span>po 81,2 m</span></div>
                    <p class="rk-card-details">Zużycie rury: 35 m² x 6,67 m/m² = 233,5 m.<br>Dodając 10 m przyłącza = <strong>243,5 m.</strong></p>
                </div>
                <div class="rk-loop-card">
                    <div class="rk-loop-card-badge">Rozstaw 10 cm</div>
                    <div class="rk-card-main-stat">4 pętle <span>po 90 m</span></div>
                    <p class="rk-card-details">Zużycie rury: 35 m² x 10 m/m² = 350 m.<br>Dodając 10 m przyłącza = <strong>360 m.</strong></p>
                </div>
            </div>
        </div>

        <!-- Panel 40 m2 -->
        <div class="rk-result-panel" id="size-40">
            <div class="rk-result-grid">
                <div class="rk-loop-card">
                    <div class="rk-loop-card-badge">Rozstaw 15 cm</div>
                    <div class="rk-card-main-stat">4 pętle <span>po 69,2 m</span></div>
                    <p class="rk-card-details">Zużycie rury: 40 m² x 6,67 m/m² = 266,8 m. Całkowita długość z przyłączem to <strong>276,8 m.</strong> (Zalecane 4 pętle przy długich dojściach do rozdzielacza).</p>
                </div>
                <div class="rk-loop-card">
                    <div class="rk-loop-card-badge">Rozstaw 10 cm</div>
                    <div class="rk-card-main-stat">5 pętli <span>po 82 m</span></div>
                    <p class="rk-card-details">Zużycie rury: 40 m² x 10 m/m² = 400 m.<br>Dodając 10 m przyłącza = <strong>410 m.</strong></p>
                </div>
            </div>
        </div>

        <!-- Panel 45 m2 -->
        <div class="rk-result-panel" id="size-45">
            <div class="rk-result-grid">
                <div class="rk-loop-card">
                    <div class="rk-loop-card-badge">Rozstaw 15 cm</div>
                    <div class="rk-card-main-stat">4 pętle <span>po 77,5 m</span></div>
                    <p class="rk-card-details">Zużycie rury: 45 m² x 6,67 m/m² = 300,2 m.<br>Dodając 10 m przyłącza = <strong>310,2 m.</strong></p>
                </div>
                <div class="rk-loop-card">
                    <div class="rk-loop-card-badge">Rozstaw 10 cm</div>
                    <div class="rk-card-main-stat">5 pętli <span>po 92 m</span></div>
                    <p class="rk-card-details">Zużycie rury: 45 m² x 10 m/m² = 450 m.<br>Dodając 10 m przyłącza = <strong>460 m.</strong></p>
                </div>
            </div>
        </div>

        <!-- Panel 50 m2 -->
        <div class="rk-result-panel" id="size-50">
            <div class="rk-result-grid">
                <div class="rk-loop-card">
                    <div class="rk-loop-card-badge">Rozstaw 15 cm</div>
                    <div class="rk-card-main-stat">4 pętle <span>po 85,9 m</span></div>
                    <p class="rk-card-details">Zużycie rury: 50 m² x 6,67 m/m² = 333,5 m.<br>Dodając 10 m przyłącza = <strong>343,5 m.</strong></p>
                </div>
                <div class="rk-loop-card">
                    <div class="rk-loop-card-badge">Rozstaw 10 cm</div>
                    <div class="rk-card-main-stat">6 pętli <span>po 85 m</span></div>
                    <p class="rk-card-details">Zużycie rury: 50 m² x 10 m/m² = 500 m.<br>Dodając 10 m przyłącza = <strong>510 m.</strong></p>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const buttons = document.querySelectorAll('.rk-size-btn');
    const panels = document.querySelectorAll('.rk-result-panel');

    buttons.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Czyszczenie aktywnego stanu przycisków
            buttons.forEach(function(b) {
                b.classList.remove('active');
            });
            // Aktywacja klikniętego
            this.classList.add('active');

            const targetId = this.getAttribute('data-target');

            // Przełączanie paneli bezpiecznym warunkiem
            if (targetId) {
                panels.forEach(function(panel) {
                    panel.classList.remove('active');
                    if (panel.id === targetId) {
                        panel.classList.add('active');
                    }
                });
            }
        });
    });
});
</script>



<style>
:root {
    --rk-lim-dark: #0f172a;
    --rk-lim-blue: #0ea5e9;
    --rk-lim-light-blue: #f0f9ff;
    --rk-lim-green: #10b981;
    --rk-lim-green-light: #dcfce7;
    --rk-lim-red: #ef4444;
    --rk-lim-red-light: #fef2f2;
    --rk-lim-orange: #f59e0b;
    --rk-lim-orange-light: #fffbeb;
    --rk-lim-bg: #ffffff;
    --rk-lim-border: #e2e8f0;
    --rk-lim-text: #475569;
    --rk-lim-gray: #f8fafc;
}

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

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

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

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

.rk-lim-header a {
    color: #7dd3fc;
    text-decoration: underline;
    text-underline-offset: 3px;
    font-weight: 700;
}

/* Interactive Gauge Zone */
.rk-lim-interactive {
    padding: 40px;
    background: var(--rk-lim-gray);
    display: flex;
    flex-direction: column;
    align-items: center;
    border-bottom: 1px solid var(--rk-lim-border);
}

.rk-lim-status-badge {
    padding: 8px 24px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 25px;
    transition: all 0.3s ease;
}

.rk-lim-status-badge.optimal { background: var(--rk-lim-green-light); color: var(--rk-lim-green); border: 1px solid #bbf7d0; }
.rk-lim-status-badge.warning { background: var(--rk-lim-orange-light); color: var(--rk-lim-orange); border: 1px solid #fde68a; }
.rk-lim-status-badge.danger { background: var(--rk-lim-red-light); color: var(--rk-lim-red); border: 1px solid #fecaca; }

.rk-lim-gauge-display {
    font-size: 64px;
    font-weight: 900;
    color: var(--rk-lim-dark);
    line-height: 1;
    margin-bottom: 5px;
    display: flex;
    align-items: baseline;
    gap: 5px;
    transition: color 0.3s ease;
}

.rk-lim-gauge-display span {
    font-size: 24px;
    font-weight: 700;
    color: #94a3b8;
}

.rk-lim-slider-wrapper {
    width: 100%;
    max-width: 600px;
    margin-top: 30px;
    position: relative;
}

.rk-lim-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 12px;
    border-radius: 6px;
    background: linear-gradient(to right, var(--rk-lim-green) 0%, var(--rk-lim-green) 50%, var(--rk-lim-orange) 65%, var(--rk-lim-red) 100%);
    outline: none;
}

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

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

.rk-lim-scale {
    display: flex;
    justify-content: space-between;
    margin-top: 15px;
    font-size: 13px;
    font-weight: 700;
    color: #64748b;
}

/* Consequences Grid */
.rk-lim-consequences {
    padding: 40px;
    background: var(--rk-lim-bg);
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
}

.rk-lim-card {
    background: var(--rk-lim-bg);
    border-radius: 16px;
    padding: 25px;
    border: 2px solid var(--rk-lim-border);
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.rk-lim-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: transparent;
    transition: background 0.3s ease;
}

.rk-lim-card.danger-mode {
    border-color: #fca5a5;
    background: var(--rk-lim-red-light);
}

.rk-lim-card.danger-mode::before {
    background: var(--rk-lim-red);
}

.rk-lim-card-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: var(--rk-lim-light-blue);
    color: var(--rk-lim-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
    transition: all 0.3s ease;
}

.rk-lim-card.danger-mode .rk-lim-card-icon {
    background: var(--rk-lim-red);
    color: #ffffff;
}

.rk-lim-card h3 {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-lim-dark);
    margin: 0 0 10px 0;
    line-height: 1.4;
}

.rk-lim-dynamic-val {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-lim-blue);
    margin-bottom: 10px;
    display: block;
    transition: color 0.3s ease;
}

.rk-lim-card.danger-mode .rk-lim-dynamic-val {
    color: var(--rk-lim-red);
}

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

.rk-lim-card a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-lim-header { padding: 30px 20px; }
    .rk-lim-header h2 { font-size: 24px; }
    .rk-lim-interactive { padding: 30px 20px; }
    .rk-lim-gauge-display { font-size: 54px; }
    .rk-lim-consequences { grid-template-columns: 1fr; padding: 30px 20px; gap: 15px; }
    .rk-lim-card { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#article-dlugosc",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/"
    },
    "headline": "Jaka jest maksymalna długość pętli ogrzewania podłogowego w salonie według normy PN-EN 1264?",
    "description": "Zrozum zjawisko zamknięcia hydraulicznego. Dowiedz się, dlaczego przekroczenie 100 metrów pętli powoduje spadek ciśnienia, wychłodzenie strefy i ukryte koszty.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-06",
    "dateModified": "2026-08-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#dataset-granice-hydrauliczne",
    "name": "Normatywne Granice Oporów Hydraulicznych Pętli 16x2.0",
    "description": "Zestawienie inżynierskie demonstrujące współzależności: długość wężownicy kontra spadek ciśnienia, wychłodzenie czynnika i próg wydajności pomp obiegowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna długość pętli ogrzewania podłogowego",
      "opory hydrauliczne podłogówki kpa",
      "spadek ciśnienia w rurach pex",
      "zamknięcie hydrauliczne pętli grzewczej",
      "pompa sprzęgłowa do ogrzewania podłogowego"
    ],
    "measurementTechnique": "Określanie progów krytycznych na bazie normy PN-EN 1264: przepływ optymalny 1.5-2.0 l/min przy oporach poniżej 20 kPa i różnicy temperatur 5K.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Optymalna długość pętli rury 16x2.0 mm: 80 do 90 metrów.",
        "Maksymalny limit normatywny: 100 metrów.",
        "Wzrost oporu dla 120 m: Powyżej 35 kPa (przekracza wydajność np. pompy UPM3 15-75).",
        "Schłodzenie czynnika: Różnica temperatur podłogi powyżej 5K (wychłodzenie połowy salonu).",
        "Koszty naprawcze: Wymóg grupy pompowej ze sprzęgłem za 2500-4500 PLN."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#webapp-wizualizator-oporow",
    "name": "Wizualizator Zamknięcia Hydraulicznego",
    "description": "Interaktywny kalkulator ostrzegający przed przekroczeniem maksymalnej długości pętli i analizujący na żywo opory hydrauliczne oraz koszty dodatkowe.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-limit-container" id="rk-limit-app">
    <div class="rk-lim-header">
        <h2>Kiedy następuje zamknięcie hydrauliczne pętli?</h2>
        <p>
            Maksymalna długość pojedynczej pętli dla rury 16x2,0 mm wynosi dokładnie <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">100 metrów</a> (optymalnie 80–90 metrów). Zgodnie z normą <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">PN-EN 1264-3</a>, przekroczenie tej wartości potęguje opory liniowe i miejscowe. Sprawdź na symulatorze, jakie są skutki błędu.
        </p>
    </div>

    <div class="rk-lim-interactive">
        <div class="rk-lim-status-badge optimal" id="statusBadge">Praca Optymalna</div>
        
        <div class="rk-lim-gauge-display" id="gaugeDisplay">
            85 <span>metrów</span>
        </div>
        <div style="font-size: 14px; font-weight: 600; color: #94a3b8; text-transform: uppercase;">Długość pojedynczego obwodu</div>

        <div class="rk-lim-slider-wrapper">
            <input type="range" min="50" max="150" value="85" step="1" class="rk-lim-slider" id="lengthSlider">
            <div class="rk-lim-scale">
                <span>50m</span>
                <span>100m (Limit)</span>
                <span>150m</span>
            </div>
        </div>
    </div>

    <div class="rk-lim-consequences">
        <!-- Karta 1 -->
        <div class="rk-lim-card" id="cardPressure">
            <div class="rk-lim-card-icon">
                <svg width="26" height="26" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="m12 12 4-4"></path><path d="M12 12v4"></path></svg>
            </div>
            <h3>Wzrost oporów ciśnienia</h3>
            <span class="rk-lim-dynamic-val" id="valPressure">~15 kPa</span>
            <p>Opór rośnie w kwadracie prędkości. Dla długiej pętli opór wykracza poza zakres pracy <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">standardowej pompy obiegowej</a> (np. Wilo Para 25/6), a jej wydajność spada do zera.</p>
        </div>

        <!-- Karta 2 -->
        <div class="rk-lim-card" id="cardTemp">
            <div class="rk-lim-card-icon">
                <svg width="26" height="26" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 4v10.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0Z"></path></svg>
            </div>
            <h3>Schłodzenie czynnika</h3>
            <span class="rk-lim-dynamic-val" id="valTemp">Spadek o 5K</span>
            <p>Woda oddaje całe ciepło w pierwszej połowie pętli. Różnica temperatur podłogi w jednym pomieszczeniu zaczyna drastycznie przekraczać normatywne 5K (chłodna strefa wypoczynkowa).</p>
        </div>

        <!-- Karta 3 -->
        <div class="rk-lim-card" id="cardCost">
            <div class="rk-lim-card-icon">
                <svg width="26" height="26" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="4" width="20" height="16" rx="2"></rect><path d="M12 4v16"></path><path d="M8 8h.01"></path><path d="M8 12h.01"></path><path d="M8 16h.01"></path></svg>
            </div>
            <h3>Wymuszone koszty naprawy</h3>
            <span class="rk-lim-dynamic-val" id="valCost">0 PLN</span>
            <p>Aby ratować instalację, instalator zmuszony jest do montażu <a href="https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/">sprzęgła hydraulicznego</a> i potężnej zewnętrznej grupy pompowej, która pobiera dodatkowy prąd 24/7.</p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const slider = document.getElementById('lengthSlider');
    const gaugeDisplay = document.getElementById('gaugeDisplay');
    const statusBadge = document.getElementById('statusBadge');
    
    const cardPressure = document.getElementById('cardPressure');
    const cardTemp = document.getElementById('cardTemp');
    const cardCost = document.getElementById('cardCost');
    
    const valPressure = document.getElementById('valPressure');
    const valTemp = document.getElementById('valTemp');
    const valCost = document.getElementById('valCost');

    function updateGauge() {
        const length = parseInt(slider.value, 10);
        
        // Update number
        gaugeDisplay.innerHTML = length + ' <span>metrów</span>';

        // Logic (No && operators used)
        if (length <= 90) {
            // Optimal
            statusBadge.className = 'rk-lim-status-badge optimal';
            statusBadge.innerText = 'Praca Optymalna';
            gaugeDisplay.style.color = 'var(--rk-lim-dark)';
            
            cardPressure.className = 'rk-lim-card';
            cardTemp.className = 'rk-lim-card';
            cardCost.className = 'rk-lim-card';
            
            valPressure.innerText = '10 – 18 kPa';
            valTemp.innerText = 'Idealny spadek 5K';
            valCost.innerText = 'Brak dopłat';
            
        } else if (length <= 100) {
            // Warning (Limit)
            statusBadge.className = 'rk-lim-status-badge warning';
            statusBadge.innerText = 'Granica Opłacalności';
            gaugeDisplay.style.color = 'var(--rk-lim-orange)';
            
            cardPressure.className = 'rk-lim-card';
            cardTemp.className = 'rk-lim-card';
            cardCost.className = 'rk-lim-card';
            
            valPressure.innerText = '18 – 22 kPa';
            valTemp.innerText = 'Ryzyko niedogrzania';
            valCost.innerText = 'Mocniejsza pompa w PC';
            
        } else {
            // Danger (Hydraulic Lock)
            statusBadge.className = 'rk-lim-status-badge danger';
            statusBadge.innerText = 'Zamknięcie Hydrauliczne!';
            gaugeDisplay.style.color = 'var(--rk-lim-red)';
            
            cardPressure.className = 'rk-lim-card danger-mode';
            cardTemp.className = 'rk-lim-card danger-mode';
            cardCost.className = 'rk-lim-card danger-mode';
            
            valPressure.innerText = 'Powyżej 35 kPa!';
            valTemp.innerText = 'Spadek > 8K (Zimno)';
            valCost.innerText = '+ 3500 PLN (Grupa)';
        }
    }

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



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

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

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

.rk-space-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 20px 0;
    line-height: 1.3;
}

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

.rk-space-header a {
    color: #7dd3fc;
    text-decoration: underline;
    text-underline-offset: 3px;
    font-weight: 600;
}

/* Interactive Switcher */
.rk-space-interactive {
    padding: 40px;
    background: var(--rk-space-gray);
}

.rk-space-toggles {
    display: flex;
    gap: 15px;
    background: var(--rk-space-bg);
    padding: 10px;
    border-radius: 20px;
    border: 1px solid var(--rk-space-border);
    max-width: 700px;
    margin: 0 auto 40px auto;
}

.rk-space-btn {
    flex: 1;
    padding: 18px 10px;
    border: 2px solid transparent;
    border-radius: 14px;
    background: transparent;
    cursor: pointer;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-space-text);
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.rk-space-btn span {
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    opacity: 0.7;
}

.rk-space-btn:hover {
    background: var(--rk-space-gray);
}

.rk-space-btn.active[data-va="10"] {
    background: #fef2f2;
    border-color: var(--rk-space-red);
    color: var(--rk-space-red);
    box-shadow: 0 10px 20px -5px rgba(239, 68, 68, 0.15);
}

.rk-space-btn.active[data-va="15"] {
    background: #e0f2fe;
    border-color: var(--rk-space-blue);
    color: var(--rk-space-blue);
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.15);
}

.rk-space-btn.active[data-va="20"] {
    background: #fffbeb;
    border-color: var(--rk-space-orange);
    color: #b45309;
    box-shadow: 0 10px 20px -5px rgba(245, 158, 11, 0.15);
}

/* Data Dashboard */
.rk-space-dashboard {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.rk-data-card {
    background: var(--rk-space-bg);
    border: 1px solid var(--rk-space-border);
    border-radius: 16px;
    padding: 25px 20px;
    text-align: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    transition: transform 0.3s ease, border-color 0.3s ease;
}

.rk-data-card:hover {
    transform: translateY(-4px);
    border-color: #bae6fd;
}

.rk-card-icon {
    width: 44px;
    height: 44px;
    margin: 0 auto 15px auto;
    border-radius: 12px;
    background: var(--rk-space-light-blue);
    color: var(--rk-space-blue);
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-card-value {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-space-dark);
    margin: 0 0 5px 0;
}

.rk-card-label {
    font-size: 13px;
    color: #64748b;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-card-subtext {
    font-size: 12px;
    color: #94a3b8;
    margin-top: 8px;
    display: block;
}

/* Specific Grid Adjustments */
.rk-data-card.wide {
    grid-column: span 3;
    display: flex;
    align-items: center;
    justify-content: space-between;
    text-align: left;
    padding: 20px 30px;
    background: linear-gradient(to right, #ffffff, #f8fafc);
}

.rk-data-card.wide .rk-card-icon {
    margin: 0;
}

.rk-wide-content {
    flex: 1;
    padding-left: 20px;
}

.rk-wide-value {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-space-dark);
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-space-header { padding: 30px 20px; }
    .rk-space-header h2 { font-size: 24px; }
    .rk-space-interactive { padding: 30px 20px; }
    .rk-space-toggles { flex-direction: column; gap: 10px; padding: 15px; }
    .rk-space-btn { flex-direction: row; justify-content: center; padding: 15px; gap: 10px; }
    .rk-space-btn span { font-size: 14px; }
    .rk-space-dashboard { grid-template-columns: 1fr; gap: 15px; }
    .rk-data-card.wide { grid-column: span 1; flex-direction: column; text-align: center; gap: 15px; padding: 25px 20px; }
    .rk-wide-content { padding-left: 0; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#article-rozstaw",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/"
    },
    "headline": "Jak rozstaw rur wpływa na liczbę pętli i opory hydrauliczne w salonie?",
    "description": "Zmniejszenie rozstawu rur z 15 cm do 10 cm zwiększa zużycie materiału o 50% i opory liniowe. Zobacz porównanie parametrów ogrzewania dla VA 10, VA 15 i VA 20.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-06",
    "dateModified": "2026-08-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#dataset-rozstaw-rur",
    "name": "Porównanie Parametrów Technicznych Rozstawów Rur (VA)",
    "description": "Baza danych określająca wpływ zagęszczenia rur ogrzewania podłogowego na zużycie materiału, gęstość strumienia cieplnego, opory układu i temperaturę posadzki.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "rozstaw rur ogrzewania podłogowego przy pompie ciepła",
      "gęstość strumienia cieplnego podłogówka",
      "opór hydrauliczny pętli kpa",
      "temperatura podłogi norma en 1264",
      "zużycie rury na m2 ogrzewania podłogowego"
    ],
    "measurementTechnique": "Obliczenia wydajnościowe na bazie normy PN-EN 1264 z zachowaniem dopuszczalnych oporów liniowych (max 150 Pa/m).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "VA 10 cm: Zużycie rury 10 m/m2, moc 78-88 W/m2, temp. podłogi do 27.8°C.",
        "VA 15 cm: Zużycie rury 6.67 m/m2, moc 52-60 W/m2, temp. podłogi do 26.1°C.",
        "VA 20 cm: Zużycie rury 5.0 m/m2, moc 38-42 W/m2, temp. podłogi do 24.5°C."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#webapp-komparator-va",
    "name": "Interaktywny Komparator Rozstawu Rur Ogrzewania",
    "description": "Narzędzie internetowe pozwalające instalatorom i inwestorom symulować i porównywać techniczne wartości dla rozstawów 10 cm, 15 cm i 20 cm w salonach.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-spacing-container" id="rk-space-app">
    <div class="rk-space-header">
        <h2>Jak rozstaw rur wpływa na hydraulikę?</h2>
        <p>Zmniejszenie rozstawu z 15 cm do 10 cm wymusza zastosowanie większej liczby obwodów, aby nie przekroczyć dopuszczalnych oporów (150 Pa/m). Zagęszczenie do 10 cm to wymóg bezwzględny dla stref brzegowych, w których chcemy osiągnąć <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">normatywną moc</a> rzędu 85–90 W/m² (zgodnie z PN-EN 1264).</p>
    </div>

    <div class="rk-space-interactive">
        
        <div class="rk-space-toggles">
            <button class="rk-space-btn" data-va="10" id="btnVa10">
                VA 10 cm
                <span>Strefy brzegowe</span>
            </button>
            <button class="rk-space-btn active" data-va="15" id="btnVa15">
                VA 15 cm
                <span>Standard pompy</span>
            </button>
            <button class="rk-space-btn" data-va="20" id="btnVa20">
                VA 20 cm
                <span>Niezalecane</span>
            </button>
        </div>

        <div class="rk-space-dashboard">
            
            <!-- Główna Moc -->
            <div class="rk-data-card wide">
                <div class="rk-card-icon">
                    <svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                </div>
                <div class="rk-wide-content">
                    <div class="rk-card-label">Gęstość Strumienia (Dla Zasilania 35°C)</div>
                    <div class="rk-wide-value" id="valPower">52–60 W/m²</div>
                </div>
                <div style="text-align: right;" class="rk-wide-content">
                    <div class="rk-card-label">Temp. Posadzki</div>
                    <div class="rk-wide-value" style="color:var(--rk-space-blue);" id="valTempFloor">26,1°C</div>
                </div>
            </div>

            <!-- Karta 1 -->
            <div class="rk-data-card">
                <div class="rk-card-icon">
                    <svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="4" width="20" height="16" rx="2"></rect><path d="M12 4v16"></path><path d="M8 8h.01"></path><path d="M8 12h.01"></path><path d="M8 16h.01"></path></svg>
                </div>
                <div class="rk-card-value" id="valPipe">6,67 m</div>
                <div class="rk-card-label">Zużycie rury</div>
                <span class="rk-card-subtext">na 1 m² podłogi</span>
            </div>

            <!-- Karta 2 -->
            <div class="rk-data-card">
                <div class="rk-card-icon">
                    <svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path></svg>
                </div>
                <div class="rk-card-value" id="valMaxArea">12 m²</div>
                <div class="rk-card-label">Max z jednej pętli</div>
                <span class="rk-card-subtext">obwód poniżej 90m</span>
            </div>

            <!-- Karta 3 -->
            <div class="rk-data-card">
                <div class="rk-card-icon">
                    <svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                </div>
                <div class="rk-card-value" id="valLoopsCount">3</div>
                <div class="rk-card-label">Liczba Pętli</div>
                <span class="rk-card-subtext">dla salonu 30 m²</span>
            </div>

            <!-- Karta 4 -->
            <div class="rk-data-card">
                <div class="rk-card-icon">
                    <svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="m12 12 4-4"></path><path d="M12 12v4"></path></svg>
                </div>
                <div class="rk-card-value" id="valPress">11,8 kPa</div>
                <div class="rk-card-label">Opór Pętli</div>
                <span class="rk-card-subtext">średni spadek ciśnienia</span>
            </div>

            <!-- Karta 5 -->
            <div class="rk-data-card">
                <div class="rk-card-icon">
                    <svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                </div>
                <div class="rk-card-value" id="valFlow">1,5 l/min</div>
                <div class="rk-card-label">Wymagany przepływ</div>
                <span class="rk-card-subtext">dla schłodzenia o 5K</span>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Baza danych dla komparatora
    const configData = {
        '10': {
            power: '78–88 W/m²',
            temp: '27,8°C',
            pipe: '10,0 m',
            maxArea: '8 m²',
            loopsCount: '4',
            press: '14,2 kPa',
            flow: '1,8 l/min'
        },
        '15': {
            power: '52–60 W/m²',
            temp: '26,1°C',
            pipe: '6,67 m',
            maxArea: '12 m²',
            loopsCount: '3',
            press: '11,8 kPa',
            flow: '1,5 l/min'
        },
        '20': {
            power: '38–42 W/m²',
            temp: '24,5°C',
            pipe: '5,0 m',
            maxArea: '16 m²',
            loopsCount: '2',
            press: '8,5 kPa',
            flow: '1,2 l/min'
        }
    };

    const buttons = document.querySelectorAll('.rk-space-btn');
    
    // Obiekty DOM do nadpisania
    const valPower = document.getElementById('valPower');
    const valTempFloor = document.getElementById('valTempFloor');
    const valPipe = document.getElementById('valPipe');
    const valMaxArea = document.getElementById('valMaxArea');
    const valLoopsCount = document.getElementById('valLoopsCount');
    const valPress = document.getElementById('valPress');
    const valFlow = document.getElementById('valFlow');

    function renderData(vaValue) {
        const d = configData[vaValue];
        if (d) {
            valPower.innerText = d.power;
            valTempFloor.innerText = d.temp;
            valPipe.innerText = d.pipe;
            valMaxArea.innerText = d.maxArea;
            valLoopsCount.innerText = d.loopsCount;
            valPress.innerText = d.press;
            valFlow.innerText = d.flow;

            // Zmiana barw sygnalizacyjnych (bezpieczny warunek)
            if (vaValue === '10') {
                valTempFloor.style.color = 'var(--rk-space-red)';
                valPress.style.color = 'var(--rk-space-red)';
            } else if (vaValue === '20') {
                valTempFloor.style.color = 'var(--rk-space-orange)';
                valPress.style.color = 'var(--rk-space-orange)';
            } else {
                valTempFloor.style.color = 'var(--rk-space-blue)';
                valPress.style.color = 'var(--rk-space-dark)';
            }
        }
    }

    buttons.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Czyszczenie aktywnych klas
            buttons.forEach(function(b) {
                b.classList.remove('active');
            });
            
            // Aktywacja wciśniętego
            this.classList.add('active');
            
            // Pobranie atrybutu
            const va = this.getAttribute('data-va');
            renderData(va);
        });
    });

});
</script>



<style>
:root {
    --rk-therm-dark: #0f172a;
    --rk-therm-blue: #0284c7;
    --rk-therm-light-blue: #f0f9ff;
    --rk-therm-cold: #38bdf8;
    --rk-therm-warm: #ef4444;
    --rk-therm-comfort: #f59e0b;
    --rk-therm-bg: #ffffff;
    --rk-therm-border: #e2e8f0;
    --rk-therm-text: #475569;
    --rk-therm-gray: #f8fafc;
}

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

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

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

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

/* Interactive Simulator Area */
.rk-therm-interactive {
    padding: 40px;
    background: var(--rk-therm-gray);
    display: flex;
    flex-direction: column;
    gap: 30px;
}

/* Toggle Switches */
.rk-therm-toggles {
    display: flex;
    background: var(--rk-therm-bg);
    padding: 8px;
    border-radius: 16px;
    border: 1px solid var(--rk-therm-border);
    max-width: 600px;
    margin: 0 auto;
}

.rk-therm-btn {
    flex: 1;
    padding: 16px 20px;
    border: none;
    background: transparent;
    border-radius: 12px;
    cursor: pointer;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-therm-text);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.rk-therm-btn.active-cold {
    background: #eff6ff;
    color: var(--rk-therm-cold);
    box-shadow: 0 4px 10px rgba(56, 189, 248, 0.2);
}

.rk-therm-btn.active-warm {
    background: #fef2f2;
    color: var(--rk-therm-warm);
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.2);
}

/* Visualizer Map */
.rk-therm-map {
    background: var(--rk-therm-bg);
    border: 2px solid var(--rk-therm-border);
    border-radius: 20px;
    overflow: hidden;
    position: relative;
}

.rk-therm-window {
    background: #e0f2fe;
    padding: 15px;
    text-align: center;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-therm-blue);
    border-bottom: 4px solid #bae6fd;
}

/* Zone Render */
.rk-therm-zones {
    display: flex;
    flex-direction: column;
    height: 280px;
}

.rk-therm-edge {
    height: 40%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 30px;
    transition: background 0.5s ease;
    border-bottom: 2px dashed rgba(255,255,255,0.3);
}

.rk-therm-center {
    height: 60%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 30px;
    background: rgba(245, 158, 11, 0.1);
    color: #b45309;
}

/* Data Overlays inside Map */
.rk-zone-label {
    font-size: 16px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-zone-stats {
    text-align: right;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
}

.rk-zone-stats span {
    display: block;
    font-size: 22px;
    font-weight: 900;
}

/* State Classes for Visualization */
.state-standard .rk-therm-edge {
    background: rgba(56, 189, 248, 0.15);
    color: #0369a1;
}

.state-professional .rk-therm-edge {
    background: rgba(239, 68, 68, 0.15);
    color: #b91c1c;
}

/* Explanation Cards */
.rk-therm-explanations {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
    padding: 0 40px 40px 40px;
    background: var(--rk-therm-gray);
}

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

.rk-therm-card-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: var(--rk-therm-light-blue);
    color: var(--rk-therm-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
}

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

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

.rk-therm-card strong {
    color: var(--rk-therm-dark);
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-therm-header { padding: 30px 20px; }
    .rk-therm-header h2 { font-size: 24px; }
    .rk-therm-interactive { padding: 30px 20px; }
    .rk-therm-toggles { flex-direction: column; padding: 10px; }
    .rk-therm-edge, .rk-therm-center { flex-direction: column; justify-content: center; text-align: center; gap: 10px; padding: 20px; }
    .rk-zone-stats { text-align: center; }
    .rk-therm-explanations { grid-template-columns: 1fr; padding: 0 20px 30px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#article-strefa-brzegowa",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/"
    },
    "headline": "Dlaczego strefa brzegowa przy oknie tarasowym w salonie wymaga osobnej pętli ogrzewania?",
    "description": "Wyjaśnienie zjawiska ciągu zniżkowego przy dużych oknach HST. Dowiedz się, dlaczego zagęszczenie rur do 10 cm i użycie siłowników NC jest kluczowe dla komfortu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-06",
    "dateModified": "2026-08-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#dataset-strefa-brzegowa",
    "name": "Parametry Termiczne Stref Brzegowych w Ogrzewaniu Płaszczyznowym",
    "description": "Kompilacja danych z zakresu fizyki budowli określających gęstość strumienia cieplnego, wpływ okien HST na ucieczkę ciepła oraz rekomendowane temperatury podłogi.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "strefa brzegowa przy oknie tarasowym",
      "zagęszczenie rur podłogówki przy oknie hst",
      "osobna pętla ogrzewania podłogowego salon",
      "ciąg zniżkowy od zimnej szyby",
      "siłownik termoelektryczny na rozdzielaczu strefa"
    ],
    "measurementTechnique": "Symulacja rozkładu gęstości strumienia cieplnego i temperatur powierzchniowych (26°C - 31°C) w zależności od rozstawu rur (VA 10 cm vs VA 15 cm).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Strata ciepła na oknach HST wynosi 35-50 W na metr bieżący okna.",
        "Ciąg zniżkowy obniża odczuwalną temperaturę w strefie o 2-3°C.",
        "Osobna pętla przyokienna pozwala uzyskać moc do 90 W/m2 przy rozstawie rur co 10 cm.",
        "Niezależne sterowanie kurtyną wymaga zastosowania siłowników np. 230V NC na rozdzielaczu."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#webapp-strefa-brzegowa",
    "name": "Termowizyjny Symulator Stref",
    "description": "Narzędzie interaktywne symulujące rozkład temperatur na posadzce z zastosowaniem oraz bez zastosowania oddzielnej strefy brzegowej przy wielkogabarytowych oknach.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-thermal-container" id="rk-thermal-app">
    <div class="rk-therm-header">
        <h2>Dlaczego strefa brzegowa wymaga osobnej pętli?</h2>
        <p>Okna przesuwne HST o szerokości 4-6 metrów to potężny mostek termiczny generujący straty rzędu 35-50 W na metr bieżący. Zobacz na symulatorze, jak fizyka przepływu ciepła wymusza zagęszczenie rur.</p>
    </div>

    <div class="rk-therm-interactive">
        <div class="rk-therm-toggles">
            <button class="rk-therm-btn active-cold" id="btnStandard" data-mode="standard">
                Jeden obwód (Błąd)
            </button>
            <button class="rk-therm-btn" id="btnPro" data-mode="professional">
                Osobna Strefa Brzegowa
            </button>
        </div>

        <div class="rk-therm-map state-standard" id="thermalMap">
            <!-- Okno Tarasowe -->
            <div class="rk-therm-window">
                Szyba HST (Zimno z zewnątrz)
            </div>
            
            <!-- Posadzka -->
            <div class="rk-therm-zones">
                <div class="rk-therm-edge" id="zoneEdge">
                    <div class="rk-zone-label">Obszar przy Oknie (1.5m)</div>
                    <div class="rk-zone-stats">
                        <span id="statEdgeTemp">22°C</span>
                        <div id="statEdgeDesc">Rozstaw: 15 cm<br>Efekt: Ciąg zniżkowy</div>
                    </div>
                </div>
                
                <div class="rk-therm-center">
                    <div class="rk-zone-label">Centrum Salonu</div>
                    <div class="rk-zone-stats">
                        <span>26°C</span>
                        <div>Rozstaw: 15 cm<br>Komfort optymalny</div>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-therm-explanations">
        <div class="rk-therm-card">
            <div class="rk-therm-card-icon">
                <svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 4v10.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0Z"></path></svg>
            </div>
            <h3>Utrzymanie bilansu strat ciepła</h3>
            <p>Chłodne powietrze opadające z powierzchni szyby tworzy przy podłodze strefę mikroklimatyczną o temperaturze niższej o 2-3°C. Zagęszczony obwód brzegowy (rozstaw 10 cm, zasilanie skierowane pod okno) tworzy <strong>nieprzeniknioną kurtynę cieplną</strong> o potężnej mocy do 90 W/m².</p>
        </div>

        <div class="rk-therm-card">
            <div class="rk-therm-card-icon">
                <svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
            </div>
            <h3>Niezależne sterowanie (Automatyka)</h3>
            <p>Wiosną lub jesienią słońce może nagrzać środek salonu, ale podłoga przy drzwiach tarasowych pozostanie lodowata. Odrębna pętla wyposażona w <strong>siłownik termoelektryczny 230V NC</strong> na rozdzielaczu pozwala dogrzać samą strefę okienną, bez marnowania energii na resztę domu.</p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btnStandard = document.getElementById('btnStandard');
    const btnPro = document.getElementById('btnPro');
    const thermalMap = document.getElementById('thermalMap');
    
    // Dynamic text elements
    const statEdgeTemp = document.getElementById('statEdgeTemp');
    const statEdgeDesc = document.getElementById('statEdgeDesc');

    if (btnStandard) {
        btnStandard.addEventListener('click', function() {
            // Update buttons
            if (btnPro) {
                btnPro.classList.remove('active-warm');
            }
            this.classList.add('active-cold');
            
            // Update Map Class
            if (thermalMap) {
                thermalMap.className = 'rk-therm-map state-standard';
            }
            
            // Update Text
            if (statEdgeTemp && statEdgeDesc) {
                statEdgeTemp.innerText = '22°C';
                statEdgeDesc.innerHTML = 'Rozstaw: 15 cm<br>Efekt: Ciąg zniżkowy (Zimno)';
            }
        });
    }

    if (btnPro) {
        btnPro.addEventListener('click', function() {
            // Update buttons
            if (btnStandard) {
                btnStandard.classList.remove('active-cold');
            }
            this.classList.add('active-warm');
            
            // Update Map Class
            if (thermalMap) {
                thermalMap.className = 'rk-therm-map state-professional';
            }
            
            // Update Text
            if (statEdgeTemp && statEdgeDesc) {
                statEdgeTemp.innerText = '31°C';
                statEdgeDesc.innerHTML = 'Rozstaw: 10 cm<br>Pętla 1: Kurtyna Cieplna';
            }
        });
    }
});
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-blue: #0284c7;
    --rk-calc-light-blue: #f0f9ff;
    --rk-calc-green: #10b981;
    --rk-calc-green-light: #dcfce7;
    --rk-calc-bg: #ffffff;
    --rk-calc-border: #e2e8f0;
    --rk-calc-text: #475569;
    --rk-calc-gray: #f8fafc;
}

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

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

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

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

/* Control Panel (Sliders) */
.rk-alg-controls {
    padding: 35px 40px;
    background: var(--rk-calc-bg);
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-alg-control-group {
    background: var(--rk-calc-gray);
    padding: 20px 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-calc-border);
}

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

.rk-alg-label {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-calc-dark);
}

.rk-alg-value-display {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-calc-blue);
    background: var(--rk-calc-light-blue);
    padding: 5px 15px;
    border-radius: 8px;
}

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

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

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

/* QUICK DASHBOARD (Nowa sekcja wyników) */
.rk-quick-dashboard {
    background: var(--rk-calc-dark);
    padding: 30px 40px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    border-bottom: 4px solid var(--rk-calc-blue);
}

.rk-qd-card {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 16px;
    padding: 20px;
    text-align: center;
}

.rk-qd-icon {
    color: #38bdf8;
    margin-bottom: 10px;
}

.rk-qd-value {
    font-size: 28px;
    font-weight: 900;
    color: #ffffff;
    margin-bottom: 5px;
}

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

/* Results Section - Vertical Stack */
.rk-alg-results {
    padding: 40px;
    background: var(--rk-calc-gray);
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-alg-step-card {
    background: #ffffff;
    border-radius: 16px;
    padding: 30px;
    border: 1px solid var(--rk-calc-border);
    position: relative;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    transition: transform 0.3s ease;
}

.rk-alg-step-card:hover {
    transform: translateY(-3px);
    border-color: #bae6fd;
}

.rk-alg-step-number {
    position: absolute;
    top: -15px;
    left: 30px;
    background: var(--rk-calc-blue);
    color: #ffffff;
    font-size: 14px;
    font-weight: 800;
    padding: 6px 16px;
    border-radius: 999px;
    text-transform: uppercase;
    letter-spacing: 1px;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.3);
}

.rk-alg-step-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 15px;
    margin-top: 5px;
}

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

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

.rk-alg-step-content {
    font-size: 15px;
    color: var(--rk-calc-text);
    line-height: 1.6;
}

.rk-alg-math-box {
    background: var(--rk-calc-gray);
    padding: 15px 20px;
    border-radius: 12px;
    margin-top: 15px;
    font-family: monospace;
    font-size: 14px;
    color: var(--rk-calc-dark);
    border: 1px dashed #cbd5e1;
}

.rk-highlight-result {
    font-weight: 900;
    color: var(--rk-calc-green);
    font-size: 16px;
}

.rk-alg-step-content a {
    color: var(--rk-calc-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid #bae6fd;
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-alg-header { padding: 30px 20px; }
    .rk-alg-header h2 { font-size: 24px; }
    .rk-alg-controls { padding: 25px 20px; gap: 15px; }
    .rk-alg-control-group { padding: 15px; }
    .rk-quick-dashboard { grid-template-columns: 1fr; padding: 25px 20px; gap: 15px; }
    .rk-alg-results { padding: 30px 20px; }
    .rk-alg-step-card { padding: 25px 20px; margin-bottom: 10px; }
    .rk-alg-step-number { left: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#article-algorytm",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/"
    },
    "headline": "Jak obliczyć liczbę i długość pętli w salonie? Algorytm projektowy krok po kroku",
    "description": "Zrozum hydraulikę swojego salonu. Kaskadowy algorytm wyliczający zapotrzebowanie cieplne, długość rur, podział na pętle oraz spadki ciśnienia (kPa).",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-06",
    "dateModified": "2026-08-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#dataset-algorytm-hydrauliczny",
    "name": "Kalkulacje Hydrauliczne Pętli Ogrzewania Podłogowego wg PN-EN 1264",
    "description": "Dynamiczny zbiór danych demonstrujący ciąg obliczeniowy: od powierzchni czynnej, przez całkowitą długość orurowania, po przepływy masowe i opory w kPa na zaworach.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator długości pętli podłogówki",
      "obliczenia oporów hydraulicznych ogrzewania",
      "wzór na spadek ciśnienia w rurach pex",
      "ile metrów rury na m2 salonu",
      "algorytm projektowania ogrzewania podłogowego"
    ],
    "measurementTechnique": "Przeliczanie zapotrzebowania (W) na przepływ czynnika (l/min) przy schłodzeniu 5K, a następnie szacowanie oporów liniowych dla rury 16x2.0 mm.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Krok 1: Weryfikacja obciążenia cieplnego (OZC) w Watach.",
        "Krok 2: Odrzucenie 10-15% powierzchni na stałą zabudowę meblową.",
        "Krok 3: Wyliczenie mb rury (strefy brzegowe co 10cm, środek co 15cm).",
        "Krok 4: Ustalenie liczby obwodów (pilnując granicy 90-100m na pętlę).",
        "Krok 5: Obliczenie przepływu krytycznego i oporu (optymalnie 10-15 kPa)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#webapp-kalkulator-algorytm",
    "name": "Interaktywny Kalkulator Algorytmu Pętli",
    "description": "Aplikacja webowa z panelem kontrolnym przetwarzająca parametry salonu na natychmiastowy wynik oraz pięciostopniowy scenariusz projektowy zgodny z normami.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-algorithm-container" id="rk-algo-app">
    <div class="rk-alg-header">
        <h2>Jak obliczyć pętle w salonie? Algorytm na żywo</h2>
        <p>Projektowanie to matematyka, nie zgadywanie. Ustaw parametry swojego salonu na suwakach, sprawdź natychmiastowy wynik na głównym ekranie, a następnie prześledź krok po kroku inżynieryjne wyliczenia układu.</p>
    </div>

    <!-- Sekcja Suwaków -->
    <div class="rk-alg-controls">
        <div class="rk-alg-control-group">
            <div class="rk-alg-label-row">
                <span class="rk-alg-label">Powierzchnia całkowita salonu</span>
                <span class="rk-alg-value-display" id="valAreaOut">35 m²</span>
            </div>
            <input type="range" min="15" max="60" value="35" step="1" class="rk-alg-slider" id="inpArea">
        </div>

        <div class="rk-alg-control-group">
            <div class="rk-alg-label-row">
                <span class="rk-alg-label"><a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" style="color:inherit; text-decoration:underline;">Zapotrzebowanie (OZC)</a></span>
                <span class="rk-alg-value-display" id="valDemandOut">40 W/m²</span>
            </div>
            <input type="range" min="30" max="80" value="40" step="5" class="rk-alg-slider" id="inpDemand">
        </div>

        <div class="rk-alg-control-group">
            <div class="rk-alg-label-row">
                <span class="rk-alg-label">Odległość do rozdzielacza (Dobieg)</span>
                <span class="rk-alg-value-display" id="valDistOut">7 m</span>
            </div>
            <input type="range" min="2" max="15" value="7" step="1" class="rk-alg-slider" id="inpDist">
        </div>
    </div>

    <!-- Szybki Ekran Wyników (Główny Dashboard) -->
    <div class="rk-quick-dashboard">
        <div class="rk-qd-card">
            <div class="rk-qd-icon">
                <svg width="28" height="28" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
            </div>
            <div class="rk-qd-value" id="qdTotalPipe">261</div>
            <div class="rk-qd-label">Metrów Rury</div>
        </div>
        <div class="rk-qd-card">
            <div class="rk-qd-icon">
                <svg width="28" height="28" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path></svg>
            </div>
            <div class="rk-qd-value" id="qdTotalLoops">3</div>
            <div class="rk-qd-label">Liczba Pętli</div>
        </div>
        <div class="rk-qd-card">
            <div class="rk-qd-icon">
                <svg width="28" height="28" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="m12 12 4-4"></path><path d="M12 12v4"></path></svg>
            </div>
            <div class="rk-qd-value" id="qdPressure">11.6</div>
            <div class="rk-qd-label">Opór (kPa)</div>
        </div>
    </div>

    <!-- Szczegółowe Kroki Obliczeniowe -->
    <div class="rk-alg-results">
        
        <!-- KROK 1 -->
        <div class="rk-alg-step-card">
            <div class="rk-alg-step-number">Krok 1</div>
            <div class="rk-alg-step-header">
                <div class="rk-alg-step-icon">
                    <svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                </div>
                <h3>Zapotrzebowanie na Ciepło (Q)</h3>
            </div>
            <div class="rk-alg-step-content">
                Mnożymy całkowitą powierzchnię przez szacowany wskaźnik OZC z projektu. Określa to absolutne minimum mocy grzewczej, jaką musi dostarczyć posadzka w najzimniejsze dni.
                <div class="rk-alg-math-box">
                    Q = <span id="calcArea1">35</span> m² x <span id="calcDemand1">40</span> W/m² = <span class="rk-highlight-result" id="resHeat">1400 W</span>
                </div>
            </div>
        </div>

        <!-- KROK 2 -->
        <div class="rk-alg-step-card">
            <div class="rk-alg-step-number">Krok 2</div>
            <div class="rk-alg-step-header">
                <div class="rk-alg-step-icon">
                    <svg width="24" height="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><path d="M3 9h18"></path><path d="M9 21V9"></path></svg>
                </div>
                <h3>Powierzchnia Czynna Grzewczo</h3>
            </div>
            <div class="rk-alg-step-content">
                Zgodnie z inżynierską praktyką, odrzucamy ok. 15% metrażu na stałą zabudowę (kanapy bez nóżek, kominek, ewentualna wyspa). Rur nie układamy pod meblami.
                <div class="rk-alg-math-box">
                    A (czynna) = <span id="calcArea2">35</span> m² - 15% zabudowy = <span class="rk-highlight-result" id="resActiveArea">29.8 m²</span>
                </div>
            </div>
        </div>

        <!-- KROK 3 -->
        <div class="rk-alg-step-card">
            <div class="rk-alg-step-number">Krok 3</div>
            <div class="rk-alg-step-header">
                <div class="rk-alg-step-icon">
                    <svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                </div>
                <h3>Wyznaczenie Orurowania</h3>
            </div>
            <div class="rk-alg-step-content">
                Dla bezpieczeństwa zakładamy strefę brzegową pod oknami (20% powierzchni, <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstaw rur 10 cm</a>) oraz strefę główną (80% powierzchni, rozstaw 15 cm). Obliczamy tzw. rurę bazową w pokoju.
                <div class="rk-alg-math-box">
                    Strefa 10 cm: <span id="calcEdgeArea">6.0</span> m² x 10 mb = <span id="calcEdgePipe">60</span> m<br>
                    Strefa 15 cm: <span id="calcCentArea">23.8</span> m² x 6.67 mb = <span id="calcCentPipe">159</span> m<br>
                    Suma orurowania w posadzce: <span class="rk-highlight-result" id="resBasePipe">219 m</span>
                </div>
            </div>
        </div>

        <!-- KROK 4 -->
        <div class="rk-alg-step-card">
            <div class="rk-alg-step-number">Krok 4</div>
            <div class="rk-alg-step-header">
                <div class="rk-alg-step-icon">
                    <svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>
                </div>
                <h3>Podział na Pętle i Przyłącza</h3>
            </div>
            <div class="rk-alg-step-content">
                Musimy podzielić rurę tak, by z przyłączem (w obie strony) <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">żadna pętla nie przekroczyła 100 m</a>.
                <div class="rk-alg-math-box">
                    Rura + Dobiegi (<span id="calcLoops">3</span> x <span id="calcDistX2">14</span> m) = <span id="resTotalPipe">261</span> m całkowicie<br>
                    Wymagana liczba obwodów: <span class="rk-highlight-result" id="resFinalLoops">3 pętle</span><br>
                    Średnia długość 1 pętli: <span class="rk-highlight-result" id="resAvgLoop">87 m</span>
                </div>
            </div>
        </div>

        <!-- KROK 5 -->
        <div class="rk-alg-step-card">
            <div class="rk-alg-step-number">Krok 5</div>
            <div class="rk-alg-step-header">
                <div class="rk-alg-step-icon">
                    <svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="m12 12 4-4"></path><path d="M12 12v4"></path></svg>
                </div>
                <h3>Opór Hydrauliczny (kPa) i Przepływ</h3>
            </div>
            <div class="rk-alg-step-content">
                Sprawdzamy, czy zaprojektowana pętla nie zablokuje pompy ciepła. Obliczamy masowy przepływ dla schłodzenia 5K i szacunkowy opór liniowy rury PEX 16x2.
                <div class="rk-alg-math-box">
                    Przepływ całego salonu: <span id="resTotalFlow">4.01</span> l/min<br>
                    Przepływ na rotametrze (1 pętla): <span id="resLoopFlow" class="rk-highlight-result" style="color:var(--rk-calc-blue);">1.34 l/min</span><br>
                    Szacunkowy spadek ciśnienia: <span id="resPressure" class="rk-highlight-result">11.6 kPa</span>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Inputs
    const inpArea = document.getElementById('inpArea');
    const inpDemand = document.getElementById('inpDemand');
    const inpDist = document.getElementById('inpDist');

    // Display values
    const valAreaOut = document.getElementById('valAreaOut');
    const valDemandOut = document.getElementById('valDemandOut');
    const valDistOut = document.getElementById('valDistOut');

    // Quick Dashboard Outputs
    const qdTotalPipe = document.getElementById('qdTotalPipe');
    const qdTotalLoops = document.getElementById('qdTotalLoops');
    const qdPressure = document.getElementById('qdPressure');

    // Outputs Krok 1
    const calcArea1 = document.getElementById('calcArea1');
    const calcDemand1 = document.getElementById('calcDemand1');
    const resHeat = document.getElementById('resHeat');

    // Outputs Krok 2
    const calcArea2 = document.getElementById('calcArea2');
    const resActiveArea = document.getElementById('resActiveArea');

    // Outputs Krok 3
    const calcEdgeArea = document.getElementById('calcEdgeArea');
    const calcEdgePipe = document.getElementById('calcEdgePipe');
    const calcCentArea = document.getElementById('calcCentArea');
    const calcCentPipe = document.getElementById('calcCentPipe');
    const resBasePipe = document.getElementById('resBasePipe');

    // Outputs Krok 4
    const calcLoops = document.getElementById('calcLoops');
    const calcDistX2 = document.getElementById('calcDistX2');
    const resTotalPipe = document.getElementById('resTotalPipe');
    const resFinalLoops = document.getElementById('resFinalLoops');
    const resAvgLoop = document.getElementById('resAvgLoop');

    // Outputs Krok 5
    const resTotalFlow = document.getElementById('resTotalFlow');
    const resLoopFlow = document.getElementById('resLoopFlow');
    const resPressure = document.getElementById('resPressure');

    function updateAlgorithm() {
        const area = parseFloat(inpArea.value);
        const demand = parseFloat(inpDemand.value);
        const distance = parseFloat(inpDist.value);

        // Update UI Labels
        valAreaOut.innerText = area + ' m²';
        valDemandOut.innerText = demand + ' W/m²';
        valDistOut.innerText = distance + ' m';

        // Krok 1: Ciepło
        const totalHeat = area * demand;
        calcArea1.innerText = area;
        calcDemand1.innerText = demand;
        resHeat.innerText = totalHeat + ' W';

        // Krok 2: Aktywna Powierzchnia
        const activeArea = area * 0.85; // 15% odrzut
        calcArea2.innerText = area;
        resActiveArea.innerText = activeArea.toFixed(1) + ' m²';

        // Krok 3: Rury
        const edgeArea = activeArea * 0.20; // 20% brzegowa
        const centArea = activeArea * 0.80; // 80% srodek
        
        const edgePipe = edgeArea * 10; // co 10cm = 10 mb/m2
        const centPipe = centArea * 6.67; // co 15cm = 6.67 mb/m2
        const basePipeTotal = edgePipe + centPipe;

        calcEdgeArea.innerText = edgeArea.toFixed(1);
        calcEdgePipe.innerText = Math.round(edgePipe);
        calcCentArea.innerText = centArea.toFixed(1);
        calcCentPipe.innerText = Math.round(centPipe);
        resBasePipe.innerText = Math.round(basePipeTotal) + ' m';

        // Krok 4: Pętle (Zabezpieczenie petli + dobiegow zeby nie przekroczyc max 95m sredniej)
        let loopCount = Math.ceil(basePipeTotal / 75); 
        let connectionPipe = loopCount * (distance * 2);
        let totalPipeAbs = basePipeTotal + connectionPipe;
        let averageLoop = totalPipeAbs / loopCount;

        // Proste wymuszenie jesli wychodzi srednio powyzej 98m
        if (averageLoop > 98) {
            loopCount = loopCount + 1;
            connectionPipe = loopCount * (distance * 2);
            totalPipeAbs = basePipeTotal + connectionPipe;
            averageLoop = totalPipeAbs / loopCount;
        }

        calcLoops.innerText = loopCount;
        calcDistX2.innerText = (distance * 2);
        resTotalPipe.innerText = Math.round(totalPipeAbs);
        resFinalLoops.innerText = loopCount + (loopCount === 1 ? ' pętla' : (loopCount > 4 ? ' pętli' : ' pętle'));
        
        // Zmiana koloru w zaleznosci od dlugosci
        resAvgLoop.innerText = Math.round(averageLoop) + ' m';
        if (averageLoop > 100) {
            resAvgLoop.style.color = 'var(--rk-calc-red)';
        } else {
            resAvgLoop.style.color = 'var(--rk-calc-green)';
        }

        // Krok 5: Hydraulika
        // Przeplyw m = Q / (cp * dT). cp = 4190 J/kgK, dT = 5K -> 20950
        const totalFlowKgS = totalHeat / 20950;
        const totalFlowLMin = totalFlowKgS * 60; // w przyblizeniu 1kg = 1L
        const loopFlowLMin = totalFlowLMin / loopCount;

        resTotalFlow.innerText = totalFlowLMin.toFixed(2);
        resLoopFlow.innerText = loopFlowLMin.toFixed(2) + ' l/min';

        // Orientacyjny opór (zakladamy PEX 16x2.0, przeplyw wplywa na liniowy). 
        // Wzor orientacyjny dla przeplywow 1-2 l/min w PEX16: ok. 110 Pa/m. Do tego zjawiska miejscowe ok 2000 Pa.
        // Pa na kPa to / 1000
        const paPerMeter = 110; 
        const pressureDropPa = (averageLoop * paPerMeter) + 2000;
        const pressureDropKpa = pressureDropPa / 1000;

        resPressure.innerText = pressureDropKpa.toFixed(1) + ' kPa';
        if (pressureDropKpa > 20) {
            resPressure.style.color = '#ef4444'; // Red
            qdPressure.style.color = '#ef4444'; 
        } else {
            resPressure.style.color = 'var(--rk-calc-green)';
            qdPressure.style.color = '#ffffff'; 
        }

        // Update Quick Dashboard
        qdTotalPipe.innerText = Math.round(totalPipeAbs);
        qdTotalLoops.innerText = loopCount;
        qdPressure.innerText = pressureDropKpa.toFixed(1);
    }

    // Event listeners
    inpArea.addEventListener('input', updateAlgorithm);
    inpDemand.addEventListener('input', updateAlgorithm);
    inpDist.addEventListener('input', updateAlgorithm);

    // Initial run
    updateAlgorithm();
});
</script>



<style>
:root {
    --rk-ext-dark: #0f172a;
    --rk-ext-red: #ef4444;
    --rk-ext-blue: #0284c7;
    --rk-ext-light-blue: #e0f2fe;
    --rk-ext-gray-bg: #f8fafc;
    --rk-ext-border: #e2e8f0;
    --rk-ext-text: #475569;
}

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

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

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

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

/* Switcher UI */
.rk-ext-switcher-area {
    padding: 30px 40px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-ext-border);
}

.rk-ext-switch-group {
    display: flex;
    gap: 15px;
    background: var(--rk-ext-gray-bg);
    padding: 10px;
    border-radius: 20px;
    border: 1px solid var(--rk-ext-border);
}

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

.rk-ext-btn:hover {
    background: #ffffff;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

/* Active States for Buttons */
.rk-ext-btn.active[data-target="long"] {
    background: #fef2f2;
    border-color: var(--rk-ext-red);
    color: var(--rk-ext-red);
    box-shadow: 0 10px 20px -5px rgba(239, 68, 68, 0.15);
}

.rk-ext-btn.active[data-target="short"] {
    background: #fffbeb;
    border-color: #f59e0b;
    color: #b45309;
    box-shadow: 0 10px 20px -5px rgba(245, 158, 11, 0.15);
}

.rk-ext-btn-icon {
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Content Area */
.rk-ext-content-area {
    padding: 40px;
    background: var(--rk-ext-gray-bg);
    min-height: 350px;
}

.rk-ext-panel {
    display: none;
    animation: fadeSlideUp 0.4s ease forwards;
}

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

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

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

/* Impact Cards Grid */
.rk-impact-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.rk-impact-card {
    background: #ffffff;
    border-radius: 16px;
    padding: 25px 20px;
    border: 1px solid var(--rk-ext-border);
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    text-align: center;
    transition: transform 0.3s ease;
}

.rk-impact-card:hover {
    transform: translateY(-5px);
}

.rk-impact-icon {
    width: 54px;
    height: 54px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 20px auto;
}

.icon-red { background: #fef2f2; color: var(--rk-ext-red); }
.icon-blue { background: #e0f2fe; color: var(--rk-ext-blue); }
.icon-orange { background: #fffbeb; color: #f59e0b; }

.rk-impact-card h4 {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-ext-dark);
    margin: 0 0 12px 0;
    line-height: 1.3;
}

.rk-impact-card p {
    font-size: 14px;
    color: var(--rk-ext-text);
    margin: 0;
    line-height: 1.6;
}

.rk-highlight {
    font-weight: 700;
    color: var(--rk-ext-dark);
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-ext-header { padding: 30px 20px; }
    .rk-ext-header h2 { font-size: 24px; }
    .rk-ext-switcher-area { padding: 20px; }
    .rk-ext-switch-group { flex-direction: column; }
    .rk-ext-content-area { padding: 30px 20px; }
    .rk-impact-grid { grid-template-columns: 1fr; gap: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#article-konsekwencje",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/"
    },
    "headline": "Jakie są konsekwencje błędnego podzielenia salonu na zbyt małą lub zbyt dużą liczbę pętli?",
    "description": "Szczegółowa analiza zaburzeń hydraulicznych: od spadku COP i zimnych podłóg przy zbyt długich pętlach, po hałas zaworów i kradzież przepływu przy pętlach za krótkich.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-06",
    "dateModified": "2026-08-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#dataset-skrajnosci-hydrauliczne",
    "name": "Parametry Skutków Skrajnych Długości Pętli Ogrzewania",
    "description": "Dane pomiarowe błędów instalacyjnych: wzrost oporów >35 kPa, spadek COP o 2.5% na każdy stopień przegrzewu, hałas przy dławieniu 0.5 l/min.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zbyt długa pętla ogrzewania podłogowego ponad 120m",
      "thermal shadowing zimna podłoga na powrocie",
      "spadek cop pompy ciepła przez opory hydrauliczne",
      "hałas na rotametrach rozdzielacza podłogówki",
      "za krótkie pętle podłogówki poniżej 30m"
    ],
    "measurementTechnique": "Określanie progów krytycznych oporów w kPa oraz pomiar wydajności pomp obiegowych (np. Wilo Para 25/6) przy spadku przepływów poniżej 0.6 l/min.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Pętla >120m: Wzrost oporów do ponad 35 kPa, dławienie pompy poniżej 0.6 l/min.",
        "Thermal Shadowing: Czynnik schładza się do 21°C na pierwszych 60 metrach pętli.",
        "Spadek COP: Podniesienie zasilania na 42°C zmniejsza efektywność o 2.5% na każdy 1°C.",
        "Pętla <30m: Opory poniżej 3 kPa, kradzież przepływu z innych pętli.",
        "Akustyka: Gwizd rotametrów przy stławieniu wymuszonym zjawiskiem szortowania (0.5 l/min)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#webapp-symulator-skrajnosci",
    "name": "Symulator Skrajności Hydraulicznych",
    "description": "Aplikacja internetowa pozwalająca na interaktywne porównanie skutków i parametrów błędnych decyzji projektowych – pętli przewymiarowanych oraz niedowymiarowanych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-extremes-container" id="rk-extremes-app">
    <div class="rk-ext-header">
        <h2>Jakie są konsekwencje błędnego podziału salonu?</h2>
        <p>Niewłaściwe rozplanowanie wężownic grzewczych wywołuje zaburzenia dynamiczne układu. Prowadzi to do obniżenia sprawności pomp ciepła (SCOP) lub destrukcji posadzki. Wybierz błąd poniżej, aby poznać jego skutki.</p>
    </div>

    <div class="rk-ext-switcher-area">
        <div class="rk-ext-switch-group">
            <button class="rk-ext-btn active" data-target="long" id="btnLong">
                <div class="rk-ext-btn-icon">
                    <svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="m17 5-5-3-5 3"></path><path d="m17 19-5 3-5-3"></path></svg>
                </div>
                Zbyt długa pętla (> 120m)
            </button>
            <button class="rk-ext-btn" data-target="short" id="btnShort">
                <div class="rk-ext-btn-icon">
                    <svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>
                </div>
                Zbyt krótka pętla (< 30m)
            </button>
        </div>
    </div>

    <div class="rk-ext-content-area">
        
        <!-- Panel 1: Zbyt Długa Pętla -->
        <div class="rk-ext-panel active" id="panelLong">
            <h3 class="rk-ext-panel-title">Skutki małej liczby przewymiarowanych pętli</h3>
            
            <div class="rk-impact-grid">
                <div class="rk-impact-card">
                    <div class="rk-impact-icon icon-red">
                        <svg width="28" height="28" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="m15 9-6 6"></path><path d="M9 9h.01"></path><path d="M15 15h.01"></path></svg>
                    </div>
                    <h4>Blokada Pompy</h4>
                    <p>Opór obwodu przekracza <span class="rk-highlight">35 kPa</span>. Pompa obiegowa nie jest w stanie utrzymać przepływu, który drastycznie spada poniżej granicy 0,6 l/min.</p>
                </div>
                
                <div class="rk-impact-card">
                    <div class="rk-impact-icon icon-blue">
                        <svg width="28" height="28" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 4v10.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0Z"></path></svg>
                    </div>
                    <h4>Zimne Strefy</h4>
                    <p>Woda oddaje energię na pierwszych 60 metrach. Powrót schładza się do ok. <span class="rk-highlight">21°C</span>, tworząc odczuwalny efekt "pasiastej podłogi" (Thermal Shadowing).</p>
                </div>

                <div class="rk-impact-card">
                    <div class="rk-impact-icon icon-orange">
                        <svg width="28" height="28" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                    </div>
                    <h4>Spadek COP</h4>
                    <p>Próba dogrzania salonu zmusza do podniesienia krzywej grzewczej z 35°C na <span class="rk-highlight">42°C</span>. Oznacza to stratę COP i rachunki wyższe o 15-20%.</p>
                </div>
            </div>
        </div>

        <!-- Panel 2: Zbyt Krótka Pętla -->
        <div class="rk-ext-panel" id="panelShort">
            <h3 class="rk-ext-panel-title">Skutki mnożenia krótkich, niepotrzebnych pętli</h3>
            
            <div class="rk-impact-grid">
                <div class="rk-impact-card">
                    <div class="rk-impact-icon icon-red">
                        <svg width="28" height="28" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m18 15-6-6-6 6"></path></svg>
                    </div>
                    <h4>Kradzież Przepływu</h4>
                    <p>Minimalny opór obwodu (poniżej <span class="rk-highlight">3 kPa</span>) powoduje tzw. "szortowanie". Woda płynie głównie tutaj, omijając pętle w oddalonych sypialniach i łazienkach.</p>
                </div>
                
                <div class="rk-impact-card">
                    <div class="rk-impact-icon icon-orange">
                        <svg width="28" height="28" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M11 5L6 9H2v6h4l5 4V5z"></path><path d="M15.54 8.46a5 5 0 0 1 0 7.07"></path><path d="M19.07 4.93a10 10 0 0 1 0 14.14"></path></svg>
                    </div>
                    <h4>Hałas Hydrauliczny</h4>
                    <p>Konieczność stławienia przepływu na rotametrach do poziomu <span class="rk-highlight">0,5 l/min</span> wywołuje bardzo wysoką prędkość na grzybku, generując stały szum i gwizd.</p>
                </div>

                <div class="rk-impact-card">
                    <div class="rk-impact-icon icon-blue">
                        <svg width="28" height="28" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="4" width="20" height="16" rx="2"></rect><path d="M12 4v16"></path><path d="M8 8h.01"></path><path d="M8 12h.01"></path><path d="M8 16h.01"></path></svg>
                    </div>
                    <h4>Straty Finansowe</h4>
                    <p>Niepotrzebne rozbijanie pomieszczenia wymusza zakup rozdzielacza 12-sekcyjnego zamiast 8-sekcyjnego, zwiększając koszt osprzętu o <span class="rk-highlight">ponad 1000 PLN</span>.</p>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btnLong = document.getElementById('btnLong');
    const btnShort = document.getElementById('btnShort');
    const panelLong = document.getElementById('panelLong');
    const panelShort = document.getElementById('panelShort');

    function switchPanel(target) {
        if (target === 'long') {
            btnShort.classList.remove('active');
            btnLong.classList.add('active');
            
            panelShort.classList.remove('active');
            panelLong.classList.add('active');
        } else if (target === 'short') {
            btnLong.classList.remove('active');
            btnShort.classList.add('active');
            
            panelLong.classList.remove('active');
            panelShort.classList.add('active');
        }
    }

    if (btnLong) {
        btnLong.addEventListener('click', function() {
            switchPanel('long');
        });
    }

    if (btnShort) {
        btnShort.addEventListener('click', function() {
            switchPanel('short');
        });
    }
});
</script>



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

.rk-error-scanner-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(239, 68, 68, 0.15);
    border: 1px solid var(--rk-err-border);
    overflow: hidden;
}

/* Header */
.rk-err-header {
    background: linear-gradient(135deg, var(--rk-err-dark) 0%, #1e293b 100%);
    padding: 45px 40px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-err-red);
}

.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 p {
    font-size: 16px;
    color: #cbd5e1;
    margin: 0;
    max-width: 750px;
    line-height: 1.6;
}

.rk-err-badge {
    position: absolute;
    top: 30px;
    right: 40px;
    background: rgba(239, 68, 68, 0.2);
    color: #fca5a5;
    padding: 8px 16px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    border: 1px solid rgba(239, 68, 68, 0.3);
}

/* Diagnostic Grid */
.rk-err-grid-area {
    padding: 40px;
    background: var(--rk-err-gray);
}

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

/* Error Card - New Design with Teaser */
.rk-err-card {
    background: var(--rk-err-bg);
    border: 2px solid var(--rk-err-border);
    border-radius: 16px;
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    display: flex;
    flex-direction: column;
}

.rk-err-card:hover {
    border-color: #fca5a5;
    transform: translateY(-4px);
    box-shadow: 0 12px 24px -10px rgba(239, 68, 68, 0.15);
}

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

.rk-err-card-visible {
    padding: 25px 25px 15px 25px;
    position: relative;
    z-index: 2;
    flex-grow: 1;
}

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

.rk-err-icon {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: var(--rk-err-red-light);
    color: var(--rk-err-red);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.3s ease;
}

.rk-err-card.active .rk-err-icon {
    background: var(--rk-err-red);
    color: #ffffff;
}

.rk-err-title {
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-err-dark);
    margin: 0;
    line-height: 1.3;
}

.rk-err-teaser {
    font-size: 14px;
    color: var(--rk-err-text);
    line-height: 1.6;
    margin: 0;
}

/* Toggle Button / Prompt */
.rk-err-toggle-area {
    padding: 0 25px 20px 25px;
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--rk-err-blue);
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: color 0.3s ease;
}

.rk-err-card.active .rk-err-toggle-area {
    color: var(--rk-err-red);
}

.rk-err-toggle-icon {
    width: 18px;
    height: 18px;
    transition: transform 0.4s ease;
}

.rk-err-card.active .rk-err-toggle-icon {
    transform: rotate(180deg);
}

/* Error Details (Consequences - Hidden by default) */
.rk-err-details-wrapper {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    background: var(--rk-err-red-light);
}

.rk-err-card.active .rk-err-details-wrapper {
    grid-template-rows: 1fr;
}

.rk-err-details-inner {
    overflow: hidden;
}

.rk-err-details-content {
    padding: 0 25px 25px 25px;
    font-size: 15px;
    line-height: 1.6;
    color: #991b1b;
}

.rk-err-details-content strong {
    color: #7f1d1d;
    display: block;
    margin-bottom: 5px;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-err-details-content a {
    color: #991b1b;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-err-header { padding: 30px 25px; }
    .rk-err-header h2 { font-size: 24px; }
    .rk-err-badge { position: static; display: inline-block; margin-bottom: 15px; }
    .rk-err-grid-area { padding: 25px; }
    .rk-err-grid { grid-template-columns: 1fr; gap: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/"
    },
    "headline": "Najczęstsze błędy wykonawcze przy układaniu pętli podłogówki w salonie",
    "description": "Zestawienie najgroźniejszych pomyłek instalatorów w salonie: brak dylatacji, złe tranzyty, różnice w długościach pętli i grzanie pod zabudową stałą.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-06",
    "dateModified": "2026-08-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#dataset-bledy-wykonawcze",
    "name": "Katalog Krytycznych Błędów Hydraulicznych w Salonie",
    "description": "Zbiór danych o parametrach brzegowych awarii instalacyjnych, takich jak skutki braku dylatacji (ścięcie rury), przegrzew posadzki do 36°C przez tranzyty oraz brak możliwości kalibracji przepływów na rotametrach.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "brak dylatacji posadzki ogrzewanie podłogowe salon",
      "nieizolowane rury dobiegowe w strefie brzegowej",
      "różne długości pętli podłogówki na jednym rozdzielaczu",
      "układanie rur pod stałą zabudową meblową",
      "regulacja rotametrów skrajne długości obwodów"
    ],
    "measurementTechnique": "Analiza termiki przepływu (niekontrolowany wyrzut ciepła w progach) oraz mechaniki uszkodzeń jastrychu betonowego w wyniku rozszerzalności cieplnej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Ryzyko zniszczenia mebli MDF przy ekspozycji na temperaturę przekraczającą 28°C z posadzki.",
        "Konieczność dylatacji i peszli (min. 40 cm) dla płyt większych niż 40 m2 lub o boku > 8m.",
        "Miejscowe przegrzanie (tzw. hot spoty do 36°C) z powodu niezaizolowanych tranzytów zasilających.",
        "Brak zrównoważenia hydraulicznego przy skrajnych pętlach (np. 98m vs 18m)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#webapp-skaner-awarii",
    "name": "Interaktywny Skaner Błędów Wykonawczych",
    "description": "Narzędzie diagnostyczne online pozwalające inwestorom na weryfikację błędów i ich skutków przed wylaniem jastrychu.",
    "applicationCategory": "DiagnosticApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-error-scanner-container" id="rk-errors-app">
    <div class="rk-err-header">
        <div class="rk-err-badge">Diagnostyka Awarii</div>
        <h2>
            <svg width="32" height="32" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Najczęstsze błędy w salonie
        </h2>
        <p>Beton zakrywa błędy tylko wizualnie. Niewłaściwe rozłożenie pętli szybko zamienia się w kosztowną usterkę. Zobacz najpopularniejsze "grzechy" instalatorów i ich skutki.</p>
    </div>

    <div class="rk-err-grid-area">
        <div class="rk-err-grid">
            
            <!-- Usterka 1 -->
            <div class="rk-err-card">
                <div class="rk-err-card-visible">
                    <div class="rk-err-card-top">
                        <div class="rk-err-icon">
                            <svg width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v4"></path><polyline points="14 2 14 8 20 8"></polyline><path d="m9 18 3-3-3-3"></path><path d="M2 15h10"></path></svg>
                        </div>
                        <h3 class="rk-err-title">Pętle pod stałą zabudową meblową</h3>
                    </div>
                    <p class="rk-err-teaser">Brak wyłączenia strefy grzewczej pod wyspą kuchenną, ciągami mebli w zabudowie czy kominkiem powoduje bezużyteczne grzanie powierzchni trwale wyłączonej z wymiany ciepła.</p>
                </div>
                <div class="rk-err-toggle-area">
                    <span>Zobacz skutki usterki</span>
                    <svg class="rk-err-toggle-icon" fill="none" stroke="currentColor" stroke-width="2.5" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
                <div class="rk-err-details-wrapper">
                    <div class="rk-err-details-inner">
                        <div class="rk-err-details-content">
                            <strong>Konsekwencje dla inwestora:</strong>
                            Zwiększa to drastycznie ryzyko uszkodzenia mebli z drewna lub płyt MDF w wyniku uwalniania wilgoci pod wpływem temperatury przekraczającej 28°C. Ciepło uwięzione pod cokołami zaburza bilans pokoju. Przeczytaj o <a href="https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/">strefach wyłączonych z grzania</a>.
                        </div>
                    </div>
                </div>
            </div>

            <!-- Usterka 2 -->
            <div class="rk-err-card">
                <div class="rk-err-card-visible">
                    <div class="rk-err-card-top">
                        <div class="rk-err-icon">
                            <svg width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line><line x1="16" y1="2" x2="8" y2="22"></line></svg>
                        </div>
                        <h3 class="rk-err-title">Brak dylatacji posadzki przy przejściach</h3>
                    </div>
                    <p class="rk-err-teaser">Gdy salon ma powierzchnię powyżej 40 m² lub długość boku przekracza 8 metrów, posadzka anhydrytowa lub jastrych betonowy wymaga bezwzględnego wykonania szczelin dylatacyjnych.</p>
                </div>
                <div class="rk-err-toggle-area">
                    <span>Zobacz skutki usterki</span>
                    <svg class="rk-err-toggle-icon" fill="none" stroke="currentColor" stroke-width="2.5" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
                <div class="rk-err-details-wrapper">
                    <div class="rk-err-details-inner">
                        <div class="rk-err-details-content">
                            <strong>Konsekwencje dla inwestora:</strong>
                            Przeprowadzenie rury podłogówki przez szczelinę dylatacyjną bez otuliny ochronnej (np. peszel ochronny o długości min. 40 cm) prowadzi niemal zawsze do mechanicznego <strong>ścięcia rury</strong> na skutek rozszerzalności termicznej pracującej płyty betonowej. Dowiedz się więcej o <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">zasadach dylatacji</a>.
                        </div>
                    </div>
                </div>
            </div>

            <!-- Usterka 3 -->
            <div class="rk-err-card">
                <div class="rk-err-card-visible">
                    <div class="rk-err-card-top">
                        <div class="rk-err-icon">
                            <svg width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg>
                        </div>
                        <h3 class="rk-err-title">Nieizolowane pętle doprowadzające</h3>
                    </div>
                    <p class="rk-err-teaser">Prowadzenie tras zasilających (tzw. "tranzytów") od rozdzielacza do innych pomieszczeń przez posadzkę salonu bez zastosowania dedykowanej izolacji termicznej na rurach.</p>
                </div>
                <div class="rk-err-toggle-area">
                    <span>Zobacz skutki usterki</span>
                    <svg class="rk-err-toggle-icon" fill="none" stroke="currentColor" stroke-width="2.5" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
                <div class="rk-err-details-wrapper">
                    <div class="rk-err-details-inner">
                        <div class="rk-err-details-content">
                            <strong>Konsekwencje dla inwestora:</strong>
                            Przewody przejściowe niekontrolowanie oddają energię, tworząc w progu i przedpokoju salonu "hot spoty". Strefy te osiągają temperaturę znacznie przekraczającą dopuszczalne normatywnie 29°C (często dochodząc do 36°C), co niszczy panele podłogowe i wysusza powietrze.
                        </div>
                    </div>
                </div>
            </div>

            <!-- Usterka 4 -->
            <div class="rk-err-card">
                <div class="rk-err-card-visible">
                    <div class="rk-err-card-top">
                        <div class="rk-err-icon">
                            <svg width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 4h3v16h-3"></path><path d="M6 4H3v16h3"></path><path d="M12 4v16"></path><path d="M8 8h8"></path><path d="M8 16h8"></path></svg>
                        </div>
                        <h3 class="rk-err-title">Mieszanie skrajnych długości pętli</h3>
                    </div>
                    <p class="rk-err-teaser">Podłączenie do tego samego rozdzielacza potężnej pętli obsługującej salon o długości 98 m oraz małego obwodu obsługującego na przykład WC o długości 18 m.</p>
                </div>
                <div class="rk-err-toggle-area">
                    <span>Zobacz skutki usterki</span>
                    <svg class="rk-err-toggle-icon" fill="none" stroke="currentColor" stroke-width="2.5" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
                <div class="rk-err-details-wrapper">
                    <div class="rk-err-details-inner">
                        <div class="rk-err-details-content">
                            <strong>Konsekwencje dla inwestora:</strong>
                            Woda grzewcza płynie po linii najmniejszego oporu hydraulicznego. Wyregulowanie tak skrajnych przepływów na rotametrach od 0.5 do 5.0 litrów na minutę bez automatycznych zaworów równoważących jest praktycznie niemożliwe. Zobacz zasady <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">obsługi rozdzielaczy</a>.
                        </div>
                    </div>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const errorCards = document.querySelectorAll('.rk-err-card');

    errorCards.forEach(function(card) {
        card.addEventListener('click', function() {
            const isActive = this.classList.contains('active');

            // Autozamykanie pozostałych kart, utrzymuje estetykę na mobile
            errorCards.forEach(function(otherCard) {
                if (otherCard !== card) {
                    otherCard.classList.remove('active');
                }
            });

            // Toggle klikniętego
            if (isActive) {
                this.classList.remove('active');
            } else {
                this.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-hvac-dark: #0f172a;
    --rk-hvac-blue: #0ea5e9;
    --rk-hvac-light-blue: #e0f2fe;
    --rk-hvac-green: #10b981;
    --rk-hvac-red: #ef4444;
    --rk-hvac-orange: #f59e0b;
    --rk-hvac-bg: #ffffff;
    --rk-hvac-border: #e2e8f0;
    --rk-hvac-text: #334155;
}

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

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

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

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

/* Simulator Zone */
.rk-hvac-simulator {
    padding: 40px;
    background: #f8fafc;
}

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

/* Custom Slider */
.rk-slider-wrapper {
    max-width: 600px;
    margin: 0 auto 40px auto;
    position: relative;
}

.rk-slider-labels {
    display: flex;
    justify-content: space-between;
    margin-bottom: 10px;
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-hvac-text);
}

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

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

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

/* Dashboard Metrics - SZTYWNY UKŁAD 2x2 */
.rk-dashboard {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-bottom: 40px;
}

.rk-metric-card {
    background: #ffffff;
    padding: 25px 20px;
    border-radius: 16px;
    border: 1px solid var(--rk-hvac-border);
    text-align: center;
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-metric-icon {
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
}

.rk-metric-value {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-hvac-dark);
    margin: 0 0 5px 0;
    transition: color 0.3s;
}

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

/* Linowy łańcuch zależności (Zamiast kolumn) */
.rk-chain-section {
    padding: 0 40px 40px 40px;
    background: #f8fafc;
}

.rk-chain-wrapper {
    background: #ffffff;
    border-radius: 20px;
    border: 1px solid var(--rk-hvac-border);
    padding: 35px;
}

.rk-chain-intro {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-hvac-text);
    margin-bottom: 30px;
}

.rk-chain-item {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    padding-bottom: 30px;
    position: relative;
}

.rk-chain-item:not(:last-child)::after {
    content: '';
    position: absolute;
    left: 23px;
    top: 48px;
    bottom: 0;
    width: 2px;
    background: #e2e8f0;
}

.rk-chain-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: var(--rk-hvac-light-blue);
    color: var(--rk-hvac-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
    z-index: 2;
}

.rk-chain-content h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-hvac-dark);
    margin: 0 0 10px 0;
}

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

.rk-chain-content strong {
    color: var(--rk-hvac-blue);
}

/* Mocne CTA Sprzedażowe */
.rk-sales-cta {
    padding: 50px 40px;
    background: linear-gradient(135deg, #0284c7 0%, #0369a1 100%);
    text-align: center;
    color: #ffffff;
}

.rk-sales-cta h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
}

.rk-sales-cta p {
    font-size: 18px;
    color: #e0f2fe;
    margin: 0 auto 35px auto;
    max-width: 700px;
    line-height: 1.6;
}

.rk-btn-massive {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: #f59e0b;
    color: #ffffff;
    font-size: 20px;
    font-weight: 900;
    padding: 22px 45px;
    border-radius: 16px;
    text-decoration: none;
    text-transform: uppercase;
    box-shadow: 0 15px 30px -5px rgba(245, 158, 11, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 2px solid transparent;
}

.rk-btn-massive:hover {
    transform: translateY(-5px) scale(1.02);
    background: #d97706;
    box-shadow: 0 20px 40px -5px rgba(245, 158, 11, 0.5);
    border-color: #fbbf24;
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-hvac-header { padding: 30px 20px; }
    .rk-hvac-header h2 { font-size: 24px; }
    .rk-hvac-simulator { padding: 30px 20px; }
    /* Transformacja siatki na mobilce - 1 element pod drugim */
    .rk-dashboard { grid-template-columns: 1fr; gap: 15px; }
    .rk-chain-section { padding: 0 20px 30px 20px; }
    .rk-chain-wrapper { padding: 25px 20px; }
    .rk-sales-cta { padding: 40px 20px; }
    .rk-sales-cta h2 { font-size: 26px; }
    .rk-btn-massive { width: 100%; padding: 18px 20px; font-size: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#article-wplyw-petli",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/"
    },
    "headline": "Jak liczba pętli w salonie wpływa na projekt ogrzewania podłogowego i dobór źródła ciepła?",
    "description": "Precyzyjny podział na pętle to fundament hydrauliczny. Zobacz, jak wpływa na obliczenia OZC, obniżenie temperatury zasilania do 32-35°C oraz dobór średnic magistrali.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-06",
    "dateModified": "2026-08-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#dataset-parametry-maszynowni",
    "name": "Wpływ Pętli Podłogówki na Wydajność Pompy Ciepła i Hydraulikę",
    "description": "Zestawienie inżynierskie demonstrujące współzależności: spadek temperatury zasilania do 35°C podnosi SCOP do 3.8. Analiza oporów pętli krytycznej i doboru PEX 32x3.0 mm.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wpływ długości pętli na projekt",
      "wyznaczenie najmniej korzystnego obwodu",
      "suma przepływów czynnika m3/h",
      "dobór sprzęgła hydraulicznego podłogówka",
      "temperatura zasilania 35 stopni a scop"
    ],
    "measurementTechnique": "Algorytmizacja parametrów na podstawie wyliczeń OZC (PN-EN 12831), w tym przepływów (360 l/h dla 50 m2) oraz krytycznego sprężu dyspozycyjnego (kPa).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wpływ na OZC: Zmniejszenie zasilania o 3 K podnosi SCOP pompy ciepła z 3,4 do 3,8.",
        "Magistrala: Łączny przepływ rozdzielacza 18-22 l/min wymaga użycia rur PEX 32 mm, by uniknąć prędkości >0,5 m/s.",
        "Sprzęgło: Suma oporów pętli krytycznej decyduje wprost o konieczności stosowania bufora hydraulicznego."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#webapp-symulator-parametrow",
    "name": "Symulator Doboru Parametrów Źródła Ciepła",
    "description": "Aplikacja internetowa umożliwiająca symulację wpływu rozstawu i długości pętli ogrzewania płaszczyznowego na kluczowe wskaźniki systemu (SCOP, spręż pompy, zasilanie).",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-hvac-container" id="rk-hvac-app">
    <div class="rk-hvac-header">
        <h2>Jak liczba pętli w salonie wpływa na projekt ogrzewania podłogowego i dobór źródła ciepła?</h2>
        <p>
            Poprawny podział salonu na pętle grzewcze stanowi fundament hydrauliczny, od którego zależy poprawność opracowania pełnej dokumentacji projektowej w tym wyznaczenie punktów pracy urządzeń w maszynowni.
        </p>
    </div>

    <div class="rk-hvac-simulator">
        <h3 class="rk-sim-title">Symulator Wpływu Hydraulicznego</h3>
        
        <div class="rk-slider-wrapper">
            <div class="rk-slider-labels">
                <span>Zbyt długie pętle</span>
                <span>Standard</span>
                <span style="color: var(--rk-hvac-blue);">Optymalny Projekt OZC</span>
            </div>
            <input type="range" min="0" max="2" value="2" class="rk-slider" id="rkHydraulicSlider">
        </div>

        <div class="rk-dashboard">
            <!-- Karta 1 -->
            <div class="rk-metric-card" id="cardTemp">
                <div class="rk-metric-icon">
                    <svg width="32" height="32" fill="none" stroke="var(--rk-hvac-red)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 4v10.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0Z"></path></svg>
                </div>
                <div class="rk-metric-value" id="valTemp">35°C</div>
                <div class="rk-metric-label">Temp. Zasilania</div>
            </div>
            <!-- Karta 2 -->
            <div class="rk-metric-card" id="cardScop">
                <div class="rk-metric-icon">
                    <svg width="32" height="32" fill="none" stroke="var(--rk-hvac-green)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 7 13.5 15.5 8.5 10.5 2 17"></polyline><polyline points="16 7 22 7 22 13"></polyline></svg>
                </div>
                <div class="rk-metric-value" id="valScop">3.8</div>
                <div class="rk-metric-label">SCOP Pompy</div>
            </div>
            <!-- Karta 3 -->
            <div class="rk-metric-card" id="cardPress">
                <div class="rk-metric-icon">
                    <svg width="32" height="32" fill="none" stroke="var(--rk-hvac-blue)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="m12 12 4-4"></path><path d="M12 12v4"></path></svg>
                </div>
                <div class="rk-metric-value" id="valPress">18 kPa</div>
                <div class="rk-metric-label">Opór Krytyczny</div>
            </div>
            <!-- Karta 4 -->
            <div class="rk-metric-card" id="cardPipe">
                <div class="rk-metric-icon">
                    <svg width="32" height="32" fill="none" stroke="var(--rk-hvac-text)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M21 12c0 1.66-4 3-9 3s-9-1.34-9-3"></path><path d="M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5"></path></svg>
                </div>
                <div class="rk-metric-value" id="valPipe">PEX 32</div>
                <div class="rk-metric-label">Magistrala</div>
            </div>
        </div>
    </div>

    <div class="rk-chain-section">
        <div class="rk-chain-wrapper">
            <p class="rk-chain-intro">
                Każda ułożona pętla grzewcza pociąga za sobą określoną reakcję całego układu. Brak wyliczeń zmusza hydraulika do zgadywania wydajności, co drastycznie obniża sprawność całego układu cieplnego. Oto precyzyjny wpływ prawidłowego rozplanowania:
            </p>
            
            <div class="rk-chain-item">
                <div class="rk-chain-icon">
                    <svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 20h.01"></path><path d="M7 20v-4"></path><path d="M12 20v-8"></path><path d="M17 20V8"></path><path d="M22 4v16"></path></svg>
                </div>
                <div class="rk-chain-content">
                    <h3>Wpływ na Obliczenie OZC i Parametrów Zasilania</h3>
                    <p>Dzięki precyzyjnemu podziałowi na pętle i zagęszczeniu rur w strefie brzegowej salonu (rozstaw 10 cm), projektant może obniżyć projektowaną temperaturę zasilania systemu z 38°C do <strong>32–35°C</strong>. Obniżenie temperatury zasilania o 3 K przekłada się bezpośrednio na podniesienie wskaźnika SCOP powietrznej pompy ciepła z 3,4 do <strong>3,8</strong>, co generuje wymierne oszczędności finansowe przez 20 lat eksploatacji budynku.</p>
                </div>
            </div>

            <div class="rk-chain-item">
                <div class="rk-chain-icon">
                    <svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg>
                </div>
                <div class="rk-chain-content">
                    <h3>Determinacja Średnicy Magistrali Zasilającej Rozdzielacz</h3>
                    <p>Salon o powierzchni 50 m² potrzebuje przepływu masowego na poziomie ok. 5,5–6,0 l/min (360 l/h). Gdy rozdzielacz obsługuje dodatkowo inne pomieszczenia, łączny przepływ rozdzielacza sięga 18–22 l/min (1,1–1,3 m³/h). Projektant na tej podstawie dobiera średnicę rury dobiegowej z maszynowni do rozdzielacza: zamiast standardowego PEX 26x3,0 mm stosuje się przewód <strong>PEX 32x3,0 mm</strong> lub rurę miedzianą 28 mm, unikając przekroczenia szumowej prędkości przepływu liniowego (v > 0,5 m/s).</p>
                </div>
            </div>

            <div class="rk-chain-item" style="padding-bottom: 0;">
                <div class="rk-chain-icon">
                    <svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="4" width="20" height="16" rx="2"></rect><path d="M12 4v16"></path><path d="M8 8h.01"></path><path d="M8 12h.01"></path><path d="M8 16h.01"></path><path d="M16 8h.01"></path><path d="M16 12h.01"></path><path d="M16 16h.01"></path></svg>
                </div>
                <div class="rk-chain-content">
                    <h3>Optymalizacja Dooru Pompy Obiegowej i Sprzęgła Hydraulicznego</h3>
                    <p>Suma oporów pętli krytycznej w salonie (najdłuższy obwód + dobieg + straty na rozdzielaczu) wyznacza tzw. wysokość podnoszenia pompy obiegowej. Jeśli opór pętli krytycznej wynosi 18 kPa, a straty na magistrali 8 kPa, całkowity wymagany spręż dyspozycyjny źródła wynosi <strong>26 kPa</strong> przy wyliczonym przepływie całkowitym. Dane te decydują o tym, czy pompa ciepła może pracować bezpośrednio na instalację, czy wymagane jest zastosowanie sprzęgła hydraulicznego bądź bufora w układzie rozdzielczym.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-sales-cta">
        <h2>Wykonawstwo „na oko” generuje straty</h2>
        <p>Błędy hydrauliczne w salonie rzutują na całą instalację. Uniknij zimnych podłóg, szumów w rurach i podwyższonych rachunków za prąd dzięki precyzyjnym wyliczeniom. Zleć nam obliczenia OZC i miej absolutną pewność działania systemu.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-massive">
            ZAMÓW PROJEKT I ZABEZPIECZ INWESTYCJĘ
            <svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const slider = document.getElementById('rkHydraulicSlider');
    
    const valTemp = document.getElementById('valTemp');
    const valScop = document.getElementById('valScop');
    const valPress = document.getElementById('valPress');
    const valPipe = document.getElementById('valPipe');

    slider.addEventListener('input', function() {
        const val = parseInt(this.value);

        if (val === 0) {
            valTemp.innerText = '42°C';
            valScop.innerText = '2.9';
            valPress.innerText = '> 35 kPa';
            valPipe.innerText = 'PEX 26';
            
            valTemp.style.color = 'var(--rk-hvac-red)';
            valScop.style.color = 'var(--rk-hvac-red)';
            valPress.style.color = 'var(--rk-hvac-red)';
            
            slider.style.background = 'var(--rk-hvac-red)';
        } 
        else if (val === 1) {
            valTemp.innerText = '38°C';
            valScop.innerText = '3.4';
            valPress.innerText = '25 kPa';
            valPipe.innerText = 'PEX 26 / 32';
            
            valTemp.style.color = 'var(--rk-hvac-orange)';
            valScop.style.color = 'var(--rk-hvac-orange)';
            valPress.style.color = 'var(--rk-hvac-orange)';
            
            slider.style.background = 'var(--rk-hvac-orange)';
        }
        else if (val === 2) {
            valTemp.innerText = '35°C';
            valScop.innerText = '3.8';
            valPress.innerText = '18 kPa';
            valPipe.innerText = 'PEX 32';
            
            valTemp.style.color = 'var(--rk-hvac-dark)';
            valScop.style.color = 'var(--rk-hvac-dark)';
            valPress.style.color = 'var(--rk-hvac-dark)';
            
            slider.style.background = '#cbd5e1';
        }
    });
});
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-blue: #0284c7;
    --rk-case-light-blue: #f0f9ff;
    --rk-case-red: #ef4444;
    --rk-case-green: #10b981;
    --rk-case-gray: #f8fafc;
    --rk-case-border: #e2e8f0;
    --rk-case-text: #334155;
}

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

/* Header */
.rk-cases-header {
    background: linear-gradient(135deg, var(--rk-case-dark) 0%, #1e293b 100%);
    padding: 35px 40px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-case-red);
}

.rk-cases-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
    display: flex;
    align-items: center;
    gap: 15px;
}

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

.rk-cases-badge {
    background: var(--rk-case-red);
    color: #ffffff;
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Summary Stats */
.rk-cases-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    background: var(--rk-case-gray);
    border-bottom: 1px solid var(--rk-case-border);
}

.rk-stat-box {
    padding: 25px 20px;
    text-align: center;
    border-right: 1px solid var(--rk-case-border);
}

.rk-stat-box:last-child {
    border-right: none;
}

.rk-stat-number {
    font-size: 36px;
    font-weight: 900;
    color: var(--rk-case-red);
    margin-bottom: 5px;
    display: flex;
    align-items: baseline;
    justify-content: center;
}

.rk-stat-number span {
    font-size: 16px;
    color: var(--rk-case-text);
    margin-left: 5px;
}

.rk-stat-label {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-case-dark);
    text-transform: uppercase;
}

/* Interactive Cases Section */
.rk-cases-interactive {
    display: flex;
    background: #ffffff;
}

/* Left Sidebar (Tabs) */
.rk-cases-sidebar {
    flex: 0 0 300px;
    background: var(--rk-case-gray);
    border-right: 1px solid var(--rk-case-border);
    display: flex;
    flex-direction: column;
}

.rk-case-tab {
    padding: 20px 20px 20px 16px;
    background: transparent;
    border: none;
    border-left: 4px solid transparent;
    border-bottom: 1px solid var(--rk-case-border);
    text-align: left;
    cursor: pointer;
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-case-text);
    transition: background 0.3s ease, color 0.3s ease;
}

.rk-case-tab:hover {
    background: #ffffff;
}

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

.rk-case-tab-subtitle {
    display: block;
    font-size: 12px;
    font-weight: 600;
    margin-bottom: 5px;
    color: #94a3b8;
}

.rk-case-tab.active .rk-case-tab-subtitle {
    color: var(--rk-case-blue);
    opacity: 0.8;
}

/* Right Content Area */
.rk-cases-content {
    flex: 1;
    padding: 40px;
}

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

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

.rk-case-title {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-case-dark);
    margin: 0 0 25px 0;
    padding-bottom: 15px;
    border-bottom: 2px dashed var(--rk-case-border);
}

/* Comparison Grid inside Panel */
.rk-case-comparison {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 25px;
}

.rk-comp-box {
    border: 1px solid var(--rk-case-border);
    border-radius: 16px;
    padding: 20px;
    background: var(--rk-case-gray);
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-comp-header {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    margin-bottom: 15px;
}

.rk-comp-box.error .rk-comp-header { color: var(--rk-case-red); }
.rk-comp-box.fix .rk-comp-header { color: var(--rk-case-green); }

.rk-comp-value {
    font-size: 15px;
    color: var(--rk-case-text);
    line-height: 1.6;
    margin: 0;
}

.rk-comp-value strong {
    color: var(--rk-case-dark);
}

.rk-case-summary {
    background: var(--rk-case-light-blue);
    padding: 20px 25px;
    border-radius: 16px;
    border-left: 6px solid var(--rk-case-blue);
    font-size: 15px;
    color: var(--rk-case-dark);
    line-height: 1.6;
}

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

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-cases-header { padding: 30px 20px; flex-direction: column; align-items: flex-start; }
    .rk-cases-header h2 { font-size: 24px; flex-direction: column; align-items: flex-start; gap: 10px; }
    .rk-cases-stats { grid-template-columns: 1fr; border-bottom: none; }
    .rk-stat-box { border-right: none; border-bottom: 1px solid var(--rk-case-border); padding: 20px; }
    .rk-cases-interactive { flex-direction: column; }
    .rk-cases-sidebar { flex: auto; border-right: none; border-bottom: 1px solid var(--rk-case-border); }
    .rk-case-tab { padding: 15px 20px; border-left: none; border-bottom: 1px solid var(--rk-case-border); }
    .rk-case-tab.active { border-left: none; border-bottom: 3px solid var(--rk-case-blue); }
    .rk-cases-content { padding: 25px 20px; }
    .rk-case-comparison { grid-template-columns: 1fr; gap: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#article-audyt",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/"
    },
    "headline": "Studium przypadku: Audyt 10 projektów instalacji w salonie",
    "description": "Weryfikacja realnych projektów od klientów. Przekonaj się, jakie błędy projektowe (zbyt długie pętle, brak strefowania) najczęściej wychwytujemy i korygujemy.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-06",
    "dateModified": "2026-08-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#dataset-wyniki-audytu",
    "name": "Wyniki Audytu 10 Projektów Ogrzewania Podłogowego",
    "description": "Zbiór danych statystycznych i jakościowych z weryfikacji 10 zewnętrznych projektów układów płaszczyznowych w salonach.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "audyt projektu ogrzewania podłogowego",
      "weryfikacja błędów instalacyjnych podłogówka",
      "projekt ogrzewania z głowy vs wyliczenia",
      "za długa pętla naprawa błędu",
      "brak projektu instalacji grzewczej koszty"
    ],
    "measurementTechnique": "Analiza porównawcza dokumentacji zewnętrznej z normą PN-EN 12831 oraz wymogami hydrauliki pomp ciepła.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "80% audytowanych projektów zawierało co najmniej jedną pętlę w salonie powyżej 115 metrów.",
        "90% projektów typu darmowego nie uwzględniało zagęszczenia stref przy oknach tarasowych.",
        "Zalecenia korygujące dla salonów 40 m2 wymuszały zmianę z 3 obwodów (błędnych) na 5 obwodów optymalnych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#webapp-raport-audytow",
    "name": "Interaktywny Raport z Audytów Projektowych",
    "description": "Moduł umożliwiający przeglądanie realnych przypadków weryfikacji projektów wraz ze wskazaniem błędu pierwotnego i rekomendacji eksperckiej.",
    "applicationCategory": "ReferenceApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cases-container" id="rk-cases-app">
    <div class="rk-cases-header">
        <h2>
            <span class="rk-cases-badge">Studium Przypadku</span>
            Audyt 10 projektów od klientów
        </h2>
        <p>Codziennie trafiają do nas inwestorzy proszący o weryfikację rozłożenia rur na budowie. Przeanalizowaliśmy 10 ostatnich zgłoszeń dotyczących salonów. Wyniki pokazują, dlaczego instalacje robione "z pamięci" to proszenie się o kłopoty.</p>
    </div>

    <!-- Twarde statystyki -->
    <div class="rk-cases-stats">
        <div class="rk-stat-box">
            <div class="rk-stat-number">8 <span>/ 10</span></div>
            <div class="rk-stat-label">Pętle powyżej 115m</div>
        </div>
        <div class="rk-stat-box">
            <div class="rk-stat-number">9 <span>/ 10</span></div>
            <div class="rk-stat-label">Brak stref brzegowych</div>
        </div>
        <div class="rk-stat-box">
            <div class="rk-stat-number">10 <span>/ 10</span></div>
            <div class="rk-stat-label">Brak obliczeń OZC</div>
        </div>
    </div>

    <!-- Interaktywny wybór przypadku (Bez animacji) -->
    <div class="rk-cases-interactive">
        
        <!-- Pasek zakładek -->
        <div class="rk-cases-sidebar">
            <button class="rk-case-tab active" data-case="case1">
                <span class="rk-case-tab-subtitle">Przypadek #1: Salon 35 m²</span>
                Dwie olbrzymie wężownice
            </button>
            <button class="rk-case-tab" data-case="case2">
                <span class="rk-case-tab-subtitle">Przypadek #2: Okno HST 5m</span>
                Ogrzewanie jednego metrażu
            </button>
            <button class="rk-case-tab" data-case="case3">
                <span class="rk-case-tab-subtitle">Przypadek #3: Asymetria obwodów</span>
                Misz-masz na rozdzielaczu
            </button>
        </div>

        <!-- Obszar treści -->
        <div class="rk-cases-content">
            
            <!-- Przypadek 1 -->
            <div class="rk-case-panel active" id="case1">
                <h3 class="rk-case-title">Zgłoszenie: Pompa ciepła staje na wysokim oporze</h3>
                
                <div class="rk-case-comparison">
                    <div class="rk-comp-box error">
                        <div class="rk-comp-header">
                            <svg width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                            Stan zastany u klienta
                        </div>
                        <p class="rk-comp-value">Instalator w salonie 35 m² wykonał tylko <strong>2 pętle</strong>. Każda miała fizycznie ponad <strong>135 metrów</strong> długości z uwagi na rozstaw co 10 cm na całej powierzchni.</p>
                    </div>
                    <div class="rk-comp-box fix">
                        <div class="rk-comp-header">
                            <svg width="20" height="20" 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>
                            Nasza korekta
                        </div>
                        <p class="rk-comp-value">Podział salonu na <strong>4 równe pętle po 80-85 metrów</strong>. Powrót do rozstawu 15 cm w strefie kanapowej (zmniejszenie oporów) oraz zachowanie 10 cm tylko przy wyjściu na taras.</p>
                    </div>
                </div>

                <div class="rk-case-summary">
                    <strong>Wniosek inżynierski:</strong> Weryfikacja pokazała wybitny przykład tego, jak <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/">projekt z głowy instalatora</a> generuje straty. Zbyt długie rury ubiłyby przepływ w pompie.
                </div>
            </div>

            <!-- Przypadek 2 -->
            <div class="rk-case-panel" id="case2">
                <h3 class="rk-case-title">Zgłoszenie: Zimna podłoga przy oknach przesuwnych</h3>
                
                <div class="rk-case-comparison">
                    <div class="rk-comp-box error">
                        <div class="rk-comp-header">
                            <svg width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                            Stan zastany u klienta
                        </div>
                        <p class="rk-comp-value">Darmowy projekt ze sklepu. Cały salon z oknem szerokości 5 m ułożony jednym rozstawem 15 cm. Brak osobnej pętli wyrównującej bilans okienny.</p>
                    </div>
                    <div class="rk-comp-box fix">
                        <div class="rk-comp-header">
                            <svg width="20" height="20" 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>
                            Nasza korekta
                        </div>
                        <p class="rk-comp-value">Wprowadzenie osobnego obiegu (pętla nr 1) obsługującego strefę 1.5 metra od szyb z gęstością co 10 cm, kompensującą potężne straty rzędu 50 W z metra bieżącego.</p>
                    </div>
                </div>

                <div class="rk-case-summary">
                    <strong>Wniosek inżynierski:</strong> Zignorowanie stref brzegowych to proszenie się o efekt ciągu zniżkowego. Warto przeczytać, <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">jakie jeszcze błędy montażowe obniżają komfort</a>.
                </div>
            </div>

            <!-- Przypadek 3 -->
            <div class="rk-case-panel" id="case3">
                <h3 class="rk-case-title">Zgłoszenie: Głośna praca rozdzielacza</h3>
                
                <div class="rk-case-comparison">
                    <div class="rk-comp-box error">
                        <div class="rk-comp-header">
                            <svg width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                            Stan zastany u klienta
                        </div>
                        <p class="rk-comp-value">Klient próbował ułożyć ogrzewanie wprost na posadzce z instrukcji z YouTube. Skrajna asymetria: obwód 1 to 105 m (salon), a obwód 2 (WC) to zaledwie 16 m długości.</p>
                    </div>
                    <div class="rk-comp-box fix">
                        <div class="rk-comp-header">
                            <svg width="20" height="20" 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>
                            Nasza korekta
                        </div>
                        <p class="rk-comp-value">Przeprojektowanie wpięć, wymuszenie zasady symetrii długości z różnicami nie przekraczającymi 15%. Zapobiegło to gwizdom na zdławionych rotametrach.</p>
                    </div>
                </div>

                <div class="rk-case-summary">
                    <strong>Wniosek inżynierski:</strong> Zawsze uświadamiam inwestorów, że <a href="https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/">profesjonalny projekt to nie opcja, to absolutna konieczność</a>. Symetria na rozdzielaczu gwarantuje bezszelestną pracę.
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const tabs = document.querySelectorAll('.rk-case-tab');
    const panels = document.querySelectorAll('.rk-case-panel');

    for (let i = 0; i < tabs.length; i++) {
        tabs[i].addEventListener('click', function() {
            // Natychmiastowe czyszczenie starych stanów (bez animacji, bez &#038;&#038;)
            for (let j = 0; j < tabs.length; j++) {
                tabs[j].classList.remove('active');
            }
            for (let k = 0; k < panels.length; k++) {
                panels[k].classList.remove('active');
            }
            
            // Natychmiastowa aktywacja
            this.classList.add('active');
            const targetId = this.getAttribute('data-case');
            const targetPanel = document.getElementById(targetId);
            
            if (targetPanel) {
                targetPanel.classList.add('active');
            }
        });
    }
});
</script>



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

.rk-authority-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-auth-bg);
    border-radius: 0;
    border: 2px solid var(--rk-auth-dark);
    box-shadow: 8px 8px 0px 0px var(--rk-auth-blue);
}

/* Header */
.rk-auth-header {
    background: var(--rk-auth-dark);
    padding: 30px 40px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-auth-gold);
}

.rk-auth-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0;
    line-height: 1.3;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-auth-badge {
    background: var(--rk-auth-gold);
    color: #ffffff;
    padding: 6px 14px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Main Layout */
.rk-auth-body {
    display: flex;
    padding: 40px;
    gap: 40px;
    background: var(--rk-auth-bg);
}

/* Profile Section (Left) */
.rk-auth-profile {
    flex: 0 0 280px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-auth-photo-wrapper {
    width: 100%;
    border: 4px solid var(--rk-auth-gray);
    background: var(--rk-auth-gray);
    padding: 10px;
}

.rk-auth-photo {
    width: 100%;
    height: auto;
    display: block;
    filter: grayscale(20%);
}

.rk-auth-socials {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-auth-social-btn {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 15px;
    background: var(--rk-auth-gray);
    color: var(--rk-auth-dark);
    text-decoration: none;
    font-weight: 700;
    font-size: 14px;
    border: 1px solid var(--rk-auth-border);
}

.rk-auth-social-btn:hover {
    background: var(--rk-auth-dark);
    color: #ffffff;
}

.rk-auth-social-btn svg {
    width: 20px;
    height: 20px;
    fill: currentColor;
}

/* Content Section (Right) */
.rk-auth-content {
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* Interactive Tabs */
.rk-auth-tabs {
    display: flex;
    border-bottom: 2px solid var(--rk-auth-dark);
    margin-bottom: 30px;
}

.rk-auth-tab-btn {
    padding: 15px 25px;
    background: transparent;
    border: 2px solid transparent;
    border-bottom: none;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-auth-text);
    cursor: pointer;
    text-transform: uppercase;
}

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

/* Tab Panels */
.rk-auth-panel {
    display: none;
}

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

.rk-quote-box {
    position: relative;
    padding: 30px;
    background: var(--rk-auth-gray);
    border-left: 6px solid var(--rk-auth-gold);
    margin-bottom: 25px;
}

.rk-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;
}

.rk-quote-text {
    font-size: 18px;
    font-weight: 700;
    color: var(--rk-auth-dark);
    line-height: 1.6;
    margin: 0 0 15px 0;
    font-style: italic;
}

.rk-quote-author {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-auth-blue);
    text-transform: uppercase;
}

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

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

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

.rk-auth-list li {
    padding-left: 25px;
    position: relative;
    font-size: 15px;
    color: var(--rk-auth-text);
    margin-bottom: 10px;
    line-height: 1.6;
}

.rk-auth-list li::before {
    content: '■';
    color: var(--rk-auth-blue);
    position: absolute;
    left: 0;
    top: 0;
    font-size: 12px;
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-auth-header { padding: 25px; flex-direction: column; align-items: flex-start; }
    .rk-auth-header h2 { font-size: 22px; flex-direction: column; align-items: flex-start; gap: 10px; }
    .rk-auth-body { flex-direction: column; padding: 25px; gap: 30px; }
    .rk-auth-profile { flex: none; width: 100%; }
    .rk-auth-tabs { flex-direction: column; border-bottom: none; gap: 5px; }
    .rk-auth-tab-btn { border: 2px solid var(--rk-auth-border); text-align: left; }
    .rk-auth-tab-btn.active { border-color: var(--rk-auth-dark); }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#article-ekspert",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/"
    },
    "headline": "Zdaniem eksperta: Robert Kucharski o kluczowej zasadzie układania pętli w salonie",
    "description": "Autorski komentarz inżynierski Roberta Kucharskiego, CEO Projekt-Ogrzewania.pl. Doświadczenie poparte setkami realizacji układów podłogowych z pompami ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "jobTitle": "Inżynier HVAC / CEO",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-06",
    "dateModified": "2026-08-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#dataset-doswiadczenie-eksperta",
    "name": "Baza Wiedzy Praktycznej - Weryfikacja Błędów Instalacyjnych",
    "description": "Zbiór kluczowych zasad autorskich wynikających z praktyki zawodowej. Obejmuje standardy weryfikacji projektów ogrzewania podłogowego w strefach dziennych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego salon",
      "doświadczenie instalatora podłogówki",
      "robert kucharski opinie ogrzewanie",
      "weryfikacja błędów hydraulicznych w posadzce",
      "autorytet inżynierski instalacje grzewcze"
    ],
    "measurementTechnique": "Jakościowa analiza wykonawstwa oparta na weryfikacji błędów hydraulicznych i błędów strefowania w tysiącach projektów HVAC.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Projekt to fundament - bez wyliczeń OZC nie można ustalić rozstawu rur.",
        "Salon to strefa krytyczna - błędy w zasilaniu okien HST mszczą się przez cały okres eksploatacji.",
        "Symetria obwodów to warunek konieczny do bezproblemowej kalibracji instalacji na rotametrach."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#webapp-wizytowka-eeat",
    "name": "Karta Autorytetu E-E-A-T (Interaktywna Wizytówka Eksperta)",
    "description": "Moduł weryfikujący kompetencje autora i prezentujący jego inżynierskie stanowisko w formie przełączalnych, tematycznych paneli wiedzy.",
    "applicationCategory": "ReferenceApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-authority-container" id="rk-auth-app">
    <div class="rk-auth-header">
        <h2>
            <span class="rk-auth-badge">Komentarz Eksperta</span>
            Robert Kucharski o kluczowej zasadzie pętli w salonie
        </h2>
    </div>

    <div class="rk-auth-body">
        
        <!-- Sekcja Profilowa -->
        <div class="rk-auth-profile">
            <div class="rk-auth-photo-wrapper">
                <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" class="rk-auth-photo" width="300" height="300" loading="lazy">
            </div>
            
            <div class="rk-auth-socials">
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer" class="rk-auth-social-btn">
                    <svg viewBox="0 0 24 24"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg>
                    Profil LinkedIn
                </a>
                <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener noreferrer" class="rk-auth-social-btn">
                    <svg viewBox="0 0 24 24"><path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.469h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.469h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"/></svg>
                    Projekt Ogrzewania (FB)
                </a>
                <a href="https://x.com/Projekt_HVAC" target="_blank" rel="noopener noreferrer" class="rk-auth-social-btn">
                    <svg viewBox="0 0 24 24"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg>
                    Obserwuj na X (Twitter)
                </a>
            </div>
        </div>

        <!-- Sekcja Merytoryczna -->
        <div class="rk-auth-content">
            
            <div class="rk-auth-tabs">
                <button class="rk-auth-tab-btn active" data-id="tab1">Główna Zasada</button>
                <button class="rk-auth-tab-btn" data-id="tab2">O mnie</button>
                <button class="rk-auth-tab-btn" data-id="tab3">Weryfikacja Błędów</button>
            </div>

            <!-- Panel 1: Główna Zasada -->
            <div class="rk-auth-panel active" id="tab1">
                <div class="rk-quote-box">
                    <div class="rk-quote-icon">
                        <svg width="16" height="16" fill="currentColor" viewBox="0 0 24 24"><path d="M14.017 21v-7.391c0-5.704 3.731-9.57 8.983-10.609l.995 2.151c-2.432.917-3.995 3.638-3.995 5.849h4v10h-9.983zm-14.017 0v-7.391c0-5.704 3.748-9.57 9-10.609l.996 2.151c-2.433.917-3.996 3.638-3.996 5.849h3.983v10h-9.983z"/></svg>
                    </div>
                    <p class="rk-quote-text">Najczęstszym błędem, z którym spotykam się podczas audytów projektów inwestorów, jest traktowanie salonu jako jednej, jednolitej strefy hydraulicznej. Salon wymaga strefowania. Bez gęstszego układu rur (rozstaw 10 cm) pod oknami HST i bez dbałości o symetrię długości pętli (do 90 metrów), Twoja pompa ciepła zawsze będzie pracować na zawyżonych obrotach.</p>
                    <div class="rk-quote-author">Robert Kucharski, CEO</div>
                </div>
                
                <div class="rk-auth-details">
                    <h3>Dlaczego to ma znaczenie?</h3>
                    <p>Zaburzenie symetrii obwodów hydraulicznych w strefie dziennej prowadzi do sytuacji, w której wyregulowanie przepływów na rotametrach jest zadaniem z góry skazanym na porażkę. Pamiętaj: instalacja grzewcza to naczynie połączone. Błąd w salonie wpłynie na to, że w Twojej łazience na piętrze będzie po prostu zimno.</p>
                </div>
            </div>

            <!-- Panel 2: O mnie -->
            <div class="rk-auth-panel" id="tab2">
                <div class="rk-auth-details">
                    <h3>Praktyka ponad teorię</h3>
                    <p>Jestem inżynierem HVAC i twórcą portalu Projekt-Ogrzewania.pl. Na co dzień odpowiadam za to, aby systemy grzewcze w domach jednorodzinnych były projektowane w oparciu o ścisłe wyliczenia OZC, a nie "na oko".</p>
                    <p>Swoją wiedzą dzielę się również na moich portalach branżowych, takich jak <strong>Remont.biz.pl</strong> czy <strong>Sobir.pl</strong>. Zależy mi na tym, aby każdy inwestor mógł uniknąć katastrofalnych błędów wykonawczych, zanim zaleje je bezpowrotnie warstwą betonu.</p>
                </div>
            </div>

            <!-- Panel 3: Weryfikacja -->
            <div class="rk-auth-panel" id="tab3">
                <div class="rk-auth-details">
                    <h3>Złote zasady weryfikacji wykonawcy</h3>
                    <p>Zanim pozwolisz instalatorowi zalać rury w salonie, sprawdź absolutne fundamenty inżynierskie, których wymagam we wszystkich projektach wychodzących z mojego biura:</p>
                    <ul class="rk-auth-list">
                        <li>Żadna pętla nie przekracza długości 100 metrów z dobiegiem.</li>
                        <li>Strefy brzegowe przy przeszkleniach mają zagęszczony rozstaw rur do 10 cm.</li>
                        <li>Rury absolutnie nie są prowadzone pod planowaną wyspą kuchenną.</li>
                        <li>Każda pętla oparta jest o matematyczne wyliczenie OZC wg normy PN-EN 12831.</li>
                    </ul>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const tabButtons = document.querySelectorAll('.rk-auth-tab-btn');
    const tabPanels = document.querySelectorAll('.rk-auth-panel');

    for (let i = 0; i < tabButtons.length; i++) {
        tabButtons[i].addEventListener('click', function() {
            // Natychmiastowe czyszczenie klas bez animacji
            for (let j = 0; j < tabButtons.length; j++) {
                tabButtons[j].classList.remove('active');
            }
            for (let k = 0; k < tabPanels.length; k++) {
                tabPanels[k].classList.remove('active');
            }
            
            // Natychmiastowe przypisanie klas
            this.classList.add('active');
            const targetId = this.getAttribute('data-id');
            const targetPanel = document.getElementById(targetId);
            
            if (targetPanel) {
                targetPanel.classList.add('active');
            }
        });
    }
});
</script>



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

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

/* Nagłówek sekcji */
.rk-faq-header {
    padding: 40px;
    background: linear-gradient(135deg, var(--rk-faq-dark) 0%, #1e293b 100%);
    color: #ffffff;
    text-align: left;
    position: relative;
}

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

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

.rk-faq-header-icon {
    background: rgba(255,255,255,0.1);
    padding: 10px;
    border-radius: 12px;
    display: flex;
}

/* Kontener akordeonu */
.rk-faq-list {
    padding: 30px 40px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    background: #f8fafc;
}

/* Pojedynczy element FAQ */
.rk-faq-item {
    background: var(--rk-faq-bg);
    border: 1px solid var(--rk-faq-border);
    border-radius: 16px;
    overflow: hidden;
    transition: all 0.3s ease;
}

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

.rk-faq-item.active {
    border-color: var(--rk-faq-blue);
    box-shadow: 0 8px 20px -5px rgba(2, 132, 199, 0.15);
}

/* Przycisk pytania */
.rk-faq-question {
    width: 100%;
    text-align: left;
    padding: 24px;
    background: transparent;
    border: none;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    color: var(--rk-faq-dark);
}

.rk-faq-question h3 {
    font-size: 18px;
    font-weight: 700;
    margin: 0;
    line-height: 1.4;
    transition: color 0.3s;
}

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

/* Ikona statusu (plus/minus) */
.rk-faq-toggle-icon {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--rk-faq-light-blue);
    color: var(--rk-faq-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq-item.active .rk-faq-toggle-icon {
    background: var(--rk-faq-blue);
    color: #ffffff;
    transform: rotate(135deg);
}

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

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

.rk-faq-answer-content {
    overflow: hidden;
}

.rk-faq-answer-inner {
    padding: 0 24px 24px 24px;
    color: var(--rk-faq-text);
    font-size: 16px;
    line-height: 1.7;
    border-top: 1px solid transparent;
}

.rk-faq-item.active .rk-faq-answer-inner {
    border-top-color: #f1f5f9;
    padding-top: 20px;
    margin-top: -5px;
}

.rk-faq-answer-inner a {
    color: var(--rk-faq-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid #bae6fd;
    transition: border-color 0.2s;
}

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

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-faq-header {
        padding: 30px 25px;
    }
    .rk-faq-header h2 {
        font-size: 24px;
    }
    .rk-faq-list {
        padding: 25px;
    }
    .rk-faq-question {
        padding: 20px;
    }
    .rk-faq-question h3 {
        font-size: 16px;
    }
    .rk-faq-answer-inner {
        padding: 0 20px 20px 20px;
        font-size: 15px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/"
    },
    "headline": "FAQ – Najczęściej zadawane pytania o pętle w salonie",
    "description": "Zestawienie najczęstszych pytań i eksperckich odpowiedzi dotyczących długości wężownic, łączenia stref z kuchnią oraz układania rur pod meblami w salonie.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-06",
    "dateModified": "2026-08-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Jaką maksymalną długość może mieć jedna pętla podłogówki w salonie?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Maksymalna zalecana długość pętli z rury 16x2,0 mm wynosi 100 metrów, przy czym za wartość optymalną projektowo przyjmuje się 80–90 metrów. Przekroczenie 100 metrów wywołuje nadmierny spadek ciśnienia (powyżej 20 kPa), co drastycznie ogranicza przepływ wody i powoduje niedogrzanie posadzki."
        }
      },
      {
        "@type": "Question",
        "name": "Czy można połączyć salon i kuchnię w jedną pętlę ogrzewania podłogowego?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Można połączyć salon z otwartą kuchnią pod warunkiem, że łączna powierzchnia nie wymusza przekroczenia 100 m rury i 12 m² powierzchni z jednego obwodu. Zazwyczaj jednak ze względu na brak ogrzewania pod zabudową kuchenną oraz inne strefowanie temperatur, stosuje się osobny obwód dla kuchni i min. 2 obwody dla salonu."
        }
      },
      {
        "@type": "Question",
        "name": "Jaki rozstaw rur wybrać do salonu: 10 cm czy 15 cm?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Standardowym i najbardziej ekonomicznym rozstawem dla strefy centralnej salonu jest 15 cm, który zapewnia odpowiednią moc grzewczą przy zasilaniu z pompy ciepła (35°C). Rozstaw 10 cm należy zastosować obligatoryjnie w strefie brzegowej przy dużych oknach tarasowych na szerokości 1,0–1,5 metra od szyby."
        }
      },
      {
        "@type": "Question",
        "name": "Co zrobić, gdy jedna pętla w salonie ma 110 metrów, a druga 60 metrów?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Różnica długości obwodów w jednym pomieszczeniu wywoła rozbalansowanie hydrauliczne – woda wpłynie głównie do pętli krótszej. Sytuację należy skorygować na rotametrach rozdzielacza poprzez dławienie przepływu na pętli 60 m lub przeprojektować układ na 2 równe obwody po około 85 metrów."
        }
      },
      {
        "@type": "Question",
        "name": "Czy pod meblami i kanapą w salonie układa się pętle podłogówki?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Rur podłogówki nie układa się pod meblami o stałej zabudowie (np. meble kuchenne, szafy wnękowe). Pod meblami wolnostojącymi na nóżkach (np. kanapa, sofa raised min. 10 cm nad posadzką) pętle układa się normalnie, gdyż cyrkulacja powietrza umożliwia swobodny odbiór ciepła przez otoczenie."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#dataset-parametry-faq",
    "name": "Baza Parametrów Projektowych dla Pętli w Salonie",
    "description": "Zbiór wartości inżynierskich wyodrębnionych z sekcji FAQ, w tym granice oporów hydraulicznych, odległości układania rur i maksymalny metraż pętli.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna długość pętli ogrzewania podłogowego",
      "spadek ciśnienia 20 kPa podłogówka",
      "połączenie salonu z kuchnią na jednym obwodzie",
      "rozstaw rur 10 cm przy oknach tarasowych",
      "regulacja przepływu na rotametrach asymetria pętli"
    ],
    "measurementTechnique": "Określenie zależności hydraulicznych na podstawie normatywnych przepływów, różnicy długości wężownic oraz strefowania cieplnego (kuchnia vs salon).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Maksymalny opór krytyczny ograniczony do 20 kPa przy 100 mb rury.",
        "Maksymalna obsługiwana powierzchnia jednego obwodu: 12 m².",
        "Zagęszczenie do 10 cm na szerokości 1,0-1,5 m od stolarki okiennej.",
        "Wymóg dławienia przepływów w przypadku rozbieżności długości pętli (np. 110m vs 60m)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#webapp-faq-reader",
    "name": "Interaktywny Asystent Wiedzy FAQ",
    "description": "Dynamiczny komponent akordeonowy umożliwiający czytelnikom szybkie filtrowanie i przeglądanie problemów instalacyjnych dotyczących ogrzewania płaszczyznowego w salonach.",
    "applicationCategory": "ReferenceApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-container" id="rk-faq-app">
    <div class="rk-faq-header">
        <h2>
            <div class="rk-faq-header-icon">
                <svg width="28" height="28" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            </div>
            FAQ – Najczęściej zadawane pytania
        </h2>
        <p>Znajdź szybkie, inżynierskie odpowiedzi na najczęstsze wątpliwości dotyczące układania obwodów podłogówki w strefach dziennych.</p>
    </div>

    <div class="rk-faq-list">
        <!-- Pytanie 1 -->
        <div class="rk-faq-item">
            <button class="rk-faq-question">
                <h3>1. Jaką maksymalną długość może mieć jedna pętla podłogówki w salonie?</h3>
                <div class="rk-faq-toggle-icon">
                    <svg width="20" height="20" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-faq-answer-wrapper">
                <div class="rk-faq-answer-content">
                    <div class="rk-faq-answer-inner">
                        Maksymalna zalecana <a href="https://projekt-ogrzewania.pl/ile-metrow-podlogowki-na-jednej-petli/">długość pętli z rury 16x2,0 mm</a> wynosi 100 metrów, przy czym za wartość optymalną projektowo przyjmuje się 80–90 metrów. Przekroczenie 100 metrów wywołuje nadmierny spadek ciśnienia (powyżej 20 kPa), co drastycznie ogranicza przepływ wody i powoduje niedogrzanie posadzki.
                    </div>
                </div>
            </div>
        </div>

        <!-- Pytanie 2 -->
        <div class="rk-faq-item">
            <button class="rk-faq-question">
                <h3>2. Czy można połączyć salon i kuchnię w jedną pętlę ogrzewania podłogowego?</h3>
                <div class="rk-faq-toggle-icon">
                    <svg width="20" height="20" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-faq-answer-wrapper">
                <div class="rk-faq-answer-content">
                    <div class="rk-faq-answer-inner">
                        Można połączyć salon z otwartą kuchnią pod warunkiem, że łączna powierzchnia nie wymusza przekroczenia 100 m rury i 12 m² powierzchni z jednego obwodu. Zazwyczaj jednak ze względu na <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">brak ogrzewania pod zabudową kuchenną</a> oraz inne strefowanie temperatur, stosuje się osobny obwód dla kuchni i min. 2 obwody dla samego salonu.
                    </div>
                </div>
            </div>
        </div>

        <!-- Pytanie 3 -->
        <div class="rk-faq-item">
            <button class="rk-faq-question">
                <h3>3. Jaki rozstaw rur wybrać do salonu: 10 cm czy 15 cm?</h3>
                <div class="rk-faq-toggle-icon">
                    <svg width="20" height="20" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-faq-answer-wrapper">
                <div class="rk-faq-answer-content">
                    <div class="rk-faq-answer-inner">
                        Standardowym i najbardziej ekonomicznym <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstawem dla strefy centralnej salonu jest 15 cm</a>, który zapewnia odpowiednią moc grzewczą przy zasilaniu z pompy ciepła (35°C). Rozstaw 10 cm należy zastosować obligatoryjnie w strefie brzegowej przy dużych oknach tarasowych na szerokości 1,0–1,5 metra od szyby.
                    </div>
                </div>
            </div>
        </div>

        <!-- Pytanie 4 -->
        <div class="rk-faq-item">
            <button class="rk-faq-question">
                <h3>4. Co zrobić, gdy jedna pętla w salonie ma 110 metrów, a druga 60 metrów?</h3>
                <div class="rk-faq-toggle-icon">
                    <svg width="20" height="20" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-faq-answer-wrapper">
                <div class="rk-faq-answer-content">
                    <div class="rk-faq-answer-inner">
                        Różnica długości obwodów w jednym pomieszczeniu wywoła rozbalansowanie hydrauliczne – woda wpłynie głównie do pętli krótszej. Sytuację należy skorygować analizując i dławiąc przepływ na <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrach rozdzielacza</a> (na pętli 60 m) lub najlepiej przeprojektować układ na 2 równe obwody po około 85 metrów.
                    </div>
                </div>
            </div>
        </div>

        <!-- Pytanie 5 -->
        <div class="rk-faq-item">
            <button class="rk-faq-question">
                <h3>5. Czy pod meblami i kanapą w salonie układa się pętle podłogówki?</h3>
                <div class="rk-faq-toggle-icon">
                    <svg width="20" height="20" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-faq-answer-wrapper">
                <div class="rk-faq-answer-content">
                    <div class="rk-faq-answer-inner">
                        Rur podłogówki nie układa się pod meblami o stałej zabudowie (np. szafy wnękowe ściśle przylegające do podłogi). Pod meblami wolnostojącymi na nóżkach (np. kanapa, sofa podniesiona min. 10 cm nad posadzką) <a href="https://projekt-ogrzewania.pl/wodne-ogrzewanie-podlogowe-a-meble-jak-polaczyc-komfort-i-aranzacje/">pętle układa się normalnie</a>, gdyż cyrkulacja powietrza umożliwia swobodny odbiór ciepła przez otoczenie.
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const faqItems = document.querySelectorAll('.rk-faq-item');

    faqItems.forEach(function(item) {
        const questionBtn = item.querySelector('.rk-faq-question');
        
        if (questionBtn) {
            questionBtn.addEventListener('click', function() {
                const isActive = item.classList.contains('active');

                // Zamykanie wszystkich innych aktywnych elementów
                faqItems.forEach(function(otherItem) {
                    if (otherItem !== item) {
                        otherItem.classList.remove('active');
                    }
                });

                // Przełączanie klikniętego elementu
                if (isActive) {
                    item.classList.remove('active');
                } else {
                    item.classList.add('active');
                }
            });
        }
    });
});
</script>



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

.rk-download-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;
}

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

.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 p {
    font-size: 16px;
    color: #cbd5e1;
    margin: 0;
    line-height: 1.6;
}

/* Main Content Layout */
.rk-dl-body {
    display: flex;
    padding: 40px;
    gap: 40px;
    background: var(--rk-dl-bg);
}

/* Thumbnail Section */
.rk-dl-preview {
    flex: 0 0 250px;
}

.rk-dl-thumb-wrapper {
    position: relative;
    border-radius: 16px;
    border: 2px solid var(--rk-dl-border);
    overflow: hidden;
    cursor: pointer;
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

.rk-dl-thumb-wrapper:hover {
    border-color: var(--rk-dl-blue);
}

.rk-dl-thumb-img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}

.rk-dl-thumb-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(15, 23, 42, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
}

.rk-dl-thumb-wrapper:hover .rk-dl-thumb-overlay {
    opacity: 1;
}

.rk-dl-thumb-icon {
    color: #ffffff;
    width: 48px;
    height: 48px;
}

/* Action Section */
.rk-dl-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

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

.rk-dl-actions {
    display: flex;
    gap: 15px;
}

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

.rk-btn-primary {
    background: var(--rk-dl-blue);
    color: #ffffff;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.2);
}

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

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

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

/* Footer / Copyright */
.rk-dl-footer {
    padding: 20px 40px;
    background: var(--rk-dl-gray);
    border-top: 1px solid var(--rk-dl-border);
    font-size: 13px;
    color: #64748b;
    line-height: 1.5;
    text-align: center;
}

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

/* Modal (Lightbox) - Brak animacji */
.rk-modal-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(15, 23, 42, 0.95);
    z-index: 9999;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.rk-modal-overlay.active {
    display: flex;
}

.rk-modal-content {
    position: relative;
    max-width: 90%;
    max-height: 90vh;
}

.rk-modal-img {
    max-width: 100%;
    max-height: 90vh;
    border-radius: 8px;
    box-shadow: 0 20px 40px rgba(0,0,0,0.4);
    display: block;
}

.rk-modal-close {
    position: absolute;
    top: -40px;
    right: 0;
    background: transparent;
    border: none;
    color: #ffffff;
    font-size: 16px;
    font-weight: 800;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-dl-header { padding: 30px 25px; }
    .rk-dl-header h2 { font-size: 24px; }
    .rk-dl-body { flex-direction: column; padding: 25px; gap: 25px; }
    .rk-dl-preview { flex: none; max-width: 300px; margin: 0 auto; }
    .rk-dl-actions { flex-direction: column; }
    .rk-btn { width: 100%; }
    .rk-dl-footer { padding: 20px 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/"
    },
    "headline": "Materiały do pobrania: Infografika z zasadami układania pętli",
    "description": "Zestawienie graficzne kluczowych parametrów ogrzewania podłogowego. Pobierz darmowy poradnik PDF lub zobacz układ wężownic na zdjęciu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/08/Infografika-Salon-ile-petli-podlogowki.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-06",
    "dateModified": "2026-08-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#dataset-infografika",
    "name": "Wizualne Zestawienie Parametrów Pętli Podłogówki (PDF)",
    "description": "Dokument zawierający graficzne rozmieszczenie stref, limity długości obwodów oraz dopuszczalne opory hydrauliczne dla rury PE-RT 16x2.0.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika ogrzewanie podłogowe",
      "schemat pętli podłogówki pdf do pobrania",
      "jak ułożyć rury w salonie rysunek",
      "długość wężownicy zasady grafika",
      "ściągawka instalatora hvac"
    ],
    "measurementTechnique": "Prezentacja wizualna norm PN-EN 1264 w formie skompresowanych danych ułatwiających kontrolę wykonawczą na budowie.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Plik w formacie WEBP do szybkiego podglądu na urządzeniach mobilnych.",
        "Dokument PDF wysokiej rozdzielczości przygotowany do wydruku.",
        "Obowiązują prawa autorskie dotyczące modyfikacji pliku."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#webapp-przegladarka-pdf",
    "name": "Interaktywna Przeglądarka i Centrum Pobierania",
    "description": "Narzędzie osadzone w artykule umożliwiające natychmiastowy podgląd pełnoekranowy (lightbox) grafiki technicznej oraz pobranie autorskiego pliku PDF.",
    "applicationCategory": "MultimediaApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-download-container" id="rk-dl-app">
    <div class="rk-dl-header">
        <h2>
            <svg width="28" height="28" 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>
            Materiały pomocnicze do artykułu
        </h2>
        <p>Zabierz inżynieryjną wiedzę na budowę. Zapisz zestawienie najważniejszych parametrów i pokaż je swojemu instalatorowi przed wylaniem posadzki.</p>
    </div>

    <div class="rk-dl-body">
        <div class="rk-dl-preview">
            <div class="rk-dl-thumb-wrapper" id="btnPreviewThumb">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/08/Infografika-Salon-ile-petli-podlogowki.webp" alt="Miniatura infografiki: Zasady układania pętli w salonie" class="rk-dl-thumb-img" loading="lazy">
                <div class="rk-dl-thumb-overlay">
                    <svg class="rk-dl-thumb-icon" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                </div>
            </div>
        </div>

        <div class="rk-dl-content">
            <h3 class="rk-dl-title">Zasady układania pętli w salonie (Ściągawka)</h3>
            <p class="rk-dl-desc">Kompletne zestawienie limitów oporów (kPa), maksymalnych długości obwodów oraz normatywnych rozstawów w strefach brzegowych i środkowych.</p>
            
            <div class="rk-dl-actions">
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/08/Infografika-Salon-ile-petli-podlogowki.pdf" target="_blank" rel="noopener noreferrer" class="rk-btn rk-btn-primary">
                    <svg width="20" height="20" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="12" y1="18" x2="12" y2="12"></line><polyline points="9 15 12 18 15 15"></polyline></svg>
                    Pobierz plik PDF
                </a>
                <button type="button" class="rk-btn rk-btn-secondary" id="btnPreviewFull">
                    <svg width="20" height="20" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg>
                    Zobacz obraz
                </button>
            </div>
        </div>
    </div>

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

<!-- Modal Viewer (No animations, instant open/close) -->
<div class="rk-modal-overlay" id="rkLightbox">
    <div class="rk-modal-content">
        <button class="rk-modal-close" id="btnCloseLightbox">
            <svg width="20" height="20" 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>
            Zamknij
        </button>
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/08/Infografika-Salon-ile-petli-podlogowki.webp" alt="Pełny wymiar infografiki" class="rk-modal-img">
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const lightbox = document.getElementById('rkLightbox');
    const btnPreviewThumb = document.getElementById('btnPreviewThumb');
    const btnPreviewFull = document.getElementById('btnPreviewFull');
    const btnCloseLightbox = document.getElementById('btnCloseLightbox');

    function openLightbox() {
        if (lightbox) {
            lightbox.classList.add('active');
        }
    }

    function closeLightbox() {
        if (lightbox) {
            lightbox.classList.remove('active');
        }
    }

    if (btnPreviewThumb) {
        btnPreviewThumb.addEventListener('click', openLightbox);
    }

    if (btnPreviewFull) {
        btnPreviewFull.addEventListener('click', openLightbox);
    }

    if (btnCloseLightbox) {
        btnCloseLightbox.addEventListener('click', closeLightbox);
    }

    // Zamknięcie po kliknięciu w tło (zabezpieczone przez e.target)
    if (lightbox) {
        lightbox.addEventListener('click', function(e) {
            if (e.target === lightbox) {
                closeLightbox();
            }
        });
    }
});
</script>



<style>
:root {
    --rk-rule-dark: #0f172a;
    --rk-rule-blue: #0284c7;
    --rk-rule-light-blue: #f0f9ff;
    --rk-rule-green: #10b981;
    --rk-rule-green-light: #dcfce7;
    --rk-rule-gold: #eab308;
    --rk-rule-gray: #64748b;
    --rk-rule-border: #e2e8f0;
    --rk-rule-bg: #ffffff;
}

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

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

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

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

/* Interaktywny Panel */
.rk-rules-interactive {
    display: flex;
    flex-direction: row;
    background: #f8fafc;
    min-height: 400px;
}

/* Menu pionowe (Taby) */
.rk-rules-nav {
    flex: 0 0 320px;
    background: #ffffff;
    border-right: 1px solid var(--rk-rule-border);
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-rule-btn {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 16px;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 12px;
    cursor: pointer;
    text-align: left;
    transition: all 0.3s ease;
    color: var(--rk-rule-gray);
    font-weight: 600;
    font-size: 15px;
}

.rk-rule-btn:hover {
    background: var(--rk-rule-light-blue);
    color: var(--rk-rule-blue);
}

.rk-rule-btn.active {
    background: var(--rk-rule-blue);
    color: #ffffff;
    border-color: var(--rk-rule-blue);
    box-shadow: 0 10px 15px -3px rgba(2, 132, 199, 0.3);
}

.rk-rule-number {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: rgba(0,0,0,0.05);
    font-weight: 800;
    font-size: 14px;
    transition: all 0.3s ease;
}

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

/* Zawartość Panelu */
.rk-rule-content-area {
    flex: 1;
    padding: 40px;
    background: #f8fafc;
    position: relative;
}

.rk-rule-pane {
    display: none;
    animation: fadeInPane 0.4s ease forwards;
}

.rk-rule-pane.active {
    display: block;
}

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

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

.rk-rule-pane h4 {
    font-size: 18px;
    font-weight: 700;
    color: var(--rk-rule-blue);
    margin: 25px 0 10px 0;
}

.rk-rule-pane p {
    font-size: 16px;
    color: #475569;
    line-height: 1.7;
    margin: 0 0 15px 0;
}

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

.rk-pane-icon {
    width: 48px;
    height: 48px;
    background: var(--rk-rule-green-light);
    color: var(--rk-rule-green);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
}

/* Tagi Długi Ogon */
.rk-tags-wrapper {
    padding: 25px 40px;
    background: #ffffff;
    border-top: 1px solid var(--rk-rule-border);
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

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

.rk-mat-tag:hover {
    background: var(--rk-rule-light-blue);
    color: var(--rk-rule-blue);
    border-color: #bae6fd;
}

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

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

.rk-cta-btn:hover {
    transform: translateY(-4px);
    background: var(--rk-rule-blue);
    box-shadow: 0 15px 25px -5px rgba(2, 132, 199, 0.4);
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-rules-interactive { flex-direction: column; }
    .rk-rules-nav { flex: auto; border-right: none; border-bottom: 1px solid var(--rk-rule-border); }
    .rk-rule-content-area { padding: 25px; }
    .rk-rules-header { padding: 30px 25px; }
    .rk-rules-header h2 { font-size: 24px; }
    .rk-tags-wrapper, .rk-rules-cta { padding: 25px; }
    .rk-cta-btn { width: 100%; padding: 16px; font-size: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#article-podsumowanie-zasad",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/"
    },
    "headline": "Kluczowe zasady projektowania obwodów w salonie",
    "description": "5 najważniejszych wytycznych projektowania ogrzewania podłogowego w salonie, w tym maksymalne długości pętli, rozstaw rur przy oknach i omijanie stałej zabudowy.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-06",
    "dateModified": "2026-08-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#dataset-wytyczne-podlogowka",
    "name": "Normatywne Zasady Układania Pętli Grzewczych w Salonie",
    "description": "Zbiorcze zestawienie norm i dobrych praktyk instalacyjnych dotyczących maksymalnych długości rur, symetrii układu i zagęszczania stref brzegowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "optymalna długość pętli podłogówki salon",
      "ogrzewanie podłogowe rozstaw rur przy oknie",
      "dopuszczalna różnica długości obwodów",
      "strefa brzegowa podłogówki przy drzwiach tarasowych",
      "omijanie zabudowy kuchennej ogrzewanie podłogowe"
    ],
    "measurementTechnique": "Analiza spadków ciśnień hydraulicznych w relacji do długości wężownicy i gęstości strumienia cieplnego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Maksymalna długość pętli rury 16x2.0 nie przekracza 100 metrów.",
        "Asymetria długości obwodów na jednym rozdzielaczu nie większa niż 10-15%.",
        "Rozstaw 10 cm w strefach okiennych, 15 cm w strefach środkowych.",
        "Całkowita rezygnacja z ogrzewania pod stałą zabudową i wyspą kuchenną.",
        "Wykonanie pełnego projektu na bazie OZC wg PN-EN 12831."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/#webapp-interaktywne-zasady",
    "name": "Interaktywny Nawigator Projektanta Ogrzewania",
    "description": "Aplikacja internetowa pozwalająca użytkownikowi na weryfikację własnych założeń projektowych z inżynierskimi standardami dla salonów.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-rules-container" id="rk-rules-app">
    <div class="rk-rules-header">
        <h2>Kluczowe zasady projektowania obwodów w salonie</h2>
        <p>
            Prawidłowe rozplanowanie liczby pętli ogrzewania podłogowego to fundament niezawodności. Zapewnia optymalną pracę niskotemperaturowej pompy ciepła i niweluje ryzyko zimnych stref. Przełączaj zakładki poniżej, aby poznać 5 złotych wytycznych inżynieryjnych.
        </p>
    </div>

    <div class="rk-rules-interactive">
        <div class="rk-rules-nav" id="rkNavRules">
            <button class="rk-rule-btn active" data-rule="1">
                <span class="rk-rule-number">1</span> Limit Długości
            </button>
            <button class="rk-rule-btn" data-rule="2">
                <span class="rk-rule-number">2</span> Zasada Symetrii
            </button>
            <button class="rk-rule-btn" data-rule="3">
                <span class="rk-rule-number">3</span> Strefy Przyokienne
            </button>
            <button class="rk-rule-btn" data-rule="4">
                <span class="rk-rule-number">4</span> Omijanie Zabudowy
            </button>
            <button class="rk-rule-btn" data-rule="5">
                <span class="rk-rule-number">5</span> Wymóg Dokumentacji
            </button>
        </div>

        <div class="rk-rule-content-area" id="rkContentRules">
            <!-- Reguła 1 -->
            <div class="rk-rule-pane active" id="pane-1">
                <div class="rk-pane-icon">
                    <svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242"></path><path d="M12 12v9"></path><path d="m8 17 4 4 4-4"></path></svg>
                </div>
                <h3>100 metrów to absolutna granica</h3>
                <p>Nigdy nie przekraczaj <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">maksymalnej długości pojedynczej pętli</a> wynoszącej 100 m (dla rury 16x2.0 mm). Generuje to olbrzymie opory hydrauliczne.</p>
                <h4>Cel inżynierski:</h4>
                <p>Optymalny przedział projektowy to bezpieczne 80 do 90 metrów, co wlicza już odcinek dobiegowy od rozdzielacza do salonu.</p>
            </div>

            <!-- Reguła 2 -->
            <div class="rk-rule-pane" id="pane-2">
                <div class="rk-pane-icon">
                    <svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="3" width="20" height="14" rx="2" ry="2"></rect><line x1="8" y1="21" x2="16" y2="21"></line><line x1="12" y1="17" x2="12" y2="21"></line></svg>
                </div>
                <h3>Balans i układ symetryczny</h3>
                <p>Dąż do sytuacji, w której pętle obsługujące ten sam salon mają zbliżoną długość. Unikaj sytuacji, gdzie jedna wężownica ma 90 m, a druga obok zaledwie 30 m.</p>
                <h4>Cel inżynierski:</h4>
                <p><a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/">Dopuszczalna różnica długości obwodów</a> nie powinna być większa niż 10-15%. Tylko to gwarantuje łatwą, niemal samoczynną regulację przepływów na rotametrach.</p>
            </div>

            <!-- Reguła 3 -->
            <div class="rk-rule-pane" id="pane-3">
                <div class="rk-pane-icon">
                    <svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 3v18"></path><path d="M3 21h18"></path><path d="m3 3 18 18"></path></svg>
                </div>
                <h3>Zagęszczanie przy oknach tarasowych</h3>
                <p>Nie traktuj całego salonu jednym rozstawem. Przy dużych przeszkleniach (HS, HST) straty ciepła gwałtownie rosną, generując ciąg chłodnego powietrza.</p>
                <h4>Cel inżynierski:</h4>
                <p>Zastosuj <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/">strefę brzegową</a>. W odległości 1-1.5m od okna rury układa się co 10 cm, podczas gdy w strefie środkowej salonu bezpiecznie rozkładasz je co 15 cm.</p>
            </div>

            <!-- Reguła 4 -->
            <div class="rk-rule-pane" id="pane-4">
                <div class="rk-pane-icon">
                    <svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v4"></path><polyline points="14 2 14 8 20 8"></polyline><path d="M2 15h10"></path><path d="m9 18 3-3-3-3"></path></svg>
                </div>
                <h3>Inteligentne omijanie zabudowy</h3>
                <p>Grzanie bezpośrednio pod meblami ze stałym cokołem to marnowanie energii pompy ciepła i ryzyko rozeschnięcia się stolarki meblowej.</p>
                <h4>Cel inżynierski:</h4>
                <p><a href="https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/">Projektuj pętle wyłącznie na powierzchni czynnej</a>. Zawsze eliminuj z obrysu układania rur kuchenne wyspy, szafy wnękowe oraz obudowy kominków.</p>
            </div>

            <!-- Reguła 5 -->
            <div class="rk-rule-pane" id="pane-5">
                <div class="rk-pane-icon">
                    <svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
                </div>
                <h3>Twarde wyliczenia, a nie szacunki</h3>
                <p>Rozkładanie instalacji na podstawie "doświadczenia murarskiego" prowadzi do przebarwień na posadzce i niedogrzanych salonów zimą.</p>
                <h4>Cel inżynierski:</h4>
                <p>Każda realizacja wymaga <a href="https://projekt-ogrzewania.pl/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">profesjonalnego projektu instalacji</a>, który musi opierać się na chłodnych wyliczeniach matematycznych OZC wg normy PN-EN 12831.</p>
            </div>
        </div>
    </div>

    <div class="rk-tags-wrapper">
        <span class="rk-mat-tag"># optymalna długość pętli podłogówki salon</span>
        <span class="rk-mat-tag"># ogrzewanie podłogowe rozstaw rur przy oknie</span>
        <span class="rk-mat-tag"># dopuszczalna różnica długości obwodów</span>
        <span class="rk-mat-tag"># strefa brzegowa podłogówki przy drzwiach tarasowych</span>
        <span class="rk-mat-tag"># omijanie zabudowy kuchennej ogrzewanie podłogowe</span>
        <span class="rk-mat-tag"># profesjonalny projekt podłogówki do salonu</span>
        <span class="rk-mat-tag"># maksymalna długość wężownicy rura 16x2</span>
        <span class="rk-mat-tag"># układanie rur podłogówki pod meblami</span>
        <span class="rk-mat-tag"># równoważenie hydrauliczne pętli grzewczych</span>
        <span class="rk-mat-tag"># projektowe obciążenie cieplne ozc salon</span>
    </div>

    <div class="rk-rules-cta">
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-cta-btn">
            POZNAJ WIĘCEJ INŻYNIERYJNYCH SEKRETÓW
            <svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const navButtons = document.querySelectorAll('.rk-rule-btn');
    const panes = document.querySelectorAll('.rk-rule-pane');

    navButtons.forEach(function(button) {
        button.addEventListener('click', function() {
            // Bezpieczny warunek bez uzycia &&
            const targetId = this.getAttribute('data-rule');
            
            if (targetId) {
                // Czyszczenie klas aktywnych dla przyciskow
                navButtons.forEach(function(btn) {
                    btn.classList.remove('active');
                });
                
                // Dodanie klasy do kliknietego
                this.classList.add('active');

                // Czyszczenie klas aktywnych dla paneli
                panes.forEach(function(pane) {
                    pane.classList.remove('active');
                });

                // Aktywacja wlasciwego panelu
                const targetPane = document.getElementById('pane-' + targetId);
                if (targetPane) {
                    targetPane.classList.add('active');
                }
            }
        });
    });
});
</script>



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

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

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

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

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

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Article",
      "@id": "https://projekt-ogrzewania.pl/google-preferred-sources#article",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://projekt-ogrzewania.pl/google-preferred-sources"
      },
      "headline": "Wspieraj Projekt-Ogrzewania.pl w wynikach Google",
      "description": "Interaktywny widget umożliwiający dodanie portalu Projekt-Ogrzewania.pl do ulubionych źródeł w wyszukiwarce Google. Buduj z nami rzetelną bazę wiedzy o HVAC.",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
      "author": {
        "@type": "Person",
        "name": "Robert Kucharski",
        "url": "https://projekt-ogrzewania.pl/",
        "sameAs": [
          "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
          "https://www.facebook.com/projektogrzewaniapl/",
          "https://www.linkedin.com/in/robert-kucharski-38069b48/",
          "https://x.com/Projekt_HVAC",
          "https://remont.biz.pl/",
          "https://sobir.pl/"
        ]
      },
      "publisher": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl",
        "logo": {
          "@type": "ImageObject",
          "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
        }
      },
      "datePublished": "2026-07-09",
      "dateModified": "2026-07-09"
    },
    {
      "@type": "Dataset",
      "@id": "https://projekt-ogrzewania.pl/google-preferred-sources#dataset",
      "name": "Preferowane Źródła Google - Statystyki i Interakcja",
      "description": "Zbiór danych i interaktywnych punktów styku pozwalających na ocenę preferencji czytelników dla treści technicznych HVAC.",
      "license": "https://projekt-ogrzewania.pl/",
      "creator": {
        "@type": "Person",
        "name": "Robert Kucharski"
      },
      "keywords": [
        "ulubione źródła google",
        "preferowane wyniki wyszukiwania",
        "autorytet domeny hvac",
        "zaufane portale budowlane",
        "personalizacja google search"
      ],
      "measurementTechnique": "Zliczanie interakcji z widgetem UI typu toggle oraz przekierowań do interfejsu preferencji Google Search",
      "mainEntity": "Optymalizacja zaangażowania użytkownika poprzez interaktywny widget dodawania domeny do preferencji Google."
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/google-preferred-sources#webapplication",
      "name": "Google Preferences Toggle Widget",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "All",
      "description": "Aplikacja webowa w formie widgetu symulującego przełącznik mobilny, integrująca natywne linkowanie do ustawień preferowanych źródeł Google.",
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "PLN"
      }
    }
  ]
}
</script>


<p>Artykuł <a href="https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/">Salon ile pętli podłogówki?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Ile rury na m² ogrzewania podłogowego?</title>
		<link>https://projekt-ogrzewania.pl/ile-rury-na-m%c2%b2-ogrzewania-podlogowego/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Mon, 16 Dec 2024 13:46:32 +0000</pubDate>
				<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Planowanie instalacji grzewczych]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Projekty ogrzewania]]></category>
		<category><![CDATA[Rozstaw pętli]]></category>
		<category><![CDATA[ile rury na m2]]></category>
		<category><![CDATA[instalacja grzewcza]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[planowanie instalacji]]></category>
		<category><![CDATA[porady budowlane]]></category>
		<category><![CDATA[rozstaw pętli]]></category>
		<category><![CDATA[rury do podłogówki]]></category>
		<category><![CDATA[system ogrzewania]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=1771</guid>

					<description><![CDATA[<p>Ogrzewanie podłogowe to doskonały wybór dla każdego domu, ale ile rury potrzeba na m² instalacji? Sprawdź przeliczniki dla rozstawów pętli i dowiedz się, jak zaplanować efektywną instalację. W artykule znajdziesz szczegółowe wskazówki, obliczenia i praktyczne porady. Dowiedz się, jak rozstaw pętli wpływa na efektywność systemu, jakie są najważniejsze zasady przy doborze rur i dlaczego warto skorzystać z darmowego projektu instalacji.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-rury-na-m%c2%b2-ogrzewania-podlogowego/">Ile rury na m² ogrzewania podłogowego?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-panel: #1e293b;
    --rk-intro-brand: #0284c7; /* Expert Blue */
    --rk-intro-brand-light: #e0f2fe;
    --rk-intro-accent: #0ea5e9;
    --rk-intro-success: #10b981;
    --rk-intro-bg: #f8fafc;
    --rk-intro-card: #ffffff;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #334155;
    --rk-intro-text-light: #64748b;
}

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

/* Nagłówek i Hook */
.rk-intro-header {
    background: var(--rk-intro-dark);
    padding: 45px 50px 40px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-intro-brand);
}

.rk-intro-header::before {
    content: '';
    position: absolute;
    right: 0;
    top: 0;
    width: 40%;
    height: 100%;
    background: radial-gradient(ellipse at top right, rgba(2, 132, 199, 0.2) 0%, transparent 70%);
    pointer-events: none;
}

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

.rk-intro-header p {
    font-size: 17px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0;
    max-width: 800px;
    position: relative;
    z-index: 2;
}

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

/* Szybka Odpowiedź (Quick Answer Box) */
.rk-intro-quick-answer {
    margin: -20px 50px 30px;
    background: var(--rk-intro-card);
    border-radius: 16px;
    padding: 30px;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.1);
    border: 1px solid var(--rk-intro-border);
    border-left: 6px solid var(--rk-intro-brand);
    position: relative;
    z-index: 3;
    display: flex;
    align-items: flex-start;
    gap: 20px;
}

.rk-intro-qa-icon {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    background: var(--rk-intro-brand-light);
    color: var(--rk-intro-brand);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-intro-qa-icon svg { width: 28px; height: 28px; stroke-width: 2.5; }

.rk-intro-qa-content h3 {
    margin: 0 0 10px 0;
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--rk-intro-brand);
}

.rk-intro-qa-content p {
    margin: 0;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.5;
    color: var(--rk-intro-dark);
}

.rk-intro-qa-content span {
    display: block;
    font-size: 15px;
    font-weight: 400;
    color: var(--rk-intro-text-light);
    margin-top: 8px;
}

/* Agenda / Narzędzia w artykule */
.rk-intro-tools-section {
    padding: 10px 50px 45px;
}

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

.rk-intro-tools-title svg {
    color: var(--rk-intro-success);
}

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

.rk-intro-tool-card {
    background: #ffffff;
    border: 1px solid var(--rk-intro-border);
    padding: 20px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    gap: 15px;
    transition: transform 0.2s, box-shadow 0.2s;
}

.rk-intro-tool-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 15px -3px rgba(0,0,0,0.05);
    border-color: #bae6fd;
}

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

.rk-intro-tool-icon svg { width: 20px; height: 20px; }

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

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

@media (max-width: 768px) {
    .rk-intro-header { padding: 35px 25px 50px; }
    .rk-intro-header h2 { font-size: 26px; }
    .rk-intro-quick-answer { margin: -30px 20px 30px; padding: 25px 20px; flex-direction: column; gap: 15px; }
    .rk-intro-tools-section { padding: 10px 20px 35px; }
    .rk-intro-tools-grid { grid-template-columns: 1fr; }
    .rk-intro-qa-content p { font-size: 17px; }
}
</style>

<div class="rk-intro-wrapper">
    <div class="rk-intro-header">
        <h2>Ile rury na m² ogrzewania podłogowego? Kompletny przewodnik inwestora</h2>
        <p>Wybór odpowiedniej ilości materiałów to być albo nie być Twojego systemu grzewczego. To, ile rury na m² ogrzewania podłogowego musisz kupić, zależy bezpośrednio od rozstawu pętli. Kupowanie rur &#8222;na oko&#8221; to najprostsza droga do niedogrzanego domu, tzw. zebry cieplnej i wyrzucania pieniędzy na ścinki. <strong>Z perspektywy specjalisty HVAC z ponad tysiącem projektów na koncie, powiem wprost: tu liczy się fizyka, nie intuicja instalatora.</strong></p>
    </div>

    <div class="rk-intro-quick-answer">
        <div class="rk-intro-qa-icon">
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
        </div>
        <div class="rk-intro-qa-content">
            <h3>Szybka odpowiedź</h3>
            <p>Standardowo na 1 m² podłogówki przypada od 4 do 10 metrów bieżących (mb) rury PEX/PERT. Najpopularniejszy w salonach rozstaw co 15 cm wymaga użycia dokładnie 7 mb rury na każdy metr kwadratowy powierzchni.</p>
            <span>Aby uniknąć braku materiału, do całkowitego wyniku obliczeń dla budynku dolicza się zawsze 10% zapasu operacyjnego na dobiegi do rozdzielacza i łuki.</span>
        </div>
    </div>

    <div class="rk-intro-tools-section">
        <h3 class="rk-intro-tools-title">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            Narzędzia interaktywne w tym artykule:
        </h3>
        
        <div class="rk-intro-tools-grid">
            <div class="rk-intro-tool-card">
                <div class="rk-intro-tool-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                </div>
                <div class="rk-intro-tool-text">
                    <h4>Symulator Zapotrzebowania</h4>
                    <p>Oblicz zużycie materiału i dopasowanie do stref (np. łazienka vs salon) w zależności od rozstawu.</p>
                </div>
            </div>

            <div class="rk-intro-tool-card">
                <div class="rk-intro-tool-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>
                </div>
                <div class="rk-intro-tool-text">
                    <h4>Kalkulator Zakupowy Domu</h4>
                    <p>Gotowe wyliczenia kompletnych zwojów i zapasów dla domów 100 m², 150 m² oraz 200 m².</p>
                </div>
            </div>

            <div class="rk-intro-tool-card">
                <div class="rk-intro-tool-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12H2"></path><path d="M5 8v8M10 8v8M14 8v8M19 8v8"></path></svg>
                </div>
                <div class="rk-intro-tool-text">
                    <h4>Limity Hydrauliczne (Opory)</h4>
                    <p>Weryfikacja maksymalnej długości pętli (np. 100 mb dla 16mm) i wpływu średnic na przepływ.</p>
                </div>
            </div>

            <div class="rk-intro-tool-card">
                <div class="rk-intro-tool-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                </div>
                <div class="rk-intro-tool-text">
                    <h4>Skaner Błędów Wykonawczych</h4>
                    <p>Checklista najgroźniejszych uchybień instalacyjnych grożących kuciem wylewki.</p>
                </div>
            </div>
        </div>
    </div>
</div>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#article-intro",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/"
    },
    "headline": "Ile rury na m² ogrzewania podłogowego? Kompletny przewodnik inwestora",
    "description": "Szybka odpowiedź: na 1 m2 podłogówki przy rozstawie co 15 cm przypada 7 metrów bieżących rury. Poznaj profesjonalne wyliczenia, kalkulatory OZC i limity hydrauliczne instalacji.",
    "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-05",
    "dateModified": "2026-06-05"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#dataset-intro",
    "name": "Baza danych zapotrzebowania materiałowego ogrzewania płaszczyznowego",
    "description": "Ogólne zestawienie najważniejszych wskaźników inżynierskich potrzebnych do wyliczenia zużycia rur instalacji podłogowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ile rury na m2 ogrzewania podłogowego",
      "ile metrów rury na m2",
      "rozstaw pętli ogrzewania podłogowego",
      "zapotrzebowanie rury podłogówka",
      "kalkulator rur ogrzewanie podłogowe"
    ],
    "measurementTechnique": "Przeliczenie standardowych wytycznych branżowych dla rur PEX/PERT na uśrednione zużycie mb/m2 ze stałym uwzględnieniem 10% naddatku montażowego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Szybka Odpowiedź: Rozstaw 15 cm wymaga zużycia operacyjnego na poziomie 7 mb/m2.",
        "Limity: Całkowity rozrzut zużycia materiału waha się od 4 mb/m2 do 10 mb/m2 w zależności od docelowej temperatury pomieszczenia.",
        "Zapas materiałowy: 10% doliczane do całkowitej sumy na tranzyty (dobiegi) i opory gięcia na łukach."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#webapp-intro",
    "name": "Przewodnik po kalkulatorach ogrzewania podłogowego",
    "description": "Panel nawigacyjny (Dashboard) stanowiący bezpośrednie odniesienie do interaktywnych narzędzi technicznych zamieszczonych w artykule, informujący algorytmy o obecności interaktywnych elementów DOM.",
    "applicationCategory": "ReferenceApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>



<style>
:root {
    --rk-pipe-dark: #0f172a;
    --rk-pipe-panel: #1e293b;
    --rk-pipe-brand: #0891b2; /* Cyan 600 */
    --rk-pipe-brand-light: #cffafe;
    --rk-pipe-accent: #22d3ee;
    --rk-pipe-alert: #eab308;
    --rk-pipe-alert-bg: #fefce8;
    --rk-pipe-bg: #f8fafc;
    --rk-pipe-card: #ffffff;
    --rk-pipe-border: #e2e8f0;
    --rk-pipe-text: #334155;
    --rk-pipe-text-light: #64748b;
}

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

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

.rk-pipe-header::after {
    content: '';
    position: absolute;
    right: 0;
    top: 0;
    width: 300px;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(8, 145, 178, 0.15));
    pointer-events: none;
}

.rk-pipe-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 12px;
    position: relative;
    z-index: 2;
}

.rk-pipe-header p {
    font-size: 16px;
    line-height: 1.6;
    color: #cbd5e1;
    margin: 0;
    max-width: 750px;
    position: relative;
    z-index: 2;
}

/* Obszar Roboczy */
.rk-pipe-body {
    padding: 40px 50px;
}

/* Panel Kontrolny (Przełączniki) */
.rk-pipe-controls {
    display: flex;
    gap: 15px;
    background: var(--rk-pipe-panel);
    padding: 12px;
    border-radius: 20px;
    margin-bottom: 30px;
}

.rk-pipe-btn {
    flex: 1;
    background: transparent;
    border: none;
    padding: 16px 20px;
    border-radius: 14px;
    color: #94a3b8;
    font-size: 16px;
    font-weight: 800;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-pipe-btn:hover {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.05);
}

.rk-pipe-btn.active {
    background: var(--rk-pipe-brand);
    color: #ffffff;
    box-shadow: 0 4px 15px rgba(8, 145, 178, 0.4);
}

.rk-pipe-btn-icon {
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Wizualizacja Rury (SVG) */
.rk-pipe-visual-box {
    background: #ffffff;
    border: 1px solid var(--rk-pipe-border);
    border-radius: 20px;
    height: 120px;
    margin-bottom: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    box-shadow: inset 0 4px 6px rgba(0,0,0,0.02);
}

.rk-pipe-visual-box::before {
    content: 'PRZEKRÓJ / STRUMIEŃ';
    position: absolute;
    top: 15px;
    left: 20px;
    font-size: 11px;
    font-weight: 800;
    color: var(--rk-pipe-text-light);
    letter-spacing: 1.5px;
}

.rk-pipe-svg-container {
    width: 100%;
    max-width: 500px;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.3s;
}

/* Siatka 2x2 */
.rk-pipe-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-bottom: 35px;
}

.rk-pipe-card {
    background: var(--rk-pipe-card);
    border: 1px solid var(--rk-pipe-border);
    padding: 25px 20px;
    border-radius: 16px;
    text-align: center;
    transition: transform 0.3s ease, border-color 0.3s;
}

.rk-pipe-card:hover {
    transform: translateY(-4px);
    border-color: var(--rk-pipe-accent);
    box-shadow: 0 10px 20px -5px rgba(8, 145, 178, 0.1);
}

.rk-pipe-icon {
    width: 48px;
    height: 48px;
    margin: 0 auto 15px auto;
    background: var(--rk-pipe-brand-light);
    color: var(--rk-pipe-brand);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-pipe-icon svg { width: 24px; height: 24px; stroke-width: 2; }

.rk-pipe-label {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--rk-pipe-text-light);
    letter-spacing: 1px;
    margin-bottom: 8px;
}

.rk-pipe-val {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-pipe-dark);
    margin-bottom: 6px;
}

.rk-pipe-desc {
    font-size: 13px;
    color: var(--rk-pipe-text);
    line-height: 1.4;
}

/* Złota Zasada (Alert) */
.rk-pipe-alert {
    background: var(--rk-pipe-alert-bg);
    border: 1px solid #fde047;
    border-left: 5px solid var(--rk-pipe-alert);
    border-radius: 16px;
    padding: 25px 30px;
    display: flex;
    gap: 20px;
    align-items: flex-start;
}

.rk-pipe-alert-icon {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    background: var(--rk-pipe-alert);
    color: #ffffff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-pipe-alert-content h4 {
    margin: 0 0 8px 0;
    font-size: 18px;
    font-weight: 800;
    color: #854d0e;
}

.rk-pipe-alert-content p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: #a16207;
}

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

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

.rk-pipe-cta p {
    color: var(--rk-pipe-text-light);
    margin: 0 auto 25px auto;
    max-width: 600px;
    line-height: 1.6;
}

.rk-pipe-btn-massive {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-pipe-dark);
    color: #ffffff;
    font-size: 16px;
    font-weight: 800;
    padding: 18px 35px;
    border-radius: 14px;
    text-decoration: none;
    transition: all 0.3s;
}

.rk-pipe-btn-massive:hover {
    background: var(--rk-pipe-panel);
    transform: translateY(-4px);
    box-shadow: 0 10px 20px -5px rgba(15, 23, 42, 0.3);
}

/* Animacje Wody */
@keyframes rk-flow {
    from { stroke-dashoffset: 40; }
    to { stroke-dashoffset: 0; }
}
.rk-anim-flow { stroke-dasharray: 10 10; animation: rk-flow 0.8s linear infinite; }
.rk-anim-flow-fast { stroke-dasharray: 15 15; animation: rk-flow 0.5s linear infinite; }

/* RWD */
@media (max-width: 768px) {
    .rk-pipe-header, .rk-pipe-body, .rk-pipe-cta { padding: 30px 20px; }
    .rk-pipe-controls { flex-direction: row; overflow-x: auto; padding: 10px; }
    .rk-pipe-btn { min-width: 130px; padding: 14px 10px; }
    .rk-pipe-grid { grid-template-columns: 1fr; } /* Na mobilkach spada jedno pod drugie */
    .rk-pipe-alert { flex-direction: column; padding: 20px; gap: 15px; }
    .rk-pipe-btn-massive { width: 100%; }
}
</style>

<div class="rk-pipe-container">
    <div class="rk-pipe-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"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
            Maksymalna długość pętli a średnica rury
        </h2>
        <p>Przekroczenie granicznych długości drastycznie zwiększa opory hydrauliczne. W efekcie pompa obiegowa nie przepcha wody, a pomieszczenie będzie niedogrzane. Wybierz średnicę rury, by sprawdzić parametry dla zrównoważonego układu.</p>
    </div>

    <div class="rk-pipe-body">
        
        <div class="rk-pipe-controls">
            <button class="rk-pipe-btn active" data-diam="16">
                <span class="rk-pipe-btn-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="6"></circle></svg></span>
                Ø 16 mm
            </button>
            <button class="rk-pipe-btn" data-diam="17">
                <span class="rk-pipe-btn-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="8"></circle></svg></span>
                Ø 17 mm
            </button>
            <button class="rk-pipe-btn" data-diam="20">
                <span class="rk-pipe-btn-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></svg></span>
                Ø 20 mm
            </button>
        </div>

        <div class="rk-pipe-visual-box">
            <div class="rk-pipe-svg-container" id="rkPipeVisual">
                </div>
        </div>

        <div class="rk-pipe-grid">
            <div class="rk-pipe-card">
                <div class="rk-pipe-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12H2"></path><path d="M5 8v8M10 8v8M14 8v8M19 8v8"></path></svg>
                </div>
                <div class="rk-pipe-label">Twardy Limit</div>
                <div class="rk-pipe-val" id="rkPipeMax">100 mb</div>
                <div class="rk-pipe-desc">Z podejściami do rozdzielacza</div>
            </div>

            <div class="rk-pipe-card">
                <div class="rk-pipe-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><circle cx="12" cy="12" r="6"></circle><circle cx="12" cy="12" r="2"></circle></svg>
                </div>
                <div class="rk-pipe-label">Zakres Optymalny</div>
                <div class="rk-pipe-val" id="rkPipeOpt">70–90 mb</div>
                <div class="rk-pipe-desc">Bezpieczny bufor pracy pompy</div>
            </div>

            <div class="rk-pipe-card">
                <div class="rk-pipe-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" 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>
                <div class="rk-pipe-label">Opór Hydrauliczny</div>
                <div class="rk-pipe-val" id="rkPipeRes">Max 20 kPa</div>
                <div class="rk-pipe-desc" id="rkPipeResDesc">Przy 1,5–2,0 l/min</div>
            </div>

            <div class="rk-pipe-card">
                <div class="rk-pipe-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>
                </div>
                <div class="rk-pipe-label">Zastosowanie</div>
                <div class="rk-pipe-val" style="font-size: 20px;" id="rkPipeApp">Domy jednorodzinne</div>
                <div class="rk-pipe-desc" id="rkPipeAppDesc">PEX 16&#215;2 to standard rynkowy</div>
            </div>
        </div>

        <div class="rk-pipe-alert">
            <div class="rk-pipe-alert-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"><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
            </div>
            <div class="rk-pipe-alert-content">
                <h4>Złota zasada: Różnice pętli max. 10–15%</h4>
                <p>Niezależnie od wybranej średnicy rury, długości obwodów wpiętych w jeden <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielacz</a> nie powinny różnić się o więcej niż 15%. Spięcie pętli 100 mb z obwodem 20 mb sprawia, że woda płynie linią najmniejszego oporu. Najkrótsza pętla zabiera przepływ, uniemożliwiając regulację na rotametrach.</p>
            </div>
        </div>

    </div>

    <div class="rk-pipe-cta">
        <h4>Nie pozwól, aby instalator zgadywał opory</h4>
        <p>Błędnie dobrana długość pętli zrujnuje rachunki za prąd w pompie ciepła. Przeczytaj więcej wytycznych technicznych i zaprojektuj instalację jak inżynier.</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-pipe-btn-massive">
            SPRAWDŹ BAZĘ WIEDZY EKSKLUZYWNEJ
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const buttons = document.querySelectorAll('.rk-pipe-btn');
    const visual = document.getElementById('rkPipeVisual');
    
    const elMax = document.getElementById('rkPipeMax');
    const elOpt = document.getElementById('rkPipeOpt');
    const elRes = document.getElementById('rkPipeRes');
    const elResDesc = document.getElementById('rkPipeResDesc');
    const elApp = document.getElementById('rkPipeApp');
    const elAppDesc = document.getElementById('rkPipeAppDesc');

    const db = {
        "16": {
            max: "100 mb", opt: "70–90 mb", res: "Max 20 kPa", resDesc: "Przy 1,5–2,0 l/min", app: "Domy jednorodz.", appDesc: "PEX 16x2 to standard rynkowy",
            svg: `<svg viewBox="0 0 400 100" fill="none" stroke="currentColor">
                    <path d="M 20 50 L 380 50" stroke="#e2e8f0" stroke-width="20" stroke-linecap="round"/>
                    <path d="M 20 50 L 380 50" stroke="#0891b2" stroke-width="8" stroke-linecap="round" class="rk-anim-flow"/>
                  </svg>`
        },
        "17": {
            max: "120 mb", opt: "80–100 mb", res: "Spadek -25%", resDesc: "Względem oporów rury 16mm", app: "Systemowe", appDesc: "Do dedykowanych rozwiązań",
            svg: `<svg viewBox="0 0 400 100" fill="none" stroke="currentColor">
                    <path d="M 20 50 L 380 50" stroke="#e2e8f0" stroke-width="26" stroke-linecap="round"/>
                    <path d="M 20 50 L 380 50" stroke="#06b6d4" stroke-width="14" stroke-linecap="round" class="rk-anim-flow"/>
                  </svg>`
        },
        "20": {
            max: "150 mb", opt: "100–130 mb", res: "Niskie opory", resDesc: "Większy zład i strumień wody", app: "Hale / Przemysł", appDesc: "Wymaga zasilania 1-calowego",
            svg: `<svg viewBox="0 0 400 100" fill="none" stroke="currentColor">
                    <path d="M 20 50 L 380 50" stroke="#e2e8f0" stroke-width="36" stroke-linecap="round"/>
                    <path d="M 20 50 L 380 50" stroke="#22d3ee" stroke-width="24" stroke-linecap="round" class="rk-anim-flow-fast"/>
                  </svg>`
        }
    };

    function updateData(diam) {
        const data = db[diam];
        elMax.innerHTML = data.max;
        elOpt.innerHTML = data.opt;
        elRes.innerHTML = data.res;
        elResDesc.innerHTML = data.resDesc;
        elApp.innerHTML = data.app;
        elAppDesc.innerHTML = data.appDesc;
        visual.innerHTML = data.svg;
    }

    buttons.forEach(btn => {
        btn.addEventListener('click', function() {
            buttons.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            
            visual.style.opacity = 0;
            setTimeout(() => {
                updateData(this.getAttribute('data-diam'));
                visual.style.opacity = 1;
            }, 200);
        });
    });

    updateData('16');
});
</script>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#article-srednice-rur",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/"
    },
    "headline": "Maksymalna długość pętli a średnica rury – parametry hydrauliczne",
    "description": "Zestawienie parametrów hydraulicznych instalacji ogrzewania podłogowego. Sprawdź limity długości pętli (100 mb dla 16mm) oraz zasady zrównoważenia przepływów na rotametrach.",
    "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-05",
    "dateModified": "2026-06-05"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#dataset-srednice-rur",
    "name": "Kalkulator Oporów Hydraulicznych i Średnic Rur PEX/PERT",
    "description": "Inżynierskie zestawienie limitów określających maksymalne długości pętli grzewczych (100 mb, 120 mb, 150 mb) w zależności od dobranej średnicy rury.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna długość pętli ogrzewania podłogowego",
      "średnica rury do podłogówki 16 czy 17",
      "opory hydrauliczne ogrzewania podłogowego",
      "zrównoważenie pętli ogrzewania",
      "rura pex 20mm podłogówka"
    ],
    "measurementTechnique": "Analiza przepływów (l/min) i spadków ciśnień (kPa) w wężownicach polietylenowych na potrzeby doboru pomp obiegowych i rotametrów.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rura PEX 16 mm: Limit 100 mb, opór hydrauliczny do 20 kPa przy przepływie 1,5-2,0 l/min.",
        "Rura PEX 17 mm: Limit 120 mb, opory niższe o ok. 25% przy tym samym strumieniu wody.",
        "Rura PEX 20 mm: Limit 150 mb, dedykowana do przemysłu, wymaga większych rozdzielaczy.",
        "Zrównoważenie: Bezwzględny zakaz różnicowania długości pętli na jednym rozdzielaczu powyżej 15%."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#webapp-srednice-rur",
    "name": "Symulator Średnic i Oporów Hydraulicznych PEX",
    "description": "Interaktywny panel w architekturze siatki 2x2, umożliwiający sprawdzenie wpływu średnicy rury na graniczne długości pętli, opór hydrauliczny i docelowe zastosowanie w budownictwie.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>



<style>
:root {
    --rk-est-dark: #064e3b; /* Głęboka zieleń/szmaragd */
    --rk-est-panel: #065f46;
    --rk-est-brand: #10b981; /* Szmaragdowy */
    --rk-est-brand-light: #d1fae5;
    --rk-est-accent: #34d399;
    --rk-est-text: #334155;
    --rk-est-text-light: #64748b;
    --rk-est-bg: #f8fafc;
    --rk-est-card: #ffffff;
    --rk-est-border: #e2e8f0;
    --rk-est-highlight: #f59e0b;
}

.rk-estimate-wrapper {
    max-width: 950px;
    margin: 60px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-est-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(6, 78, 59, 0.15);
    border: 1px solid var(--rk-est-border);
    overflow: hidden;
}

/* Nagłówek H2 */
.rk-est-header {
    background: var(--rk-est-dark);
    padding: 45px 50px 30px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-est-brand);
}

.rk-est-header::after {
    content: '';
    position: absolute;
    right: 0;
    top: 0;
    height: 100%;
    width: 350px;
    background: linear-gradient(90deg, transparent, rgba(16, 185, 129, 0.15));
    pointer-events: none;
}

.rk-est-header h2 {
    font-size: 28px;
    font-weight: 900;
    color: #ffffff;
    margin: 0 0 15px 0;
    line-height: 1.3;
    display: flex;
    align-items: center;
    gap: 12px;
    position: relative;
    z-index: 2;
}

.rk-est-header p {
    font-size: 16px;
    line-height: 1.6;
    color: #a7f3d0;
    margin: 0;
    max-width: 800px;
    position: relative;
    z-index: 2;
}

.rk-est-header a {
    color: var(--rk-est-highlight);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-est-highlight);
    transition: all 0.2s;
}

.rk-est-header a:hover {
    color: #ffffff;
    border-bottom-style: solid;
}

/* Obszar Roboczy */
.rk-est-body {
    padding: 40px 50px;
}

/* Przełączniki Metrażu (Tabs) */
.rk-est-tabs {
    display: flex;
    gap: 15px;
    background: #ffffff;
    padding: 10px;
    border-radius: 20px;
    margin-bottom: 35px;
    border: 1px solid var(--rk-est-border);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-est-tab-btn {
    flex: 1;
    padding: 18px 10px;
    border: 2px solid transparent;
    background: var(--rk-est-bg);
    border-radius: 14px;
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-est-text-light);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

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

.rk-est-tab-btn.active {
    background: var(--rk-est-brand-light);
    color: var(--rk-est-dark);
    border-color: var(--rk-est-brand);
    box-shadow: 0 4px 15px rgba(16, 185, 129, 0.2);
}

.rk-est-tab-icon {
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-est-tab-btn.active .rk-est-tab-icon {
    color: var(--rk-est-brand);
}

/* Główny Dashboard Wyników */
.rk-est-dashboard {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 30px;
    margin-bottom: 30px;
}

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

.rk-est-card {
    background: var(--rk-est-card);
    border: 1px solid var(--rk-est-border);
    padding: 25px 20px;
    border-radius: 16px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    transition: transform 0.3s ease, border-color 0.3s;
    position: relative;
    overflow: hidden;
}

.rk-est-card:hover {
    transform: translateY(-3px);
    border-color: var(--rk-est-accent);
}

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

.rk-est-card-icon {
    width: 36px;
    height: 36px;
    background: var(--rk-est-bg);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-est-brand);
}

.rk-est-card-icon svg { width: 20px; height: 20px; }

.rk-est-card-title {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--rk-est-text-light);
    letter-spacing: 0.5px;
    margin: 0;
}

.rk-est-card-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-est-dark);
    margin-bottom: 5px;
}

.rk-est-card-desc {
    font-size: 13px;
    color: var(--rk-est-text);
    line-height: 1.4;
}

/* Karta Głównego Wyniku (Suma) */
.rk-est-total-card {
    background: linear-gradient(145deg, var(--rk-est-dark) 0%, var(--rk-est-panel) 100%);
    border-radius: 20px;
    padding: 30px;
    color: #ffffff;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-shadow: 0 15px 30px -10px rgba(6, 78, 59, 0.4);
    position: relative;
    overflow: hidden;
}

.rk-est-total-card::before {
    content: '';
    position: absolute;
    top: -50px;
    right: -50px;
    width: 150px;
    height: 150px;
    background: rgba(16, 185, 129, 0.2);
    border-radius: 50%;
    pointer-events: none;
}

.rk-est-total-label {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--rk-est-accent);
    margin-bottom: 10px;
}

.rk-est-total-val {
    font-size: 42px;
    font-weight: 900;
    margin-bottom: 10px;
    line-height: 1;
    text-shadow: 0 2px 10px rgba(0,0,0,0.2);
}

.rk-est-total-desc {
    font-size: 14px;
    color: var(--rk-est-brand-light);
    margin-bottom: 25px;
    line-height: 1.5;
}

.rk-est-svg-box {
    height: 100px;
    width: 100%;
    display: flex;
    align-items: flex-end;
    justify-content: center;
}

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

/* Alert Box na dole */
.rk-est-alert {
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-left: 5px solid var(--rk-est-highlight);
    border-radius: 16px;
    padding: 20px 25px;
    display: flex;
    gap: 15px;
    align-items: center;
}

.rk-est-alert-icon {
    color: #b45309;
    flex-shrink: 0;
}

.rk-est-alert p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: #92400e;
}

.rk-est-alert a {
    color: #78350f;
    font-weight: 800;
    text-decoration: underline;
    text-decoration-color: rgba(120, 53, 15, 0.3);
}

/* Animacje w JS */
.val-update {
    animation: popVal 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

@keyframes popVal {
    0% { transform: scale(0.95); opacity: 0.5; }
    50% { transform: scale(1.05); }
    100% { transform: scale(1); opacity: 1; }
}

@keyframes drawLoop {
    0% { stroke-dashoffset: 200; }
    100% { stroke-dashoffset: 0; }
}
.anim-loop {
    stroke-dasharray: 200;
    animation: drawLoop 1.5s ease-out forwards;
}

/* RWD */
@media (max-width: 768px) {
    .rk-est-header, .rk-est-body { padding: 30px 20px; }
    .rk-est-tabs { flex-direction: column; padding: 10px; }
    .rk-est-dashboard { grid-template-columns: 1fr; }
    .rk-est-grid { grid-template-columns: 1fr; }
    .rk-est-total-card { min-height: 250px; }
}
</style>

<div class="rk-estimate-wrapper">
    <div class="rk-est-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="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>
            Jak obliczyć całkowitą ilość rury dla domu?
        </h2>
        <p>Precyzyjne wyliczenie zapotrzebowania wymaga uwzględnienia trzech czynników: powierzchni netto, długości podejść do rozdzielacza (tranzytów) oraz naddatku montażowego. Poniższy algorytm bazuje na standardowym rozstawie 15 cm. Zobacz <a href="https://projekt-ogrzewania.pl/ile-kosztuje-100-m%c2%b2-ogrzewania-podlogowego/">jak to wpływa na koszty podłogówki</a>.</p>
    </div>

    <div class="rk-est-body">
        
        <div class="rk-est-tabs">
            <button class="rk-est-tab-btn active" data-size="100">
                <span class="rk-est-tab-icon"><svg width="20" height="20" 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></svg></span>
                Dom 100 m²
            </button>
            <button class="rk-est-tab-btn" data-size="150">
                <span class="rk-est-tab-icon"><svg width="20" height="20" 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><path d="M3 12h18"></path></svg></span>
                Dom 150 m²
            </button>
            <button class="rk-est-tab-btn" data-size="200">
                <span class="rk-est-tab-icon"><svg width="20" height="20" 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><path d="M3 9h18M3 15h18"></path></svg></span>
                Dom 200 m²
            </button>
        </div>

        <div class="rk-est-dashboard">
            <div class="rk-est-grid">
                <div class="rk-est-card">
                    <div class="rk-est-card-header">
                        <div class="rk-est-card-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg></div>
                        <h4 class="rk-est-card-title">Powierzchnia Grzewcza Netto</h4>
                    </div>
                    <div class="rk-est-card-val" id="estNetArea">90 m²</div>
                    <div class="rk-est-card-desc">Odejmując ok. 10% na stałą zabudowę (wanny, kominki).</div>
                </div>

                <div class="rk-est-card">
                    <div class="rk-est-card-header">
                        <div class="rk-est-card-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12H2"></path><path d="M5 8v8M10 8v8M14 8v8M19 8v8"></path></svg></div>
                        <h4 class="rk-est-card-title">Ilość Rury (Sama Podłoga)</h4>
                    </div>
                    <div class="rk-est-card-val" id="estBasePipe">630 mb</div>
                    <div class="rk-est-card-desc">Przy stałym wskaźniku zużycia wynoszącym 7 mb/m².</div>
                </div>

                <div class="rk-est-card">
                    <div class="rk-est-card-header">
                        <div class="rk-est-card-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg></div>
                        <h4 class="rk-est-card-title">Tranzyty i Podejścia</h4>
                    </div>
                    <div class="rk-est-card-val" id="estTransits">ok. 70 mb</div>
                    <div class="rk-est-card-desc" id="estTransitsDesc">Zakładając średnio 5m w obie strony dla 10 pętli.</div>
                </div>

                <div class="rk-est-card">
                    <div class="rk-est-card-header">
                        <div class="rk-est-card-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg></div>
                        <h4 class="rk-est-card-title">Liczba Obwodów (Pętli)</h4>
                    </div>
                    <div class="rk-est-card-val" id="estLoops">8 &#8211; 10 pętli</div>
                    <div class="rk-est-card-desc">Istotne przy doborze odpowiedniego rozdzielacza.</div>
                </div>
            </div>

            <div class="rk-est-total-card">
                <div>
                    <div class="rk-est-total-label">Całkowity Zakup (z 10% zapasem)</div>
                    <div class="rk-est-total-val" id="estTotalVal">770 mb</div>
                    <div class="rk-est-total-desc" id="estTotalCoils">Rekomendacja: 4 kręgi po 200 m</div>
                </div>
                
                <div class="rk-est-svg-box" id="estVisual">
                    </div>
            </div>
        </div>

        <div class="rk-est-alert">
            <div class="rk-est-alert-icon">
                <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
            </div>
            <div>
                <p><strong>Uwaga na ścinki!</strong> Zawsze należy dopasowywać wyliczone długości pętli do fabrycznych zwojów (najczęściej 200 mb lub 600 mb). Jeśli instalator zrobi pętlę 85 mb z kręgu 200 mb, zostaną dwa odcinki po 85 mb i bezużyteczny odpad 30 mb. <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">Profesjonalne rozplanowanie układu</a> redukuje ten odpad do poziomu poniżej 2%.</p>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const buttons = document.querySelectorAll('.rk-est-tab-btn');
    
    // Elementy DOM do aktualizacji
    const elNetArea = document.getElementById('estNetArea');
    const elBasePipe = document.getElementById('estBasePipe');
    const elTransits = document.getElementById('estTransits');
    const elTransitsDesc = document.getElementById('estTransitsDesc');
    const elLoops = document.getElementById('estLoops');
    const elTotalVal = document.getElementById('estTotalVal');
    const elTotalCoils = document.getElementById('estTotalCoils');
    const elVisual = document.getElementById('estVisual');

    // Baza danych dla 3 wariantów
    const dataMap = {
        "100": {
            netArea: "90 m²",
            basePipe: "630 mb",
            transits: "ok. 70 mb",
            transitsDesc: "Zakładając 10 pętli × 7 m dobiegów.",
            loops: "8 - 10 pętli",
            totalVal: "770 mb",
            totalCoils: "Rekomendacja: 4 kręgi po 200 m",
            svg: `<svg viewBox="0 0 200 100" fill="none" stroke="currentColor">
                    <path d="M 20 80 L 20 20 L 100 20 L 100 80 Z" stroke="#34d399" stroke-width="4" fill="rgba(52, 211, 153, 0.1)"/>
                    <path d="M 30 70 Q 60 30 90 70" stroke="#a7f3d0" stroke-width="6" stroke-linecap="round" class="anim-loop"/>
                    <path d="M 40 70 Q 60 40 80 70" stroke="#a7f3d0" stroke-width="6" stroke-linecap="round" class="anim-loop"/>
                 </svg>`
        },
        "150": {
            netArea: "135 m²",
            basePipe: "945 mb",
            transits: "ok. 105 mb",
            transitsDesc: "Zakładając 15 pętli × 7 m dobiegów.",
            loops: "12 - 15 pętli",
            totalVal: "1155 mb",
            totalCoils: "Rekomendacja: 6 kręgów po 200 m",
            svg: `<svg viewBox="0 0 200 100" fill="none" stroke="currentColor">
                    <path d="M 20 80 L 20 20 L 150 20 L 150 80 Z" stroke="#34d399" stroke-width="4" fill="rgba(52, 211, 153, 0.1)"/>
                    <path d="M 30 70 Q 50 30 70 70" stroke="#a7f3d0" stroke-width="6" stroke-linecap="round" class="anim-loop"/>
                    <path d="M 60 70 Q 85 30 110 70" stroke="#a7f3d0" stroke-width="6" stroke-linecap="round" class="anim-loop"/>
                    <path d="M 100 70 Q 120 30 140 70" stroke="#a7f3d0" stroke-width="6" stroke-linecap="round" class="anim-loop"/>
                 </svg>`
        },
        "200": {
            netArea: "180 m²",
            basePipe: "1260 mb",
            transits: "ok. 140 mb",
            transitsDesc: "Zakładając 20 pętli × 7 m dobiegów.",
            loops: "16 - 20 pętli",
            totalVal: "1540 mb",
            totalCoils: "Rekomendacja: 8 kręgów po 200 m",
            svg: `<svg viewBox="0 0 200 100" fill="none" stroke="currentColor">
                    <path d="M 10 80 L 10 20 L 190 20 L 190 80 Z" stroke="#34d399" stroke-width="4" fill="rgba(52, 211, 153, 0.1)"/>
                    <path d="M 20 70 Q 40 30 60 70" stroke="#a7f3d0" stroke-width="5" stroke-linecap="round" class="anim-loop"/>
                    <path d="M 50 70 Q 75 30 100 70" stroke="#a7f3d0" stroke-width="5" stroke-linecap="round" class="anim-loop"/>
                    <path d="M 90 70 Q 115 30 140 70" stroke="#a7f3d0" stroke-width="5" stroke-linecap="round" class="anim-loop"/>
                    <path d="M 130 70 Q 155 30 180 70" stroke="#a7f3d0" stroke-width="5" stroke-linecap="round" class="anim-loop"/>
                 </svg>`
        }
    };

    function triggerAnimation(element) {
        element.classList.remove('val-update');
        void element.offsetWidth; // force reflow
        element.classList.add('val-update');
    }

    function updateDashboard(size) {
        const data = dataMap[size];
        
        elNetArea.innerHTML = data.netArea;
        elBasePipe.innerHTML = data.basePipe;
        elTransits.innerHTML = data.transits;
        elTransitsDesc.innerHTML = data.transitsDesc;
        elLoops.innerHTML = data.loops;
        
        elTotalVal.innerHTML = data.totalVal;
        elTotalCoils.innerHTML = data.totalCoils;
        
        // Zmiana SVG i reset animacji klas wewnątrz SVG
        elVisual.innerHTML = data.svg;

        // Uruchomienie animacji tekstu
        triggerAnimation(elNetArea);
        triggerAnimation(elBasePipe);
        triggerAnimation(elTotalVal);
    }

    buttons.forEach(btn => {
        btn.addEventListener('click', function() {
            buttons.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            updateDashboard(this.getAttribute('data-size'));
        });
    });

    // Inicjalizacja pierwszej zakładki
    updateDashboard('100');
});
</script>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#article-domy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/"
    },
    "headline": "Jak obliczyć całkowitą ilość rury dla domu 100 m² i 150 m²?",
    "description": "Zestawienie parametrów technicznych i całkowitego zużycia rur PEX do podłogówki dla domów 100, 150 i 200 mkw. Sprawdź, jak dodać 10% zapasu na odpady.",
    "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-05",
    "dateModified": "2026-06-05"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#dataset-domy",
    "name": "Zestawienie zapotrzebowania na rury ogrzewania podłogowego (100-200 m2)",
    "description": "Tabele przeliczeniowe określające ilość rury bazowej, długości tranzytów do rozdzielaczy oraz bezpieczny bufor zakupowy.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ile rury do podłogówki 100m2",
      "zapotrzebowanie rur pex 150m2",
      "kalkulator rur ogrzewanie podłogowe dom 200m2",
      "tranzyty do rozdzielacza",
      "zapas rury na odpady"
    ],
    "measurementTechnique": "Algorytm uwzględniający powierzchnię netto (minus stała zabudowa), bazowe zużycie 7 mb/m2 przy rozstawie 15 cm oraz 10% naddatku montażowego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Dom 100 m²: Netto 90 m², Zapotrzebowanie: 770 mb (4 kręgi po 200 m).",
        "Dom 150 m²: Netto 135 m², Zapotrzebowanie: 1155 mb (6 kręgów po 200 m).",
        "Dom 200 m²: Netto 180 m², Zapotrzebowanie: 1540 mb (8 kręgów po 200 m)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#webapp-domy",
    "name": "Kalkulator Zakupowy Rur PEX",
    "description": "Interaktywny interfejs pozwalający na błyskawiczne sprawdzenie dokładnej ilości materiałów (rury, liczba obwodów) w zależności od metrażu budowanego domu jednorodzinnego.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>



<style>
:root {
    --rk-spc-dark: #0f172a; /* Głęboki granat */
    --rk-spc-panel: #1e293b;
    --rk-spc-brand: #f97316; /* Termo-pomarańcz (Orange 500) */
    --rk-spc-brand-light: #ffedd5;
    --rk-spc-accent: #fb923c;
    --rk-spc-blue: #0ea5e9;
    --rk-spc-text: #334155;
    --rk-spc-text-light: #64748b;
    --rk-spc-bg: #f8fafc;
    --rk-spc-card: #ffffff;
    --rk-spc-border: #e2e8f0;
}

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

/* Nagłówek H2 */
.rk-spc-header {
    background: var(--rk-spc-dark);
    padding: 45px 50px 30px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-spc-brand);
}

.rk-spc-header::after {
    content: '';
    position: absolute;
    right: 0;
    top: 0;
    height: 100%;
    width: 300px;
    background: linear-gradient(90deg, transparent, rgba(249, 115, 22, 0.15));
    pointer-events: none;
}

.rk-spc-header h2 {
    font-size: 28px;
    font-weight: 900;
    color: #ffffff;
    margin: 0 0 15px 0;
    line-height: 1.3;
    display: flex;
    align-items: center;
    gap: 12px;
    position: relative;
    z-index: 2;
}

.rk-spc-header p {
    font-size: 16px;
    line-height: 1.6;
    color: #cbd5e1;
    margin: 0;
    max-width: 750px;
    position: relative;
    z-index: 2;
}

.rk-spc-header a {
    color: var(--rk-spc-accent);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-spc-accent);
    transition: all 0.2s;
}

.rk-spc-header a:hover {
    color: #ffffff;
    border-bottom-style: solid;
}

/* Sekcja Główna */
.rk-spc-body {
    padding: 40px 50px;
}

/* Kontroler i SVG Wizualizacja */
.rk-spc-dashboard {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 30px;
    margin-bottom: 30px;
}

.rk-spc-control-panel {
    background: var(--rk-spc-card);
    border: 1px solid var(--rk-spc-border);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

.rk-spc-control-header h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-spc-dark);
}

.rk-spc-val-display {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-spc-brand);
    background: var(--rk-spc-brand-light);
    padding: 8px 20px;
    border-radius: 12px;
}

/* Custom Slider */
.rk-spc-slider {
    -webkit-appearance: none;
    width: 100%;
    background: transparent;
    margin: 15px 0;
}
.rk-spc-slider:focus { outline: none; }
.rk-spc-slider::-webkit-slider-runnable-track {
    width: 100%;
    height: 10px;
    background: #e2e8f0;
    border-radius: 8px;
    border: 1px solid #cbd5e1;
}
.rk-spc-slider::-webkit-slider-thumb {
    height: 32px;
    width: 32px;
    border-radius: 50%;
    background: var(--rk-spc-brand);
    cursor: pointer;
    -webkit-appearance: none;
    margin-top: -11px;
    box-shadow: 0 4px 10px rgba(249, 115, 22, 0.4);
    border: 4px solid #ffffff;
    transition: transform 0.1s;
}
.rk-spc-slider::-webkit-slider-thumb:hover {
    transform: scale(1.15);
}
.rk-spc-slider-marks {
    display: flex;
    justify-content: space-between;
    color: var(--rk-spc-text-light);
    font-size: 14px;
    font-weight: 700;
    padding: 0 10px;
}

/* SVG Wizualizator (1m2) */
.rk-spc-visualizer {
    background: var(--rk-spc-panel);
    border-radius: 20px;
    position: relative;
    overflow: hidden;
    box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.rk-spc-visualizer::before {
    content: 'POWIERZCHNIA 1 m²';
    position: absolute;
    top: 15px;
    left: 20px;
    font-size: 11px;
    font-weight: 800;
    color: #475569;
    letter-spacing: 1.5px;
}

.rk-spc-svg-box {
    width: 100%;
    height: 100%;
    max-height: 220px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Siatka Wyników 2x2 */
.rk-spc-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-bottom: 30px;
}

.rk-spc-card {
    background: var(--rk-spc-card);
    border: 1px solid var(--rk-spc-border);
    padding: 25px 20px;
    border-radius: 16px;
    transition: transform 0.3s ease, border-color 0.3s;
    display: flex;
    flex-direction: column;
}

.rk-spc-card:hover {
    transform: translateY(-4px);
    border-color: var(--rk-spc-accent);
    box-shadow: 0 10px 20px -5px rgba(249, 115, 22, 0.1);
}

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

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

.rk-spc-icon svg { width: 22px; height: 22px; stroke-width: 2.5; }

.rk-spc-label {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--rk-spc-text-light);
    letter-spacing: 0.5px;
    margin: 0;
}

.rk-spc-val {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-spc-dark);
    margin-bottom: 5px;
    line-height: 1.1;
}

.rk-spc-desc {
    font-size: 13px;
    color: var(--rk-spc-text);
    line-height: 1.5;
}

/* Alert Box */
.rk-spc-alert {
    background: #f0f9ff;
    border: 1px solid #bae6fd;
    border-left: 5px solid var(--rk-spc-blue);
    border-radius: 16px;
    padding: 25px 30px;
    display: flex;
    gap: 20px;
    align-items: flex-start;
}

.rk-spc-alert-icon {
    flex-shrink: 0;
    width: 42px;
    height: 42px;
    background: var(--rk-spc-blue);
    color: #ffffff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-spc-alert-content h4 {
    margin: 0 0 8px 0;
    font-size: 18px;
    font-weight: 800;
    color: #0369a1;
}

.rk-spc-alert-content p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: #0c4a6e;
}

/* Animacje w JS & SVG */
.anim-update {
    animation: popVal 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
@keyframes popVal {
    0% { transform: scale(0.95); opacity: 0.5; }
    50% { transform: scale(1.05); }
    100% { transform: scale(1); opacity: 1; }
}

@keyframes heatFlow {
    0% { stroke-dashoffset: 100; }
    100% { stroke-dashoffset: 0; }
}
.anim-heat {
    stroke-dasharray: 15 10;
    animation: heatFlow 1.5s linear infinite;
    stroke: var(--rk-spc-brand);
}

/* RWD */
@media (max-width: 768px) {
    .rk-spc-header, .rk-spc-body { padding: 30px 20px; }
    .rk-spc-dashboard { grid-template-columns: 1fr; gap: 20px; }
    .rk-spc-visualizer { height: 200px; }
    .rk-spc-grid { grid-template-columns: 1fr; }
    .rk-spc-alert { flex-direction: column; padding: 20px; gap: 15px; }
}
</style>

<div class="rk-spacing-wrapper">
    <div class="rk-spc-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>
            Ile metrów rury potrzeba na m² podłogówki?
        </h2>
        <p>Bezpośrednia odpowiedź wynika ze wzoru matematycznego <strong>L = 1 / b</strong> (gdzie L to długość rury, a b to rozstaw). Parametry te ściśle reguluje norma <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">PN-EN 1264-4</a>. Zobacz na poniższym symulatorze, jak zagęszczenie wpływa na ilość materiału i opory hydrauliczne instalacji.</p>
    </div>

    <div class="rk-spc-body">
        
        <div class="rk-spc-dashboard">
            <div class="rk-spc-control-panel">
                <div class="rk-spc-control-header">
                    <h3>ROZSTAW OSIOWY</h3>
                    <div class="rk-spc-val-display" id="spcValDisplay">15 cm</div>
                </div>
                <input type="range" min="10" max="25" step="5" value="15" class="rk-spc-slider" id="spcInputSlider">
                <div class="rk-spc-slider-marks">
                    <span>10</span>
                    <span>15</span>
                    <span>20</span>
                    <span>25</span>
                </div>
            </div>

            <div class="rk-spc-visualizer">
                <div class="rk-spc-svg-box" id="spcVisualBox">
                    </div>
            </div>
        </div>

        <div class="rk-spc-grid">
            <div class="rk-spc-card">
                <div class="rk-spc-card-header">
                    <div class="rk-spc-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><path d="M22 12H2"></path><path d="M5 8v8M10 8v8M14 8v8M19 8v8"></path></svg></div>
                    <h4 class="rk-spc-label">Zużycie Matematyczne</h4>
                </div>
                <div class="rk-spc-val" id="spcMath">6,67 mb/m²</div>
                <div class="rk-spc-desc">Czysty wynik ze wzoru L = 1/b.</div>
            </div>

            <div class="rk-spc-card">
                <div class="rk-spc-card-header">
                    <div class="rk-spc-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><path d="M20 6L9 17l-5-5"></path></svg></div>
                    <h4 class="rk-spc-label">Zużycie Operacyjne</h4>
                </div>
                <div class="rk-spc-val" style="color: var(--rk-spc-brand);" id="spcOper">7,0 mb/m²</div>
                <div class="rk-spc-desc">Wartość uwzględniająca gięcia na łukach.</div>
            </div>

            <div class="rk-spc-card">
                <div class="rk-spc-card-header">
                    <div class="rk-spc-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg></div>
                    <h4 class="rk-spc-label">Przeznaczenie Strefy</h4>
                </div>
                <div class="rk-spc-val" style="font-size: 20px;" id="spcZone">Salony i Sypialnie</div>
                <div class="rk-spc-desc" id="spcZoneDesc">Standard dla budynków o zapotrzebowaniu 40-50 W/m².</div>
            </div>

            <div class="rk-spc-card">
                <div class="rk-spc-card-header">
                    <div class="rk-spc-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg></div>
                    <h4 class="rk-spc-label">Wymagania Cieplne</h4>
                </div>
                <div class="rk-spc-val" style="font-size: 20px;" id="spcTemp">Optymalne (20-22°C)</div>
                <div class="rk-spc-desc" id="spcTempDesc">Najlepszy kompromis pomiędzy kosztem a komfortem.</div>
            </div>
        </div>

        <div class="rk-spc-alert">
            <div class="rk-spc-alert-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            </div>
            <div class="rk-spc-alert-content">
                <h4>Prawo Hydrauliki: Więcej rury to większy opór</h4>
                <p>Każda zmiana rozstawu wpływa na opory hydrauliczne instalacji. Zacieśnienie <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">układu pętli</a> z 15 cm do 10 cm na tej samej powierzchni zwiększa długość rury o 50%. Przy zachowaniu stałego natężenia przepływu, generuje to niemal <strong>trzykrotny wzrost strat ciśnienia</strong> w danej pętli, co musi zostać uwzględnione w doborze pompy obiegowej.</p>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const slider = document.getElementById('spcInputSlider');
    const valDisplay = document.getElementById('spcValDisplay');
    
    // UI Elements
    const elMath = document.getElementById('spcMath');
    const elOper = document.getElementById('spcOper');
    const elZone = document.getElementById('spcZone');
    const elZoneDesc = document.getElementById('spcZoneDesc');
    const elTemp = document.getElementById('spcTemp');
    const elTempDesc = document.getElementById('spcTempDesc');
    const visualBox = document.getElementById('spcVisualBox');

    // Data Map
    const spacingData = {
        "10": {
            math: "10,0 mb/m²", oper: "10,5 mb/m²", 
            zone: "Łazienki, Okna HS", zoneDesc: "Strefy brzegowe i pomieszczenia o wysokich stratach.",
            temp: "Wysokie (24°C)", tempDesc: "Zgodne z rozporządzeniem Ministra Infrastruktury.",
            lines: 10
        },
        "15": {
            math: "6,67 mb/m²", oper: "7,0 mb/m²", 
            zone: "Salony i Sypialnie", zoneDesc: "Standard dla budynków o zapotrzebowaniu 40-50 W/m².",
            temp: "Optymalne (20-22°C)", tempDesc: "Najlepszy kompromis pomiędzy kosztem a komfortem.",
            lines: 7
        },
        "20": {
            math: "5,0 mb/m²", oper: "5,5 mb/m²", 
            zone: "Korytarze, Garderoby", zoneDesc: "Strefy przechodnie oraz budownictwo ściśle pasywne.",
            temp: "Niskie (18-20°C)", tempDesc: "Wystarczające dla pomieszczeń z pasywnym zyskiem.",
            lines: 5
        },
        "25": {
            math: "4,0 mb/m²", oper: "4,5 mb/m²", 
            zone: "Garaże, Hale", zoneDesc: "Pomieszczenia techniczne i magazynowe.",
            temp: "Bardzo niskie (8-12°C)", tempDesc: "Utrzymanie strefy wolnej od przemarzania.",
            lines: 4
        }
    };

    function generateSVG(linesCount) {
        // Generowanie wężyka (meandra) dla m2
        let pathD = "M 10 10 ";
        let step = 80 / (linesCount - 1);
        let direction = 1; // 1 = prawo, -1 = lewo

        for (let i = 0; i < linesCount; i++) {
            let y = 10 + (i * step);
            let xEnd = direction === 1 ? 190 : 10;
            
            if (i > 0) {
                // Łuk w dół
                let xStart = direction === 1 ? 10 : 190;
                pathD += ` L ${xStart} ${y}`;
            }
            
            pathD += ` L ${xEnd} ${y}`;
            direction *= -1;
        }

        return `
            <svg viewBox="0 0 200 100" fill="none" style="width:100%; height:100%;">
                <rect x="0" y="0" width="200" height="100" fill="#1e293b" />
                <path d="${pathD}" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" class="anim-heat" />
            </svg>
        `;
    }

    function triggerAnim(el) {
        el.classList.remove('anim-update');
        void el.offsetWidth;
        el.classList.add('anim-update');
    }

    function updateUI() {
        const val = slider.value;
        const data = spacingData[val];

        valDisplay.textContent = val + " cm";
        
        elMath.textContent = data.math;
        elOper.textContent = data.oper;
        elZone.textContent = data.zone;
        elZoneDesc.textContent = data.zoneDesc;
        elTemp.textContent = data.temp;
        elTempDesc.textContent = data.tempDesc;

        visualBox.innerHTML = generateSVG(data.lines);

        [elMath, elOper, elZone, elTemp].forEach(triggerAnim);
    }

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#article-rozstaw-zuzycie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/"
    },
    "headline": "Ile metrów rury potrzeba na m² podłogówki przy różnych rozstawach?",
    "description": "Kalkulacja zużycia rur do ogrzewania podłogowego zgodnie z normą PN-EN 1264-4. Zobacz wzór matematyczny na ilość mb/m2 i przeznaczenie stref grzewczych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-05",
    "dateModified": "2026-06-05"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#dataset-rozstaw",
    "name": "Wskaźniki zużycia rury ogrzewania podłogowego wg rozstawu",
    "description": "Zestawienie operacyjnego i matematycznego zapotrzebowania na rurę PEX (mb/m2) w zależności od kroku pętli grzewczej i strefy cieplnej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ile rury na m2 ogrzewania podłogowego",
      "rozstaw rur 10 czy 15 cm",
      "opory hydrauliczne podłogówki",
      "norma PN-EN 1264-4 podłogówka",
      "krok pętli grzewczej"
    ],
    "measurementTechnique": "Przeliczenie matematyczne na bazie wzoru L = 1/b z uwzględnieniem strat na łukach, zgodne ze standardami projektowania budynków jednorodzinnych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rozstaw 10 cm: Zużycie ok. 10 mb/m2. Dedykowane do łazienek (wymóg 24°C) i stref brzegowych.",
        "Rozstaw 15 cm: Zużycie ok. 7 mb/m2. Standard dla salonów i sypialni (40-50 W/m2).",
        "Rozstaw 20 cm: Zużycie ok. 5 mb/m2. Używane w korytarzach i domach pasywnych.",
        "Rozstaw 25 cm: Zużycie ok. 4 mb/m2. Stosowane wyłącznie w technicznych halach i garażach."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#webapp-rozstaw",
    "name": "Symulator Rozstawu i Zużycia Rur PN-EN",
    "description": "Interaktywny suwak pozwalający inwestorowi na dynamiczne dobieranie rozstawu osiowego rur i weryfikację wpływu tej decyzji na przeznaczenie pomieszczenia oraz zapotrzebowanie materiałowe.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>



<style>
:root {
    --rk-err-dark: #18181b; /* Ciemny grafit */
    --rk-err-panel: #27272a;
    --rk-err-brand: #e11d48; /* Czerwień ostrzegawcza */
    --rk-err-brand-light: #ffe4e6;
    --rk-err-accent: #f43f5e;
    --rk-err-warn: #d97706;
    --rk-err-text: #3f3f46;
    --rk-err-text-light: #71717a;
    --rk-err-bg: #fafafa;
    --rk-err-card: #ffffff;
    --rk-err-border: #e4e4e7;
}

.rk-error-scanner {
    max-width: 950px;
    margin: 60px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-err-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(225, 29, 72, 0.1);
    border: 1px solid var(--rk-err-border);
    overflow: hidden;
}

/* Nagłówek Sekcji */
.rk-err-header {
    background: var(--rk-err-dark);
    padding: 45px 50px 30px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-err-brand);
}

.rk-err-header::before {
    content: '!';
    position: absolute;
    right: 50px;
    top: -30px;
    font-size: 180px;
    font-weight: 900;
    color: rgba(255,255,255,0.04);
    line-height: 1;
    pointer-events: none;
}

.rk-err-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 12px;
    position: relative;
    z-index: 2;
}

.rk-err-header p {
    font-size: 16px;
    line-height: 1.6;
    color: #a1a1aa;
    margin: 0;
    max-width: 750px;
    position: relative;
    z-index: 2;
}

/* Obszar Interaktywny */
.rk-err-app-body {
    padding: 40px 50px;
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 30px;
}

/* Menu Błędów (Sidebar) */
.rk-err-nav {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-err-btn {
    text-align: left;
    background: var(--rk-err-card);
    border: 1px solid var(--rk-err-border);
    padding: 16px 20px;
    border-radius: 16px;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 15px;
    position: relative;
    overflow: hidden;
}

.rk-err-btn::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 4px;
    height: 100%;
    background: transparent;
    transition: background 0.3s;
}

.rk-err-btn:hover {
    border-color: #fca5a5;
    background: #fff1f2;
}

.rk-err-btn.active {
    background: #fff1f2;
    border-color: var(--rk-err-brand);
    box-shadow: 0 10px 15px -3px rgba(225, 29, 72, 0.08);
}

.rk-err-btn.active::before {
    background: var(--rk-err-brand);
}

.rk-err-btn-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: #f4f4f5;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-err-text-light);
    transition: all 0.3s;
    flex-shrink: 0;
}

.rk-err-btn.active .rk-err-btn-icon {
    background: var(--rk-err-brand);
    color: #ffffff;
}

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

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

.rk-err-btn.active .rk-err-btn-text {
    color: var(--rk-err-brand);
}

/* Wyświetlacz Błędu (Main Display) */
.rk-err-display {
    background: var(--rk-err-card);
    border: 1px solid var(--rk-err-border);
    border-radius: 20px;
    padding: 35px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    display: flex;
    flex-direction: column;
}

.rk-err-visual {
    height: 180px;
    background: var(--rk-err-dark);
    border-radius: 16px;
    margin-bottom: 25px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    position: relative;
    box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}

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

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

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

.rk-err-content a {
    color: var(--rk-err-brand);
    font-weight: 700;
    text-decoration: underline;
    text-decoration-color: transparent;
    transition: all 0.2s;
}

.rk-err-content a:hover {
    text-decoration-color: var(--rk-err-brand);
}

.rk-err-alert-box {
    background: #fef2f2;
    border-left: 4px solid var(--rk-err-brand);
    padding: 15px 20px;
    border-radius: 0 12px 12px 0;
    font-size: 14px;
    font-weight: 700;
    color: #9f1239;
    display: flex;
    align-items: center;
    gap: 10px;
    line-height: 1.4;
}

.rk-err-alert-box svg { flex-shrink: 0; }

/* Animacje SVG zależne od błędu */
@keyframes fracturePulse {
    0% { opacity: 0; transform: scale(0.8); }
    50% { opacity: 1; transform: scale(1.2); }
    100% { opacity: 0; transform: scale(0.8); }
}
.anim-fracture { animation: fracturePulse 1.5s infinite; transform-origin: center; fill: var(--rk-err-brand); }

@keyframes waterDrip {
    0% { transform: translateY(-10px); opacity: 0; }
    30% { opacity: 1; }
    100% { transform: translateY(30px); opacity: 0; }
}
.anim-drip { animation: waterDrip 1.5s infinite linear; fill: var(--rk-err-brand); }
.anim-drip-delay { animation: waterDrip 1.5s infinite linear; animation-delay: 0.75s; fill: var(--rk-err-brand); }

@keyframes guillotineShift {
    0% { transform: translateY(0); }
    50% { transform: translateY(8px); }
    100% { transform: translateY(0); }
}
.anim-slab-move { animation: guillotineShift 2s infinite ease-in-out; }

@keyframes heatLossFlow {
    0% { stroke-dashoffset: 200; }
    100% { stroke-dashoffset: 0; }
}
.anim-flow-long { 
    stroke-dasharray: 20 10; 
    animation: heatLossFlow 3s linear infinite; 
}

@keyframes needleDrop {
    0% { transform: rotate(45deg); }
    20% { transform: rotate(45deg); }
    40% { transform: rotate(-45deg); }
    80% { transform: rotate(-45deg); }
    100% { transform: rotate(45deg); }
}
.anim-needle { animation: needleDrop 4s infinite cubic-bezier(0.4, 0, 0.2, 1); transform-origin: 100px 70px; }

/* RWD */
@media (max-width: 768px) {
    .rk-err-header, .rk-err-app-body { padding: 30px 20px; }
    .rk-err-app-body { grid-template-columns: 1fr; gap: 20px; }
    .rk-err-nav { flex-direction: row; overflow-x: auto; padding-bottom: 10px; scrollbar-width: none; }
    .rk-err-nav::-webkit-scrollbar { display: none; }
    .rk-err-btn { min-width: 220px; flex-shrink: 0; padding: 15px; }
    .rk-err-visual { height: 160px; }
    .rk-err-content h3 { font-size: 20px; }
}
</style>

<div class="rk-error-scanner">
    <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>
            Najczęstsze błędy wykonawcze
        </h2>
        <p>Błędy popełnione na etapie rozkładania rur PEX/PERT są niemożliwe do skorygowania po wylaniu jastrychu. Uruchom skaner błędów, aby dowiedzieć się, co niszczy instalację i jak uniknąć kucia posadzek.</p>
    </div>

    <div class="rk-err-app-body">
        <div class="rk-err-nav" id="rkErrNav">
            <button class="rk-err-btn active" data-error="bend">
                <div class="rk-err-btn-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12A10 10 0 1 1 12 2"></path></svg>
                </div>
                <span class="rk-err-btn-text">Złamanie rury (Przewężenie)</span>
            </button>
            <button class="rk-err-btn" data-error="joint">
                <div class="rk-err-btn-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="4" y1="12" x2="20" y2="12"></line><line x1="12" y1="4" x2="12" y2="20"></line></svg>
                </div>
                <span class="rk-err-btn-text">Złączka w wylewce</span>
            </button>
            <button class="rk-err-btn" data-error="dilation">
                <div class="rk-err-btn-icon">
                    <svg 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="12" y1="3" x2="12" y2="21"></line></svg>
                </div>
                <span class="rk-err-btn-text">Brak dylatacji (Gilotyna)</span>
            </button>
            <button class="rk-err-btn" data-error="length">
                <div class="rk-err-btn-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                </div>
                <span class="rk-err-btn-text">Zbyt długa pętla (>100mb)</span>
            </button>
            <button class="rk-err-btn" data-error="pressure">
                <div class="rk-err-btn-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                </div>
                <span class="rk-err-btn-text">Brak próby ciśnieniowej</span>
            </button>
        </div>

        <div class="rk-err-display">
            <div class="rk-err-visual" id="errVisual">
                </div>
            
            <div class="rk-err-content">
                <h3 id="errTitle">Złamanie rury (za mały promień gięcia)</h3>
                <p id="errDesc">Wykonawcy, próbując zagęścić rozstaw na siłę bez użycia sprężyn gnących, doprowadzają do załamania rury (tzw. przewężenia). W tym miejscu drastycznie rośnie opór hydrauliczny, a osłabiona struktura polimeru grozi pęknięciem. Więcej o trwałości materiałów w artykule o <a href="https://projekt-ogrzewania.pl/wytrzymalosc-rur-do-ogrzewania-podlogowego-kompleksowy-przewodnik/">wytrzymałości rur PEX</a>.</p>
                
                <div class="rk-err-alert-box" id="errAlert">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                    <span id="errAlertText">Norma EN ISO 15875: Min. promień gięcia to 5 x d (ok. 8 cm).</span>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const buttons = document.querySelectorAll('.rk-err-btn');
    const visual = document.getElementById('errVisual');
    const title = document.getElementById('errTitle');
    const desc = document.getElementById('errDesc');
    const alertText = document.getElementById('errAlertText');

    const errorData = {
        "bend": {
            title: "Złamanie rury (za mały promień gięcia)",
            desc: "Wykonawcy, próbując zagęścić rozstaw na siłę bez użycia sprężyn gnących, doprowadzają do załamania rury (tzw. przewężenia). W tym miejscu drastycznie rośnie opór hydrauliczny, a osłabiona struktura polimeru grozi pęknięciem. Więcej w <a href='https://projekt-ogrzewania.pl/wytrzymalosc-rur-do-ogrzewania-podlogowego-kompleksowy-przewodnik/'>przewodniku o wytrzymałości rur</a>.",
            alert: "Norma EN ISO 15875: Min. promień gięcia to 5 x d (ok. 8 cm dla rury 16mm).",
            svg: `<svg viewBox="0 0 200 100" fill="none" stroke="currentColor">
                    <path d="M 20 80 Q 100 -50 180 80" stroke="#4b5563" stroke-width="12" stroke-linecap="round"/>
                    <path d="M 90 25 L 110 25" stroke="#e11d48" stroke-width="8" stroke-linecap="round"/>
                    <circle cx="100" cy="25" r="8" class="anim-fracture" />
                  </svg>`
        },
        "joint": {
            title: "Łączenie rur w wylewce",
            desc: "Absolutną, nienaruszalną zasadą jest prowadzenie każdego obwodu od rozdzielacza do rozdzielacza w jednym kawałku. Zastosowanie złączki wewnątrz warstwy betonu w celu 'dosztukowania' brakującego metra rury to kardynalny błąd i potencjalne ognisko korozji galwanicznej.",
            alert: "Zagrożenie: Niewykrywalny wyciek, spadek ciśnienia i konieczność kucia posadzki.",
            svg: `<svg viewBox="0 0 200 100" fill="none" stroke="currentColor">
                    <rect x="20" y="40" width="75" height="12" fill="#4b5563" rx="4"/>
                    <rect x="105" y="40" width="75" height="12" fill="#4b5563" rx="4"/>
                    <rect x="85" y="34" width="30" height="24" fill="#a1a1aa" rx="2" stroke="#3f3f46" stroke-width="2"/>
                    <circle cx="100" cy="65" r="4" class="anim-drip" />
                    <circle cx="100" cy="65" r="3" class="anim-drip-delay" />
                  </svg>`
        },
        "dilation": {
            title: "Brak dylatacji i peszli w drzwiach",
            desc: "Płyta grzewcza pracuje termicznie. Brak <a href='https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/'>szczelin dylatacyjnych</a> w progach drzwi oraz brak rur ochronnych (peszli) powoduje, że naprężony, kurczący się beton działa jak gilotyna, ścinając rurę grzewczą po kilku sezonach.",
            alert: "Skutek: Płyty betonowe z czasem obcinają instalację mechaniczną w poprzek.",
            svg: `<svg viewBox="0 0 200 100" fill="none" stroke="currentColor">
                    <rect x="30" y="20" width="65" height="60" fill="#3f3f46" rx="2" />
                    <rect x="105" y="20" width="65" height="60" fill="#3f3f46" rx="2" class="anim-slab-move" />
                    <path d="M 20 50 L 180 50" stroke="#e11d48" stroke-width="8" stroke-linecap="round"/>
                    <path d="M 100 20 L 100 80" stroke="#f43f5e" stroke-width="2" stroke-dasharray="4 4" />
                  </svg>`
        },
        "length": {
            title: "Zbyt długa pętla (Przekroczenie limitu oporów)",
            desc: "Każda rura stawia opór płynącej wodzie. Jeśli ułożysz <a href='https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/'>pętlę dłuższą niż 100 mb</a> (dla średnicy 16mm), opór hydrauliczny przekroczy możliwości standardowej pompy obiegowej. Woda po prostu nie dopłynie do końca układu.",
            alert: "Skutek: Ostatnie metry podłogi pozostają permanentnie zimne pomimo działania kotła.",
            svg: `<svg viewBox="0 0 200 100" fill="none" stroke="currentColor">
                    <path d="M 20 50 Q 60 20 100 50 T 180 50" stroke="#4b5563" stroke-width="16" stroke-linecap="round"/>
                    <path d="M 20 50 Q 60 20 100 50 T 180 50" stroke="url(#heatGradient)" stroke-width="8" stroke-linecap="round" class="anim-flow-long"/>
                    <defs>
                      <linearGradient id="heatGradient" x1="0%" y1="0%" x2="100%" y2="0%">
                        <stop offset="0%" stop-color="#ef4444" />
                        <stop offset="50%" stop-color="#f59e0b" />
                        <stop offset="100%" stop-color="#3b82f6" />
                      </linearGradient>
                    </defs>
                  </svg>`
        },
        "pressure": {
            title: "Brak próby ciśnieniowej przed wylewką",
            desc: "Zalewanie rur jastrychem bez wcześniejszego nabicia ich wodą lub powietrzem (na min. 6 bar) to hazard. <a href='https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/'>Próba szczelności</a> nie tylko wykrywa fabryczne wady rury, ale też usztywnia ją, zapobiegając zgnieceniu pod ciężarem wylewki.",
            alert: "Zagrożenie: Odrzucenie roszczeń gwarancyjnych przez producenta rur w razie awarii.",
            svg: `<svg viewBox="0 0 200 100" fill="none" stroke="currentColor">
                    <circle cx="100" cy="70" r="40" fill="#3f3f46" stroke="#52525b" stroke-width="4"/>
                    <path d="M 70 70 A 30 30 0 0 1 130 70" stroke="#e11d48" stroke-width="6" stroke-linecap="round"/>
                    <path d="M 80 70 A 20 20 0 0 1 120 70" stroke="#10b981" stroke-width="6" stroke-linecap="round"/>
                    <circle cx="100" cy="70" r="4" fill="#ffffff"/>
                    <line x1="100" y1="70" x2="120" y2="50" stroke="#ffffff" stroke-width="3" stroke-linecap="round" class="anim-needle"/>
                  </svg>`
        }
    };

    function loadErrorData(errorKey) {
        const data = errorData[errorKey];
        title.innerHTML = data.title;
        desc.innerHTML = data.desc;
        alertText.innerHTML = data.alert;
        visual.innerHTML = data.svg;
    }

    buttons.forEach(btn => {
        btn.addEventListener('click', function() {
            buttons.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            
            const errKey = this.getAttribute('data-error');
            
            visual.style.opacity = 0;
            setTimeout(() => {
                loadErrorData(errKey);
                visual.style.opacity = 1;
            }, 200);
        });
    });

    loadErrorData('bend');
});
</script>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/"
    },
    "headline": "Najczęstsze błędy wykonawcze przy układaniu rur",
    "description": "Zestawienie najgroźniejszych błędów instalacyjnych podłogówki: zbyt mały promień gięcia, łączenie rur w wylewce, brak dylatacji, przekroczenie długości 100mb pętli oraz brak próby ciśnieniowej.",
    "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-05",
    "dateModified": "2026-06-05"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#dataset-bledy",
    "name": "Katalog błędów i limitów mechanicznych rur PEX/PERT",
    "description": "Techniczne podsumowanie najczęstszych przyczyn awarii systemów ogrzewania płaszczyznowego z powiązaniem do norm montażowych i fizyki budowli.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "błędy przy montażu podłogówki",
      "złamanie rury pex promień gięcia",
      "łączenie rur pod wylewką",
      "brak dylatacji ogrzewanie podłogowe",
      "maksymalna długość pętli podłogówki 16mm",
      "próba ciśnieniowa ogrzewania podłogowego"
    ],
    "measurementTechnique": "Weryfikacja jakości ułożenia pętli grzewczych na podstawie norm (EN ISO 15875 dla zginania polimerów), limitów hydraulicznych oraz wymogów dla jastrychów pływających.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Błąd 1: Przekroczenie minimalnego promienia gięcia 5 x d (8 cm dla rury 16mm), co niszczy strukturę polimeru.",
        "Błąd 2: Stosowanie jakichkolwiek złączek zaprasowywanych i skręcanych wewnątrz betonu.",
        "Błąd 3: Brak profili dylatacyjnych oraz peszli na rurach przechodzących przez strefy drzwiowe.",
        "Błąd 4: Ułożenie pętli grzewczej dłuższej niż 100 metrów bieżących, co blokuje przepływ wody.",
        "Błąd 5: Zalewanie rur jastrychem bez wcześniejszej weryfikacji szczelności (min. 6 bar)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#webapp-bledy",
    "name": "Skaner Ryzyka Błędów Wykonawczych",
    "description": "Aplikacja typu wizualizator, demonstrująca inwestorom mechanikę powstawania uszkodzeń instalacji (złamania, wycieki złączek, ścinanie przez beton, opory hydrauliczne i spadki ciśnienia) wraz z objaśnieniem norm zapobiegających usterkom.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>



<style>
:root {
    --rk-pro-dark: #1e1b4b; /* Głęboki granat/indygo dla sekcji premium */
    --rk-pro-panel: #312e81;
    --rk-pro-brand: #6366f1;
    --rk-pro-brand-light: #e0e7ff;
    --rk-pro-accent: #818cf8;
    --rk-pro-success: #10b981;
    --rk-pro-danger: #ef4444;
    --rk-pro-warning: #f59e0b;
    --rk-pro-text: #334155;
    --rk-pro-text-light: #64748b;
    --rk-pro-bg: #f8fafc;
    --rk-pro-card: #ffffff;
    --rk-pro-border: #e2e8f0;
}

.rk-project-wrapper {
    max-width: 950px;
    margin: 60px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-pro-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(30, 27, 75, 0.15);
    border: 1px solid var(--rk-pro-border);
    overflow: hidden;
}

/* Nagłówek H2 */
.rk-pro-header {
    background: var(--rk-pro-dark);
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
    overflow: hidden;
}

.rk-pro-header::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle at 80% 20%, rgba(99, 102, 241, 0.3) 0%, transparent 60%);
    pointer-events: none;
}

.rk-pro-header h2 {
    font-size: 28px;
    font-weight: 900;
    color: #ffffff;
    margin: 0 0 15px 0;
    line-height: 1.3;
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-pro-header p {
    font-size: 16px;
    line-height: 1.6;
    color: #c7d2fe;
    margin: 0;
    max-width: 750px;
    position: relative;
    z-index: 2;
}

/* Sekcja Interaktywna - Przełącznik */
.rk-pro-interactive {
    padding: 40px 50px;
}

.rk-pro-toggle-container {
    background: #ffffff;
    border: 1px solid var(--rk-pro-border);
    border-radius: 20px;
    padding: 10px;
    display: flex;
    position: relative;
    margin-bottom: 40px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.02);
}

.rk-pro-toggle-btn {
    flex: 1;
    padding: 18px 20px;
    border: none;
    background: transparent;
    border-radius: 14px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-pro-text-light);
    cursor: pointer;
    position: relative;
    z-index: 2;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-pro-toggle-btn svg {
    width: 20px;
    height: 20px;
    transition: transform 0.3s;
}

.rk-pro-toggle-btn.active[data-state="amateur"] {
    color: var(--rk-pro-danger);
}

.rk-pro-toggle-btn.active[data-state="pro"] {
    color: var(--rk-pro-success);
}

/* Animowane tło przełącznika */
.rk-pro-toggle-bg {
    position: absolute;
    top: 10px;
    bottom: 10px;
    width: calc(50% - 10px);
    border-radius: 14px;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.4s;
    z-index: 1;
}

.rk-pro-toggle-container[data-current="amateur"] .rk-pro-toggle-bg {
    transform: translateX(0);
    background-color: #fef2f2;
    border: 1px solid #fecaca;
    box-shadow: 0 4px 6px -1px rgba(239, 68, 68, 0.1);
}

.rk-pro-toggle-container[data-current="pro"] .rk-pro-toggle-bg {
    transform: translateX(100%);
    background-color: #ecfdf5;
    border: 1px solid #a7f3d0;
    box-shadow: 0 4px 6px -1px rgba(16, 185, 129, 0.1);
}

/* Kafelki Wyników */
.rk-pro-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.rk-pro-card {
    background: var(--rk-pro-card);
    border: 1px solid var(--rk-pro-border);
    border-radius: 18px;
    padding: 30px 20px;
    text-align: center;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.02);
    position: relative;
    overflow: hidden;
    transition: all 0.3s ease;
}

.rk-pro-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: #e2e8f0;
    transition: background-color 0.4s;
}

.rk-pro-card.state-danger::before { background: var(--rk-pro-danger); }
.rk-pro-card.state-success::before { background: var(--rk-pro-success); }

.rk-pro-icon-box {
    width: 60px;
    height: 60px;
    margin: 0 auto 20px auto;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f1f5f9;
    transition: all 0.4s;
}

.rk-pro-card.state-danger .rk-pro-icon-box { background: #fef2f2; color: var(--rk-pro-danger); }
.rk-pro-card.state-success .rk-pro-icon-box { background: #ecfdf5; color: var(--rk-pro-success); }

.rk-pro-icon-box svg {
    width: 30px;
    height: 30px;
}

.rk-pro-metric {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--rk-pro-text-light);
    margin-bottom: 10px;
}

.rk-pro-value {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-pro-text);
    margin-bottom: 10px;
    min-height: 52px; /* Stabilizacja wysokości */
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 0.3s;
}

.rk-pro-card.state-danger .rk-pro-value { color: var(--rk-pro-danger); }
.rk-pro-card.state-success .rk-pro-value { color: var(--rk-pro-success); }

.rk-pro-desc {
    font-size: 14px;
    line-height: 1.5;
    color: var(--rk-pro-text);
}

.rk-pro-desc a {
    color: var(--rk-pro-brand);
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: transparent;
    transition: all 0.2s;
}

.rk-pro-desc a:hover {
    text-decoration-color: var(--rk-pro-brand);
}

/* Animacje SVG */
@keyframes shake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-3px) rotate(-5deg); }
    75% { transform: translateX(3px) rotate(5deg); }
}
.state-danger .anim-icon { animation: shake 0.5s ease-in-out; }

@keyframes popIn {
    0% { transform: scale(0.8); opacity: 0; }
    100% { transform: scale(1); opacity: 1; }
}
.state-success .anim-icon { animation: popIn 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275); }

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

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

.rk-pro-cta p {
    color: var(--rk-pro-text-light);
    margin: 0 auto 25px auto;
    max-width: 600px;
    line-height: 1.6;
}

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

.rk-pro-btn:hover {
    transform: translateY(-4px);
    background: #4f46e5;
    box-shadow: 0 15px 30px -5px rgba(99, 102, 241, 0.5);
}

@media (max-width: 768px) {
    .rk-pro-header, .rk-pro-interactive, .rk-pro-cta { padding: 30px 20px; }
    .rk-pro-toggle-container { flex-direction: column; }
    .rk-pro-toggle-bg { width: calc(100% - 20px); height: calc(50% - 10px); }
    .rk-pro-toggle-container[data-current="pro"] .rk-pro-toggle-bg { transform: translateY(100%); left: 10px; }
    .rk-pro-grid { grid-template-columns: 1fr; }
    .rk-pro-btn { width: 100%; padding: 16px; }
}
</style>

<div class="rk-project-wrapper">
    <div class="rk-pro-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="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>
            Przejście do realizacji: Dlaczego gotowy projekt to oszczędność?
        </h2>
        <p>Inwestorzy często rezygnują z profesjonalnego projektu instalacji, uznając go za zbędny wydatek rzędu kilkuset złotych, po czym wydają tysiące na przewymiarowane materiały lub borykają się z poprawkami. Zobacz na symulacji poniżej, jak decyzja o projekcie wpływa na koszty materiałowe i eksploatację.</p>
    </div>

    <div class="rk-pro-interactive">
        <div class="rk-pro-toggle-container" id="rkProToggle" data-current="amateur">
            <div class="rk-pro-toggle-bg"></div>
            <button class="rk-pro-toggle-btn active" data-state="amateur">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Robota &#8222;na oko&#8221; (Brak projektu)
            </button>
            <button class="rk-pro-toggle-btn" data-state="pro">
                <svg 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 OZC i Podłogówki
            </button>
        </div>

        <div class="rk-pro-grid">
            <div class="rk-pro-card state-danger" id="proCard1">
                <div class="rk-pro-icon-box">
                    <svg class="anim-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="proIcon1"><path d="M22 12H2"></path><path d="M5 8v8M10 8v8M14 8v8M19 8v8"></path></svg>
                </div>
                <div class="rk-pro-metric">Zużycie i Odpady</div>
                <div class="rk-pro-value" id="proVal1">Odpady > 15%<br>Braki na budowie</div>
                <div class="rk-pro-desc" id="proDesc1">
                    Kupując rury w ciemno, pętle nie pasują do zwojów (np. 200 mb). Zostają bezużyteczne odcinki po 30 mb, a na ostatnią pętlę brakuje materiału.
                </div>
            </div>

            <div class="rk-pro-card state-danger" id="proCard2">
                <div class="rk-pro-icon-box">
                    <svg class="anim-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="proIcon2"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                </div>
                <div class="rk-pro-metric">Równoważenie układu</div>
                <div class="rk-pro-value" id="proVal2">2 sezony grzewcze<br>prób i błędów</div>
                <div class="rk-pro-desc" id="proDesc2">
                    Brak wytycznych nastaw dla <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrów</a>. Kręcisz zaworami na oślep, co powoduje, że jedna pętla grzeje za mocno, a inna wcale.
                </div>
            </div>

            <div class="rk-pro-card state-danger" id="proCard3">
                <div class="rk-pro-icon-box">
                    <svg class="anim-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="proIcon3"><path d="M18 20V10"></path><path d="M12 20V4"></path><path d="M6 20v-6"></path></svg>
                </div>
                <div class="rk-pro-metric">Koszty Eksploatacji</div>
                <div class="rk-pro-value" id="proVal3">Przepalanie<br>energii</div>
                <div class="rk-pro-desc" id="proDesc3">
                    Przewymiarowana pompa ciepła lub kocioł taktuje (często się włącza). Brak synergii ze źródłem ciepła to wyższe rachunki za prąd/gaz.
                </div>
            </div>
        </div>
    </div>

    <div class="rk-pro-cta">
        <h4>Projekt to dokumentacja gwarantująca jakość</h4>
        <p>Kompletny projekt to nie tylko rysunek – to <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">precyzyjne zestawienie materiałowe</a>, obliczenia OZC oraz pewność optymalnej pracy systemu przez dekady.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-pro-btn">
            ZAMÓW PROJEKT OGRZEWANIA PODŁOGOWEGO
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const toggleContainer = document.getElementById('rkProToggle');
    const buttons = document.querySelectorAll('.rk-pro-toggle-btn');
    
    const cards = [
        document.getElementById('proCard1'),
        document.getElementById('proCard2'),
        document.getElementById('proCard3')
    ];
    
    const contentData = {
        amateur: [
            {
                val: "Odpady > 15%<br>Braki na budowie",
                desc: "Kupując rury w ciemno, pętle nie pasują do zwojów (np. 200 mb). Zostają bezużyteczne odcinki po 30 mb, a na ostatnią pętlę brakuje materiału."
            },
            {
                val: "2 sezony grzewcze<br>prób i błędów",
                desc: "Brak wytycznych nastaw dla <a href='https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/'>rotametrów</a>. Kręcisz zaworami na oślep, co powoduje, że jedna pętla grzeje za mocno, a inna wcale."
            },
            {
                val: "Przepalanie<br>energii",
                desc: "Źle dobrana pompa ciepła lub kocioł taktuje (często się włącza). Brak hydraulicznej synergii ze źródłem ciepła to wyższe rachunki za prąd/gaz."
            }
        ],
        pro: [
            {
                val: "Odpady < 2%<br>Zestawienie co do metra",
                desc: "Właściwe rozplanowanie pętli w projekcie redukuje odpad. Otrzymujesz precyzyjną listę zakupową – kupujesz dokładnie to, co jest potrzebne."
            },
            {
                val: "Kalibracja<br>w 10 minut",
                desc: "Otrzymujesz dokładne wytyczne nastaw wstępnych na rotametrach dla każdej z pętli. Równoważenie hydrauliczne wykonujesz natychmiast po montażu."
            },
            {
                val: "Maksymalna<br>Sprawność (COP)",
                desc: "Pewność, że źródło ciepła będzie pracować stabilnie i z najwyższą możliwą sprawnością energetyczną, co bezpośrednio przekłada się na oszczędności."
            }
        ]
    };

    function updateCards(state) {
        const data = contentData[state];
        const isPro = state === 'pro';

        cards.forEach((card, index) => {
            // Remove animation class to re-trigger it
            const icon = card.querySelector('.anim-icon');
            icon.classList.remove('anim-icon');
            
            // Force reflow
            void card.offsetWidth;

            // Update content
            card.querySelector('.rk-pro-value').innerHTML = data[index].val;
            card.querySelector('.rk-pro-desc').innerHTML = data[index].desc;

            // Update state classes
            if (isPro) {
                card.classList.remove('state-danger');
                card.classList.add('state-success');
            } else {
                card.classList.remove('state-success');
                card.classList.add('state-danger');
            }

            // Re-add animation class
            icon.classList.add('anim-icon');
        });
    }

    buttons.forEach(btn => {
        btn.addEventListener('click', function() {
            const state = this.getAttribute('data-state');
            
            // Update buttons
            buttons.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            
            // Update container bg
            toggleContainer.setAttribute('data-current', state);
            
            // Update UI cards
            updateCards(state);
        });
    });
});
</script>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#article-projekt",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/"
    },
    "headline": "Przejście do realizacji: Dlaczego gotowy projekt ogrzewania podłogowego to realna oszczędność?",
    "description": "Szczegółowa analiza opłacalności wykonania profesjonalnego projektu OZC i podłogówki. Zobacz, jak redukuje to odpady rur PEX do 2% i ułatwia równoważenie rotametrów.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-05",
    "dateModified": "2026-06-05"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#dataset-projekt",
    "name": "Porównanie kosztów i strat materiałowych: Montaż bez projektu vs. Projekt OZC",
    "description": "Zestawienie analityczne pokazujące różnice w zużyciu rur, czasie kalibracji układu oraz efektywności źródła ciepła dla instalacji realizowanych na podstawie projektu vs. intuicji wykonawcy.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt instalacji ogrzewania podłogowego",
      "odpady rury pex",
      "równoważenie hydrauliczne podłogówki",
      "nastawy rotametrów",
      "projekt ozc"
    ],
    "measurementTechnique": "Kwantyfikacja wskaźników montażowych: % odpadu z rolki 200m rury, czas potrzebny na kalibrację przepływów (rotametry) w jednostkach czasu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zużycie rur: Projekt zmniejsza odpad na budowie z ponad 15% do poziomu poniżej 2%.",
        "Równoważenie hydrauliczne: Gotowe wytyczne pozwalają zredukować czas kalibracji z wielu miesięcy do 10 minut.",
        "Koszty eksploatacji: Uniknięcie przewymiarowania i taktowania pompy ciepła zapewnia maksymalny możliwy wskaźnik COP."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#webapp-projekt",
    "name": "Symulator opłacalności projektu HVAC",
    "description": "Interaktywny przełącznik wizualizujący konsekwencje techniczne i finansowe montażu na oko w porównaniu do realizacji na bazie inżynierskiego projektu OZC.",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>



<style>
:root {
    --rk-cs-dark: #111827;
    --rk-cs-panel: #1f2937;
    --rk-cs-brand: #2563eb; /* Royal Blue */
    --rk-cs-brand-light: #dbeafe;
    --rk-cs-success: #059669; /* Emerald */
    --rk-cs-success-light: #d1fae5;
    --rk-cs-danger: #dc2626; /* Red */
    --rk-cs-danger-light: #fee2e2;
    --rk-cs-bg: #f8fafc;
    --rk-cs-card: #ffffff;
    --rk-cs-border: #e2e8f0;
    --rk-cs-text: #334155;
    --rk-cs-text-light: #64748b;
}

.rk-case-wrapper {
    max-width: 950px;
    margin: 60px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-cs-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(37, 99, 235, 0.1);
    border: 1px solid var(--rk-cs-border);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* Nagłówek Case Study */
.rk-cs-header {
    background: var(--rk-cs-dark);
    padding: 40px 50px 30px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-cs-brand);
}

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

.rk-cs-title {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
}

.rk-cs-badge {
    background: var(--rk-cs-brand);
    color: #ffffff;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
}

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

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

/* Profil Eksperta w Case Study */
.rk-cs-author-bar {
    display: flex;
    align-items: center;
    gap: 15px;
    background: var(--rk-cs-card);
    padding: 20px 50px;
    border-bottom: 1px solid var(--rk-cs-border);
}

.rk-cs-author-photo {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--rk-cs-brand);
}

.rk-cs-author-info h4 {
    margin: 0 0 2px 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-cs-dark);
}

.rk-cs-author-info p {
    margin: 0;
    font-size: 13px;
    color: var(--rk-cs-text-light);
    font-weight: 600;
}

/* Sekcja Interaktywna */
.rk-cs-body {
    padding: 40px 50px;
}

/* Przełącznik Przed/Po */
.rk-cs-toggle {
    display: flex;
    background: #ffffff;
    border: 1px solid var(--rk-cs-border);
    border-radius: 16px;
    padding: 8px;
    margin-bottom: 35px;
    position: relative;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-cs-btn {
    flex: 1;
    padding: 16px 20px;
    background: transparent;
    border: none;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-cs-text-light);
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    position: relative;
    z-index: 2;
}

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

.rk-cs-toggle-bg {
    position: absolute;
    top: 8px;
    bottom: 8px;
    width: calc(50% - 8px);
    border-radius: 12px;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.4s;
    z-index: 1;
}

.rk-cs-toggle[data-state="before"] .rk-cs-toggle-bg {
    transform: translateX(0);
    background: var(--rk-cs-danger-light);
    border: 1px solid #fca5a5;
}

.rk-cs-toggle[data-state="after"] .rk-cs-toggle-bg {
    transform: translateX(100%);
    background: var(--rk-cs-success-light);
    border: 1px solid #6ee7b7;
}

.rk-cs-toggle[data-state="before"] .rk-cs-btn[data-view="before"] { color: var(--rk-cs-danger); }
.rk-cs-toggle[data-state="after"] .rk-cs-btn[data-view="after"] { color: var(--rk-cs-success); }

/* Główny układ wyników */
.rk-cs-dashboard {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 30px;
}

/* Lewa strona - Parametry */
.rk-cs-metrics {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.rk-cs-card {
    background: var(--rk-cs-card);
    border: 1px solid var(--rk-cs-border);
    padding: 25px;
    border-radius: 16px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    transition: all 0.3s;
}

.rk-cs-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
    transition: background 0.3s, color 0.3s;
}

.rk-cs-icon svg { width: 22px; height: 22px; }

.rk-cs-label {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--rk-cs-text-light);
    margin-bottom: 8px;
    letter-spacing: 0.5px;
}

.rk-cs-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-cs-dark);
    margin-bottom: 6px;
    transition: color 0.3s;
}

.rk-cs-desc {
    font-size: 13px;
    color: var(--rk-cs-text);
    line-height: 1.4;
}

/* Prawa strona - Finanse i Pompa */
.rk-cs-summary {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-cs-finance-card {
    background: var(--rk-cs-dark);
    color: #ffffff;
    padding: 30px;
    border-radius: 16px;
    position: relative;
    overflow: hidden;
    transition: background 0.4s;
}

.rk-cs-finance-card::before {
    content: 'KOSZTORYS';
    position: absolute;
    top: 15px;
    right: 20px;
    font-size: 10px;
    font-weight: 800;
    color: rgba(255,255,255,0.2);
    letter-spacing: 2px;
}

.rk-cs-fin-label {
    font-size: 13px;
    color: #94a3b8;
    font-weight: 600;
    margin-bottom: 5px;
}

.rk-cs-fin-val {
    font-size: 38px;
    font-weight: 900;
    margin-bottom: 15px;
    line-height: 1;
    transition: color 0.3s;
}

.rk-cs-fin-sub {
    font-size: 14px;
    color: #cbd5e1;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 15px;
    border-top: 1px solid rgba(255,255,255,0.1);
}

.rk-cs-fin-sub strong { color: #ffffff; font-size: 16px; }

/* Dynamiczne stany (Danger/Success) */
.state-danger .rk-cs-icon { background: var(--rk-cs-danger-light); color: var(--rk-cs-danger); }
.state-danger .rk-cs-val { color: var(--rk-cs-danger); }
.state-danger-bg { background: #7f1d1d; }
.state-danger-text { color: #fca5a5; }

.state-success .rk-cs-icon { background: var(--rk-cs-success-light); color: var(--rk-cs-success); }
.state-success .rk-cs-val { color: var(--rk-cs-success); }
.state-success-bg { background: #064e3b; }
.state-success-text { color: #6ee7b7; }

/* Animacje UI */
.cs-anim-update {
    animation: csPop 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
@keyframes csPop {
    0% { transform: scale(0.95); opacity: 0.5; }
    50% { transform: scale(1.02); }
    100% { transform: scale(1); opacity: 1; }
}

@keyframes pumpPulse {
    0% { filter: drop-shadow(0 0 2px rgba(220, 38, 38, 0.5)); }
    50% { filter: drop-shadow(0 0 10px rgba(220, 38, 38, 0.8)); transform: scale(1.05); }
    100% { filter: drop-shadow(0 0 2px rgba(220, 38, 38, 0.5)); }
}
.anim-pump-bad { animation: pumpPulse 1s infinite; stroke: #ef4444; }

@keyframes pumpSmooth {
    0% { stroke-dashoffset: 20; }
    100% { stroke-dashoffset: 0; }
}
.anim-pump-good { stroke-dasharray: 5 5; animation: pumpSmooth 2s linear infinite; stroke: #10b981; }

@media (max-width: 850px) {
    .rk-cs-header, .rk-cs-author-bar, .rk-cs-body { padding: 30px 20px; }
    .rk-cs-dashboard { grid-template-columns: 1fr; }
    .rk-cs-metrics { grid-template-columns: 1fr; }
    .rk-cs-title { flex-direction: column; align-items: flex-start; gap: 10px; }
    .rk-cs-header h2 { font-size: 24px; }
}
</style>

<div class="rk-case-wrapper">
    <div class="rk-cs-header">
        <div class="rk-cs-title">
            <span class="rk-cs-badge">Case Study</span>
            <h2>Dom 200 m²: Gotowy projekt z sieci vs Optymalizacja OZC</h2>
        </div>
        <p>Pan Stanisław z Częstochowy buduje dom o powierzchni 200 m². Wraz z adaptacją otrzymał &#8222;darmowy&#8221; projekt podłogówki, w którym wszędzie zaplanowano rozstaw rur co 10 cm. Zobacz, ile kosztowałby go materiał i co stałoby się z pompą ciepła, gdybyśmy nie zainterweniowali i nie przeliczyli układu na nowo.</p>
    </div>

    <div class="rk-cs-author-bar">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="rk-cs-author-photo">
        <div class="rk-cs-author-info">
            <h4>Analiza i Obliczenia: Robert Kucharski</h4>
            <p>Specjalista HVAC | Projekt-Ogrzewania.pl</p>
        </div>
    </div>

    <div class="rk-cs-body">
        
        <div class="rk-cs-toggle" id="csToggle" data-state="before">
            <div class="rk-cs-toggle-bg"></div>
            <button class="rk-cs-btn" data-view="before">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Projekt &#8222;Darmowy&#8221; (Co 10 cm)
            </button>
            <button class="rk-cs-btn" data-view="after">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                Optymalizacja (Projekt OZC)
            </button>
        </div>

        <div class="rk-cs-dashboard">
            <div class="rk-cs-metrics">
                <div class="rk-cs-card" id="csCardPipe">
                    <div class="rk-cs-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 12H2"></path><path d="M5 8v8M10 8v8M14 8v8M19 8v8"></path></svg></div>
                    <div class="rk-cs-label">Zapotrzebowanie na Rurę</div>
                    <div class="rk-cs-val" id="csValPipe">2400 mb</div>
                    <div class="rk-cs-desc" id="csDescPipe">Ogromne przewymiarowanie. Z każdego zwoju 200m zostawałyby olbrzymie, bezużyteczne odpady (ścinki).</div>
                </div>

                <div class="rk-cs-card" id="csCardPump">
                    <div class="rk-cs-icon" id="csIconPump">
                        <svg viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="anim-pump-bad"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    </div>
                    <div class="rk-cs-label">Wpływ na Pompę Ciepła</div>
                    <div class="rk-cs-val" id="csValPump">Taktowanie</div>
                    <div class="rk-cs-desc" id="csDescPump">Zbyt gęsty układ dławi przepływ. Sprężarka włącza się i wyłącza co chwilę, drastycznie skracając żywotność pompy.</div>
                </div>
            </div>

            <div class="rk-cs-summary">
                <div class="rk-cs-finance-card state-danger-bg" id="csCardFin">
                    <div class="rk-cs-fin-label">Koszt samych rur (przy 4 zł/mb)</div>
                    <div class="rk-cs-fin-val state-danger-text" id="csValFin">9 600 PLN</div>
                    
                    <div class="rk-cs-fin-sub">
                        <span>Koszt projektu instalacji:</span>
                        <strong id="csValProj">0 PLN (Gotowiec)</strong>
                    </div>
                </div>
                
                <div class="rk-cs-card" style="background: #fffbeb; border-color: #fde68a;">
                    <div class="rk-cs-label" style="color: #b45309;">Wniosek Eksperta</div>
                    <div class="rk-cs-desc" style="color: #92400e; font-weight: 600;" id="csConclusion">
                        Brak uwzględnienia strefy klimatycznej i wyliczeń oporów to ukryty podatek. Instalator i tak doliczyłby sobie za robociznę przy układaniu nadmiarowych metrów rury.
                    </div>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const toggle = document.getElementById('csToggle');
    const buttons = document.querySelectorAll('.rk-cs-btn');
    
    const cardPipe = document.getElementById('csCardPipe');
    const cardPump = document.getElementById('csCardPump');
    const cardFin = document.getElementById('csCardFin');
    const iconPump = document.getElementById('csIconPump');
    
    const valPipe = document.getElementById('csValPipe');
    const descPipe = document.getElementById('csDescPipe');
    const valPump = document.getElementById('csValPump');
    const descPump = document.getElementById('csDescPump');
    const valFin = document.getElementById('csValFin');
    const valProj = document.getElementById('csValProj');
    const conclusion = document.getElementById('csConclusion');

    const data = {
        before: {
            pipeVal: "2400 mb",
            pipeDesc: "Ogromne przewymiarowanie (rozstaw 10 cm). Brak optymalizacji zwojów generuje potężne odpady.",
            pumpVal: "Taktowanie",
            pumpDesc: "Zbyt gęsty układ dławi przepływy wodne. Sprężarka szarpie pracą, co niszczy żywotność pompy ciepła.",
            finVal: "9 600 PLN",
            projVal: "0 PLN (Gotowiec)",
            concl: "Brak uwzględnienia strefy klimatycznej i wyliczeń oporów to ukryty podatek. Wyższe koszty materiału i szybsza awaria pompy ciepła.",
            stateClass: "state-danger",
            bgClass: "state-danger-bg",
            textClass: "state-danger-text",
            svg: `<svg viewBox="0 0 24 24" fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="anim-pump-bad"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>`
        },
        after: {
            pipeVal: "1600 mb",
            pipeDesc: "Zoptymalizowany rozstaw (15 cm, łazienki 10 cm). Rury idealnie rozplanowane pod pełne kręgi, odpady zredukowane do 2%.",
            pumpVal: "Płynna praca",
            pumpDesc: "Zbilansowane opory hydrauliczne. Pompa ciepła pracuje na zadanym przepływie (Delta T), wydłużając żywotność sprężarki o lata.",
            finVal: "6 400 PLN",
            projVal: "700 PLN (Projekt)",
            concl: "Optymalizacja OZC obniżyła koszty materiału o 3 200 PLN. Odejmując 700 PLN za projekt, inwestor jest 2 500 PLN na plusie przed startem prac.",
            stateClass: "state-success",
            bgClass: "state-success-bg",
            textClass: "state-success-text",
            svg: `<svg viewBox="0 0 24 24" fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="anim-pump-good"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>`
        }
    };

    function triggerAnim(el) {
        el.classList.remove('cs-anim-update');
        void el.offsetWidth;
        el.classList.add('cs-anim-update');
    }

    function updateView(state) {
        const d = data[state];
        
        // Remove old states
        cardPipe.className = 'rk-cs-card';
        cardPump.className = 'rk-cs-card';
        cardFin.className = 'rk-cs-finance-card';
        valFin.className = 'rk-cs-fin-val';

        // Add new states
        cardPipe.classList.add(d.stateClass);
        cardPump.classList.add(d.stateClass);
        cardFin.classList.add(d.bgClass);
        valFin.classList.add(d.textClass);

        // Update Text
        valPipe.innerHTML = d.pipeVal;
        descPipe.innerHTML = d.pipeDesc;
        valPump.innerHTML = d.pumpVal;
        descPump.innerHTML = d.pumpDesc;
        valFin.innerHTML = d.finVal;
        valProj.innerHTML = d.projVal;
        conclusion.innerHTML = d.concl;
        iconPump.innerHTML = d.svg;

        // Animate
        [valPipe, valPump, valFin].forEach(triggerAnim);
    }

    buttons.forEach(btn => {
        btn.addEventListener('click', function() {
            const state = this.getAttribute('data-view');
            toggle.setAttribute('data-state', state);
            updateView(state);
        });
    });

    // Init
    cardPipe.classList.add('state-danger');
    cardPump.classList.add('state-danger');
});
</script>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/"
    },
    "headline": "Case Study: Ile rur PEX potrzeba do domu 200 m² i jak oszczędzić 3200 zł?",
    "description": "Analiza rzeczywistego projektu z Częstochowy. Sprawdź, dlaczego rozstaw rur co 10 cm niszczy pompę ciepła i jak profesjonalne obliczenia OZC zmniejszyły rachunek za materiał.",
    "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-05",
    "dateModified": "2026-06-05"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#dataset-casestudy",
    "name": "Analiza finansowa i hydrauliczna: Gotowy projekt vs Projekt OZC",
    "description": "Zestawienie kosztów zakupu rur PEX oraz parametrów pracy pompy ciepła na podstawie optymalizacji instalacji dla budynku 200 mkw.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ile rury do ogrzewania podłogowego 200m2",
      "projekt ozc cena",
      "taktowanie pompy ciepła podłogówka",
      "rozstaw rur 10 czy 15 cm",
      "koszt materiału podłogówka"
    ],
    "measurementTechnique": "Kwantyfikacja strat finansowych (PLN) na bazie ceny 4 zł/mb rury PEX przy uwzględnieniu przewymiarowania rozstawu (10 cm) oraz weryfikacja oporów układu wpływających na zjawisko taktowania sprężarki.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stan pierwotny (Błąd): Rozstaw 10 cm generował zapotrzebowanie 2400 mb. Koszt rury: 9600 PLN. Układ dławił pompę ciepła powodując taktowanie.",
        "Optymalizacja OZC: Zastosowanie rozstawu 15 cm i dopasowanie stref klimatycznych zmniejszyło zapotrzebowanie do 1600 mb.",
        "Wynik finansowy: Koszt rury spadł do 6400 PLN. Koszt projektu 700 PLN. Czysta oszczędność inwestora to 2500 PLN przed rozpoczęciem prac instalacyjnych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#webapp-casestudy",
    "name": "Symulator Oszczędności OZC - Case Study",
    "description": "Interaktywny panel przełączania (toggle) weryfikujący koszty zakupowe i ryzyko awarii pompy ciepła w zależności od wybranego wariantu projektowania (na oko vs inżyniersko).",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-panel: #1e293b;
    --rk-faq-brand: #0284c7;
    --rk-faq-brand-light: #e0f2fe;
    --rk-faq-accent: #38bdf8;
    --rk-faq-text: #334155;
    --rk-faq-text-light: #64748b;
    --rk-faq-bg: #ffffff;
    --rk-faq-bg-alt: #f8fafc;
    --rk-faq-border: #e2e8f0;
    --rk-faq-danger: #ef4444;
}

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

/* Nagłówek Sekcji */
.rk-faq-header {
    background: var(--rk-faq-dark);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-faq-brand);
}

.rk-faq-header::before {
    content: '?';
    position: absolute;
    right: 40px;
    top: -20px;
    font-size: 150px;
    font-weight: 900;
    color: rgba(255,255,255,0.03);
    line-height: 1;
    pointer-events: none;
}

.rk-faq-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 12px;
    position: relative;
    z-index: 2;
}

.rk-faq-header p {
    font-size: 16px;
    line-height: 1.6;
    color: #cbd5e1;
    margin: 0;
    max-width: 750px;
    position: relative;
    z-index: 2;
}

/* Lista Akordeonowa */
.rk-faq-list {
    padding: 20px 50px 40px;
    background: var(--rk-faq-bg-alt);
}

.rk-faq-item {
    background: var(--rk-faq-bg);
    border: 1px solid var(--rk-faq-border);
    border-radius: 16px;
    margin-bottom: 15px;
    transition: all 0.3s ease;
    overflow: hidden;
}

.rk-faq-item:hover {
    border-color: #bae6fd;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
}

.rk-faq-item.active {
    border-color: var(--rk-faq-brand);
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.15);
}

/* Przycisk Pytania (H3 wewnątrz dla SEO) */
.rk-faq-trigger {
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    padding: 24px 30px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    transition: background 0.3s;
}

.rk-faq-trigger:hover {
    background: #fcfdfd;
}

.rk-faq-question-content {
    display: flex;
    align-items: center;
    gap: 18px;
}

.rk-faq-icon {
    flex-shrink: 0;
    width: 42px;
    height: 42px;
    background: var(--rk-faq-brand-light);
    color: var(--rk-faq-brand);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s;
}

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

.rk-faq-icon svg {
    width: 22px;
    height: 22px;
    stroke-width: 2;
}

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

.rk-faq-item.active .rk-faq-trigger h3 {
    color: var(--rk-faq-brand);
}

.rk-faq-toggle-icon {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 2px solid var(--rk-faq-border);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-faq-text-light);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

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

/* Treść Odpowiedzi */
.rk-faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease;
    opacity: 0;
}

.rk-faq-item.active .rk-faq-answer {
    opacity: 1;
}

.rk-faq-answer-inner {
    padding: 0 30px 30px 88px; /* Wcięcie dopasowane do ikony */
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-faq-text);
}

.rk-faq-answer-inner a {
    color: var(--rk-faq-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: border-color 0.2s;
}

.rk-faq-answer-inner a:hover {
    border-color: var(--rk-faq-brand);
}

.rk-faq-highlight {
    background: #fef2f2;
    color: var(--rk-faq-danger);
    padding: 2px 6px;
    border-radius: 4px;
    font-weight: 700;
}

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

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

.rk-faq-cta p {
    color: var(--rk-faq-text-light);
    margin: 0 auto 25px auto;
    max-width: 600px;
    line-height: 1.6;
}

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

.rk-faq-btn-massive:hover {
    transform: translateY(-5px);
    background: #1e293b;
    box-shadow: 0 15px 30px -5px rgba(15, 23, 42, 0.5);
    border-color: #475569;
}

.rk-faq-btn-massive svg {
    transition: transform 0.3s;
}

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

@media (max-width: 768px) {
    .rk-faq-header, .rk-faq-cta { padding: 35px 25px; }
    .rk-faq-list { padding: 20px 20px 30px; }
    .rk-faq-trigger { padding: 20px; gap: 15px; }
    .rk-faq-question-content { gap: 15px; }
    .rk-faq-trigger h3 { font-size: 15px; }
    .rk-faq-answer-inner { padding: 0 20px 25px 20px; } /* Usunięte duże wcięcie na mobile */
    .rk-faq-btn-massive { width: 100%; padding: 16px; }
}
</style>

<div class="rk-faq-wrapper">
    <div class="rk-faq-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"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Najczęściej zadawane pytania (FAQ)
        </h2>
        <p>Masz wątpliwości przed zakupem rur lub rozpoczęciem montażu? Poniżej zebrałem szybkie, inżynierskie odpowiedzi na pytania, które najczęściej słyszę od inwestorów decydujących się na wodne ogrzewanie podłogowe.</p>
    </div>

    <div class="rk-faq-list" id="rkFaqAccordion">
        
        <div class="rk-faq-item">
            <button class="rk-faq-trigger" aria-expanded="false">
                <div class="rk-faq-question-content">
                    <div class="rk-faq-icon">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12H2"></path><path d="M5 8v8M10 8v8M14 8v8M19 8v8"></path></svg>
                    </div>
                    <h3>Ile metrów ma najdłuższa pętla ogrzewania podłogowego 16 mm?</h3>
                </div>
                <div class="rk-faq-toggle-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-inner">
                    <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">Maksymalna długość pętli dla rury o średnicy 16 mm</a> wynosi <strong>100 metrów bieżących</strong> wraz z odcinkami przyłączeniowymi do rozdzielacza. Przekroczenie tej wartości generuje zbyt duże opory hydrauliczne, których standardowa pompa obiegowa zintegrowana ze źródłem ciepła nie jest w stanie pokonać.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-trigger" aria-expanded="false">
                <div class="rk-faq-question-content">
                    <div class="rk-faq-icon">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>
                    </div>
                    <h3>Jaki rozstaw rur podłogówki jest najlepszy do salonu?</h3>
                </div>
                <div class="rk-faq-toggle-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-inner">
                    Optymalnym i standardowym rozstawem rur w salonie jest <strong>15 cm</strong>, co zapewnia odpowiednią moc grzewczą przy niskich temperaturach zasilania. W miejscach z dużymi przeszkleniami (np. okna tarasowe typu HS) bezwzględnie stosuje się zagęszczenie, czyli <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/">strefę brzegową z rozstawem 10 cm</a>, aby zniwelować chłód bijący od szyb.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-trigger" aria-expanded="false">
                <div class="rk-faq-question-content">
                    <div class="rk-faq-icon">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                    </div>
                    <h3>Czy można łączyć rurę PEX w podłodze pod wylewką?</h3>
                </div>
                <div class="rk-faq-toggle-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-inner">
                    <span class="rk-faq-highlight">Absolutnie niedopuszczalne</span> jest jakiekolwiek łączenie rur wewnątrz warstwy jastrychu – pętla musi być wykonana z jednego ciągłego odcinka materiału od belki do belki rozdzielacza. Każde złącze mechaniczne pod wylewką to tykająca bomba, która drastycznie zwiększa ryzyko awarii i kosztownego kucia posadzek z powodu wycieku. Zobacz listę <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">innych błędów montażowych</a>.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-trigger" aria-expanded="false">
                <div class="rk-faq-question-content">
                    <div class="rk-faq-icon">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="M2 12h20M2 12c0 3.31 2.69 6 6 6h8c3.31 0 6-2.69 6-6M4 12V8c0-1.1.9-2 2-2h12c1.1 0 2 .9 2 2v4M12 6V3M8 3h8"></path></svg>
                    </div>
                    <h3>Ile rury PEX potrzeba na łazienkę o powierzchni 6 m²?</h3>
                </div>
                <div class="rk-faq-toggle-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-inner">
                    W łazienkach, ze względu na wyższą wymaganą temperaturę (24°C), zawsze stosuje się gęsty rozstaw rur co 10 cm. Oznacza to zużycie materiału na poziomie <strong>10 mb/m²</strong>. Dla powierzchni netto 6 m² potrzeba zatem minimum 60 mb rury, plus należy doliczyć dodatkowe metry na doprowadzenie tej pętli (tzw. tranzyt) do szafki rozdzielaczowej.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-trigger" aria-expanded="false">
                <div class="rk-faq-question-content">
                    <div class="rk-faq-icon">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><circle cx="9" cy="21" r="1"></circle><circle cx="20" cy="21" r="1"></circle><path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"></path></svg>
                    </div>
                    <h3>Jak obliczyć zapas rury przy zakupie na cały dom?</h3>
                </div>
                <div class="rk-faq-toggle-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-inner">
                    Do czystych obliczeń z powierzchni metrażowej (powierzchnia × współczynnik rozstawu) zawsze <a href="https://projekt-ogrzewania.pl/ile-kosztuje-100-m%c2%b2-ogrzewania-podlogowego/">należy dodać ok. 10% naddatku</a> na odpady, ugięcia na łukach oraz podejścia instalacyjne. Wyliczoną sumę metrów zaokrągla się w górę do pełnych kręgów handlowych – najczęściej rury PEX pakowane są w kręgi po 200 mb, 400 mb lub 600 mb.
                </div>
            </div>
        </div>

    </div>

    <div class="rk-faq-cta">
        <h4>Nie ryzykuj błędów przy montażu podłogówki</h4>
        <p>Wiedza z zakresu hydrauliki to podstawa, by nie przepłacić za materiały i uniknąć usterek. Przeczytaj moje szczegółowe analizy, studia przypadków i porady projektowe.</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-faq-btn-massive">
            PRZEJDŹ DO BAZY WIEDZY
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const faqItems = document.querySelectorAll('.rk-faq-item');

    faqItems.forEach(item => {
        const trigger = item.querySelector('.rk-faq-trigger');
        const answer = item.querySelector('.rk-faq-answer');

        trigger.addEventListener('click', () => {
            const isActive = item.classList.contains('active');

            // Zamknij wszystkie otwarte
            faqItems.forEach(otherItem => {
                otherItem.classList.remove('active');
                otherItem.querySelector('.rk-faq-trigger').setAttribute('aria-expanded', 'false');
                otherItem.querySelector('.rk-faq-answer').style.maxHeight = null;
            });

            // Otwórz kliknięty, jeśli był zamknięty
            if (!isActive) {
                item.classList.add('active');
                trigger.setAttribute('aria-expanded', 'true');
                // Ustawienie max-height na scrollHeight pozwala na płynną animację CSS
                answer.style.maxHeight = answer.scrollHeight + "px";
            }
        });
    });
});
</script>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/"
    },
    "headline": "Najczęściej zadawane pytania (FAQ) o rury do podłogówki",
    "description": "Zbiór odpowiedzi eksperckich na pytania o maksymalną długość pętli, optymalny rozstaw rur w salonie i łazience oraz zakaz łączenia przewodów w wylewce.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-06-05"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#dataset-faq",
    "name": "Baza wiedzy Q&A: Zapotrzebowanie i układanie rur PEX",
    "description": "Techniczne zestawienie odpowiedzi na najtrudniejsze pytania inwestorów dotyczące instalacji płaszczyznowych i hydrauliki.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna długość pętli ogrzewania podłogowego 16 mm",
      "rozstaw rur podłogówki w salonie",
      "łączenie rury PEX pod wylewką",
      "ile rury na łazienkę 6m2",
      "zapas rury ogrzewanie podłogowe"
    ],
    "measurementTechnique": "Ekstrakcja danych hydraulicznych i montażowych dla inwestorów na podstawie wytycznych branżowych i wieloletniej praktyki HVAC.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Q: Długość pętli 16mm? A: Maksymalnie 100 mb z tranzytem.",
        "Q: Rozstaw w salonie? A: Optymalnie 15 cm, przy oknach 10 cm.",
        "Q: Łączenie w wylewce? A: Absolutnie zakazane, pętla musi być w jednym kawałku.",
        "Q: Łazienka 6m2? A: Rozstaw 10 cm daje ok. 60 mb + tranzyty.",
        "Q: Zapas rury? A: Dodaj 10% do wyliczeń i zaokrąglij do pełnego kręgu."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#webapp-faq",
    "name": "Interaktywny Akordeon Wiedzy HVAC",
    "description": "Narzędzie interfejsu użytkownika (UI) pozwalające na dynamiczne przełączanie i odkrywanie odpowiedzi inżynierskich bez przeładowywania strony, zwiększające przejrzystość długich tekstów technicznych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>



<style>
:root {
    --rk-auth-dark: #0f172a;
    --rk-auth-panel: #1e293b;
    --rk-auth-bg: #ffffff;
    --rk-auth-surface: #f8fafc;
    --rk-auth-border: #e2e8f0;
    --rk-auth-text: #334155;
    --rk-auth-muted: #64748b;
    
    --rk-auth-blue: #0284c7;
    --rk-auth-gold: #eab308;
    --rk-auth-fb: #1877F2;
    --rk-auth-li: #0A66C2;
}

.rk-auth-container {
    max-width: 950px;
    margin: 60px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-auth-bg);
    border-radius: 24px;
    box-shadow: 0 10px 30px -10px rgba(15, 23, 42, 0.1);
    border: 1px solid var(--rk-auth-border);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* Header Area */
.rk-auth-header {
    background: var(--rk-auth-dark);
    padding: 35px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-auth-gold);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
}

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

.rk-auth-header-text p {
    font-size: 15px;
    color: #cbd5e1;
    margin: 0;
    font-weight: 500;
}

.rk-auth-trust-badge {
    background: rgba(234, 179, 8, 0.15);
    border: 1px solid rgba(234, 179, 8, 0.3);
    color: var(--rk-auth-gold);
    padding: 10px 20px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 800;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
    flex-shrink: 0;
}

/* Main Layout Grid */
.rk-auth-grid {
    display: grid;
    grid-template-columns: 320px 1fr;
    background: var(--rk-auth-bg);
}

/* Left Sidebar: Profile */
.rk-auth-profile {
    background: var(--rk-auth-surface);
    padding: 40px 30px;
    border-right: 1px solid var(--rk-auth-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.rk-auth-photo-wrap {
    width: 160px;
    height: 160px;
    margin-bottom: 25px;
}

.rk-auth-photo {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid #ffffff;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.2);
}

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

.rk-auth-title {
    font-size: 14px;
    color: var(--rk-auth-blue);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
}

.rk-auth-socials {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
}

.rk-social-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px;
    border-radius: 12px;
    color: #ffffff;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.rk-social-btn.fb { background: var(--rk-auth-fb); }
.rk-social-btn.fb:hover { background: #166fe5; }
.rk-social-btn.li { background: var(--rk-auth-li); }
.rk-social-btn.li:hover { background: #0959aa; }

/* Right Content Area */
.rk-auth-content {
    display: flex;
    flex-direction: column;
}

/* Cytat (Hook) */
.rk-auth-quote-box {
    padding: 35px 40px 25px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-auth-border);
}

.rk-auth-quote-mark {
    font-size: 60px;
    color: var(--rk-auth-blue);
    line-height: 0;
    opacity: 0.2;
    margin-bottom: -15px;
    display: block;
    font-family: serif;
}

.rk-auth-quote-text {
    font-size: 19px;
    font-weight: 700;
    color: var(--rk-auth-dark);
    line-height: 1.5;
    margin: 0;
    font-style: italic;
}

/* Navigation Tabs */
.rk-auth-tabs {
    display: flex;
    border-bottom: 1px solid var(--rk-auth-border);
    background: var(--rk-auth-surface);
}

.rk-auth-tab {
    flex: 1;
    padding: 18px 10px;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-auth-muted);
    cursor: pointer;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

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

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

/* Tab Panels */
.rk-auth-panel {
    padding: 40px;
    display: none;
}

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

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

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

.rk-auth-panel p:last-child { margin-bottom: 0; }

.rk-auth-panel a {
    color: var(--rk-auth-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid transparent;
}

.rk-auth-panel a:hover {
    border-color: var(--rk-auth-blue);
}

/* Stats Grid in Panel 2 */
.rk-auth-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-top: 25px;
}

.rk-stat-box {
    background: var(--rk-auth-surface);
    border: 1px solid var(--rk-auth-border);
    border-radius: 12px;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
}

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

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

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

.rk-stat-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-auth-muted);
    text-transform: uppercase;
}

/* Mobile */
@media (max-width: 850px) {
    .rk-auth-grid { grid-template-columns: 1fr; }
    .rk-auth-header { flex-direction: column; text-align: center; padding: 30px 25px; }
    .rk-auth-trust-badge { width: 100%; justify-content: center; }
    .rk-auth-profile { border-right: none; border-bottom: 1px solid var(--rk-auth-border); padding: 30px 25px; }
    .rk-auth-socials { flex-direction: row; }
    .rk-auth-tabs { flex-direction: column; background: #ffffff; }
    .rk-auth-tab { border-bottom: none; border-left: 4px solid transparent; justify-content: flex-start; padding: 15px 25px; }
    .rk-auth-tab.active { border-left-color: var(--rk-auth-blue); border-bottom-color: transparent; background: var(--rk-auth-surface); }
    .rk-auth-quote-box { padding: 25px; }
    .rk-auth-panel { padding: 30px 25px; }
    .rk-auth-stats { grid-template-columns: 1fr; }
}
</style>

<div class="rk-auth-container">
    
    <div class="rk-auth-header">
        <div class="rk-auth-header-text">
            <h2>Ekspert HVAC Robert Kucharski: Dlaczego nie liczymy rur &#8222;na oko&#8221;?</h2>
            <p>Nie powielam internetowych mitów. Zobacz, kto odpowiada za wiedzę techniczną w tym artykule.</p>
        </div>
        <div class="rk-auth-trust-badge">
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            Zweryfikowany Ekspert HVAC
        </div>
    </div>

    <div class="rk-auth-grid">
        
        <div class="rk-auth-profile">
            <div class="rk-auth-photo-wrap">
                <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-auth-photo">
            </div>
            
            <h3 class="rk-auth-name">Robert Kucharski</h3>
            <div class="rk-auth-title">Główny Specjalista HVAC</div>
            
            <div class="rk-auth-socials">
                <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener noreferrer" class="rk-social-btn fb">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
                    Projekt Ogrzewania
                </a>
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer" class="rk-social-btn li">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="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>
                    LinkedIn
                </a>
            </div>
        </div>

        <div class="rk-auth-content">
            
            <div class="rk-auth-quote-box">
                <span class="rk-auth-quote-mark">&#8222;</span>
                <p class="rk-auth-quote-text">
                    Nigdy nie kupuj rur &#8222;na oko&#8221;. Zbyt gęsty rozstaw zadławi hydraulicznie Twoją pompę obiegową, a zbyt rzadki wymusi podniesienie temperatury zasilania, niszcząc oszczędności z pompy ciepła. Matematyka układu wybacza znacznie mniej niż wylewka betonowa.
                </p>
            </div>

            <div class="rk-auth-tabs">
                <button class="rk-auth-tab active" data-panel="omnie">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>
                    O Mnie
                </button>
                <button class="rk-auth-tab" data-panel="liczby">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                    Fakty i Liczby
                </button>
                <button class="rk-auth-tab" data-panel="filozofia">
                    <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>
                    Filozofia OZC
                </button>
            </div>

            <div class="rk-auth-panel active" id="panel-omnie">
                <h3>Praktyka wygrywa z teorią</h3>
                <p>
                    Projektowanie systemów ogrzewania to czysta matematyka i fizyka budowli. Od lat doradzam inwestorom i audytuję błędy wykonawcze na placach budowy. Prowadzę również portal remont.biz.pl oraz sobir.pl, dzieląc się praktyczną wiedzą.
                </p>
                <p>
                    Wiem dokładnie, ile kosztuje instalatora pośpiech, a inwestora – ufność w &#8222;standardowe rozwiązania bez obliczeń&#8221;. W projekt-ogrzewania.pl łączę twardą wiedzę inżynierską z pragmatyzmem, udowadniając, że odpowiedni rozstaw rur to klucz do żywotności całego układu.
                </p>
            </div>

            <div class="rk-auth-panel" id="panel-liczby">
                <h3>Instalacje oparte na twardych danych</h3>
                <p>Każdy opór hydrauliczny, każdy metr rury PEX i każdy rotametr mają znaczenie. Moje podejście opiera się na wyliczeniach, nie na przypuszczeniach.</p>
                
                <div class="rk-auth-stats">
                    <div class="rk-stat-box">
                        <div class="rk-stat-icon">
                            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
                        </div>
                        <div class="rk-stat-info">
                            <div class="rk-stat-val">1000+</div>
                            <div class="rk-stat-label">Wykonanych Projektów OZC</div>
                        </div>
                    </div>
                    
                    <div class="rk-stat-box">
                        <div class="rk-stat-icon">
                            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                        </div>
                        <div class="rk-stat-info">
                            <div class="rk-stat-val">~20%</div>
                            <div class="rk-stat-label">Oszczędności eksploatacyjnych</div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-auth-panel" id="panel-filozofia">
                <h3>Bezbłędny system zaczyna się na papierze</h3>
                <p>
                    Nie uznaję układania rur &#8222;co 15 cm wszędzie, bo tak się robi&#8221;. Każde pomieszczenie ma inne straty cieplne. Stosuję gęstszy rozstaw w łazienkach i przy strefach brzegowych (duże przeszklenia), rzadszy w sypialniach.
                </p>
                <p>
                    Wszystkie algorytmy i artykuły na tej stronie bazują na obowiązującej normie projektowej <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">PN-EN 1264</a>, co gwarantuje pełną zgodność prawno-techniczną i bezpieczeństwo dla jastrychów.
                </p>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const tabs = document.querySelectorAll('.rk-auth-tab');
    const panels = document.querySelectorAll('.rk-auth-panel');

    tabs.forEach(tab => {
        tab.addEventListener('click', function() {
            // Remove active classes
            tabs.forEach(t => t.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

            // Add active class to clicked tab
            this.classList.add('active');

            // Show corresponding panel
            const target = this.getAttribute('data-panel');
            document.getElementById('panel-' + target).classList.add('active');
        });
    });
});
</script>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#article-autor",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/"
    },
    "headline": "Ekspert HVAC Robert Kucharski: Dlaczego nie liczymy rur \"na oko\"?",
    "description": "Profil ekspercki Roberta Kucharskiego, inżyniera HVAC weryfikującego błędy w układaniu rur PEX oraz optymalizującego rozstaw pętli grzewczych na bazie projektów OZC.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "jobTitle": "Inżynier HVAC",
      "sameAs": [
        "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-05",
    "dateModified": "2026-06-05"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#dataset-autor",
    "name": "Baza wiedzy i doświadczenia HVAC - Robert Kucharski",
    "description": "Zestawienie autorskich statystyk i kompetencji technicznych w zakresie normatywnego projektowania systemów ogrzewania płaszczyznowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projektowanie ogrzewania podłogowego OZC",
      "obliczanie ilości rur podłogówki",
      "norma PN-EN 1264 podłogówka",
      "inżynier hvac robert kucharski",
      "audyt hydrauliczny instalacji"
    ],
    "measurementTechnique": "Agregacja danych z ponad 1000 zrealizowanych projektów OZC, wykazująca redukcję oporów hydraulicznych i średni spadek kosztów ogrzewania u inwestorów o ok. 20%.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zrealizowane projekty instalacji płaszczyznowych na bazie OZC: 1000+",
        "Główny profil działalności: Redukcja kosztów inwestycyjnych poprzez unikanie przewymiarowania rur.",
        "Podstawa techniczna audytów: Norma PN-EN 1264-4."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#webapp-autor",
    "name": "Interaktywny Profil Autorski E-E-A-T",
    "description": "Statyczny interfejs weryfikujący autorytet inżynierski autora, integrujący jego wypowiedzi (hook), portfolio projektowe oraz filozofię zgodną z normami prawa budowlanego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>



<style>
:root {
    --rk-aud-dark: #111827;
    --rk-aud-panel: #1f2937;
    --rk-aud-brand: #3b82f6;
    --rk-aud-brand-light: #eff6ff;
    --rk-aud-accent: #60a5fa;
    --rk-aud-text: #4b5563;
    --rk-aud-text-light: #9ca3af;
    --rk-aud-bg: #ffffff;
    --rk-aud-border: #e5e7eb;
    --rk-aud-success: #10b981;
    --rk-aud-alert: #ef4444;
}

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

/* Nagłówek H2 */
.rk-aud-header {
    background: var(--rk-aud-dark);
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
    overflow: hidden;
}

.rk-aud-header::after {
    content: '';
    position: absolute;
    top: -50px;
    right: -50px;
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, rgba(59, 130, 246, 0.2) 0%, transparent 70%);
    border-radius: 50%;
}

.rk-aud-header h2 {
    font-size: 30px;
    font-weight: 900;
    color: #ffffff;
    margin: 0 0 15px 0;
    line-height: 1.3;
    position: relative;
    z-index: 2;
}

.rk-aud-header p {
    font-size: 16px;
    color: var(--rk-aud-text-light);
    line-height: 1.6;
    max-width: 700px;
    margin: 0;
    position: relative;
    z-index: 2;
}

/* Interaktywne Zakładki */
.rk-aud-interactive-zone {
    padding: 40px 50px;
}

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

.rk-aud-tabs {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    background: #f3f4f6;
    padding: 8px;
    border-radius: 16px;
    overflow-x: auto;
    scrollbar-width: none;
}

.rk-aud-tabs::-webkit-scrollbar { display: none; }

.rk-aud-tab-btn {
    flex: 1;
    min-width: 150px;
    padding: 14px 20px;
    border: none;
    background: transparent;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-aud-text);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    white-space: nowrap;
}

.rk-aud-tab-btn:hover {
    color: var(--rk-aud-dark);
}

.rk-aud-tab-btn.active {
    background: var(--rk-aud-bg);
    color: var(--rk-aud-brand);
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

.rk-aud-tab-btn svg {
    width: 18px;
    height: 18px;
    transition: stroke 0.3s;
}

/* Panele z treścią (Karty) */
.rk-aud-panel {
    display: none;
    animation: fadeIn 0.4s ease forwards;
}

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

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

.rk-aud-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 25px;
}

.rk-aud-card {
    background: var(--rk-aud-bg);
    border: 1px solid var(--rk-aud-border);
    padding: 30px;
    border-radius: 20px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    position: relative;
    transition: transform 0.3s;
}

.rk-aud-card:hover {
    transform: translateY(-4px);
    border-color: var(--rk-aud-accent);
}

.rk-aud-icon-box {
    width: 50px;
    height: 50px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
}

.bg-blue { background: var(--rk-aud-brand-light); color: var(--rk-aud-brand); }
.bg-green { background: #ecfdf5; color: var(--rk-aud-success); }
.bg-red { background: #fef2f2; color: var(--rk-aud-alert); }

.rk-aud-icon-box svg {
    width: 26px;
    height: 26px;
}

.rk-aud-card h4 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-aud-dark);
    margin: 0 0 12px 0;
}

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

.rk-aud-card a {
    color: var(--rk-aud-brand);
    text-decoration: none;
    font-weight: 600;
    border-bottom: 1px solid transparent;
    transition: border-color 0.2s;
}

.rk-aud-card a:hover {
    border-color: var(--rk-aud-brand);
}

/* Sekcja CTA */
.rk-aud-cta {
    background: linear-gradient(135deg, var(--rk-aud-panel) 0%, var(--rk-aud-dark) 100%);
    padding: 50px;
    text-align: center;
    color: #ffffff;
}

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

.rk-aud-cta p {
    font-size: 16px;
    color: var(--rk-aud-text-light);
    margin: 0 auto 30px auto;
    max-width: 600px;
    line-height: 1.6;
}

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

.rk-aud-btn-massive:hover {
    transform: translateY(-5px);
    background: #2563eb;
    box-shadow: 0 20px 35px -5px rgba(59, 130, 246, 0.6);
    border-color: #93c5fd;
}

.rk-aud-btn-massive svg {
    transition: transform 0.3s;
}

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

/* Animacje ścieżek SVG */
@keyframes drawPath {
    to { stroke-dashoffset: 0; }
}
.anim-draw {
    stroke-dasharray: 100;
    stroke-dashoffset: 100;
    animation: drawPath 1.5s ease forwards;
}

@media (max-width: 768px) {
    .rk-aud-header, .rk-aud-interactive-zone, .rk-aud-cta { padding: 35px 25px; }
    .rk-aud-tabs { flex-direction: column; background: transparent; padding: 0; }
    .rk-aud-tab-btn { background: #f3f4f6; justify-content: flex-start; padding: 16px 20px; }
    .rk-aud-grid { grid-template-columns: 1fr; }
    .rk-aud-btn-massive { width: 100%; justify-content: center; padding: 18px 20px; font-size: 16px; }
}
</style>

<div class="rk-audit-container">
    <div class="rk-aud-header">
        <h2>Podsumowanie: Ile rury na m² podłogówki – Checklista Inwestora</h2>
        <p>Prawidłowe określenie zapotrzebowania materiałowego na ogrzewanie płaszczyznowe to zaledwie początek. System grzewczy zadziała bezbłędnie tylko wtedy, gdy rozstaw pętli spotka się z fizyką przepływów i poprawnym montażem. Zobacz, o czym nie możesz zapomnieć.</p>
    </div>

    <div class="rk-aud-interactive-zone">
        <h3>
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-aud-brand)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            Interaktywna Weryfikacja Systemu
        </h3>
        
        <div class="rk-aud-tabs">
            <button class="rk-aud-tab-btn active" data-target="panel-parametry">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                1. Limity Hydrauliczne
            </button>
            <button class="rk-aud-tab-btn" data-target="panel-bledy">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                2. Błędy Wykonawcze
            </button>
            <button class="rk-aud-tab-btn" data-target="panel-projekt">
                <svg 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>
                3. Złote Zasady
            </button>
        </div>

        <div class="rk-aud-panel active" id="panel-parametry">
            <div class="rk-aud-grid">
                <div class="rk-aud-card">
                    <div class="rk-aud-icon-box bg-blue">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path class="anim-draw" d="M4 10a4 4 0 0 1 4-4h8a4 4 0 0 1 4 4v4a4 4 0 0 1-4 4h-8a4 4 0 0 1-4-4v-4z"></path></svg>
                    </div>
                    <h4>Maksymalna długość pętli</h4>
                    <p>Fizyki nie oszukasz. Dla rury PEX o średnicy wewnętrznej 16 mm (16&#215;2) absolutny limit to <strong>100 metrów bieżących</strong> na jedną pętlę. Przekroczenie tego oporu zablokuje przepływ wody przez pompę obiegową.</p>
                </div>
                <div class="rk-aud-card">
                    <div class="rk-aud-icon-box bg-blue">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line class="anim-draw" x1="12" y1="2" x2="12" y2="22"></line><line class="anim-draw" x1="2" y1="12" x2="22" y2="12"></line></svg>
                    </div>
                    <h4>Gęstość a rachunki</h4>
                    <p>Zmniejszenie rozstawu rur z 15 cm na 10 cm obniża wymaganą temperaturę zasilania na kotle. Zyskujesz na <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">mniejszym zużyciu prądu przez pompę ciepła (wyższy COP)</a>.</p>
                </div>
            </div>
        </div>

        <div class="rk-aud-panel" id="panel-bledy">
            <div class="rk-aud-grid">
                <div class="rk-aud-card">
                    <div class="rk-aud-icon-box bg-red">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle class="anim-draw" cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                    </div>
                    <h4>Gilotyna w drzwiach</h4>
                    <p>Brak peszli ochronnych i poprawnie wykonanej <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">szczeliny dylatacyjnej</a> w otworach drzwiowych sprawia, że pracująca termicznie <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewka betonowa</a> &#8222;ścina&#8221; rury po kilku sezonach.</p>
                </div>
                <div class="rk-aud-card">
                    <div class="rk-aud-icon-box bg-red">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path class="anim-draw" d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    </div>
                    <h4>Oszczędność na jakości</h4>
                    <p>Zastosowanie najtańszych rur bez warstwy EVOH powoduje napowietrzanie instalacji i przyspiesza korozję rozdzielaczy mosiężnych. Zapoznaj się z listą <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">najczęstszych błędów montażowych</a>.</p>
                </div>
            </div>
        </div>

        <div class="rk-aud-panel" id="panel-projekt">
            <div class="rk-aud-grid">
                <div class="rk-aud-card">
                    <div class="rk-aud-icon-box bg-green">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path class="anim-draw" 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>
                    <h4>Obliczenia OZC to fundament</h4>
                    <p>Nigdy nie dobieraj rozstawu rur &#8222;na oko&#8221;. Precyzyjne określenie strat energii poprzez wykonanie <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowego obciążenia cieplnego (OZC)</a> pozwala dopasować zagęszczenie dokładnie do potrzeb salonu czy łazienki.</p>
                </div>
                <div class="rk-aud-card">
                    <div class="rk-aud-icon-box bg-green">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path class="anim-draw" 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>
                    <h4>Protokół Próby Ciśnieniowej</h4>
                    <p>Nigdy nie zalewaj instalacji jastrychem przed wykonaniem testu szczelności ciśnieniem min. 6 barów przez 24 godziny. Ten dokument to Twoja przepustka do uznania gwarancji przez producenta rur.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-aud-cta">
        <h3>Przestań zgadywać na własnej budowie</h3>
        <p>Instalacja hydrauliczna zaleje się w wylewce betonowej na kolejne 50 lat. Jeden błąd to konieczność kucia posadzek. Zdobądź profesjonalną wiedzę inżynierską, o której milczą instalatorzy.</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-aud-btn-massive">
            Więcej artykułów na moim blogu.

            <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 tabs = document.querySelectorAll('.rk-aud-tab-btn');
    const panels = document.querySelectorAll('.rk-aud-panel');

    tabs.forEach(tab => {
        tab.addEventListener('click', () => {
            // Remove active classes
            tabs.forEach(t => t.classList.remove('active'));
            panels.forEach(p => {
                p.classList.remove('active');
                // Reset animation
                p.style.animation = 'none';
                p.offsetHeight; // trigger reflow
                p.style.animation = null;
            });

            // Add active class to clicked tab
            tab.classList.add('active');
            
            // Show corresponding panel
            const target = tab.getAttribute('data-target');
            document.getElementById(target).classList.add('active');
        });
    });
});
</script>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#article-final-summary",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/"
    },
    "headline": "Podsumowanie: Ile rury na m² podłogówki – Checklista Inwestora",
    "description": "Zestawienie inżynierskich zasad montażu instalacji grzewczej podłogowej, maksymalnych długości pętli rur PEX oraz błędów wykonawczych przed wylaniem wylewki betonowej.",
    "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-05",
    "dateModified": "2026-06-05"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#dataset-final-summary",
    "name": "Standard inżynierski montażu ogrzewania płaszczyznowego 2026",
    "description": "Kompendium limitów hydraulicznych, zaleceń projektowych OZC oraz norm instalacyjnych dla rur polietylenowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna długość pętli ogrzewania podłogowego 16mm",
      "zapotrzebowanie materiałowe na podłogówkę",
      "błędy przy montażu podłogówki",
      "wylewka betonowa na ogrzewanie podłogowe",
      "projekt OZC a rozstaw rur"
    ],
    "measurementTechnique": "Weryfikacja jakości montażu instalacji hydraulicznej w relacji do normatywnego oporu rurociągów PEX (max 100 mb).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Reguła 100 metrów - limit zapobiegający blokadzie hydraulicznej i niedogrzaniu podłogi.",
        "Wymóg stosowania peszli i szczelin dylatacyjnych chroniących przed ścięciem rur przez jastrych.",
        "Obligatoryjne obliczenia OZC dla precyzyjnego doboru zagęszczenia rur zamiast dobierania na oko."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#webapp-final-summary",
    "name": "Interaktywny Audyt Ogrzewania Podłogowego",
    "description": "Narzędzie edukacyjne weryfikujące poprawność wykonania instalacji grzewczej, segregujące wiedzę na limity techniczne, błędy montażowe i zasady poprawnego wylewania betonu.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>



<style>
:root {
    --rk-dl-dark: #1e293b;
    --rk-dl-panel: #334155;
    --rk-dl-brand: #f97316; /* Pomarańczowy nawiązujący do infografiki */
    --rk-dl-brand-light: #ffedd5;
    --rk-dl-accent: #fb923c;
    --rk-dl-bg: #f8fafc;
    --rk-dl-card: #ffffff;
    --rk-dl-border: #e2e8f0;
    --rk-dl-text: #475569;
    --rk-dl-text-light: #94a3b8;
}

.rk-download-wrapper {
    max-width: 950px;
    margin: 60px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-dl-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -15px rgba(249, 115, 22, 0.15);
    border: 1px solid var(--rk-dl-border);
    overflow: hidden;
}

/* Nagłówek */
.rk-dl-header {
    background: var(--rk-dl-dark);
    padding: 40px 50px 30px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-dl-brand);
    position: relative;
}

.rk-dl-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
    display: flex;
    align-items: center;
    gap: 12px;
}

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

/* Obszar Główny */
.rk-dl-body {
    padding: 40px 50px;
    display: grid;
    grid-template-columns: 350px 1fr;
    gap: 40px;
    align-items: start;
}

/* Podgląd Infografiki */
.rk-dl-preview {
    background: var(--rk-dl-card);
    padding: 15px;
    border-radius: 16px;
    border: 1px solid var(--rk-dl-border);
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
    position: relative;
    overflow: hidden;
    cursor: pointer;
    transition: transform 0.3s;
}

.rk-dl-preview:hover {
    transform: translateY(-5px);
}

.rk-dl-preview img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    display: block;
}

.rk-dl-zoom-overlay {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(30, 41, 59, 0.7);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s;
}

.rk-dl-preview:hover .rk-dl-zoom-overlay {
    opacity: 1;
}

.rk-dl-zoom-overlay svg {
    color: #ffffff;
    width: 48px; height: 48px;
}

/* Sekcja Pobierania */
.rk-dl-actions {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-dl-card {
    background: var(--rk-dl-card);
    border: 1px solid var(--rk-dl-border);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    align-items: center;
    gap: 20px;
    transition: all 0.3s;
}

.rk-dl-card:hover {
    border-color: var(--rk-dl-accent);
    box-shadow: 0 10px 20px -5px rgba(249, 115, 22, 0.1);
}

.rk-dl-icon-box {
    width: 60px;
    height: 60px;
    background: var(--rk-dl-brand-light);
    color: var(--rk-dl-brand);
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rk-dl-card-content {
    flex: 1;
}

.rk-dl-card-content h3 {
    margin: 0 0 5px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-dl-dark);
}

.rk-dl-card-content p {
    margin: 0 0 15px 0;
    font-size: 14px;
    color: var(--rk-dl-text);
}

.rk-dl-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--rk-dl-dark);
    color: #ffffff;
    padding: 10px 20px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    transition: background 0.3s;
}

.rk-dl-btn:hover {
    background: var(--rk-dl-brand);
}

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

/* Stopka Prawa Autorskie */
.rk-dl-footer {
    background: var(--rk-dl-panel);
    padding: 20px 50px;
    color: #cbd5e1;
    font-size: 13px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-dl-footer svg {
    flex-shrink: 0;
    color: var(--rk-dl-brand);
}

/* Modal do podglądu pełnego zdjęcia */
.rk-dl-modal {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 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;
}

.rk-dl-modal.active {
    opacity: 1;
    pointer-events: auto;
}

.rk-dl-modal-content {
    position: relative;
    max-width: 90%;
    max-height: 90vh;
}

.rk-dl-modal-img {
    max-width: 100%;
    max-height: 90vh;
    border-radius: 12px;
    box-shadow: 0 25px 50px rgba(0,0,0,0.5);
}

.rk-dl-modal-close {
    position: absolute;
    top: -40px; right: 0;
    background: transparent;
    border: none;
    color: #ffffff;
    cursor: pointer;
}

/* RWD */
@media (max-width: 768px) {
    .rk-dl-header, .rk-dl-body, .rk-dl-footer { padding: 30px 20px; }
    .rk-dl-body { grid-template-columns: 1fr; gap: 30px; }
    .rk-dl-preview { max-width: 400px; margin: 0 auto; }
}
</style>

<div class="rk-download-wrapper">
    <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="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>
            Materiały dla Inwestora (Ściągawka)
        </h2>
        <p>Zabrać wiedzę na budowę? Przygotowałem dla Ciebie czytelną infografikę z najważniejszymi przelicznikami i najczęstszymi błędami. Pobierz PDF, wydrukuj i miej pod ręką podczas ustaleń z instalatorem.</p>
    </div>

    <div class="rk-dl-body">
        
        <div class="rk-dl-preview" id="rkDlPreviewTrigger">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Ile-rury-na-m²-ogrzewania-podlogowego.webp" alt="Infografika - Ile rury na m² ogrzewania podłogowego" loading="lazy">
            <div class="rk-dl-zoom-overlay">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
            </div>
        </div>

        <div class="rk-dl-actions">
            
            <div class="rk-dl-card">
                <div class="rk-dl-icon-box">
                    <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><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
                </div>
                <div class="rk-dl-card-content">
                    <h3>Pobierz wersję PDF</h3>
                    <p>Format A4, idealny do druku. Zawiera przeliczniki rozstawów i limity pętli.</p>
                    <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Ile-rury-na-m²-ogrzewania-podlogowego.pdf" class="rk-dl-btn" download="">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
                        Pobierz PDF
                    </a>
                </div>
            </div>

            <div class="rk-dl-card">
                <div class="rk-dl-icon-box" style="background: #e0f2fe; color: #0284c7;">
                    <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg>
                </div>
                <div class="rk-dl-card-content">
                    <h3>Pobierz wersję Graficzną (WebP)</h3>
                    <p>Lekki plik graficzny, idealny do zapisania w telefonie na placu budowy.</p>
                    <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Ile-rury-na-m²-ogrzewania-podlogowego.webp" class="rk-dl-btn" style="background: #0284c7;" download="">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
                        Zapisz Obraz
                    </a>
                </div>
            </div>

        </div>

    </div>

    <div class="rk-dl-footer">
        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
        <span>© 2026 Projekt-Ogrzewania.pl | Autor: Robert Kucharski. Udostępnianie materiału dozwolone wyłącznie z zachowaniem logotypu portalu i bez modyfikacji pliku.</span>
    </div>
</div>

<div class="rk-dl-modal" id="rkDlModal">
    <div class="rk-dl-modal-content">
        <button class="rk-dl-modal-close" id="rkDlModalClose">
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
        </button>
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Ile-rury-na-m²-ogrzewania-podlogowego.webp" alt="Infografika - Powiększenie" class="rk-dl-modal-img">
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const trigger = document.getElementById('rkDlPreviewTrigger');
    const modal = document.getElementById('rkDlModal');
    const closeBtn = document.getElementById('rkDlModalClose');

    trigger.addEventListener('click', () => {
        modal.classList.add('active');
        document.body.style.overflow = 'hidden'; // Blokada scrollowania tła
    });

    function closeModal() {
        modal.classList.remove('active');
        document.body.style.overflow = '';
    }

    closeBtn.addEventListener('click', closeModal);
    
    modal.addEventListener('click', (e) => {
        if (e.target === modal) {
            closeModal();
        }
    });

    document.addEventListener('keydown', (e) => {
        if (e.key === 'Escape' && modal.classList.contains('active')) {
            closeModal();
        }
    });
});
</script>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/"
    },
    "headline": "Materiały dla Inwestora: Infografika z przelicznikami rur podłogowych",
    "description": "Pobierz darmową infografikę (PDF/WebP) zawierającą praktyczne przeliczniki rozstawu rur grzewczych oraz listę najczęstszych błędów montażowych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Ile-rury-na-m²-ogrzewania-podlogowego.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-05",
    "dateModified": "2026-06-05"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#dataset-infografika",
    "name": "Zestawienie wizualne: Przeliczniki i błędy instalacji podłogowych",
    "description": "Graficzne podsumowanie zapotrzebowania na mb rury na m2 w zależności od rozstawu (10-25 cm) wraz z listą kluczowych limitów hydraulicznych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika ogrzewanie podłogowe",
      "tabela zużycia rur podłogówka pdf",
      "rozstaw rur ściągawka",
      "błędy przy podłogówce grafika",
      "darmowy projekt ogrzewania pdf"
    ],
    "measurementTechnique": "Agregacja kluczowych wskaźników montażowych (mb/m2, długości pętli) w formę graficznej mapy myśli ułatwiającej inwestorom weryfikację prac na budowie.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Przelicznik bazowy: Rozstaw 10cm = 10 mb/m2, 15cm = 7 mb/m2, 20cm = 5 mb/m2, 25cm = 4 mb/m2.",
        "Limity: Zbyt długa pętla pogarsza pracę instalacji.",
        "Zalecenia: Konieczność uwzględnienia dojść do rozdzielacza i zagęszczenia stref przy dużych oknach."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/#webapp-infografika",
    "name": "Interaktywna Galeria i Pobieralnia Plików",
    "description": "Moduł UI (Lightbox) umożliwiający powiększenie infografiki technicznej oraz bezpośrednie pobranie plików w formatach PDF i WebP na urządzenia użytkownika.",
    "applicationCategory": "MultimediaApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-rury-na-m%c2%b2-ogrzewania-podlogowego/">Ile rury na m² ogrzewania podłogowego?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
