<?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 instalacja ogrzewania podłogowego - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/tag/instalacja-ogrzewania-podlogowego/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/tag/instalacja-ogrzewania-podlogowego/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Mon, 01 Jun 2026 20:24:46 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</generator>

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa instalacja ogrzewania podłogowego - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/tag/instalacja-ogrzewania-podlogowego/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Rury do ogrzewania podłogowego.</title>
		<link>https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/</link>
					<comments>https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 15 Feb 2025 09:45:53 +0000</pubDate>
				<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Montaż ogrzewania podłogowego]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Rodzaje rur grzewczych]]></category>
		<category><![CDATA[Rury do ogrzewania]]></category>
		<category><![CDATA[Rury do podłogówki]]></category>
		<category><![CDATA[Wybór materiałów do podłogówki]]></category>
		<category><![CDATA[instalacja ogrzewania podłogowego]]></category>
		<category><![CDATA[montaż rur]]></category>
		<category><![CDATA[ogrzewanie domu]]></category>
		<category><![CDATA[pe-rt]]></category>
		<category><![CDATA[pex]]></category>
		<category><![CDATA[pex-al-pex]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[rozstaw rur]]></category>
		<category><![CDATA[rury do ogrzewania podłogowego]]></category>
		<category><![CDATA[system grzewczy]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2207</guid>

					<description><![CDATA[<p>Ogrzewanie podłogowe to inwestycja w komfort i energooszczędność, a kluczowym jego elementem są rury do ogrzewania podłogowego. Ich wybór ma ogromny wpływ na wydajność i trwałość całego systemu. Czy lepiej postawić na rury PEX, PE-RT, a może wielowarstwowe PEX-Al-PEX? Jakie średnice i rozstawy rur zapewnią optymalne ogrzewanie? W tym artykule podpowiadamy, na co zwrócić uwagę przy zakupie oraz jak uniknąć błędów montażowych, by cieszyć się ciepłem w domu przez lata.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">Rury do ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
/* REFORMA I IZOLACJA MODELU PUDEŁKOWEGO DLA WORDPRESS */
.rk-intro-wrapper, .rk-intro-wrapper * {
    box-sizing: border-box !important;
}

.rk-intro-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-intro-bg);
    border-radius: 20px;
    box-shadow: 0 20px 40px -10px rgba(14, 165, 233, 0.12);
    border: 1px solid #bae6fd;
    overflow: hidden;
    line-height: normal;
}

:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-panel: #1e293b;
    --rk-intro-primary: #0ea5e9; 
    --rk-intro-primary-light: #f0f9ff;
    --rk-intro-accent: #f59e0b; 
    --rk-intro-bg: #ffffff;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #334155;
    --rk-intro-muted: #64748b;
    --rk-intro-success: #10b981;
}

/* JAWNY I STABILNY UKŁAD SIATKI NA DESKTOP */
.rk-intro-header {
    padding: 45px 50px;
    background: linear-gradient(135deg, var(--rk-intro-dark) 0%, #1e293b 100%);
    position: relative;
    border-bottom: 4px solid var(--rk-intro-primary);
    overflow: hidden;
    display: grid !important;
    grid-template-columns: 120px 1fr !important;
    gap: 30px !important;
    align-items: flex-start;
}

.rk-intro-header::before {
    content: '';
    position: absolute;
    top: -50%; left: -50%; width: 200%; height: 200%;
    background: radial-gradient(circle at center, rgba(14, 165, 233, 0.05) 0%, transparent 60%);
    animation: rotateBg 20s linear infinite;
    pointer-events: none;
    z-index: 1;
}

@keyframes rotateBg {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Kontener dla awatara i tagu */
.rk-expert-profile {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 12px !important;
    position: relative;
    z-index: 2;
    grid-column: 1;
    width: 120px !important;
    min-width: 120px !important;
}

.rk-intro-author-avatar {
    width: 100px !important;
    height: 100px !important;
    border-radius: 50% !important;
    border: 2px solid var(--rk-intro-primary) !important;
    object-fit: cover !important;
    box-shadow: 0 4px 10px rgba(14, 165, 233, 0.4);
    display: block !important;
}

.rk-intro-author-info-tag {
    font-size: 11px !important;
    font-weight: 800 !important;
    color: #bae6fd !important;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    text-align: center;
    line-height: 1.4;
    white-space: nowrap;
}

/* Prawa kolumna merytoryczna */
.rk-header-content {
    position: relative;
    z-index: 2;
    grid-column: 2;
    min-width: 0;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
}

.rk-intro-badge {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    background: rgba(255, 255, 255, 0.1) !important;
    color: #bae6fd !important;
    padding: 6px 14px !important;
    border-radius: 99px !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    margin-bottom: 20px !important;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
    white-space: nowrap !important;
    width: auto !important;
}

.rk-intro-title {
    font-size: 32px !important;
    font-weight: 900 !important;
    color: #ffffff !important; /* POPRAWA KONTRASTU */
    line-height: 1.3 !important;
    margin: 0 0 20px 0 !important;
    text-align: left !important;
}

.rk-intro-title span {
    color: var(--rk-intro-accent) !important;
}

/* Hook Section */
.rk-intro-hook-box {
    background: rgba(0, 0, 0, 0.25) !important; /* Ciemne półprzezroczyste tło */
    border-left: 5px solid var(--rk-intro-accent) !important;
    padding: 22px 25px !important;
    border-radius: 0 16px 16px 0 !important;
    box-shadow: 0 10px 20px -5px rgba(0, 0, 0, 0.2) !important;
    margin-bottom: 25px !important;
    width: 100% !important;
}

.rk-intro-hook-box p {
    margin: 0 !important;
    font-size: 16px !important;
    line-height: 1.6 !important;
    color: #f8fafc !important;
    font-weight: 500 !important;
    text-align: left !important;
}

.rk-intro-hook-box strong {
    color: var(--rk-intro-accent) !important;
    font-weight: 800 !important;
}

.rk-intro-description {
    font-size: 16px !important;
    line-height: 1.8 !important;
    color: #e2e8f0 !important; /* POPRAWA KONTRASTU */
    margin: 0 !important;
    text-align: left !important;
}

.rk-intro-description a {
    color: var(--rk-intro-accent) !important;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dotted var(--rk-intro-accent);
}

.rk-intro-description strong {
    color: #ffffff !important; /* POPRAWA KONTRASTU */
}

/* Sekcja Kafelków dolnych */
.rk-intro-learn-section {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-intro-learn-title {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    margin: 0 0 25px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

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

.rk-intro-card {
    background: var(--rk-intro-bg);
    border: 1px solid var(--rk-intro-border);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    align-items: flex-start;
    gap: 20px;
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.rk-intro-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 4px; height: 100%;
    background: var(--rk-intro-primary);
    transform: scaleY(0);
    transition: transform 0.4s ease;
    transform-origin: bottom;
}

.rk-intro-card:hover {
    transform: translateY(-5px);
    border-color: #bae6fd;
    box-shadow: 0 15px 30px -10px rgba(14, 165, 233, 0.15);
    background: var(--rk-intro-primary-light);
}

.rk-intro-card:hover::before {
    transform: scaleY(1);
}

.rk-intro-card-icon {
    width: 48px;
    height: 48px;
    background: var(--rk-intro-primary);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: #ffffff;
    transition: transform 0.4s ease;
}

.rk-intro-card:hover .rk-intro-card-icon {
    transform: rotate(10deg) scale(1.1);
}

.rk-intro-card-content h4 {
    margin: 0 0 8px 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-intro-dark);
}

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

/* RESPONSYWNOŚĆ - PRZEJŚCIE NA JEDNĄ KOLUMNĘ */
@media (max-width: 768px) {
    .rk-intro-header { 
        grid-template-columns: 1fr !important; 
        gap: 20px !important;
        padding: 35px 25px; 
    }
    .rk-expert-profile {
        grid-column: 1 !important;
        width: 100% !important;
        flex-direction: row !important;
        justify-content: center !important;
        gap: 15px !important;
    }
    .rk-intro-author-avatar {
        width: 60px !important;
        height: 60px !important;
    }
    .rk-intro-author-info-tag {
        text-align: left;
    }
    .rk-header-content {
        grid-column: 1 !important;
        align-items: center !important;
    }
    .rk-intro-title { font-size: 24px !important; text-align: center !important; }
    .rk-intro-hook-box p { text-align: center !important; }
    .rk-intro-description { text-align: center !important; }
    .rk-intro-learn-section { padding: 35px 25px; }
    .rk-intro-grid { grid-template-columns: 1fr; }
    .rk-intro-card { padding: 20px; flex-direction: column; gap: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/#article-intro",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/"
    },
    "headline": "Rury do ogrzewania podłogowego – poradnik techniczny, dobór i parametry montażowe",
    "description": "Wybór odpowiedniego materiału, średnicy i gęstości ułożenia rur determinuje sprawność hydrauliczną podłogówki. Kompletny przewodnik dla inwestoró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.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/#dataset-intro",
    "name": "Klasyfikacja materiałowa i parametryzacja rur ogrzewania płaszczyznowego",
    "description": "Baza wiedzy definiująca kluczowe elementy fizyko-chemiczne i instalacyjne przewodów emisyjnych w jastrychu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "rury do ogrzewania podłogowego",
      "rura PEX czy PERT",
      "średnica rury podłogówki",
      "wylewka betonowa na ogrzewanie podłogowe",
      "bariera antydyfuzyjna EVOH"
    ],
    "measurementTechnique": "Analiza parametrów hydraulicznych (Pa/m) i termicznych instalacji w oparciu o wytyczne normy europejskiej PN-EN 1264.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Dobór materiału polimerowego (PEX-a, PE-RT) z barierą EVOH.",
        "Analiza oporów hydraulicznych w zależności od wybranej średnicy rury.",
        "Określenie gęstości ułożenia przewodów celem zapewnienia równomiernego rozkładu temperatur."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/#webapp-intro",
    "name": "Przewodnik: Dobór Rur Grzewczych",
    "description": "Edukacyjny moduł nawigacyjny dla inwestorów, wprowadzający w zagadnienia wyboru optymalnych przewodów instalacyjnych pod kątem współpracy z pompami ciepła.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-wrapper">
    
    <div class="rk-intro-header">
        <!-- Lewa kolumna: Awatar oraz podpis zabezpieczone przed ściskaniem -->
        <div class="rk-expert-profile">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="rk-intro-author-avatar" loading="lazy">
            <div class="rk-intro-author-info-tag"> Robert Kucharski<br><small style="color: #94a3b8; font-weight: 600;">CEO portalu</small></div>
        </div>
        
        <!-- Prawa kolumna merytoryczna -->
        <div class="rk-header-content">
            <div class="rk-intro-badge">
                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                Kompendium Inwestora
            </div>
            
            <h2 class="rk-intro-title">Rury do ogrzewania podłogowego – <span>kompletny poradnik inżynierski</span></h2>
            
            <div class="rk-intro-hook-box">
                <p><strong>Wybór rury to decyzja na całe życie budynku.</strong> Instalacja najtańszego materiału &#8222;na oko&#8221; to tykająca bomba pod Twoją posadzką. Pęknięcia jastrychu, gigantyczne opory hydrauliczne i niedogrzane strefy to codzienność inwestorów, którzy zaufali przypadkowi zamiast matematyce.</p>
            </div>

            <p class="rk-intro-description">Wodne ogrzewanie podłogowe to niskotemperaturowy system płaszczyznowy, w którym <strong>rury do ogrzewania podłogowego</strong> stanowią kluczowy element emisyjny, odpowiadający za dystrybucję energii termicznej w <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">jastrychu betonowym lub anhydrytowym</a>. Wybór odpowiedniego materiału, średnicy oraz gęstości ułożenia przewodów determinuje opór cieplny przegrody, sprawność hydrauliczną instalacji oraz końcowe koszty eksploatacji budynku. Prawidłowo zaprojektowana pętla grzewcza zapewnia równomierny rozkład temperatury powierzchniowej podłogi zgodnie z wymogami europejskich norm budowlanych.</p>
        </div>
    </div>

    <div class="rk-intro-learn-section">
        <h3 class="rk-intro-learn-title">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-intro-accent)" stroke-width="3" 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>
            Czego dowiesz się z tego poradnika?
        </h3>
        
        <div class="rk-intro-grid">
            
            <div class="rk-intro-card">
                <div class="rk-intro-card-icon">
                    <svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>
                </div>
                <div class="rk-intro-card-content">
                    <h4>Materiał i Bariera EVOH</h4>
                    <p>Zrozumiesz różnice między polimerami PEX a PE-RT i dowiesz się, dlaczego blokada tlenowa jest krytyczna dla żywotności Twojej kotłowni.</p>
                </div>
            </div>

            <div class="rk-intro-card">
                <div class="rk-intro-card-icon">
                    <svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><circle cx="12" cy="12" r="4"></circle><line x1="21.17" y1="8" x2="12" y2="8"></line><line x1="3.95" y1="6.06" x2="8.54" y2="14"></line><line x1="10.88" y1="21.94" x2="15.46" y2="14"></line></svg>
                </div>
                <div class="rk-intro-card-content">
                    <h4>Średnice Rur i Hydraulika</h4>
                    <p>Czy rura 16&#215;2.0 to zawsze dobry wybór? Zobacz, jak mniejszy przekrój wpływa na opory i drastycznie obciąża pompę obiegową.</p>
                </div>
            </div>

            <div class="rk-intro-card">
                <div class="rk-intro-card-icon">
                    <svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8"></path><polyline points="16 6 12 2 8 6"></polyline><line x1="12" y1="2" x2="12" y2="15"></line></svg>
                </div>
                <div class="rk-intro-card-content">
                    <h4>Maksymalna Długość Pętli</h4>
                    <p>Poznasz matematyczne limity długości obwodów. Przekroczenie 100 metrów to gwarancja &#8222;zimnych plam&#8221; na Twojej posadzce.</p>
                </div>
            </div>

            <div class="rk-intro-card">
                <div class="rk-intro-card-icon">
                    <svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                </div>
                <div class="rk-intro-card-content">
                    <h4>Gęstość Układania a COP</h4>
                    <p>Zobaczysz bezpośredni związek między rozstawem rur (np. co 10 cm), temperaturą zasilania a miesięcznymi rachunkami za prąd dla pompy ciepła.</p>
                </div>
            </div>

        </div>
    </div>

</div>



<style>
:root {
    --rk-mat-dark: #0f172a;
    --rk-mat-darker: #020617;
    --rk-mat-blue: #0ea5e9;
    --rk-mat-blue-hover: #0284c7;
    --rk-mat-blue-light: #f0f9ff;
    --rk-mat-green: #10b981;
    --rk-mat-green-light: #d1fae5;
    --rk-mat-orange: #f97316;
    --rk-mat-gray: #475569;
    --rk-mat-light: #f8fafc;
    --rk-mat-border: #e2e8f0;
    --rk-mat-bg: #ffffff;
}

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

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

.rk-mat-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(14, 165, 233, 0.15);
    color: #38bdf8;
    padding: 6px 14px;
    border-radius: 99px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(14, 165, 233, 0.3);
}

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

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

/* Selektor technologii (Taby) */
.rk-mat-selector {
    background: var(--rk-mat-light);
    padding: 25px 45px 0;
    border-bottom: 1px solid var(--rk-mat-border);
}

.rk-mat-tabs {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    scrollbar-width: none;
}
.rk-mat-tabs::-webkit-scrollbar { display: none; }

.rk-mat-tab {
    padding: 14px 22px;
    background: #ffffff;
    border: 1px solid var(--rk-mat-border);
    border-bottom: none;
    border-radius: 12px 12px 0 0;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-mat-gray);
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.25s ease;
    position: relative;
    top: 1px;
}

.rk-mat-tab:hover {
    color: var(--rk-mat-blue);
    background: #f1f5f9;
}

.rk-mat-tab.active {
    color: var(--rk-mat-dark);
    background: #ffffff;
    border-top: 3px solid var(--rk-mat-blue);
    padding-top: 12px;
    box-shadow: 0 -4px 10px rgba(0,0,0,0.02);
}

/* Panel Główny */
.rk-mat-body {
    padding: 40px 45px;
    background: #ffffff;
}

.rk-mat-grid {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 40px;
    align-items: start;
}

/* Lewa strona: Struktura cząsteczkowa (SVG statyczne) */
.rk-mat-visual {
    background: var(--rk-mat-light);
    border: 1px dashed var(--rk-mat-gray);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 290px;
}

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

/* Style i powiązania sieciowania polimerów */
.link-line { stroke: #64748b; stroke-width: 2; stroke-dasharray: none; }
.polymer-node { fill: var(--rk-mat-dark); }
.cross-node { fill: var(--rk-mat-blue); }

.rk-mat-vis-label {
    margin-top: 20px;
    font-size: 12px;
    font-weight: 800;
    color: var(--rk-mat-gray);
    text-transform: uppercase;
    text-align: center;
    letter-spacing: 0.5px;
}

/* Prawa strona: Kafelki z parametrami strukturalnymi */
.rk-mat-specs {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

.rk-mat-card {
    background: #ffffff;
    border: 1px solid var(--rk-mat-border);
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.01);
}

.rk-mat-card-label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    color: var(--rk-mat-gray);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 6px;
}

.rk-mat-card-value {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-mat-dark);
    line-height: 1.2;
}

.rk-mat-card-full {
    grid-column: span 2;
    background: var(--rk-mat-light);
    border-left: 4px solid var(--rk-mat-blue);
}

.rk-mat-card-full.card-repair-yes { border-left-color: var(--rk-mat-green); }
.rk-mat-card-full.card-repair-no { border-left-color: var(--rk-mat-orange); }

/* Artykuł tekstowy merytoryczny */
.rk-mat-article {
    padding: 40px 45px;
    background: #ffffff;
    border-top: 1px solid var(--rk-mat-border);
}

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

.rk-mat-article h4 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-mat-dark);
    margin: 25px 0 12px 0;
}

.rk-mat-article p {
    font-size: 16px;
    line-height: 1.75;
    color: #334155;
    margin: 0 0 15px 0;
}

.rk-mat-article ul {
    list-style: none;
    padding: 0;
    margin: 15px 0 25px 0;
}

.rk-mat-article li {
    font-size: 15px;
    line-height: 1.6;
    margin-bottom: 12px;
    padding-left: 24px;
    position: relative;
    color: #334155;
}

.rk-mat-article li::before {
    content: "■";
    position: absolute;
    left: 0;
    top: 2px;
    color: var(--rk-mat-blue);
    font-size: 12px;
}

.rk-mat-article strong {
    color: var(--rk-mat-dark);
}

.rk-mat-article a {
    color: var(--rk-mat-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dotted var(--rk-mat-blue);
    transition: border-color 0.2s;
}
.rk-mat-article a:hover { border-bottom-style: solid; }

.rk-evoh-box {
    background: #f0f9ff;
    border: 1px solid #bae6fd;
    border-radius: 14px;
    padding: 20px 25px;
    margin-top: 30px;
    display: flex;
    gap: 20px;
    align-items: center;
}

.rk-evoh-icon {
    width: 36px;
    height: 36px;
    color: var(--rk-mat-blue);
    flex-shrink: 0;
}

.rk-evoh-text h4 {
    margin: 0 0 5px 0;
    font-size: 16px;
    font-weight: 800;
    color: #0369a1;
}

.rk-evoh-text p {
    margin: 0;
    font-size: 14px;
    line-height: 1.5;
    color: #0c4a6e;
}

/* Statusy kolorystyczne odznak */
.mat-badge-pro { background: var(--rk-mat-green-light); color: #166534; padding: 2px 8px; border-radius: 4px; font-size: 12px; font-weight: 700; }
.mat-badge-warn { background: #fee2e2; color: #991b1b; padding: 2px 8px; border-radius: 4px; font-size: 12px; font-weight: 700; }

/* Responsywność */
@media (max-width: 768px) {
    .rk-mat-header, .rk-mat-selector, .rk-mat-body, .rk-mat-article { padding: 25px 20px; }
    .rk-mat-grid { grid-template-columns: 1fr; gap: 30px; }
    .rk-mat-specs { grid-template-columns: 1fr; }
    .rk-mat-card-full { grid-column: span 1; }
    .rk-mat-visual { min-height: auto; padding: 20px; }
    .rk-evoh-box { flex-direction: column; text-align: center; gap: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/#article-materialy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/"
    },
    "headline": "Jaki materiał na rury do ogrzewania podłogowego wybrać?",
    "description": "Porównanie właściwości strukturalnych polimerów PEX-a, PEX-b, PEX-c oraz PE-RT II generacji. Dowiedz się, które sieciowanie polietylenu gwarantuje pamięć kształtu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/#dataset-materialy",
    "name": "Zestawienie fizyczno-strukturalne polietylenów grzewczych",
    "description": "Baza danych parametrów fizycznych sieciowania polimerów (metoda nadtlenkowa, silanowa, radiacyjna) dla rur płaszczyznowych klasy 4.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "stopień usieciowania polimeru pex",
      "metoda nadtlenkowa engel pexa",
      "bariera antydyfuzyjna evoh din 4726",
      "rury pe-rt typ ii generacji",
      "pamięć termiczna kształtu polietylenu"
    ],
    "measurementTechnique": "Weryfikacja parametrów struktury sieci kowalencyjnej wg norm PN-EN ISO 15875 oraz PN-EN ISO 22391.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "PEX-a (Metoda Engel): stopień usieciowania minimum 70%, pamięć termiczna kształtu.",
        "PEX-b (Metoda Silanowa): stopień usieciowania minimum 65%, sztywniejsza struktura.",
        "PEX-c (Metoda Radiacyjna): stopień usieciowania minimum 60%, sieciowanie radiacyjne.",
        "PE-RT Typ II: brak usieciowania, struktura oparta na kopolimerze oktenowym."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/#webapp-materialy",
    "name": "Analizator Struktury Polimerów Grzewczych",
    "description": "Pulpit nawigacyjny umożliwiający inwestorowi selekcję i analizę porównawczą makrocząsteczkowych wiązań kowalencyjnych rur płaszczyznowych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JS",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-mat-container">
    <div class="rk-mat-header">
        <div class="rk-mat-badge">Analiza Technologii Materiałowej</div>
        <h2>Jaki materiał na rury do ogrzewania podłogowego wybrać?</h2>
        <p>Wybór odpowiedniego polimeru rury grzewczej decyduje o jej elastyczności, wytrzymałości długookresowej oraz zachowaniu w przypadku mechanicznego załamania pętli na budowie.</p>
    </div>

    <div class="rk-mat-selector">
        <div class="rk-mat-tabs" id="rkMatTabs">
            <button class="rk-mat-tab active" data-mat="pexa">PEX-a (Metoda Engel)</button>
            <button class="rk-mat-tab" data-mat="pexb">PEX-b (Silanowa)</button>
            <button class="rk-mat-tab" data-mat="pexc">PEX-c (Radiacyjna)</button>
            <button class="rk-mat-tab" data-mat="pert">PE-RT Typ II</button>
        </div>
    </div>

    <div class="rk-mat-body">
        <div class="rk-mat-grid">
            <div class="rk-mat-visual">
                <svg class="rk-mat-svg" viewBox="0 0 100 100" id="rkMatSvg">
                    <line x1="10" y1="25" x2="90" y2="25" stroke="#94a3b8" stroke-width="3"/>
                    <line x1="10" y1="50" x2="90" y2="50" stroke="#94a3b8" stroke-width="3"/>
                    <line x1="10" y1="75" x2="90" y2="75" stroke="#94a3b8" stroke-width="3"/>
                    <g id="rkCrossLinks">
                        <line x1="30" y1="25" x2="30" y2="50" class="link-line"/>
                        <line x1="70" y1="25" x2="70" y2="50" class="link-line"/>
                        <line x1="50" y1="50" x2="50" y2="75" class="link-line"/>
                        <circle cx="30" cy="37.5" r="5" class="cross-node"/>
                        <circle cx="70" cy="37.5" r="5" class="cross-node"/>
                        <circle cx="50" cy="62.5" r="5" class="cross-node"/>
                    </g>
                    <circle cx="30" cy="25" r="4" class="polymer-node"/>
                    <circle cx="70" cy="25" r="4" class="polymer-node"/>
                    <circle cx="50" cy="50" r="4" class="polymer-node"/>
                    <circle cx="30" cy="50" r="4" class="polymer-node"/>
                    <circle cx="70" cy="50" r="4" class="polymer-node"/>
                    <circle cx="50" cy="75" r="4" class="polymer-node"/>
                </svg>
                <div class="rk-mat-vis-label" id="rkMatVisLabel">Wiązania nadtlenkowe trójwymiarowe</div>
            </div>

            <div class="rk-mat-specs" id="rkMatSpecs">
                <div class="rk-mat-card">
                    <span class="rk-mat-card-label">Stopień usieciowania</span>
                    <span class="rk-mat-card-value" id="rkValCross">minimum 70%</span>
                </div>
                <div class="rk-mat-card">
                    <span class="rk-mat-card-label">Klasa zastosowania</span>
                    <span class="rk-mat-card-value">Klasa 4 <small>(ISO 15875)</small></span>
                </div>
                <div class="rk-mat-card rk-mat-card-full card-repair-yes" id="rkRepairCard">
                    <span class="rk-mat-card-label">Termiczna pamięć kształtu (Naprawa opalarką)</span>
                    <span class="rk-mat-card-value" id="rkValRepair"><span class="mat-badge-pro">TAK</span> – Pełna regeneracja</span>
                </div>
                <div class="rk-mat-card rk-mat-card-full">
                    <span class="rk-mat-card-label">Charakterystyka mechaniczna</span>
                    <span class="rk-mat-card-value" id="rkValFeatures" style="font-size: 15px; font-weight: 600; color: var(--rk-mat-gray);">Najwyższa elastyczność strukturalna, łatwe profilowanie łuków w strefach brzegowych.</span>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-mat-article">
        <p>Najlepszym wyborem do wodnych systemów płaszczyznowych są rury z usieciowanego polietylenu <strong>PEX</strong> lub polietylenu o podwyższonej odporności termicznej <strong>PE-RT</strong>. Zgodnie z normami europejskimi <strong><a href="https://projekt-ogrzewania.pl/norma-en-iso-15875/">PN-EN ISO 15875</a></strong> oraz <strong>PN-EN ISO 22391</strong>, oba te materiały muszą bezwzględnie posiadać klasyfikację klasy zastosowania 4, co kwalifikuje je do niskotemperaturowego ogrzewania podłogowego.</p>
        
        <h3>Rury PEX-a, PEX-b i PEX-c – różnice strukturalne</h3>
        <p>Materiały z grupy PEX różnią się od siebie technologią wytwarzania i mechanizmem wiązań poprzecznych łańcuchów polimerowych, co rzutuje bezpośrednio na promień gięcia i elastyczność przewodu:</p>
        <ul>
            <li><strong>PEX-a (metoda nadtlenkowa Engel):</strong> Stopień usieciowania polimeru wynosi <strong>minimum 70%</strong>. Charakteryzuje się najwyższą elastycznością i pełną pamięcią termiczną. W przypadku przypadkowego załamania rury na budowie (tzw. &#8222;zaorania&#8221;), materiał można w pełni zregenerować poprzez miejscowe podgrzanie opalarką do momentu uzyskania transparentności struktury.</li>
            <li><strong>PEX-b (metoda silanowa):</strong> Stopień usieciowania wynosi <strong>minimum 65%</strong>. Rura wykazuje wyższą sztywność i dużą odporność na uderzenia mechaniczne. Nie posiada jednak termicznej pamięci kształtu – załamany odcinek traci szczelność strukturalną i musi zostać bezwzględnie wycięty oraz połączony złączką zaprasowywaną.</li>
            <li><strong>PEX-c (metoda radiacyjna):</strong> Stopień usieciowania polimeru wynosi <strong>minimum 60%</strong>. Proces sieciowania zachodzi w fazie stałej za pomocą strumienia elektronów. Przewody te posiadają uśrednione parametry elastyczności i są rzadziej stosowane w domowych instalacjach płaszczyznowych.</li>
        </ul>

        <h3>Rury PE-RT oraz PE-RT II generacji</h3>
        <p>Polietylen o podwyższonej odporności termicznej (PE-RT) nie podlega mechanicznemu procesowi usieciowania, a jego wytrzymałość opiera się na specyficznej strukturze kopolimeru oktenowego. Rury <strong>PE-RT Typ II</strong> oferują doskonałą elastyczność (zbliżoną do PEX-a) przy niższych kosztach produkcji. Ich długoterminowa stabilność ciśnieniowa w temperaturach roboczych rzędu <strong>35-45°C</strong> jest w stu procentach wystarczająca dla nowoczesnych budynków współpracujących niskotemperaturowo z <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompami ciepła</a>.</p>

        <div class="rk-evoh-box">
            <svg class="rk-evoh-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg>
            <div class="rk-evoh-text">
                <h4>Konieczność stosowania powłoki antydyfuzyjnej EVOH</h4>
                <p>Niezależnie od wybranego polimeru podstawowego, rura musi posiadać barierę antydyfuzyjną EVOH zgodną z rygorystyczną normą <strong><a href="https://projekt-ogrzewania.pl/norma-din-4726-w-ogrzewaniu-podlogowym/">DIN 4726</a></strong>. Warstwa ta ogranicza przenikanie tlenu do wnętrza instalacji do poziomu poniżej <strong>0,1 g/(m³·doba)</strong>. Zapobiega to korozji tlenowej wymienników ciepła, wirników pomp i stalowych elementów armatury.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const tabs = document.querySelectorAll('#rkMatTabs .rk-mat-tab');
    const crossLinksG = document.getElementById('rkCrossLinks');
    const visLabel = document.getElementById('rkMatVisLabel');
    
    const valCross = document.getElementById('rkValCross');
    const repairCard = document.getElementById('rkRepairCard');
    const valRepair = document.getElementById('rkValRepair');
    const valFeatures = document.getElementById('rkValFeatures');

    const matData = {
        pexa: {
            cross: "minimum 70%",
            repairHtml: '<span class="mat-badge-pro">TAK</span> – Pełna regeneracja',
            repairCls: 'rk-mat-card-full card-repair-yes',
            features: "Najwyższa elastyczność strukturalna, łatwe profilowanie łuków w strefach brzegowych. Wybacza błędy instalatora.",
            label: "Wiązania nadtlenkowe trójwymiarowe",
            // Rysunek gęstej sieci poprzecznej
            svg: `
                <line x1="30" y1="25" x2="30" y2="50" class="link-line"/>
                <line x1="70" y1="25" x2="70" y2="50" class="link-line"/>
                <line x1="50" y1="50" x2="50" y2="75" class="link-line"/>
                <line x1="50" y1="25" x2="50" y2="50" class="link-line"/>
                <circle cx="30" cy="37.5" r="5" class="cross-node"/>
                <circle cx="70" cy="37.5" r="5" class="cross-node"/>
                <circle cx="50" cy="62.5" r="5" class="cross-node"/>
                <circle cx="50" cy="37.5" r="5" class="cross-node"/>
            `
        },
        pexb: {
            cross: "minimum 65%",
            repairHtml: '<span class="mat-badge-warn">NIE</span> – Wymaga wycięcia',
            repairCls: 'rk-mat-card-full card-repair-no',
            features: "Wyższa sztywność liniowa. Duża odporność na uderzenia mechaniczne, ale załamanie trwale niszczy strukturę pętli.",
            label: "Wiązania silanowe (wodorotlenkowe)",
            // Rysunek rzadszej sieci silanowej
            svg: `
                <line x1="30" y1="25" x2="30" y2="50" class="link-line"/>
                <line x1="70" y1="50" x2="70" y2="75" class="link-line"/>
                <circle cx="30" cy="37.5" r="5" class="cross-node"/>
                <circle cx="70" cy="62.5" r="5" class="cross-node"/>
            `
        },
        pexc: {
            cross: "minimum 60%",
            repairHtml: '<span class="mat-badge-warn">NIE</span> – Wymaga wycięcia',
            repairCls: 'rk-mat-card-full card-repair-no',
            features: "Sieciowanie fizyczne wiązką elektronów. Średnia elastyczność, rzadziej stosowana ze względu na wysokie wymagania gięcia.",
            label: "Wiązania radiacyjne w fazie stałej",
            // Rysunek sieci punktowej radiacyjnej
            svg: `
                <line x1="50" y1="25" x2="50" y2="50" class="link-line"/>
                <line x1="50" y1="50" x2="50" y2="75" class="link-line"/>
                <circle cx="50" cy="37.5" r="5" class="cross-node"/>
                <circle cx="50" cy="62.5" r="5" class="cross-node"/>
            `
        },
        pert: {
            cross: "0% (Brak sieci)",
            repairHtml: '<span class="mat-badge-warn">NIE</span> – Wymaga wycięcia',
            repairCls: 'rk-mat-card-full card-repair-no',
            features: "Struktura oparta na rozgałęzionych bocznych łańcuchach oktenowych (kopolimer). Bardzo elastyczna i ekonomiczna.",
            label: "Łańcuchy liniowe z boczno-oktenowymi wiązaniami",
            // Brak wiązań poprzecznych, tylko łańcuchy liniowe
            svg: `
                <path d="M 20 30 Q 30 20 40 30 T 60 30" fill="none" stroke="#e2e8f0" stroke-width="2"/>
                <path d="M 50 60 Q 60 70 70 60 T 90 60" fill="none" stroke="#e2e8f0" stroke-width="2"/>
            `
        }
    };

    tabs.forEach(tab => {
        tab.addEventListener('click', function() {
            tabs.forEach(t => t.classList.remove('active'));
            this.classList.add('active');

            const matKey = this.getAttribute('data-mat');
            const data = matData[matKey];

            // Aktualizacja parametrów tekstowych
            valCross.innerText = data.cross;
            valRepair.innerHTML = data.repairHtml;
            repairCard.className = data.repairCls;
            valFeatures.innerText = data.features;
            visLabel.innerText = data.label;

            // Aktualizacja grafiki SVG
            crossLinksG.innerHTML = data.svg;
        });
    });
});
</script>



<style>
:root {
    --rk-comp-dark: #1e293b;
    --rk-comp-darker: #0f172a;
    --rk-comp-blue: #0284c7;
    --rk-comp-blue-hover: #0369a1;
    --rk-comp-cyan: #06b6d4;
    --rk-comp-teal: #0d9488;
    --rk-comp-gray: #64748b;
    --rk-comp-light: #f8fafc;
    --rk-comp-border: #e2e8f0;
    --rk-comp-bg: #ffffff;
    --rk-comp-alert: #f59e0b;
}

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

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

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

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

/* Navigation / Selectors */
.rk-comp-nav {
    display: flex;
    background: var(--rk-comp-light);
    border-bottom: 1px solid var(--rk-comp-border);
    padding: 15px 20px 0;
    gap: 10px;
    overflow-x: auto;
    scrollbar-width: none;
}
.rk-comp-nav::-webkit-scrollbar { display: none; }

.rk-comp-tab {
    padding: 15px 25px;
    background: #ffffff;
    border: 1px solid var(--rk-comp-border);
    border-bottom: none;
    border-radius: 12px 12px 0 0;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-comp-gray);
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.3s ease;
    position: relative;
    top: 1px;
}

.rk-comp-tab:hover {
    color: var(--rk-comp-blue);
    background: #f1f5f9;
}

.rk-comp-tab.active {
    color: var(--rk-comp-dark);
    background: #ffffff;
    border-color: var(--rk-comp-border);
    border-top: 3px solid var(--rk-comp-cyan);
    box-shadow: 0 -4px 10px rgba(0,0,0,0.02);
}

/* Data Layout */
.rk-comp-body {
    padding: 40px;
    background: #ffffff;
}

.rk-comp-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 40px;
}

/* Progress Bars Section */
.rk-comp-bars {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-comp-bar-group {
    background: var(--rk-comp-light);
    padding: 20px;
    border-radius: 16px;
    border: 1px solid var(--rk-comp-border);
}

.rk-comp-bar-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 12px;
}

.rk-comp-bar-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-comp-dark);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-comp-bar-val {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-comp-blue);
}

.rk-comp-bar-val span {
    font-size: 12px;
    color: var(--rk-comp-gray);
    font-weight: 600;
}

.rk-comp-bar-track {
    width: 100%;
    height: 10px;
    background: #e2e8f0;
    border-radius: 99px;
    overflow: hidden;
    position: relative;
}

.rk-comp-bar-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--rk-comp-blue), var(--rk-comp-cyan));
    border-radius: 99px;
    width: 0%;
    transition: width 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-comp-bar-fill.fill-teal { background: linear-gradient(90deg, #0f766e, #14b8a6); }

/* Key Specs Cards */
.rk-comp-specs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-comp-spec-card {
    background: #ffffff;
    border: 1px solid var(--rk-comp-border);
    border-radius: 12px;
    padding: 15px;
    text-align: center;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-comp-spec-icon {
    width: 32px;
    height: 32px;
    margin: 0 auto 10px;
    color: var(--rk-comp-gray);
}

.rk-comp-spec-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-comp-gray);
    text-transform: uppercase;
    margin-bottom: 5px;
}

.rk-comp-spec-value {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-comp-dark);
}

.val-badge-yes {
    background: #dcfce7;
    color: #166534;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 13px;
    display: inline-block;
}

.val-badge-no {
    background: #fee2e2;
    color: #991b1b;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 13px;
    display: inline-block;
}

/* Additional Info Footer */
.rk-comp-footer {
    margin-top: 30px;
    padding-top: 25px;
    border-top: 1px solid var(--rk-comp-border);
    display: flex;
    align-items: center;
    gap: 15px;
    background: #f0fdfa;
    padding: 20px;
    border-radius: 12px;
    border-left: 4px solid var(--rk-comp-teal);
}

.rk-comp-footer-icon {
    width: 24px;
    height: 24px;
    color: var(--rk-comp-teal);
    flex-shrink: 0;
}

.rk-comp-footer p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: #0f766e;
    font-weight: 600;
}

/* Animations */
.anim-pulse { animation: compPulse 2s infinite; }
@keyframes compPulse { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }

/* Responsive */
@media (max-width: 768px) {
    .rk-comp-header, .rk-comp-body { padding: 25px 20px; }
    .rk-comp-grid { grid-template-columns: 1fr; gap: 30px; }
    .rk-comp-specs { grid-template-columns: 1fr 1fr; }
    .rk-comp-nav { padding: 15px 10px 0; }
    .rk-comp-tab { padding: 12px 16px; font-size: 13px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/#article-porownanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/"
    },
    "headline": "Porównanie parametrów technicznych rur grzewczych",
    "description": "Zestawienie kluczowych parametrów fizycznych i eksploatacyjnych rur PEX-a, PEX-b, PE-RT Typ II oraz PEX-Al-PEX w oparciu o normy ISO.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/#dataset-porownanie",
    "name": "Tabela właściwości fizykochemicznych rur ogrzewania płaszczyznowego",
    "description": "Zbiór danych laboratoryjnych porównujących przewodność cieplną, pamięć kształtu i stopień usieciowania popularnych przewodów grzewczych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "parametry techniczne rur pex",
      "przewodność cieplna rury do podłogówki",
      "rura PE-RT a PEX-a",
      "współczynnik rozszerzalności liniowej rur",
      "pamięć kształtu rury termiczna"
    ],
    "measurementTechnique": "Pomiary laboratoryjne zgodne z klasyfikacją PN-EN ISO 15875 i normą DIN 4726 dla bariery antydyfuzyjnej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Przewodność cieplna λ od 0,35 do 0,43 W/(m·K).",
        "Stopień usieciowania polimeru ≥ 70% dla PEX-a.",
        "Stała chropowatość bezwzględna k = 0,007 mm dla wszystkich typów."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/#webapp-porownanie",
    "name": "Interaktywny Komparator Materiałów Instalacyjnych",
    "description": "Narzędzie pozwalające na dynamiczne porównywanie właściwości mechanicznych i termicznych systemów rur z wykorzystaniem animowanych wykresów liniowych.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JS",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-comp-container">
    <div class="rk-comp-header">
        <h2>Porównanie parametrów technicznych rur grzewczych</h2>
        <p>Zestawienie kluczowych parametrów fizycznych i eksploatacyjnych najpopularniejszych typów przewodów stosowanych w instalacjach ogrzewania płaszczyznowego (dane z norm serii ISO).</p>
    </div>

    <div class="rk-comp-nav" id="rkPipeNav">
        <button class="rk-comp-tab active" data-pipe="pexa">PEX-a (EVOH)</button>
        <button class="rk-comp-tab" data-pipe="pexb">PEX-b (EVOH)</button>
        <button class="rk-comp-tab" data-pipe="pert">PE-RT Typ II (EVOH)</button>
        <button class="rk-comp-tab" data-pipe="pexal">PEX-Al-PEX</button>
    </div>

    <div class="rk-comp-body">
        <div class="rk-comp-grid">
            
            <div class="rk-comp-bars">
                <div class="rk-comp-bar-group">
                    <div class="rk-comp-bar-header">
                        <span class="rk-comp-bar-title">Przewodność cieplna (λ)</span>
                        <div class="rk-comp-bar-val" id="val-lambda">0,35 <span>W/(m·K)</span></div>
                    </div>
                    <div class="rk-comp-bar-track">
                        <div class="rk-comp-bar-fill" id="bar-lambda" style="width: 70%;"></div>
                    </div>
                </div>

                <div class="rk-comp-bar-group">
                    <div class="rk-comp-bar-header">
                        <span class="rk-comp-bar-title">Rozszerzalność liniowa</span>
                        <div class="rk-comp-bar-val" id="val-exp">0,14 <span>mm/(m·K)</span></div>
                    </div>
                    <div class="rk-comp-bar-track">
                        <div class="rk-comp-bar-fill fill-teal" id="bar-exp" style="width: 70%;"></div>
                    </div>
                </div>
            </div>

            <div class="rk-comp-specs">
                <div class="rk-comp-spec-card">
                    <svg class="rk-comp-spec-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"/><polyline points="3.27 6.96 12 12.01 20.73 6.96"/><line x1="12" y1="22.08" x2="12" y2="12"/></svg>
                    <span class="rk-comp-spec-label">Usieciowanie</span>
                    <span class="rk-comp-spec-value" id="val-link">≥ 70%</span>
                </div>
                
                <div class="rk-comp-spec-card">
                    <svg class="rk-comp-spec-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg>
                    <span class="rk-comp-spec-label">Pamięć Kształtu</span>
                    <span class="rk-comp-spec-value" id="val-mem"><span class="val-badge-yes">TAK (term.)</span></span>
                </div>

                <div class="rk-comp-spec-card" style="grid-column: span 2;">
                    <svg class="rk-comp-spec-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="margin-bottom: 5px;"><path d="M3 3v18h18"/><path d="M18.7 8l-5.1 5.2-2.8-2.7L7 14.3"/></svg>
                    <span class="rk-comp-spec-label">Minimalny promień gięcia (ręcznie)</span>
                    <span class="rk-comp-spec-value" id="val-bend" style="font-size: 20px; color: var(--rk-comp-blue);">5 × d<sub>n</sub></span>
                </div>
            </div>
        </div>

        <div class="rk-comp-footer">
            <svg class="rk-comp-footer-icon anim-pulse" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><line x1="12" y1="16" x2="12" y2="12"/><line x1="12" y1="8" x2="12.01" y2="8"/></svg>
            <p id="pipe-desc">Najwyższa elastyczność i pełna termiczna pamięć kształtu. Pozwala na naprawę przypadkowych zagięć za pomocą opalarki. Idealna do zagęszczonych stref brzegowych.</p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const pipeData = {
        pexa: {
            lambda: "0,35",
            lambdaPct: (0.35 / 0.45) * 100,
            exp: "0,14",
            expPct: (0.14 / 0.20) * 100,
            link: "≥ 70%",
            memHtml: '<span class="val-badge-yes">TAK (term.)</span>',
            bend: "5 × d<sub>n</sub>",
            desc: "Najwyższa elastyczność i pełna termiczna pamięć kształtu. Pozwala na naprawę przypadkowych zagięć za pomocą opalarki. Idealna do zagęszczonych stref brzegowych."
        },
        pexb: {
            lambda: "0,38",
            lambdaPct: (0.38 / 0.45) * 100,
            exp: "0,15",
            expPct: (0.15 / 0.20) * 100,
            link: "≥ 65%",
            memHtml: '<span class="val-badge-no">NIE</span>',
            bend: "6 × d<sub>n</sub>",
            desc: "Sztywniejsza od PEX-a. Wykazuje większą odporność na mechaniczne uderzenia punktowe przed zalaniem, jednak brak pamięci kształtu wymusza wycięcie rury w przypadku 'zaorania'."
        },
        pert: {
            lambda: "0,40",
            lambdaPct: (0.40 / 0.45) * 100,
            exp: "0,18",
            expPct: (0.18 / 0.20) * 100,
            link: "0% (Kopolimer)",
            memHtml: '<span class="val-badge-no">NIE</span>',
            bend: "5 × d<sub>n</sub>",
            desc: "Nowoczesna struktura kopolimeru oktenowego (Typ II) nie wymaga procesu sieciowania. Stanowi wysoce elastyczną, stabilną i bardziej opłacalną alternatywę dla instalacji niskotemperaturowych."
        },
        pexal: {
            lambda: "0,43",
            lambdaPct: (0.43 / 0.45) * 100,
            exp: "0,025",
            expPct: (0.025 / 0.20) * 100,
            link: "≥ 65% (Warstwy)",
            memHtml: '<span class="val-badge-yes">TAK (mech.)</span>',
            bend: "5 × d<sub>n</sub> (Ze sprężyną: 3 × d<sub>n</sub>)",
            desc: "Wkładka aluminiowa gwarantuje minimalną rozszerzalność termiczną i plastyczną pamięć kształtu. Najlepsza przewodność cieplna, ale wymaga ostrożnego profilowania, by nie przełamać pancerza."
        }
    };

    const tabs = document.querySelectorAll('#rkPipeNav .rk-comp-tab');
    
    // Elementy DOM do aktualizacji
    const valLambda = document.getElementById('val-lambda');
    const barLambda = document.getElementById('bar-lambda');
    const valExp = document.getElementById('val-exp');
    const barExp = document.getElementById('bar-exp');
    const valLink = document.getElementById('val-link');
    const valMem = document.getElementById('val-mem');
    const valBend = document.getElementById('val-bend');
    const descText = document.getElementById('pipe-desc');

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

            // Pobranie danych
            const pipeKey = this.getAttribute('data-pipe');
            const data = pipeData[pipeKey];

            // Animowana aktualizacja DOM
            valLambda.innerHTML = `${data.lambda} <span>W/(m·K)</span>`;
            barLambda.style.width = `${data.lambdaPct}%`;
            
            valExp.innerHTML = `${data.exp} <span>mm/(m·K)</span>`;
            barExp.style.width = `${data.expPct}%`;

            valLink.innerHTML = data.link;
            valMem.innerHTML = data.memHtml;
            valBend.innerHTML = data.bend;
            descText.innerHTML = data.desc;
        });
    });
    
    // Inicjalizacja pierwszej zakładki
    tabs[0].click();
});
</script>



<style>
:root {
    --rk-temp-dark: #0f172a;
    --rk-temp-darker: #020617;
    --rk-temp-blue: #0ea5e9;
    --rk-temp-green: #10b981;
    --rk-temp-yellow: #f59e0b;
    --rk-temp-orange: #f97316;
    --rk-temp-red: #ef4444;
    --rk-temp-red-dark: #b91c1c;
    --rk-temp-gray: #64748b;
    --rk-temp-light: #f8fafc;
    --rk-temp-border: #e2e8f0;
    --rk-temp-bg: #ffffff;
}

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

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

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

.rk-temp-header h2 {
    font-size: 30px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.2;
}

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

/* Interaktywny Dashboard */
.rk-temp-dashboard {
    padding: 40px 45px;
    background: var(--rk-temp-light);
    border-bottom: 1px solid var(--rk-temp-border);
}

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

/* Panel Kontrolny */
.rk-temp-controls {
    background: #ffffff;
    padding: 30px;
    border-radius: 16px;
    border: 1px solid var(--rk-temp-border);
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-temp-controls h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-temp-dark);
    margin: 0 0 25px 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-temp-slider-wrap {
    margin-bottom: 30px;
}

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

.rk-temp-slider-label {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-temp-gray);
}

.rk-temp-slider-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-temp-orange);
    transition: color 0.3s;
}

.rk-temp-range {
    width: 100%;
    -webkit-appearance: none;
    height: 8px;
    background: linear-gradient(to right, var(--rk-temp-blue), var(--rk-temp-green) 35%, var(--rk-temp-yellow) 55%, var(--rk-temp-red) 80%);
    border-radius: 99px;
    outline: none;
}

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

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

/* Karta Statusu */
.rk-temp-status-card {
    padding: 20px;
    border-radius: 12px;
    background: #f0fdf4;
    border: 1px solid #86efac;
    transition: all 0.3s ease;
}

.rk-temp-status-title {
    font-size: 15px;
    font-weight: 800;
    margin: 0 0 8px 0;
    color: #166534;
    text-transform: uppercase;
}

.rk-temp-status-desc {
    font-size: 14px;
    color: #15803d;
    margin: 0;
    line-height: 1.5;
}

/* Wizualizacja SVG (Prawa Strona) */
.rk-temp-visual {
    position: relative;
    background: #ffffff;
    border: 1px solid var(--rk-temp-border);
    border-radius: 16px;
    padding: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
    min-height: 280px;
    box-shadow: inset 0 2px 10px rgba(0,0,0,0.02);
}

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

/* Animacje klas dla SVG */
.anim-pipe-heat { transition: fill 0.4s ease, filter 0.4s ease; }
.anim-screed { transition: fill 0.4s ease; }
.anim-crack { stroke-dasharray: 50; stroke-dashoffset: 50; transition: stroke-dashoffset 0.5s ease; opacity: 0; }
.anim-wave { opacity: 0.2; transition: opacity 0.4s ease, transform 1s infinite alternate; }

/* Stany Wizualne */
.state-optimal .anim-pipe-heat { fill: var(--rk-temp-green); filter: drop-shadow(0 0 5px rgba(16,185,129,0.5)); }
.state-optimal .anim-screed { fill: #e2e8f0; }
.state-optimal .anim-wave { fill: var(--rk-temp-green); opacity: 0.4; animation: waveFloat 2s infinite alternate; }

.state-warning .anim-pipe-heat { fill: var(--rk-temp-orange); filter: drop-shadow(0 0 8px rgba(249,115,22,0.6)); }
.state-warning .anim-screed { fill: #fed7aa; }
.state-warning .anim-wave { fill: var(--rk-temp-orange); opacity: 0.6; animation: waveFloat 1s infinite alternate; }

.state-danger .anim-pipe-heat { fill: var(--rk-temp-red); filter: drop-shadow(0 0 15px rgba(239,68,68,0.8)); }
.state-danger .anim-screed { fill: #fecaca; }
.state-danger .anim-crack { stroke-dashoffset: 0; opacity: 1; animation: crackFlash 0.5s infinite alternate; }
.state-danger .anim-wave { fill: var(--rk-temp-red); opacity: 0.8; animation: waveFloat 0.5s infinite alternate; }

@keyframes waveFloat { 0% { transform: translateY(0); } 100% { transform: translateY(-10px); } }
@keyframes crackFlash { 0% { stroke: #b91c1c; stroke-width: 2; } 100% { stroke: #ef4444; stroke-width: 4; } }

/* Limity Powierzchniowe (Kafelki) */
.rk-temp-limits {
    padding: 40px 45px;
    background: #ffffff;
}

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

.rk-temp-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.rk-tmax-card {
    background: var(--rk-temp-light);
    border: 1px solid var(--rk-temp-border);
    border-radius: 12px;
    padding: 25px 20px;
    text-align: center;
    transition: transform 0.3s;
}

.rk-tmax-card:hover {
    transform: translateY(-3px);
    border-color: var(--rk-temp-blue);
    box-shadow: 0 10px 15px -3px rgba(14, 165, 233, 0.1);
}

.rk-tmax-icon {
    width: 36px;
    height: 36px;
    margin: 0 auto 15px;
    color: var(--rk-temp-blue);
}

.rk-tmax-val {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-temp-dark);
    display: block;
    line-height: 1;
    margin-bottom: 8px;
}

.rk-tmax-label {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-temp-gray);
    text-transform: uppercase;
}

/* Treść tekstowa */
.rk-temp-article {
    padding: 0 45px 40px;
    background: #ffffff;
}

.rk-temp-article p {
    font-size: 16px;
    line-height: 1.75;
    color: #475569;
    margin: 0 0 20px 0;
}

.rk-temp-article strong {
    color: var(--rk-temp-dark);
}

.rk-temp-article a {
    color: var(--rk-temp-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dotted var(--rk-temp-blue);
    transition: all 0.3s;
}

.rk-temp-article a:hover {
    color: #0369a1;
    border-bottom-style: solid;
}

.rk-temp-pressure-box {
    background: #f1f5f9;
    border-left: 4px solid var(--rk-temp-blue);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    margin-top: 30px;
}

.rk-temp-pressure-box h4 {
    margin: 0 0 10px 0;
    font-size: 16px;
    color: var(--rk-temp-dark);
}

.rk-temp-pressure-box p {
    margin: 0;
    font-size: 15px;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-temp-header, .rk-temp-dashboard, .rk-temp-limits, .rk-temp-article { padding: 30px 20px; }
    .rk-temp-grid { grid-template-columns: 1fr; gap: 30px; }
    .rk-temp-cards { grid-template-columns: 1fr; }
    .rk-temp-visual { min-height: 220px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/"
    },
    "headline": "Jaka jest maksymalna temperatura i ciśnienie pracy rur ogrzewania podłogowego?",
    "description": "Limity temperatur (PN-EN 1264) i ciśnień dla rur PEX/PE-RT. Zobacz interaktywny symulator naprężeń cieplnych i dowiedz się, dlaczego 55°C to absolutne maksimum.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/#dataset",
    "name": "Normy temperaturowe PN-EN 1264 i PN-EN ISO 15875-1",
    "description": "Zestawienie dopuszczalnych temperatur zasilania, temperatur awaryjnych rur polimerowych oraz limitów fizjologicznych temperatury powierzchni podłogi.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna temperatura zasilania podłogówki",
      "temperatura podłogi norma PN-EN 1264",
      "wytrzymałość rury PEX 95°C",
      "pękanie wylewki betonowej",
      "ciśnienie robocze ogrzewania podłogowego"
    ],
    "measurementTechnique": "Określenie warunków brzegowych pracy instalacji wg klasy 4 ISO 15875-1 i wymogów komfortu cieplnego PN-EN 1264.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Maksymalna robocza PEX/PE-RT: 70°C (Awaryjna 95°C przez 100h).",
        "Max temperatura zasilania wprowadzana w jastrych: 55°C.",
        "Tmax powierzchni: 29°C (pokoje), 33°C (łazienki), 35°C (strefy brzegowe).",
        "Maksymalne ciśnienie: 6-10 bar w zależności od typoszeregu SDR."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/#webapp",
    "name": "Symulator Naprężeń Termicznych Jastrychu",
    "description": "Interaktywny panel kontrolny pozwalający symulować podnoszenie temperatury zasilania i wizualizujący jego destrukcyjny wpływ na wylewkę i starzenie polimeru.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JS",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-temp-container">
    <div class="rk-temp-header">
        <div class="rk-temp-badge">Parametry Graniczne ISO / PN-EN</div>
        <h2>Jaka jest maksymalna temperatura i ciśnienie pracy rur?</h2>
        <p>Przekroczenie norm temperaturowych to najszybsza droga do pęknięcia jastrychu i zniszczenia struktury polimeru. Przetestuj w symulatorze zachowanie podłogówki przy różnych parametrach kotłowni.</p>
    </div>

    <div class="rk-temp-dashboard">
        <div class="rk-temp-grid">
            
            <div class="rk-temp-controls">
                <h3>Symulator Zasilania</h3>
                <div class="rk-temp-slider-wrap">
                    <div class="rk-temp-slider-header">
                        <span class="rk-temp-slider-label">Temperatura zasilania</span>
                        <span class="rk-temp-slider-val" id="rkTempVal">35°C</span>
                    </div>
                    <input type="range" id="rkTempSlider" class="rk-temp-range" min="20" max="95" step="1" value="35">
                </div>
                
                <div class="rk-temp-status-card" id="rkTempStatusBox">
                    <h4 class="rk-temp-status-title" id="rkTempStatusTitle">Optymalnie (Pompa Ciepła)</h4>
                    <p class="rk-temp-status-desc" id="rkTempStatusDesc">Idealna temperatura pracy. Bezpieczna dla wylewki, zapewnia równomierne oddawanie ciepła i długą żywotność rur.</p>
                </div>
            </div>

            <div class="rk-temp-visual state-optimal" id="rkTempVisualBox">
                <svg class="rk-temp-svg" viewBox="0 0 100 100">
                    <path d="M10 20 L90 20 L90 80 L10 80 Z" class="anim-screed" stroke="#94a3b8" stroke-width="2" rx="5" />
                    <path d="M 30 20 L 40 40 L 35 60 L 50 80 M 70 20 L 65 50 L 80 80" fill="none" stroke="#b91c1c" stroke-width="3" class="anim-crack" />
                    <path d="M 25 15 Q 30 5 25 -5 M 50 15 Q 55 5 50 -5 M 75 15 Q 80 5 75 -5" fill="none" stroke-width="3" class="anim-wave" />
                    <circle cx="50" cy="50" r="15" fill="#ffffff" stroke="#64748b" stroke-width="3" />
                    <circle cx="50" cy="50" r="11" class="anim-pipe-heat" />
                </svg>
            </div>

        </div>
    </div>

    <div class="rk-temp-limits">
        <h3>Normatywne Limity Powierzchni Podłogi (T<sub>max</sub>)</h3>
        <div class="rk-temp-cards">
            <div class="rk-tmax-card">
                <svg class="rk-tmax-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><polyline points="9 22 9 12 15 12 15 22"/></svg>
                <span class="rk-tmax-val">29°C</span>
                <span class="rk-tmax-label">Strefy Stałe (Salon)</span>
            </div>
            <div class="rk-tmax-card">
                <svg class="rk-tmax-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M2 12h20"/><path d="M20 12v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8"/><path d="M10 8V6a2 2 0 0 1 2-2h0a2 2 0 0 1 2 2v2"/></svg>
                <span class="rk-tmax-val">33°C</span>
                <span class="rk-tmax-label">Łazienki</span>
            </div>
            <div class="rk-tmax-card">
                <svg class="rk-tmax-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"/><line x1="3" y1="9" x2="21" y2="9"/><line x1="9" y1="21" x2="9" y2="9"/></svg>
                <span class="rk-tmax-val">35°C</span>
                <span class="rk-tmax-label">Strefy Brzegowe</span>
            </div>
        </div>
    </div>

    <div class="rk-temp-article">
        <p>Zgodnie z wymogami projektowymi, w instalacjach płaszczyznowych optymalna temperatura zasilania wynosi <strong>35°C</strong>, a maksymalna dopuszczalna temperatura czynnika grzewczego wprowadzanego w <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">jastrych</a> nie może przekraczać <strong>55°C</strong>. Wynika to wprost z ograniczeń fizjologicznych człowieka oraz obwarowań zawartych w <strong><a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">normie PN-EN 1264</a></strong>.</p>
        
        <p>Niedopuszczalne jest podawanie na pętle grzewcze parametrów właściwych dla instalacji grzejnikowych (np. 70/55°C). Takie błędy skutkują ogromnymi naprężeniami termicznymi, odspajaniem płytek, <strong>pękaniem jastrychu</strong>, zniszczeniem okładzin, a u użytkowników prowadzą do przegrzania stóp i problemów krążeniowych żylnych.</p>

        <div class="rk-temp-pressure-box">
            <h4>Wytrzymałość Rury: Temperatura i Ciśnienie</h4>
            <p>Maksymalna dopuszczalna temperatura robocza dla <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rur PEX i PE-RT</a> w klasie 4 wynosi <strong>70°C</strong>. Projektowa temperatura awaryjna (T<sub>mal</sub>) to z kolei <strong>95°C</strong> (przez łączny maksymalny czas 100 godzin w ciągu 50 lat eksploatacji, wg PN-EN ISO 15875-1). Standardowe ciśnienie robocze wynosi <strong>6 bar lub 10 bar</strong>. Przekraczanie tych ram w sposób ciągły błyskawicznie przyspiesza proces starzenia termooksydacyjnego polimeru.</p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const slider = document.getElementById('rkTempSlider');
    const tempVal = document.getElementById('rkTempVal');
    const statusBox = document.getElementById('rkTempStatusBox');
    const statusTitle = document.getElementById('rkTempStatusTitle');
    const statusDesc = document.getElementById('rkTempStatusDesc');
    const visualBox = document.getElementById('rkTempVisualBox');

    function updateSimulation(value) {
        tempVal.innerText = value + '°C';

        // Logika stref temperatur
        if (value <= 40) {
            // OPTYMALNA (20-40)
            tempVal.style.color = 'var(--rk-temp-green)';
            visualBox.className = 'rk-temp-visual state-optimal';
            
            statusBox.style.background = '#f0fdf4';
            statusBox.style.borderColor = '#86efac';
            statusTitle.style.color = '#166534';
            statusDesc.style.color = '#15803d';
            
            statusTitle.innerText = 'Optymalnie (Norma)';
            statusDesc.innerText = 'Idealna temperatura pracy. Bezpieczna dla wylewki, zapewnia równomierne oddawanie ciepła i najwyższy współczynnik COP pompy ciepła.';
            
        } else if (value > 40 && value <= 55) {
            // OSTRZEŻENIE / MAX DOPUSZCZALNA (41-55)
            tempVal.style.color = 'var(--rk-temp-orange)';
            visualBox.className = 'rk-temp-visual state-warning';
            
            statusBox.style.background = '#fffbeb';
            statusBox.style.borderColor = '#fcd34d';
            statusTitle.style.color = '#b45309';
            statusDesc.style.color = '#b45309';
            
            statusTitle.innerText = 'Górna Granica Zasilania (Max 55°C)';
            statusDesc.innerText = 'Dopuszczalne przez normy, ale obniża sprawność źródła ciepła. Zbliżamy się do limitu Tmax dla komfortu ludzkiej stopy.';
            
        } else {
            // NIEBEZPIECZEŃSTWO / GRZEJNIKI (>55)
            tempVal.style.color = 'var(--rk-temp-red)';
            visualBox.className = 'rk-temp-visual state-danger';
            
            statusBox.style.background = '#fef2f2';
            statusBox.style.borderColor = '#fca5a5';
            statusTitle.style.color = '#b91c1c';
            statusDesc.style.color = '#b91c1c';
            
            statusTitle.innerText = 'Krytyczne Przegrzanie Wylewki!';
            statusDesc.innerText = 'Parametry grzejnikowe niszczą instalację. Występują naprężenia termiczne, pęka jastrych i przyspiesza starzenie struktury polimeru PEX.';
        }
    }

    slider.addEventListener('input', (e) => {
        updateSimulation(e.target.value);
    });

    // Inicjalizacja
    updateSimulation(slider.value);
});
</script>



<style>
:root {
    --rk-dia-dark: #0f172a;
    --rk-dia-darker: #020617;
    --rk-dia-primary: #0ea5e9;
    --rk-dia-primary-hover: #0284c7;
    --rk-dia-secondary: #3b82f6;
    --rk-dia-accent: #f59e0b;
    --rk-dia-success: #10b981;
    --rk-dia-danger: #ef4444;
    --rk-dia-bg: #ffffff;
    --rk-dia-surface: #f8fafc;
    --rk-dia-border: #e2e8f0;
    --rk-dia-text: #475569;
}

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

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

.rk-dia-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(14, 165, 233, 0.2);
    color: #7dd3fc;
    padding: 6px 14px;
    border-radius: 99px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(14, 165, 233, 0.3);
}

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

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

/* Poziomy Selektor (Zoptymalizowany pod kątem uwag z poprzedniego widoku) */
.rk-dia-selector {
    display: flex;
    justify-content: center;
    background: var(--rk-dia-surface);
    padding: 25px 45px;
    border-bottom: 1px solid var(--rk-dia-border);
}

.rk-dia-tabs {
    display: flex;
    background: #ffffff;
    border: 1px solid var(--rk-dia-border);
    border-radius: 16px;
    padding: 6px;
    gap: 6px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
    width: 100%;
    max-width: 600px;
}

.rk-dia-tab {
    flex: 1;
    padding: 14px 20px;
    border: none;
    background: transparent;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-dia-text);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

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

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

.rk-dia-tab.active {
    background: var(--rk-dia-primary);
    color: #ffffff;
    box-shadow: 0 4px 12px rgba(14, 165, 233, 0.4);
}

/* Dashboard Interaktywny */
.rk-dia-dashboard {
    padding: 40px 45px;
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 40px;
    align-items: center;
    background: #ffffff;
}

/* Lewa Kolumna - SVG Przekrój Rury */
.rk-dia-visual {
    background: var(--rk-dia-surface);
    border: 1px dashed #94a3b8;
    border-radius: 20px;
    padding: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
    height: 100%;
    min-height: 280px;
}

.rk-dia-svg {
    width: 100%;
    max-width: 180px;
    height: auto;
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Animacje wnętrza rury */
.anim-water-flow { transform-origin: center; transition: all 0.5s ease; }
.anim-pipe-wall { transition: stroke-width 0.5s ease, r 0.5s ease; }

.state-14 .anim-water-flow { r: 35; fill: #60a5fa; animation: pulseFast 1s infinite alternate; }
.state-14 .anim-pipe-wall { r: 45; stroke-width: 10; stroke: #94a3b8; }
.state-14 .rk-dia-svg { transform: scale(0.85); }

.state-16 .anim-water-flow { r: 50; fill: #3b82f6; animation: pulseNormal 2s infinite alternate; }
.state-16 .anim-pipe-wall { r: 60; stroke-width: 10; stroke: #64748b; }
.state-16 .rk-dia-svg { transform: scale(1); }

.state-20 .anim-water-flow { r: 70; fill: #1d4ed8; animation: pulseSlow 3s infinite alternate; }
.state-20 .anim-pipe-wall { r: 80; stroke-width: 10; stroke: #475569; }
.state-20 .rk-dia-svg { transform: scale(1.2); }

@keyframes pulseFast { 0% { filter: drop-shadow(0 0 5px rgba(96, 165, 250, 0.8)); } 100% { filter: drop-shadow(0 0 15px rgba(96, 165, 250, 0.2)); } }
@keyframes pulseNormal { 0% { filter: drop-shadow(0 0 10px rgba(59, 130, 246, 0.6)); } 100% { filter: drop-shadow(0 0 20px rgba(59, 130, 246, 0.3)); } }
@keyframes pulseSlow { 0% { filter: drop-shadow(0 0 15px rgba(29, 78, 216, 0.5)); } 100% { filter: drop-shadow(0 0 25px rgba(29, 78, 216, 0.4)); } }

.rk-dia-cap-label {
    margin-top: 25px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-dia-dark);
    text-transform: uppercase;
}

.rk-dia-cap-val {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-dia-primary);
    line-height: 1;
    margin-top: 5px;
}

.rk-dia-cap-val small {
    font-size: 16px;
    color: var(--rk-dia-text);
}

/* Prawa Kolumna - Statystyki i Wskaźniki */
.rk-dia-stats {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

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

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

.rk-dia-card-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-dia-dark);
    text-transform: uppercase;
}

.rk-dia-card-status {
    font-size: 13px;
    font-weight: 800;
    padding: 4px 10px;
    border-radius: 6px;
}

/* Kolory statusów */
.status-err { background: #fee2e2; color: #991b1b; }
.status-ok { background: #dcfce7; color: #166534; }
.status-warn { background: #fef3c7; color: #b45309; }

/* Pasek oporu */
.rk-dia-progress-wrap {
    height: 12px;
    background: var(--rk-dia-surface);
    border-radius: 99px;
    overflow: hidden;
    position: relative;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.05);
}

.rk-dia-progress-fill {
    height: 100%;
    border-radius: 99px;
    transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.6s;
}

.rk-dia-desc {
    margin-top: 10px;
    font-size: 14px;
    color: var(--rk-dia-text);
    line-height: 1.6;
}

/* Tekst główny artykułu */
.rk-dia-article {
    padding: 40px 45px;
    background: var(--rk-dia-surface);
    border-top: 1px solid var(--rk-dia-border);
}

.rk-dia-article p {
    font-size: 16px;
    line-height: 1.75;
    color: var(--rk-dia-text);
    margin: 0 0 20px 0;
}

.rk-dia-article p:last-child { margin: 0; }

.rk-dia-article strong {
    color: var(--rk-dia-dark);
}

.rk-dia-article a {
    color: var(--rk-dia-primary);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dotted var(--rk-dia-primary);
    transition: border-color 0.3s;
}

.rk-dia-article a:hover {
    border-bottom-style: solid;
}

@media (max-width: 768px) {
    .rk-dia-header, .rk-dia-selector, .rk-dia-dashboard, .rk-dia-article { padding: 25px 20px; }
    .rk-dia-dashboard { grid-template-columns: 1fr; gap: 30px; }
    .rk-dia-tabs { flex-direction: column; }
    .rk-dia-tab { padding: 12px; flex-direction: row; justify-content: center; gap: 10px; }
    .rk-dia-tab span { margin-top: 2px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Jaka średnica rur do podłogówki jest optymalna?",
    "description": "Porównanie średnic rur ogrzewania podłogowego: 14mm, 16mm i 20mm. Dowiedz się, jak pojemność wodna i opory hydrauliczne wpływają na dobór pompy obiegowej.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#dataset",
    "name": "Zestawienie pojemności wodnej i oporów hydraulicznych rur grzewczych",
    "description": "Dane inżynieryjne obrazujące różnice w zładzie wody oraz wpływie przekroju na parametry pracy pompy obiegowej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "średnica rury do podłogówki",
      "rura 16x2.0 pojemność wodna",
      "opory hydrauliczne pętli",
      "rura 20mm ogrzewanie podłogowe",
      "dobór pompy obiegowej do podłogówki"
    ],
    "measurementTechnique": "Obliczenia hydrauliczne weryfikujące stratę ciśnienia (Pa/m) oraz pojemność wewnętrzną (l/m) przewodów PEX.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rura 16x2.0 mm: Pojemność 0,113 l/m. Standard budownictwa jednorodzinnego.",
        "Rura 20x2.0 mm: Pojemność 0,201 l/m. Przeznaczona do długich obiegów i hal.",
        "Rura 14x2.0 mm: Generuje wysokie opory, ryzyko przekroczenia wysokości podnoszenia pompy (6-8m)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/#webapp",
    "name": "Symulator Średnic Rur i Pojemności Wodnej",
    "description": "Interaktywny pulpit pozwalający przełączać się między przekrojami 14mm, 16mm i 20mm w celu wizualizacji wpływu średnicy na opory hydrauliczne i obciążenie pompy obiegowej.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JS",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dia-container">
    <div class="rk-dia-header">
        <div class="rk-dia-badge">Hydraulika i Przepływy</div>
        <h2>Jaka średnica rur do podłogówki jest optymalna?</h2>
        <p>Wybór średnicy bezpośrednio determinuje pojemność wodną instalacji oraz wymagany profil ciśnienia pompy obiegowej. Przełączaj średnice na panelu, aby zobaczyć różnice inżynieryjne.</p>
    </div>

    <div class="rk-dia-selector">
        <div class="rk-dia-tabs">
            <button class="rk-dia-tab" data-dia="14">14 mm <span>Cienkościenna</span></button>
            <button class="rk-dia-tab active" data-dia="16">16 mm <span>Standard</span></button>
            <button class="rk-dia-tab" data-dia="20">20 mm <span>Przemysłowa</span></button>
        </div>
    </div>

    <div class="rk-dia-dashboard">
        <div class="rk-dia-visual" id="rkVisualBox">
            <svg class="rk-dia-svg" viewBox="0 0 200 200">
                <circle cx="100" cy="100" r="95" fill="none" stroke="#e2e8f0" stroke-width="2" stroke-dasharray="6"/>
                <circle cx="100" cy="100" r="60" class="anim-pipe-wall" fill="none"/>
                <circle cx="100" cy="100" r="50" class="anim-water-flow"/>
            </svg>
            <div class="rk-dia-cap-label">Pojemność wodna (Zład)</div>
            <div class="rk-dia-cap-val" id="rkCapVal">0,113 <small>l/m</small></div>
        </div>

        <div class="rk-dia-stats">
            
            <div class="rk-dia-card">
                <div class="rk-dia-card-header">
                    <span class="rk-dia-card-title">Opory hydrauliczne (Pa/m)</span>
                    <span class="rk-dia-card-status status-ok" id="rkStatusRes">Optymalne</span>
                </div>
                <div class="rk-dia-progress-wrap">
                    <div class="rk-dia-progress-fill" id="rkBarRes" style="width: 40%; background-color: var(--rk-dia-success);"></div>
                </div>
                <div class="rk-dia-desc" id="rkDescRes">Zapewnia idealny kompromis pomiędzy stratą ciśnienia a łatwością układania i gięcia rury.</div>
            </div>

            <div class="rk-dia-card">
                <div class="rk-dia-card-header">
                    <span class="rk-dia-card-title">Obciążenie pompy obiegowej</span>
                    <span class="rk-dia-card-status status-ok" id="rkStatusPump">Standard (6m)</span>
                </div>
                <div class="rk-dia-progress-wrap">
                    <div class="rk-dia-progress-fill" id="rkBarPump" style="width: 30%; background-color: var(--rk-dia-success);"></div>
                </div>
                <div class="rk-dia-desc" id="rkDescPump">Wystarczająca pojemność dla domów jednorodzinnych, bez ryzyka przekroczenia wysokości podnoszenia.</div>
            </div>

        </div>
    </div>

    <div class="rk-dia-article">
        <p>Standardową średnicą stosowaną w budownictwie jednorodzinnym i wielorodzinnym jest <strong>16 mm z grubością ścianki 2,0 mm (16&#215;2,0)</strong>, co zapewnia optymalny kompromis pomiędzy oporami hydraulicznymi a łatwością profilowania pętli na budowie.</p>
        
        <p>Dla obiektów przemysłowych, hal magazynowych lub bardzo długich obiegów magistralnych stosuje się rury o średnicy <strong>20 mm ze ścianką 2,0 mm lub 2,5 mm</strong>. Wybór średnicy bezpośrednio determinuje <a href="https://projekt-ogrzewania.pl/wiekszy-czy-mniejszy-zlad-wody-w-ogrzewaniu-podlogowym/">pojemność wodną instalacji</a> oraz wymagany profil ciśnienia <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">pompy obiegowej</a>.</p>
        
        <p>Pojemność wodna rury 16&#215;2,0 wynosi dokładnie <strong>0,113 litra</strong> na każdy metr bieżący. Dla porównania, rura 20&#215;2,0 mieści w sobie <strong>0,201 l/m</strong>. Zastosowanie rury o mniejszym przekroju (np. 14&#215;2,0) drastycznie zwiększa jednostkowe straty ciśnienia (wyrażane w paskalach na metr – Pa/m), co przy stałym wydatku masowym pompy może doprowadzić do przekroczenia maksymalnej wysokości podnoszenia standardowych pomp obiegowych wbudowanych w urządzenia grzewcze (zazwyczaj 6 m lub 8 m słupa wody).</p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const tabs = document.querySelectorAll('.rk-dia-tab');
    
    // Obiekty DOM do aktualizacji
    const visualBox = document.getElementById('rkVisualBox');
    const capVal = document.getElementById('rkCapVal');
    
    const barRes = document.getElementById('rkBarRes');
    const statusRes = document.getElementById('rkStatusRes');
    const descRes = document.getElementById('rkDescRes');
    
    const barPump = document.getElementById('rkBarPump');
    const statusPump = document.getElementById('rkStatusPump');
    const descPump = document.getElementById('rkDescPump');

    const diaData = {
        '14': {
            cls: 'state-14',
            cap: '0,079',
            resPct: '90%',
            resColor: 'var(--rk-dia-danger)',
            resStatus: 'Krytyczne',
            resStatusCls: 'status-err',
            resDesc: 'Drastyczny wzrost oporów (Pa/m). Rura zbyt ciasna dla standardowych, długich pętli.',
            pumpPct: '85%',
            pumpColor: 'var(--rk-dia-danger)',
            pumpStatus: 'Przeciążenie',
            pumpStatusCls: 'status-err',
            pumpDesc: 'Ryzyko przekroczenia możliwości podnoszenia standardowej pompy kotłowej (6m/8m). Konieczność bardzo krótkich obiegów.'
        },
        '16': {
            cls: 'state-16',
            cap: '0,113',
            resPct: '40%',
            resColor: 'var(--rk-dia-success)',
            resStatus: 'Optymalne',
            resStatusCls: 'status-ok',
            resDesc: 'Zapewnia idealny kompromis pomiędzy stratą ciśnienia a łatwością układania i gięcia rury.',
            pumpPct: '30%',
            pumpColor: 'var(--rk-dia-success)',
            pumpStatus: 'Standard (6m)',
            pumpStatusCls: 'status-ok',
            pumpDesc: 'Wystarczająca pojemność dla domów jednorodzinnych, bez ryzyka przeciążenia hydraulicznego rozdzielacza.'
        },
        '20': {
            cls: 'state-20',
            cap: '0,201',
            resPct: '15%',
            resColor: 'var(--rk-dia-secondary)',
            resStatus: 'Znikome',
            resStatusCls: 'status-ok',
            resDesc: 'Minimalne straty ciśnienia na odcinkach. Rura sztywna, trudniejsza w układaniu na małych powierzchniach.',
            pumpPct: '15%',
            pumpColor: 'var(--rk-dia-secondary)',
            pumpStatus: 'Wysoka wydajność',
            pumpStatusCls: 'status-ok',
            pumpDesc: 'Duży zład wody idealnie stabilizuje pracę pomp ciepła w halach przemysłowych i przy bardzo długich obiegach.'
        }
    };

    function updateUI(dia) {
        const data = diaData[dia];

        // 1. Aktualizacja animacji SVG
        visualBox.className = `rk-dia-visual ${data.cls}`;
        capVal.innerHTML = `${data.cap} <small>l/m</small>`;

        // 2. Aktualizacja wskaźnika oporów
        barRes.style.width = data.resPct;
        barRes.style.backgroundColor = data.resColor;
        statusRes.innerText = data.resStatus;
        statusRes.className = `rk-dia-card-status ${data.resStatusCls}`;
        descRes.innerText = data.resDesc;

        // 3. Aktualizacja wskaźnika pompy
        barPump.style.width = data.pumpPct;
        barPump.style.backgroundColor = data.pumpColor;
        statusPump.innerText = data.pumpStatus;
        statusPump.className = `rk-dia-card-status ${data.pumpStatusCls}`;
        descPump.innerText = data.pumpDesc;
    }

    tabs.forEach(tab => {
        tab.addEventListener('click', function() {
            // Zmiana aktywnego taba
            tabs.forEach(t => t.classList.remove('active'));
            this.classList.add('active');

            // Aktualizacja UI
            const dia = this.getAttribute('data-dia');
            updateUI(dia);
        });
    });

    // Inicjalizacja dla domyślnej klasy (16mm)
    updateUI('16');
});
</script>



<style>
:root {
    --rk-loop-dark: #0f172a;
    --rk-loop-darker: #020617;
    --rk-loop-blue: #2563eb;
    --rk-loop-blue-hover: #1d4ed8;
    --rk-loop-red: #ef4444;
    --rk-loop-orange: #f59e0b;
    --rk-loop-green: #10b981;
    --rk-loop-gray: #64748b;
    --rk-loop-bg: #ffffff;
    --rk-loop-surface: #f8fafc;
    --rk-loop-border: #e2e8f0;
}

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

/* Nagłówek */
.rk-loop-header {
    background: linear-gradient(to right, var(--rk-loop-dark), var(--rk-loop-darker));
    padding: 35px 40px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-loop-blue);
}

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

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

/* Interaktywny Panel Główny */
.rk-loop-interactive {
    padding: 35px 40px;
    background: var(--rk-loop-surface);
    border-bottom: 1px solid var(--rk-loop-border);
}

/* Kontrolki na pełną szerokość */
.rk-loop-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
    margin-bottom: 30px;
    background: #ffffff;
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-loop-border);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-loop-ctrl-group {
    flex: 1;
    min-width: 250px;
}

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

/* Przyciski średnicy rury */
.rk-loop-diameters {
    display: flex;
    gap: 10px;
}

.rk-loop-dia-btn {
    flex: 1;
    padding: 12px 5px;
    background: var(--rk-loop-surface);
    border: 1px solid var(--rk-loop-border);
    border-radius: 8px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-loop-gray);
    cursor: pointer;
    transition: all 0.2s;
    text-align: center;
}

.rk-loop-dia-btn:hover {
    border-color: #93c5fd;
    color: var(--rk-loop-blue);
}

.rk-loop-dia-btn.active {
    background: var(--rk-loop-blue);
    border-color: var(--rk-loop-blue);
    color: #ffffff;
    box-shadow: 0 4px 10px rgba(37, 99, 235, 0.3);
}

/* Suwak długości */
.rk-loop-slider-wrap {
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-loop-range {
    flex: 1;
    -webkit-appearance: none;
    height: 6px;
    background: #cbd5e1;
    border-radius: 4px;
    outline: none;
}

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

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

.rk-loop-len-val {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-loop-dark);
    min-width: 65px;
    text-align: right;
}

/* Kafelki z Wynikami (Płaski układ) */
.rk-loop-results {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-bottom: 25px;
}

.rk-loop-res-card {
    background: #ffffff;
    border: 1px solid var(--rk-loop-border);
    border-radius: 12px;
    padding: 20px;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-loop-res-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-loop-gray);
    text-transform: uppercase;
    margin-bottom: 8px;
}

.rk-loop-res-val {
    font-size: 24px;
    font-weight: 900;
}

.val-ok { color: var(--rk-loop-green); }
.val-warn { color: var(--rk-loop-orange); }
.val-err { color: var(--rk-loop-red); }

/* Szeroka Wizualizacja SVG (Temperatura pętli) */
.rk-loop-vis-box {
    background: #ffffff;
    border: 1px solid var(--rk-loop-border);
    border-radius: 12px;
    padding: 20px;
    position: relative;
}

.rk-loop-vis-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-loop-gray);
    text-transform: uppercase;
    margin-bottom: 15px;
    text-align: center;
}

.rk-loop-svg {
    width: 100%;
    height: 60px;
    display: block;
}

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

.alert-ok { background: #dcfce7; color: #166534; }
.alert-err { background: #fee2e2; color: #991b1b; }

/* Sekcja Artykułu / Wzoru */
.rk-loop-article {
    padding: 40px;
    background: #ffffff;
}

.rk-loop-article p {
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
    margin: 0 0 20px 0;
}

.rk-loop-article p:last-child { margin: 0; }

.rk-loop-formula-card {
    background: #f1f5f9;
    border-left: 4px solid var(--rk-loop-blue);
    padding: 25px;
    border-radius: 0 12px 12px 0;
    margin: 25px 0;
    display: flex;
    align-items: center;
    gap: 25px;
}

.rk-loop-math {
    font-family: 'Courier New', Courier, monospace;
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-loop-dark);
    white-space: nowrap;
}

.rk-loop-math-desc {
    font-size: 14px;
    color: var(--rk-loop-gray);
    line-height: 1.6;
}

.rk-loop-math-desc strong { color: var(--rk-loop-dark); }

@media (max-width: 768px) {
    .rk-loop-header, .rk-loop-interactive, .rk-loop-article { padding: 25px 20px; }
    .rk-loop-results { grid-template-columns: 1fr; }
    .rk-loop-formula-card { flex-direction: column; align-items: flex-start; gap: 15px; }
    .rk-loop-controls { padding: 15px; flex-direction: column; gap: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/"
    },
    "headline": "Jaka jest maksymalna długość jednej pętli ogrzewania podłogowego?",
    "description": "Poznaj maksymalne długości rur grzewczych (14mm, 16mm, 20mm). Sprawdź konsekwencje przekroczenia oporów hydraulicznych i zjawisko zimnych plam.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/#dataset",
    "name": "Dopuszczalne długości pętli grzewczych i opory hydrauliczne",
    "description": "Zestawienie limitów długości przewodów ogrzewania płaszczyznowego względem ich średnicy i generowanych strat ciśnienia (limit 20 kPa).",
    "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",
      "rura 16x2.0 maksymalna długość",
      "zimne plamy na podłodze",
      "regulacja rotametrów rozdzielacza"
    ],
    "measurementTechnique": "Algorytm oparty na wzorze Δp = R · L + Z, wyliczający sumaryczną stratę ciśnienia instalacji.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rura 14 mm: Limit 80 metrów bieżących.",
        "Rura 16 mm: Limit 100 metrów bieżących.",
        "Rura 20 mm: Limit 150 metrów bieżących.",
        "Krytyczny opór hydrauliczny: > 20 kPa."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/#webapp",
    "name": "Kalkulator Oporów i Długości Pętli",
    "description": "Narzędzie symulujące rozkład temperatur (wychładzanie czynnika) oraz wzrost strat ciśnienia na pętli w zależności od średnicy rury.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JS",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-loop-container">
    <div class="rk-loop-header">
        <h2>Jaka jest maksymalna długość jednej pętli ogrzewania podłogowego?</h2>
        <p>Przekroczenie maksymalnej długości rury generuje ogromne opory hydrauliczne. Uniemożliwia to wyregulowanie rotametrów na rozdzielaczu i prowadzi do powstawania tzw. zimnych plam.</p>
    </div>

    <div class="rk-loop-interactive">
        
        <div class="rk-loop-controls">
            <div class="rk-loop-ctrl-group">
                <span class="rk-loop-ctrl-label">Średnica rury (zewnętrzna)</span>
                <div class="rk-loop-diameters" id="rkDiaSelector">
                    <button class="rk-loop-dia-btn" data-dia="14" data-max="80">14 mm</button>
                    <button class="rk-loop-dia-btn active" data-dia="16" data-max="100">16 mm</button>
                    <button class="rk-loop-dia-btn" data-dia="20" data-max="150">20 mm</button>
                </div>
            </div>
            
            <div class="rk-loop-ctrl-group" style="flex: 1.5;">
                <span class="rk-loop-ctrl-label">Projektowana długość pętli (L)</span>
                <div class="rk-loop-slider-wrap">
                    <input type="range" id="rkLenSlider" class="rk-loop-range" min="40" max="180" step="1" value="85">
                    <span class="rk-loop-len-val" id="rkLenVal">85 m</span>
                </div>
            </div>
        </div>

        <div class="rk-loop-results">
            <div class="rk-loop-res-card">
                <span class="rk-loop-res-label">Limit normatywny</span>
                <span class="rk-loop-res-val" id="rkLimitVal">100 m</span>
            </div>
            <div class="rk-loop-res-card">
                <span class="rk-loop-res-label">Straty ciśnienia (Δp)</span>
                <span class="rk-loop-res-val val-ok" id="rkPressVal">~12 kPa</span>
            </div>
            <div class="rk-loop-res-card">
                <span class="rk-loop-res-label">Wydolność strefy</span>
                <span class="rk-loop-res-val val-ok" id="rkEffVal">100%</span>
            </div>
        </div>

        <div class="rk-loop-vis-box">
            <div class="rk-loop-vis-title">Wizualizacja Rozkładu Temperatury (Zasilanie → Powrót)</div>
            <svg class="rk-loop-svg" preserveAspectRatio="none">
                <defs>
                    <linearGradient id="rkTempGrad" x1="0%" y1="0%" x2="100%" y2="0%">
                        <stop offset="0%" stop-color="#ef4444" id="stopStart" />
                        <stop offset="50%" stop-color="#f59e0b" id="stopMid" />
                        <stop offset="100%" stop-color="#10b981" id="stopEnd" />
                    </linearGradient>
                </defs>
                <rect x="0" y="20" width="100%" height="20" rx="10" fill="url(#rkTempGrad)" />
            </svg>
            <div class="rk-loop-alert alert-ok" id="rkAlertBox">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"/><polyline points="22 4 12 14.01 9 11.01"/></svg>
                <span id="rkAlertText">Parametry w normie. Równomierne oddawanie ciepła.</span>
            </div>
        </div>

    </div>

    <div class="rk-loop-article">
        <p>Maksymalna długość pojedynczej pętli grzewczej dla rury o średnicy <strong>16&#215;2,0 mm</strong> wynosi <strong>100 metrów</strong>, wliczając w to odcinki dobiegowe (podejścia od rozdzielacza do pomieszczenia). Dla rur o średnicy <strong>20 mm</strong> limit ten wynosi <strong>150 metrów</strong>, natomiast dla rur cienkościennych <strong>14 mm</strong> nie należy przekraczać <strong>80 metrów</strong>.</p>
        
        <p>Przekroczenie tych długości generuje drastyczne opory hydrauliczne powyżej <strong>20 kPa</strong> na jednej pętli, uniemożliwiając prawidłowe zrównoważenie instalacji na rotametrach rozdzielacza. Konsekwencją wykonania zbyt długiej pętli (np. 140 metrów na rurze 16 mm) jest zjawisko niedogrzania strefy powrotnej. Woda płynąca przez rurę oddaje ciepło zbyt wcześnie, a wychłodzony czynnik w końcowej części pętli nie jest w stanie pokryć strat ciepła pomieszczenia. Powoduje to powstawanie tzw. &#8222;zimnych plam&#8221; na podłodze.</p>

        <div class="rk-loop-formula-card">
            <div class="rk-loop-math">
                <i>&Delta;p</i> = <i>R</i> &middot; <i>L</i> + <i>Z</i>
            </div>
            <div class="rk-loop-math-desc">
                Łączna strata ciśnienia rośnie proporcjonalnie do kwadratu natężenia przepływu. <br>
                Gdzie: <br>
                <strong><i>R</i></strong> to liniowy opór jednostkowy [Pa/m], <br>
                <strong><i>L</i></strong> to długość rury [m], <br>
                <strong><i>Z</i></strong> to opory miejscowe (łuki, zagięcia).
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const diaBtns = document.querySelectorAll('.rk-loop-dia-btn');
    const slider = document.getElementById('rkLenSlider');
    const lenVal = document.getElementById('rkLenVal');
    const limitVal = document.getElementById('rkLimitVal');
    const pressVal = document.getElementById('rkPressVal');
    const effVal = document.getElementById('rkEffVal');
    const alertBox = document.getElementById('rkAlertBox');
    const alertText = document.getElementById('rkAlertText');
    const stopEnd = document.getElementById('stopEnd');

    let currentMax = 100;

    function updateSimulation() {
        const length = parseInt(slider.value);
        lenVal.innerText = length + ' m';

        // Prosta symulacja oporów (nieliniowa ze względu na kwadrat przepływu w teorii, 
        // tu uproszczona do celów demonstracyjnych). 
        // Zakładamy max opór ok 20 kPa przy długości maksymalnej.
        let pressure = Math.pow(length / currentMax, 1.8) * 18; 
        
        // Klasy i kolory
        pressVal.classList.remove('val-ok', 'val-warn', 'val-err');
        effVal.classList.remove('val-ok', 'val-warn', 'val-err');
        alertBox.classList.remove('alert-ok', 'alert-err');

        if (length <= currentMax) {
            // W normie
            pressVal.innerText = `~${pressure.toFixed(1)} kPa`;
            pressVal.classList.add('val-ok');
            effVal.innerText = "100%";
            effVal.classList.add('val-ok');
            
            stopEnd.setAttribute('stop-color', '#10b981'); // Zielony/Ciepły powrót
            
            alertBox.classList.add('alert-ok');
            alertBox.innerHTML = `<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"/><polyline points="22 4 12 14.01 9 11.01"/></svg> <span id="rkAlertText">Parametry w normie. Równomierne oddawanie ciepła.</span>`;
        } else {
            // Przekroczenie
            pressVal.innerText = `> ${pressure.toFixed(1)} kPa`;
            pressVal.classList.add('val-err');
            
            // Oblicz spadek wydajności
            let eff = Math.max(10, 100 - ((length - currentMax) * 1.5));
            effVal.innerText = `${eff.toFixed(0)}%`;
            effVal.classList.add('val-err');

            stopEnd.setAttribute('stop-color', '#2563eb'); // Niebieski/Zimny powrót
            
            alertBox.classList.add('alert-err');
            alertBox.innerHTML = `<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="16" x2="12.01" y2="16"/></svg> <span id="rkAlertText">BŁĄD: Zbyt duży opór. Ryzyko powstawania zimnych plam.</span>`;
        }
    }

    diaBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            diaBtns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            
            currentMax = parseInt(this.getAttribute('data-max'));
            limitVal.innerText = currentMax + ' m';
            
            updateSimulation();
        });
    });

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



<style>
:root {
    --rk-space-dark: #0f172a;
    --rk-space-blue: #0ea5e9;
    --rk-space-blue-bg: #f0f9ff;
    --rk-space-teal: #14b8a6;
    --rk-space-green: #10b981;
    --rk-space-orange: #f59e0b;
    --rk-space-red: #ef4444;
    --rk-space-gray: #64748b;
    --rk-space-border: #e2e8f0;
    --rk-space-bg: #ffffff;
}

.rk-space-container, .rk-space-container * {
    box-sizing: border-box !important;
}

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

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

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

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

/* Interaktywna Aplikacja */
.rk-space-app {
    padding: 40px 45px;
    background: #f8fafc;
}

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

/* Suwak (Slider) */
.rk-space-control {
    background: #ffffff;
    border: 1px solid var(--rk-space-border);
    border-radius: 16px;
    padding: 30px;
    margin-bottom: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-slider-wrapper {
    position: relative;
    padding: 0 10px;
}

.rk-slider-labels {
    display: flex;
    justify-content: space-between;
    margin-bottom: 15px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-space-gray);
}

.rk-slider-labels span {
    cursor: pointer;
    transition: all 0.3s;
}

.rk-slider-labels span.active {
    color: var(--rk-space-blue);
    transform: scale(1.1);
}

/* TWARDE WYMUSZENIE KIERUNKU LTR (Left-To-Right) ZAPOBIEGA ODWRACANIU DANYCH */
.rk-space-range {
    width: 100%;
    -webkit-appearance: none;
    appearance: none;
    height: 8px;
    background: #e2e8f0;
    border-radius: 4px;
    outline: none;
    direction: ltr !important; 
}

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

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

/* Karty z Danymi */
.rk-space-stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.rk-stat-card {
    background: #ffffff;
    border: 1px solid var(--rk-space-border);
    border-radius: 12px;
    padding: 25px 20px;
    text-align: center;
    transition: transform 0.3s, border-color 0.3s;
}

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

.rk-stat-icon {
    width: 28px;
    height: 28px;
    margin: 0 auto 12px;
    color: var(--rk-space-teal);
}

.rk-stat-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-space-gray);
    text-transform: uppercase;
    margin-bottom: 8px;
    display: block;
}

.rk-stat-value {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-space-dark);
    display: block;
    line-height: 1.2;
}

.rk-stat-value small {
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-space-gray);
}

.rk-stat-full {
    grid-column: span 2;
    background: var(--rk-space-dark);
    color: #ffffff;
}

.rk-stat-full .rk-stat-title { color: #94a3b8; }
.rk-stat-full .rk-stat-value { color: #ffffff; font-size: 20px; }

/* Sekcja z opisem tekstowym */
.rk-space-article {
    padding: 40px 45px;
    background: #ffffff;
    border-top: 1px solid var(--rk-space-border);
}

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

.rk-space-article p {
    font-size: 16px;
    line-height: 1.7;
    color: #475569;
    margin: 0 0 20px 0;
}

.rk-cop-alert {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    background: #ecfdf5;
    border-left: 4px solid var(--rk-space-green);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin-top: 25px;
}

.rk-cop-alert svg {
    width: 28px;
    height: 28px;
    color: var(--rk-space-green);
    flex-shrink: 0;
    animation: rkPulseCop 2s infinite;
}

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

.rk-cop-text h4 {
    margin: 0 0 5px 0;
    font-size: 16px;
    font-weight: 800;
    color: #065f46;
}

.rk-cop-text p {
    margin: 0;
    font-size: 14px;
    color: #047857;
}

.rk-space-article a {
    color: var(--rk-space-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dotted var(--rk-space-blue);
    transition: all 0.3s;
}

.rk-space-article a:hover {
    color: #0284c7;
    border-bottom-style: solid;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-space-header, .rk-space-app, .rk-space-article { padding: 30px 20px; }
    .rk-space-stats { grid-template-columns: 1fr; }
    .rk-stat-full { grid-column: span 1; }
    .rk-slider-labels { font-size: 12px; }
    .rk-cop-alert { flex-direction: column; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/#article-rozstaw",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/"
    },
    "headline": "Jak gęsto rozkładać rury w podłogówce?",
    "description": "Zrozum, jak rozstaw rur wpływa na zużycie materiału, temperaturę podłogi oraz wydajność COP pompy ciepła. Interaktywny kalkulator gęstości ułożenia.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/#dataset-rozstaw",
    "name": "Tabela zużycia rur i rozstawów dla ogrzewania płaszczyznowego (WT2021)",
    "description": "Dane na temat gęstości ułożenia rury PE-RT/PEX na 1 m2 w zależności od docelowej strefy grzewczej i wymagań termicznych budynku.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "rozstaw rur 10 czy 15 cm",
      "strefa brzegowa podłogówki",
      "COP pompy ciepła",
      "zużycie rury na m2 ogrzewania podłogowego",
      "maksymalna długość pętli ogrzewania"
    ],
    "measurementTechnique": "Przeliczenie geometryczne powierzchni pola grzewczego uwzględniające naddatek instalacyjny 2%.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rozstaw 5 cm: zużycie 20,0 m/m2 (Strefy brzegowe).",
        "Rozstaw 10 cm: zużycie 10,0 m/m2 (Łazienki, Pompy ciepła).",
        "Rozstaw 15 cm: zużycie 6,7 m/m2 (Standard salonowy).",
        "Rozstaw 20 cm: zużycie 5,0 m/m2 (Garaże, korytarze)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/#webapp-rozstaw",
    "name": "Symulator Rozstawu Rur i Wpływu na COP",
    "description": "Interaktywny symulator wizualizujący zagęszczenie rur grzewczych na siatce podłogowej i jego wpływ na sprawność układu termicznego i zużycie materiałów.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JS",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-space-container">
    <div class="rk-space-header">
        <h2>Jak gęsto rozkładać rury w podłogówce?</h2>
        <p>Wybór rozstawu (interwału) wpływa bezpośrednio na średnią temperaturę podłogi, moc grzewczą oraz ostateczny pobór prądu. Zobacz, jak zmieniają się parametry w zależności od wybranej gęstości.</p>
    </div>

    <div class="rk-space-app">
        <h3>Symulator Zużycia Materiału i Stref Grzewczych</h3>
        
        <div class="rk-space-control">
            <div class="rk-slider-labels">
                <span data-val="5">5 cm</span>
                <span data-val="10">10 cm</span>
                <span data-val="15" class="active">15 cm</span>
                <span data-val="20">20 cm</span>
            </div>
            <div class="rk-slider-wrapper">
                <input type="range" id="rkSpacingSlider" class="rk-space-range" min="5" max="20" step="5" value="15">
            </div>
        </div>

        <div class="rk-space-stats">
            <div class="rk-stat-card">
                <svg class="rk-stat-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="21 8 21 21 3 21 3 8"></polyline><rect x="1" y="3" width="22" height="5"></rect><line x1="10" y1="12" x2="14" y2="12"></line></svg>
                <span class="rk-stat-title">Zużycie rury (m²)</span>
                <span class="rk-stat-value" id="rkStatUsage">6,7 <small>m</small></span>
            </div>
            <div class="rk-stat-card">
                <svg class="rk-stat-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                <span class="rk-stat-title">Pokrycie z 1 pętli (100m)</span>
                <span class="rk-stat-value" id="rkStatArea">13,5 <small>m²</small></span>
            </div>
            <div class="rk-stat-card rk-stat-full">
                <span class="rk-stat-title">Zastosowanie dedykowane (Strefa)</span>
                <span class="rk-stat-value" id="rkStatTarget">Standard budowlany WT2021, salony, pokoje</span>
            </div>
        </div>
    </div>

    <div class="rk-space-article">
        <h3>Strefy brzegowe i centralne – klucz do balansu</h3>
        <p>Standardowy rozstaw rur grzewczych w strefach centralnych pomieszczeń mieszkalnych wynosi <strong>10 cm lub 15 cm</strong>. W pomieszczeniach pomocniczych, takich jak garaże czy spiżarnie, z powodzeniem można zastosować rzadszy układ, np. <strong>20 cm</strong>, co obniża koszty materiału bez strat dla komfortu użytkowego.</p>
        
        <p>Kluczowe znaczenie ma <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/">strefa brzegowa</a> (wzdłuż ścian zewnętrznych, przy oknach tarasowych i dużych przeszkleniach). Stosuje się tam maksymalne zagęszczenie (rozstaw <strong>5 cm lub 10 cm</strong>) na szerokości pasma minimum 1 metra od przegrody. Ma to na celu skompensowanie zwiększonych lokalnych strat ciepła i zablokowanie zjawiska tzw. radiacji chłodu.</p>

        <div class="rk-cop-alert">
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"></path></svg>
            <div class="rk-cop-text">
                <h4>Wpływ rozstawu na sprawność Pompy Ciepła</h4>
                <p>Zmniejszenie rozstawu z 15 cm na 10 cm (decyzja podjęta w <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">trakcie projektu</a>) pozwala na obniżenie wymaganej temperatury zasilania czynnika o około <strong>3-4°C</strong> przy zachowaniu identycznej wydajności cieplnej pokoju. To zjawisko bezpośrednio podnosi współczynnik sprawności COP o około <strong>6-8% w skali roku</strong>.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const slider = document.getElementById('rkSpacingSlider');
    const labels = document.querySelectorAll('.rk-slider-labels span');
    
    // DOM Elements to update
    const statUsage = document.getElementById('rkStatUsage');
    const statArea = document.getElementById('rkStatArea');
    const statTarget = document.getElementById('rkStatTarget');

    // MAPOWANIE DANYCH WEJŚCIOWYCH (POPRAWNE DLA LTR)
    const spacingData = {
        '5': {
            usage: '20,0',
            area: '4,0 - 4,5',
            target: 'Strefy brzegowe pod dużymi oknami (Strefa Gęsta)',
            color: 'var(--rk-space-orange)'
        },
        '10': {
            usage: '10,0',
            area: '8,0 - 9,0',
            target: 'Łazienki, domy o wyższym zapotrzebowaniu, pompy ciepła',
            color: 'var(--rk-space-green)'
        },
        '15': {
            usage: '6,7',
            area: '12,0 - 13,5',
            target: 'Standard budowlany WT2021, salony, pokoje',
            color: 'var(--rk-space-blue)'
        },
        '20': {
            usage: '5,0',
            area: '16,0 - 18,0',
            target: 'Pomieszczenia techniczne, korytarze, garaże',
            color: 'var(--rk-space-gray)'
        }
    };

    function updateUI(value) {
        const data = spacingData[value];
        
        // Aktualizacja tekstów i wartości
        statUsage.innerHTML = `${data.usage} <small>m</small>`;
        statArea.innerHTML = `${data.area} <small>m²</small>`;
        statTarget.innerText = data.target;

        // Aktualizacja etykiet tekstowych nad suwakiem
        labels.forEach(l => {
            if(l.getAttribute('data-val') === value.toString()) {
                l.classList.add('active');
                l.style.color = data.color;
            } else {
                l.classList.remove('active');
                l.style.color = 'var(--rk-space-gray)';
            }
        });

        // Dynamiczna zmiana barwy suwaka
        slider.style.setProperty('--rk-space-blue', data.color);
    }

    // Wywołanie przy ruchu suwakiem
    slider.addEventListener('input', (e) => updateUI(e.target.value));
    
    // Wywołanie przy kliknięciu bezpośrednio w etykiety tekstowe
    labels.forEach(label => {
        label.addEventListener('click', function() {
            const val = this.getAttribute('data-val');
            slider.value = val;
            updateUI(val);
        });
    });

    // Inicjalizacja startowa dla domyślnej wartości (15 cm)
    updateUI(slider.value);
});
</script>



<style>
:root {
    --rk-algo-dark: #0f172a;
    --rk-algo-blue: #2563eb;
    --rk-algo-blue-light: #eff6ff;
    --rk-algo-cyan: #06b6d4;
    --rk-algo-green: #10b981;
    --rk-algo-orange: #f59e0b;
    --rk-algo-red: #ef4444;
    --rk-algo-gray: #64748b;
    --rk-algo-border: #e2e8f0;
    --rk-algo-bg: #ffffff;
}

.rk-algo-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-algo-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(37, 99, 235, 0.15);
    border: 1px solid #bfdbfe;
    overflow: hidden;
}

.rk-algo-header {
    background: linear-gradient(135deg, var(--rk-algo-dark) 0%, #1e3a8a 100%);
    padding: 40px 45px;
    color: #ffffff;
    position: relative;
    overflow: hidden;
}

.rk-algo-header::after {
    content: '';
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    background: url('data:image/svg+xml;utf8,<svg width="100" height="100" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><path d="M0 100 C 20 0 50 0 100 100 Z" fill="rgba(255,255,255,0.03)"/></svg>') no-repeat center right / cover;
    pointer-events: none;
}

.rk-algo-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    position: relative;
    z-index: 2;
}

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

.rk-algo-interactive {
    background: #ffffff;
    display: flex;
    flex-direction: column;
}

/* Timeline Nawigacja - Pozioma */
.rk-algo-timeline {
    background: #f8fafc;
    padding: 25px 40px;
    border-bottom: 1px solid var(--rk-algo-border);
    display: flex;
    justify-content: space-between;
    position: relative;
}

/* Linia łącząca kroki */
.rk-algo-timeline::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 40px;
    right: 40px;
    height: 4px;
    background: #e2e8f0;
    transform: translateY(-50%);
    z-index: 1;
}

.rk-algo-step-btn {
    position: relative;
    z-index: 2;
    background: #f8fafc;
    border: none;
    cursor: pointer;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-algo-gray);
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 0 15px;
    text-align: center;
}

/* Numerek nad tekstem */
.rk-algo-step-btn::before {
    content: attr(data-step);
    width: 32px;
    height: 32px;
    background: #ffffff;
    border: 3px solid #e2e8f0;
    color: #94a3b8;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 900;
    transition: all 0.3s;
    box-shadow: 0 0 0 4px #f8fafc; /* Przykrywa linię w tle */
}

.rk-algo-step-btn:hover {
    color: var(--rk-algo-dark);
}

.rk-algo-step-btn:hover::before {
    border-color: #cbd5e1;
    color: var(--rk-algo-dark);
}

.rk-algo-step-btn.active {
    color: var(--rk-algo-blue);
}

.rk-algo-step-btn.active::before {
    background: var(--rk-algo-blue);
    border-color: var(--rk-algo-blue);
    color: #ffffff;
    box-shadow: 0 0 0 4px #f8fafc, 0 0 15px rgba(37, 99, 235, 0.4);
}

/* Panele z Treścią */
.rk-algo-panels {
    padding: 40px 45px;
}

.rk-algo-panel {
    display: none;
    animation: fadeInSlide 0.4s ease-out forwards;
}

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

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

.rk-algo-panel h3 {
    font-size: 22px;
    font-weight: 800;
    color: var(--rk-algo-dark);
    margin: 0 0 20px 0;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--rk-algo-border);
}

.rk-algo-formula-box {
    background: #f1f5f9;
    border-left: 4px solid var(--rk-algo-cyan);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin-bottom: 25px;
    font-family: monospace;
    font-size: 16px;
    color: var(--rk-algo-dark);
}

.rk-algo-formula-box strong {
    color: var(--rk-algo-blue);
}

/* Interaktywny Kalkulator - Slidery */
.rk-calc-widget {
    background: #ffffff;
    border: 1px solid var(--rk-algo-border);
    border-radius: 16px;
    padding: 25px;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
    margin-bottom: 25px;
    display: grid;
    grid-template-columns: 1fr 220px;
    gap: 30px;
}

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

.rk-slider-group:last-child {
    margin-bottom: 0;
}

.rk-slider-header {
    display: flex;
    justify-content: space-between;
    margin-bottom: 8px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-algo-dark);
}

.rk-slider-val {
    color: var(--rk-algo-blue);
}

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

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

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

/* Wizualizacja na żywo */
.rk-live-visual {
    background: #f8fafc;
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 20px;
    border: 1px dashed #cbd5e1;
}

.rk-live-result {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-algo-dark);
    margin-top: 15px;
    text-align: center;
}

.rk-live-result span {
    font-size: 14px;
    color: var(--rk-algo-gray);
    display: block;
    font-weight: 600;
    text-transform: uppercase;
}

/* SVG Animations */
.rk-svg-icon { width: 100%; max-width: 120px; height: auto; }
.anim-pulse { animation: rkPulse 2s infinite alternate; }
.anim-flow { stroke-dasharray: 10; animation: rkFlow 1s linear infinite; }
.anim-float { transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); }

@keyframes rkPulse { 0% { filter: drop-shadow(0 0 2px rgba(239, 68, 68, 0.4)); } 100% { filter: drop-shadow(0 0 10px rgba(239, 68, 68, 0.8)); } }
@keyframes rkFlow { to { stroke-dashoffset: -20; } }

.rk-algo-desc {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-algo-gray);
}

.rk-algo-desc a {
    color: var(--rk-algo-blue);
    text-decoration: none;
    font-weight: 700;
    border-bottom: 1px dotted var(--rk-algo-blue);
}

.rk-warning-box {
    background: #fef2f2;
    border-left: 4px solid var(--rk-algo-red);
    padding: 12px 15px;
    border-radius: 0 8px 8px 0;
    color: #991b1b;
    font-size: 14px;
    font-weight: 600;
    margin-top: 15px;
    display: none;
}

@media (max-width: 800px) {
    .rk-algo-timeline { flex-wrap: wrap; justify-content: flex-start; gap: 15px; padding: 20px; }
    .rk-algo-timeline::before { display: none; }
    .rk-algo-step-btn { flex-direction: row; text-align: left; width: 100%; padding: 10px; background: #ffffff; border: 1px solid var(--rk-algo-border); border-radius: 12px; }
    .rk-algo-step-btn::before { position: relative; box-shadow: none; }
    .rk-algo-step-btn.active::before { box-shadow: none; }
    .rk-calc-widget { grid-template-columns: 1fr; }
    .rk-algo-header, .rk-algo-panels { padding: 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/"
    },
    "headline": "Algorytm obliczeniowy: Jak dobrać ilość rury i przepływy?",
    "description": "Krok po kroku: od obliczeń zapotrzebowania cieplnego (OZC), przez długość rury grzewczej, aż po precyzyjne ustawienie rotametru na rozdzielaczu podłogówki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/#dataset",
    "name": "Zestawienie stałych fizycznych i współczynników OZC dla ogrzewania podłogowego",
    "description": "Zbiór parametrów niezbędnych do ręcznego lub maszynowego wyliczania przepływów hydraulicznych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zapotrzebowanie na strumień ciepła",
      "przepływ masowy czynnika ogrzewania",
      "jak ustawić rotametr podłogówki",
      "długość pętli ogrzewania podłogowego",
      "obliczenia OZC norma PN-EN 12831"
    ],
    "measurementTechnique": "Obliczenia inżynieryjne oparte na normach PN-EN 12831 oraz PN-EN 1264 z uwzględnieniem ciepła właściwego wody i współczynników ugięcia rury.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Współczynnik strat stropowych: 1,05.",
        "Współczynnik naddatku na ugięcia i łuki rury: 1,02.",
        "Ciepło właściwe wody (c_w): 4186 J/(kg·K)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/#webapp",
    "name": "Kalkulator Przepływów i Długości Rury Ogrzewania Podłogowego",
    "description": "Interaktywny widget pozwalający inwestorowi na dynamiczne symulowanie zapotrzebowania na ciepło, gęstości ułożenia rury i wynikowej nastawy rotametru (l/min).",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JS",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-algo-container">
    <div class="rk-algo-header">
        <h2>Algorytm obliczeniowy: Jak dobrać ilość rury i przepływy?</h2>
        <p>W celu przeprowadzenia rzetelnego doboru inżynierskiego, należy zrealizować procedurę obliczeniową. Skorzystaj z poniższego interaktywnego kalkulatora, aby prześledzić ten proces na własnych parametrach.</p>
    </div>

    <div class="rk-algo-interactive">
        <div class="rk-algo-timeline">
            <button class="rk-algo-step-btn active" data-step="1" onclick="rkSwitchStep(1)">Strumień ciepła<br><small>(Q<sub>obl</sub>)</small></button>
            <button class="rk-algo-step-btn" data-step="2" onclick="rkSwitchStep(2)">Długość rury<br><small>(L<sub>r</sub>)</small></button>
            <button class="rk-algo-step-btn" data-step="3" onclick="rkSwitchStep(3)">Przepływ masowy<br><small>(m)</small></button>
            <button class="rk-algo-step-btn" data-step="4" onclick="rkSwitchStep(4)">Nastawa rotametru<br><small>(V<sub>V</sub>)</small></button>
        </div>

        <div class="rk-algo-panels">
            
            <div class="rk-algo-panel active" id="rk-step-1">
                <h3>Krok 1: Zapotrzebowanie na strumień ciepła</h3>
                <div class="rk-algo-formula-box">
                    Q<sub>obl</sub> = Q<sub>pom</sub> &times; 1,05
                </div>
                
                <div class="rk-calc-widget">
                    <div>
                        <div class="rk-slider-group">
                            <div class="rk-slider-header">
                                <span>Straty ciepła pokoju (Q<sub>pom</sub>)</span>
                                <span class="rk-slider-val" id="val-qpom">1200 W</span>
                            </div>
                            <input type="range" id="inp-qpom" class="rk-range" min="300" max="2500" step="50" value="1200" oninput="rkUpdateCalc()">
                        </div>
                        <p class="rk-algo-desc">Obliczamy zapotrzebowanie na moc grzewczą na podstawie <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektu OZC</a> zgodnego z normą PN-EN 12831. Mnożnik <strong>1,05</strong> to inżynierski naddatek na straty ciepła przenikającego przez posadzkę do przestrzeni poniżej.</p>
                    </div>
                    <div class="rk-live-visual">
                        <svg class="rk-svg-icon" viewBox="0 0 100 100">
                            <path d="M 20 60 L 50 30 L 80 60 L 80 90 L 20 90 Z" fill="none" stroke="#64748b" stroke-width="4"/>
                            <path d="M 35 80 Q 40 60 35 45" fill="none" stroke="#ef4444" stroke-width="3" class="anim-pulse"/>
                            <path d="M 50 80 Q 55 60 50 45" fill="none" stroke="#ef4444" stroke-width="3" class="anim-pulse" style="animation-delay: 0.2s;"/>
                            <path d="M 65 80 Q 70 60 65 45" fill="none" stroke="#ef4444" stroke-width="3" class="anim-pulse" style="animation-delay: 0.4s;"/>
                        </svg>
                        <div class="rk-live-result">
                            <span id="res-qobl">1260</span>
                            <span>Wat (Q<sub>obl</sub>)</span>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-algo-panel" id="rk-step-2">
                <h3>Krok 2: Obliczenie wymaganej długości rury</h3>
                <div class="rk-algo-formula-box">
                    L<sub>r</sub> = (A / b) &times; 1,02
                </div>
                
                <div class="rk-calc-widget">
                    <div>
                        <div class="rk-slider-group">
                            <div class="rk-slider-header">
                                <span>Powierzchnia (A)</span>
                                <span class="rk-slider-val" id="val-area">18 m²</span>
                            </div>
                            <input type="range" id="inp-area" class="rk-range" min="5" max="40" step="1" value="18" oninput="rkUpdateCalc()">
                        </div>
                        <div class="rk-slider-group">
                            <div class="rk-slider-header">
                                <span>Rozstaw rur (b)</span>
                                <span class="rk-slider-val" id="val-space">15 cm</span>
                            </div>
                            <input type="range" id="inp-space" class="rk-range" min="5" max="25" step="5" value="15" oninput="rkUpdateCalc()">
                        </div>
                        <p class="rk-algo-desc">Mnożnik <strong>1,02</strong> uwzględnia ugięcia i profilowanie łuków. <br><em>Uwaga:</em> Maksymalna długość pętli dla rury 16&#215;2.0 to 100m. Jeśli wynik przekracza tę wartość, należy zaprojektować dodatkową pętlę.</p>
                        <div id="warn-length" class="rk-warning-box">
                            Wartość przekracza 100 m! Pętla zostanie podzielona na układ wielokrotny.
                        </div>
                    </div>
                    <div class="rk-live-visual">
                        <svg class="rk-svg-icon" viewBox="0 0 100 100">
                            <path id="svg-pipe-coil" d="M 10 10 L 90 10 L 90 90 L 20 90 L 20 20 L 80 20 L 80 80 L 30 80 L 30 30 L 70 30" fill="none" stroke="#2563eb" stroke-width="4" stroke-linecap="round"/>
                        </svg>
                        <div class="rk-live-result">
                            <span id="res-length">122.4</span>
                            <span id="res-loops">m (2 pętle)</span>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-algo-panel" id="rk-step-3">
                <h3>Krok 3: Przepływ masowy czynnika (m)</h3>
                <div class="rk-algo-formula-box">
                    m = Q<sub>pętli</sub> / (c<sub>w</sub> &times; &Delta;T)
                </div>
                
                <div class="rk-calc-widget">
                    <div>
                        <div class="rk-slider-group">
                            <div class="rk-slider-header">
                                <span>Różnica temp. zasilanie/powrót (&Delta;T)</span>
                                <span class="rk-slider-val" id="val-dt">5 K</span>
                            </div>
                            <input type="range" id="inp-dt" class="rk-range" min="3" max="10" step="1" value="5" oninput="rkUpdateCalc()">
                        </div>
                        <p class="rk-algo-desc">Ciepło właściwe wody (<strong>c<sub>w</sub></strong>) wynosi stałe 4186 J/(kg·K). Dla systemów z pompą ciepła standardem jest &Delta;T = 5 K. Zbyt duże &Delta;T świadczy o niewydolności przepływu na pętli.</p>
                    </div>
                    <div class="rk-live-visual">
                        <svg class="rk-svg-icon" viewBox="0 0 100 100">
                            <path d="M 20 50 C 40 20, 60 80, 80 50" fill="none" stroke="#e2e8f0" stroke-width="12" stroke-linecap="round"/>
                            <path d="M 20 50 C 40 20, 60 80, 80 50" fill="none" stroke="#06b6d4" stroke-width="6" stroke-linecap="round" class="anim-flow"/>
                        </svg>
                        <div class="rk-live-result">
                            <span id="res-mass">108.4</span>
                            <span>kg/h</span>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-algo-panel" id="rk-step-4">
                <h3>Krok 4: Przeliczenie na nastawę rotametru</h3>
                <div class="rk-algo-formula-box">
                    V<sub>V</sub> = m / 60
                </div>
                
                <div class="rk-calc-widget">
                    <div>
                        <p class="rk-algo-desc">Ostatni krok to zamiana przepływu masowego na objętościowy w litrach na minutę. Ta wartość jest ostateczną wytyczną dla instalatora, który reguluje układ na belce rozdzielacza za pomocą <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrów</a>.</p>
                        <p class="rk-algo-desc" style="color: var(--rk-algo-dark); font-weight: 700;">Wartość wyliczona dla Twoich parametrów:</p>
                    </div>
                    <div class="rk-live-visual" style="background: #ffffff; border-color: var(--rk-algo-blue);">
                        <svg class="rk-svg-icon" viewBox="0 0 60 120">
                            <rect x="20" y="10" width="20" height="100" fill="#f1f5f9" stroke="#cbd5e1" stroke-width="2" rx="4"/>
                            <line x1="15" y1="20" x2="25" y2="20" stroke="#94a3b8" stroke-width="2"/>
                            <line x1="15" y1="45" x2="25" y2="45" stroke="#94a3b8" stroke-width="2"/>
                            <line x1="15" y1="70" x2="25" y2="70" stroke="#94a3b8" stroke-width="2"/>
                            <line x1="15" y1="95" x2="25" y2="95" stroke="#94a3b8" stroke-width="2"/>
                            <polygon id="svg-float" points="20,80 30,70 40,80 30,90" fill="#ef4444" class="anim-float"/>
                        </svg>
                        <div class="rk-live-result">
                            <span id="res-vol" style="color: var(--rk-algo-blue);">1.8</span>
                            <span>l/min</span>
                        </div>
                    </div>
                </div>
            </div>

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

<script>
function rkSwitchStep(step) {
    // UI Navigation
    document.querySelectorAll('.rk-algo-step-btn').forEach(btn => btn.classList.remove('active'));
    document.querySelector(`.rk-algo-step-btn[data-step="${step}"]`).classList.add('active');
    
    document.querySelectorAll('.rk-algo-panel').forEach(panel => panel.classList.remove('active'));
    document.getElementById(`rk-step-${step}`).classList.add('active');
}

function rkUpdateCalc() {
    // 1. Get Inputs
    const q_pom = parseFloat(document.getElementById('inp-qpom').value);
    const area = parseFloat(document.getElementById('inp-area').value);
    const space_cm = parseFloat(document.getElementById('inp-space').value);
    const dt = parseFloat(document.getElementById('inp-dt').value);

    // Update Input UI Labels
    document.getElementById('val-qpom').innerText = q_pom + ' W';
    document.getElementById('val-area').innerText = area + ' m²';
    document.getElementById('val-space').innerText = space_cm + ' cm';
    document.getElementById('val-dt').innerText = dt + ' K';

    // 2. Step 1: Heat Demand
    const q_obl = q_pom * 1.05;
    document.getElementById('res-qobl').innerText = q_obl.toFixed(0);

    // 3. Step 2: Pipe Length & Loops
    const space_m = space_cm / 100;
    const length_total = (area / space_m) * 1.02;
    
    let loops = 1;
    let warnBox = document.getElementById('warn-length');
    
    if (length_total > 100) {
        loops = Math.ceil(length_total / 100);
        warnBox.style.display = 'block';
    } else {
        warnBox.style.display = 'none';
    }

    document.getElementById('res-length').innerText = length_total.toFixed(1);
    document.getElementById('res-loops').innerText = `m (${loops} ${loops === 1 ? 'pętla' : 'pętle'})`;

    // Dynamic pipe drawing just for visual effect based on spacing
    const coil = document.getElementById('svg-pipe-coil');
    if(space_cm <= 10) {
        coil.setAttribute('d', 'M 10 10 L 90 10 L 90 90 L 10 90 L 10 20 L 80 20 L 80 80 L 20 80 L 20 30 L 70 30 L 70 70 L 30 70 L 30 40 L 60 40');
    } else {
        coil.setAttribute('d', 'M 10 10 L 90 10 L 90 90 L 20 90 L 20 20 L 80 20 L 80 80 L 30 80 L 30 30 L 70 30');
    }

    // 4. Step 3: Mass Flow per loop
    const q_per_loop = q_obl / loops;
    const cw = 4186; // J/(kg*K)
    // Formula: m = Q / (cw * dT). Gives kg/s. Multiply by 3600 for kg/h
    const mass_flow = (q_per_loop / (cw * dt)) * 3600;
    document.getElementById('res-mass').innerText = mass_flow.toFixed(1);

    // 5. Step 4: Volume Flow (Rotameter)
    const vol_flow = mass_flow / 60;
    document.getElementById('res-vol').innerText = vol_flow.toFixed(2);

    // Update Rotameter Float SVG (Y maps roughly from 90 (0 l/min) to 20 (3.5 l/min))
    const max_flow = 3.5;
    let mapped_y = 90 - ((vol_flow / max_flow) * 70);
    if(mapped_y < 20) mapped_y = 20; // clamp max
    if(mapped_y > 90) mapped_y = 90; // clamp min
    
    document.getElementById('svg-float').setAttribute('points', `20,${mapped_y-10} 30,${mapped_y-20} 40,${mapped_y-10} 30,${mapped_y}`);
}

// Init calculation on load
document.addEventListener('DOMContentLoaded', rkUpdateCalc);
</script>



<style>
:root {
    --rk-dsgn-dark: #0f172a;
    --rk-dsgn-blue: #0284c7;
    --rk-dsgn-light: #f8fafc;
    --rk-dsgn-accent: #38bdf8;
    --rk-dsgn-warning: #eab308;
    --rk-dsgn-danger: #ef4444;
    --rk-dsgn-success: #10b981;
    --rk-dsgn-text: #334155;
    --rk-dsgn-border: #e2e8f0;
}

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

/* Header Section */
.rk-dsgn-header {
    background: radial-gradient(circle at top right, #1e293b, var(--rk-dsgn-dark));
    padding: 40px 45px;
    color: #ffffff;
    position: relative;
    border-bottom: 5px solid var(--rk-dsgn-blue);
}

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

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

/* Interactive Dashboard */
.rk-dsgn-dashboard {
    padding: 40px 45px;
    background: var(--rk-dsgn-light);
}

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

.rk-dsgn-switch {
    display: inline-flex;
    background: #e2e8f0;
    padding: 6px;
    border-radius: 16px;
    position: relative;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.05);
}

.rk-dsgn-btn {
    padding: 14px 28px;
    border: none;
    background: transparent;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    transition: all 0.3s ease;
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-dsgn-btn.active { color: #ffffff; }

.rk-dsgn-slider {
    position: absolute;
    top: 6px;
    left: 6px;
    width: calc(50% - 6px);
    height: calc(100% - 12px);
    background: var(--rk-dsgn-blue);
    border-radius: 12px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
    box-shadow: 0 4px 12px rgba(2, 132, 199, 0.3);
}

.rk-dsgn-switch.state-error .rk-dsgn-slider {
    transform: translateX(100%);
    background: var(--rk-dsgn-danger);
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.3);
}

/* Vis & Data Area */
.rk-dsgn-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: stretch;
}

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

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

/* SVG Visualization */
.rk-dsgn-visual {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 180px;
    background: #f1f5f9;
    border-radius: 12px;
    margin-bottom: 20px;
    overflow: hidden;
    position: relative;
}

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

/* SVG Animations */
.anim-pump-rotor { transform-origin: 30px 50px; transition: animation-duration 0.5s; }
.anim-heat-flow { stroke-dasharray: 10 10; animation: flowDash 2s linear infinite; }
.anim-temp-glow { transition: fill 0.5s; }

.state-pro-view .anim-pump-rotor { animation: spinRotor 3s linear infinite; fill: var(--rk-dsgn-blue); }
.state-pro-view .anim-heat-flow { stroke: var(--rk-dsgn-success); animation-duration: 3s; }
.state-pro-view .anim-temp-glow { fill: rgba(16, 185, 129, 0.2); }

.state-error-view .anim-pump-rotor { animation: spinRotor 0.5s linear infinite; fill: var(--rk-dsgn-danger); }
.state-error-view .anim-heat-flow { stroke: var(--rk-dsgn-warning); animation-duration: 0.8s; }
.state-error-view .anim-temp-glow { fill: rgba(239, 68, 68, 0.1); }

@keyframes spinRotor { 100% { transform: rotate(360deg); } }
@keyframes flowDash { to { stroke-dashoffset: -20; } }

/* Parameters List */
.rk-dsgn-params {
    list-style: none;
    padding: 0;
    margin: 0;
    flex-grow: 1;
}

.rk-dsgn-params li {
    display: flex;
    justify-content: space-between;
    padding: 12px 0;
    border-bottom: 1px dashed var(--rk-dsgn-border);
    font-size: 14px;
}

.rk-dsgn-params li:last-child { border-bottom: none; }
.rk-dsgn-params span:first-child { color: var(--rk-dsgn-text); font-weight: 600; }
.rk-dsgn-params span:last-child { font-weight: 800; transition: color 0.3s; }

.val-pro { color: var(--rk-dsgn-success); }
.val-err { color: var(--rk-dsgn-danger); }

/* Text Content */
.rk-dsgn-article {
    padding: 40px 45px;
    background: #ffffff;
}

.rk-dsgn-article h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-dsgn-dark);
    margin: 0 0 20px 0;
}

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

.rk-dsgn-article a {
    color: var(--rk-dsgn-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: border-color 0.2s;
}

.rk-dsgn-article a:hover { border-color: var(--rk-dsgn-blue); }

.rk-highlight-box {
    background: #f0fdfa;
    border-left: 4px solid var(--rk-dsgn-success);
    padding: 15px 20px;
    border-radius: 0 8px 8px 0;
    margin: 20px 0;
    font-weight: 600;
    color: #0f766e;
    font-size: 15px;
}

/* CTA */
.rk-dsgn-cta {
    background: var(--rk-dsgn-dark);
    padding: 45px;
    text-align: center;
    border-top: 4px solid var(--rk-dsgn-warning);
}

.rk-dsgn-cta h3 {
    color: #ffffff;
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
}

.rk-dsgn-cta p {
    color: #94a3b8;
    font-size: 16px;
    margin: 0 auto 30px;
    max-width: 600px;
    line-height: 1.6;
}

.rk-btn-massive {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: linear-gradient(135deg, var(--rk-dsgn-warning) 0%, #ca8a04 100%);
    color: #ffffff;
    padding: 20px 40px;
    border-radius: 16px;
    font-size: 18px;
    font-weight: 900;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    box-shadow: 0 10px 25px -5px rgba(234, 179, 8, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-btn-massive:hover {
    transform: translateY(-5px) scale(1.02);
    box-shadow: 0 20px 35px -5px rgba(234, 179, 8, 0.5);
}

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

/* Mobile adjustments */
@media (max-width: 768px) {
    .rk-dsgn-header, .rk-dsgn-dashboard, .rk-dsgn-article, .rk-dsgn-cta { padding: 30px 20px; }
    .rk-dsgn-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-dsgn-switch { display: flex; width: 100%; flex-direction: column; background: transparent; padding: 0; gap: 10px; box-shadow: none; }
    .rk-dsgn-slider { display: none; }
    .rk-dsgn-btn { width: 100%; justify-content: center; background: #e2e8f0; }
    .rk-dsgn-btn.active[data-mode="pro"] { background: var(--rk-dsgn-blue); }
    .rk-dsgn-btn.active[data-mode="err"] { background: var(--rk-dsgn-danger); }
    .rk-dsgn-header h2 { font-size: 24px; }
    .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/jak-wybor-rury-wplywa-na-projekt-ogrzewania-podlogowego/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jak-wybor-rury-wplywa-na-projekt-ogrzewania-podlogowego/"
    },
    "headline": "Jak wybór rury wpływa na projekt ogrzewania podłogowego?",
    "description": "Zobacz, jak samowolna zmiana parametrów rury (np. Lambda) i rozstawu niszczy bilans cieplny budynku oraz przeciąża pompę obiegową w układzie hydraulicznym.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jak-wybor-rury-wplywa-na-projekt-ogrzewania-podlogowego/#dataset",
    "name": "Zestawienie parametrów hydraulicznych i cieplnych rur podłogowych",
    "description": "Dane z obliczeń inżynierskich obrazujące wpływ zmiany materiału rury na wydajność pompy obiegowej i temperaturę zasilania instalacji.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego OZC",
      "norma PN-EN 1264",
      "dobór pompy obiegowej do podłogówki",
      "opór hydrauliczny pętli grzewczej",
      "przewodność cieplna rury lambda"
    ],
    "measurementTechnique": "Algorytmy przeliczeniowe zgodne z PN-EN 1264, porównujące sumaryczny opór pierścienia krytycznego przy różnych typach rur.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Projekt zgodny z OZC minimalizuje temperaturę zasilania.",
        "Zmiana rury o przewodności λ = 0,43 na słabszą powoduje niedogrzanie.",
        "Niewłaściwy dobór rur zwiększa zużycie energii elektrycznej przez pompę."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jak-wybor-rury-wplywa-na-projekt-ogrzewania-podlogowego/#webapp",
    "name": "Kalkulator Wpływu Średnicy Rury na Pompę Obiegową",
    "description": "Interaktywny symulator wizualizujący obciążenie pompy obiegowej oraz spadek mocy grzewczej w wyniku samowolnej zmiany parametrów instalacyjnych.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JS",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dsgn-container">
    <div class="rk-dsgn-header">
        <h2>Jak wybór rury wpływa na projekt i koszty ogrzewania?</h2>
        <p>Projektowanie instalacji płaszczyznowej to system naczyń połączonych. Zmiana jednego materiału na budowie bez przeliczeń inżynierskich niszczy całą hydraulikę układu.</p>
    </div>

    <div class="rk-dsgn-dashboard state-pro-view" id="dsgnDash">
        <div class="rk-dsgn-controls">
            <div class="rk-dsgn-switch" id="dsgnSwitchBg">
                <div class="rk-dsgn-slider"></div>
                <button class="rk-dsgn-btn active" data-mode="pro">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"/><polyline points="22 4 12 14.01 9 11.01"/></svg>
                    Projekt wg OZC
                </button>
                <button class="rk-dsgn-btn" data-mode="err">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/></svg>
                    Zmiana &#8222;na oko&#8221;
                </button>
            </div>
        </div>

        <div class="rk-dsgn-grid">
            <div class="rk-dsgn-card">
                <h4>
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/></svg>
                    Obciążenie hydrauliczne
                </h4>
                <div class="rk-dsgn-visual">
                    <svg class="rk-dsgn-svg" viewBox="0 0 100 100">
                        <path d="M 50 80 C 80 80, 80 20, 50 20 C 20 20, 20 80, 50 80" fill="none" stroke="#cbd5e1" stroke-width="12" stroke-linecap="round"/>
                        <path d="M 50 80 C 80 80, 80 20, 50 20 C 20 20, 20 80, 50 80" fill="none" stroke-width="6" stroke-linecap="round" class="anim-heat-flow"/>
                        <rect x="25" y="10" width="50" height="80" rx="10" class="anim-temp-glow"/>
                        <circle cx="30" cy="50" r="18" fill="#1e293b"/>
                        <path d="M 30 35 L 40 55 L 20 55 Z" class="anim-pump-rotor"/>
                        <circle cx="30" cy="50" r="4" fill="#ffffff"/>
                    </svg>
                </div>
                <p style="font-size: 14px; color: #64748b; text-align: center; margin: 0;" id="dsgnStatusText">
                    Zbilansowane opory. Pompa pracuje w optymalnym punkcie pracy krzywej charakterystyki.
                </p>
            </div>

            <div class="rk-dsgn-card">
                <h4>
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="18" y1="20" x2="18" y2="10"/><line x1="12" y1="20" x2="12" y2="4"/><line x1="6" y1="20" x2="6" y2="14"/></svg>
                    Odczyty z układu
                </h4>
                <ul class="rk-dsgn-params" id="dsgnParamsList">
                    <li><span>Zakładana Przewodność (λ)</span> <span class="val-pro">0,43 W/(m·K)</span></li>
                    <li><span>Temperatura zasilania</span> <span class="val-pro">32°C (Optymalna)</span></li>
                    <li><span>Opór pierścienia (Δp)</span> <span class="val-pro">15 kPa</span></li>
                    <li><span>Zużycie energii (Pompa)</span> <span class="val-pro">Niskie (~15W)</span></li>
                    <li><span>Efekt w budynku (-20°C)</span> <span class="val-pro">Zapewniony komfort</span></li>
                </ul>
            </div>
        </div>
    </div>

    <div class="rk-dsgn-article">
        <h3>Normy i obliczenia nie wybaczą modyfikacji</h3>
        <p>Każda decyzja materiałowa i geometryczna bezpośrednio modyfikuje obliczenia hydrauliczne w projekcie wykonawczym instalacji sanitarnej. Zmiana średnicy rury lub jej rozstawu bez weryfikacji w programie inżynieryjnym (zgodnym z normą <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">PN-EN 1264</a>) bezpowrotnie skutkuje rozbalansowaniem systemu.</p>
        
        <div class="rk-highlight-box">
            Projektant, bazując na dokładnym <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/">bilansie cieplnym (OZC)</a>, dobiera rozstaw rur w jednym celu – aby wymagana temperatura zasilania była jak najniższa.
        </div>

        <p>Jeśli w projekcie założono rurę o wysokiej przewodności cieplnej (np. wielowarstwową z wkładką aluminiową, gdzie współczynnik <strong>λ = 0,43 W/(m·K)</strong>), zastąpienie jej produktem o gorszych parametrach termicznych bez jednoczesnego zagęszczenia rozstawu spowoduje drastyczne niedogrzanie budynku przy projektowych temperaturach zewnętrznych (np. <strong>-20°C</strong> dla III strefy klimatycznej Polski).</p>

        <p>Dodatkowo, sumaryczny opór hydrauliczny najdłuższego obiegu (tzw. pierścień krytyczny) definiuje ścisłe wymagania wobec <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompy obiegowej</a>. Zwiększenie oporów poprzez niewłaściwy dobór rur (np. zastosowanie mniejszej średnicy na zbyt długiej pętli) wymusza stosowanie droższych pomp o wyższej wysokości podnoszenia i potęguje zużycie energii elektrycznej przez całe urządzenie grzewcze w trakcie sezonu.</p>
    </div>

    <div class="rk-dsgn-cta">
        <h3>Nie ryzykuj straty materiału i późniejszych kosztów ogrzewania</h3>
        <p>Instalacja ułożona &#8222;na wyczucie&#8221; to gwarancja wyższych rachunków za prąd dla pompy ciepła i chłodnych stref w salonie. Zainwestuj ułamek wartości materiałów w rzetelne obliczenia inżynierskie.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-massive">
            ZAMÓW PROFESJONALNY PROJEKT PODŁOGÓWKI
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"/><path d="m12 5 7 7-7 7"/></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('#dsgnSwitchBg .rk-dsgn-btn');
    const switchBg = document.getElementById('dsgnSwitchBg');
    const dash = document.getElementById('dsgnDash');
    const statusText = document.getElementById('dsgnStatusText');
    const paramsList = document.getElementById('dsgnParamsList');

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            const mode = this.getAttribute('data-mode');
            
            // Buttons toggle
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            // Switch UI State
            if (mode === 'pro') {
                switchBg.className = 'rk-dsgn-switch';
                dash.className = 'rk-dsgn-dashboard state-pro-view';
                
                statusText.innerHTML = 'Zbilansowane opory. Pompa pracuje w optymalnym punkcie pracy krzywej charakterystyki.';
                statusText.style.color = '#64748b';

                paramsList.innerHTML = `
                    <li><span>Zakładana Przewodność (λ)</span> <span class="val-pro">0,43 W/(m·K)</span></li>
                    <li><span>Temperatura zasilania</span> <span class="val-pro">32°C (Optymalna)</span></li>
                    <li><span>Opór pierścienia (Δp)</span> <span class="val-pro">15 kPa</span></li>
                    <li><span>Zużycie energii (Pompa)</span> <span class="val-pro">Niskie (~15W)</span></li>
                    <li><span>Efekt w budynku (-20°C)</span> <span class="val-pro">Zapewniony komfort</span></li>
                `;
            } else {
                switchBg.className = 'rk-dsgn-switch state-error';
                dash.className = 'rk-dsgn-dashboard state-error-view';
                
                statusText.innerHTML = 'Krytyczne opory hydrauliczne. Pompa pracuje na maksymalnym biegu, instalacja jest niedogrzana.';
                statusText.style.color = 'var(--rk-dsgn-danger)';

                paramsList.innerHTML = `
                    <li><span>Zmieniona Przewodność (λ)</span> <span class="val-err">0,35 W/(m·K)</span></li>
                    <li><span>Wymagane zasilanie</span> <span class="val-err">> 40°C (Spadek COP)</span></li>
                    <li><span>Opór pierścienia (Δp)</span> <span class="val-err">35 kPa (Przeciążenie)</span></li>
                    <li><span>Zużycie energii (Pompa)</span> <span class="val-err">Wysokie (Maks. bieg)</span></li>
                    <li><span>Efekt w budynku (-20°C)</span> <span class="val-err">Niedogrzanie budynku</span></li>
                `;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-err-dark: #111827;
    --rk-err-red: #ef4444;
    --rk-err-red-glow: rgba(239, 68, 68, 0.2);
    --rk-err-orange: #f97316;
    --rk-err-gray: #4b5563;
    --rk-err-light: #f3f4f6;
    --rk-err-border: #e5e7eb;
    --rk-err-bg: #ffffff;
    --rk-err-blue: #3b82f6;
}

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

.rk-err-header {
    background: var(--rk-err-dark);
    padding: 35px 40px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-err-red);
}

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

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

.rk-err-body {
    display: grid;
    grid-template-columns: 300px 1fr;
    min-height: 450px;
}

/* Sidebar Nawigacja */
.rk-err-nav {
    background: var(--rk-err-light);
    padding: 20px;
    border-right: 1px solid var(--rk-err-border);
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-err-tab {
    background: transparent;
    border: 2px solid transparent;
    padding: 15px;
    border-radius: 12px;
    text-align: left;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-err-gray);
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-err-tab:hover {
    background: #e5e7eb;
}

.rk-err-tab.active {
    background: #ffffff;
    border-color: var(--rk-err-red);
    color: var(--rk-err-dark);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
}

.rk-err-icon-wrap {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: #e5e7eb;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-err-gray);
    transition: all 0.3s;
}

.rk-err-tab.active .rk-err-icon-wrap {
    background: var(--rk-err-red-glow);
    color: var(--rk-err-red);
}

/* Zawartość paneli */
.rk-err-content-wrapper {
    padding: 40px;
    position: relative;
    background: #ffffff;
}

.rk-err-panel {
    display: none;
    animation: fadeIn 0.4s ease-out forwards;
}

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

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

.rk-err-panel h3 {
    font-size: 22px;
    font-weight: 800;
    color: var(--rk-err-dark);
    margin: 0 0 20px 0;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--rk-err-border);
}

/* Treść tekstowa */
.rk-err-desc {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-err-gray);
}

.rk-err-desc p { margin: 0 0 15px 0; }

.rk-err-highlight {
    display: inline-block;
    background: #fef2f2;
    color: var(--rk-err-red);
    padding: 2px 8px;
    border-radius: 4px;
    font-weight: 700;
    font-family: monospace;
    font-size: 14px;
}

.rk-err-fix {
    background: #f0fdf4;
    border-left: 4px solid #22c55e;
    padding: 15px;
    border-radius: 0 8px 8px 0;
    margin-top: 20px;
}

.rk-err-fix h4 { margin: 0 0 5px 0; color: #166534; font-size: 14px; text-transform: uppercase; letter-spacing: 1px; }
.rk-err-fix p { margin: 0; color: #15803d; font-size: 14px; font-weight: 600; }

.rk-err-desc a {
    color: var(--rk-err-blue);
    text-decoration: none;
    font-weight: 700;
    border-bottom: 1px solid transparent;
    transition: border-color 0.3s;
}
.rk-err-desc a:hover { border-color: var(--rk-err-blue); }

/* Responsywność */
@media (max-width: 768px) {
    .rk-err-body { grid-template-columns: 1fr; }
    .rk-err-nav { flex-direction: row; overflow-x: auto; padding: 15px; scroll-snap-type: x mandatory; }
    .rk-err-tab { flex: 0 0 80%; scroll-snap-align: center; justify-content: center; flex-direction: column; text-align: center; padding: 10px; }
    .rk-err-content-wrapper { padding: 25px; }
    .rk-err-header { padding: 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/"
    },
    "headline": "Najczęstsze błędy montażowe przy układaniu rur do podłogówki",
    "description": "Złamanie rury, brak dylatacji brzegowych, sztukowanie w wylewce. Poznaj 5 krytycznych błędów instalacyjnych, które zniszczą Twoje ogrzewanie podłogowe.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#dataset-bledy",
    "name": "Katalog Krytycznych Błędów Instalacyjnych Podłogówki",
    "description": "Techniczne zestawienie najczęstszych odstępstw od norm budowlanych podczas montażu wodnego ogrzewania płaszczyznowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "błędy montażowe ogrzewania podłogowego",
      "pęknięta rura PEX w wylewce",
      "dylatacja norma PN-EN 1264-4",
      "ukryte złączki w jastrychu",
      "minimalny promień gięcia rury 16mm"
    ],
    "measurementTechnique": "Weryfikacja parametrów fizycznych instalacji z wytycznymi norm PN-EN 1264 oraz standardami jakościowymi PORT PC.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Niedopuszczalne załamania struktury rury na łukach.",
        "Brak profili dylatacyjnych na powierzchniach powyżej 40 m2.",
        "Nieszczelności mechaniczne spowodowane łączeniem w betonie.",
        "Brak procedury ciśnieniowej (min. 6 bar) przed zalaniem.",
        "Blokowanie radiacji przez stałą zabudowę."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#webapp-symulator-awarii",
    "name": "Symulator Awarii Instalacyjnych",
    "description": "Interaktywny panel diagnostyczny prezentujący graficznie i tekstowo mechanikę powstawania usterek w jastrychu grzewczym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container">
    <div class="rk-err-header">
        <h2>Najczęstsze błędy przy montażu ogrzewania podłogowego</h2>
        <p>Wybierz moduł z menu, aby zobaczyć mechanikę błędu oraz konsekwencje nieprzestrzegania norm inżynierskich na budowie.</p>
    </div>

    <div class="rk-err-body">
        <div class="rk-err-nav">
            <button class="rk-err-tab active" data-target="err-1">
                <div class="rk-err-icon-wrap"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 12h-4l-3 9L9 3l-3 9H2"/></svg></div>
                Złamanie rury
            </button>
            <button class="rk-err-tab" data-target="err-2">
                <div class="rk-err-icon-wrap"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 22h16A2 2 0 0 0 22 20V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2z"/><path d="M12 2v20"/><path d="M2 12h20"/></svg></div>
                Brak dylatacji
            </button>
            <button class="rk-err-tab" data-target="err-3">
                <div class="rk-err-icon-wrap"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M8 12h8"/><path d="M12 8v8"/><circle cx="12" cy="12" r="10"/></svg></div>
                Sztukowanie w wylewce
            </button>
            <button class="rk-err-tab" data-target="err-4">
                <div class="rk-err-icon-wrap"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/></svg></div>
                Brak próby szczelności
            </button>
            <button class="rk-err-tab" data-target="err-5">
                <div class="rk-err-icon-wrap"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"/><path d="M3 9h18"/><path d="M9 21V9"/></svg></div>
                Rury pod meblami
            </button>
        </div>

        <div class="rk-err-content-wrapper">
            
            <div class="rk-err-panel active" id="err-1">
                <h3>Złamanie rury i zignorowanie uszkodzenia</h3>
                <div class="rk-err-desc">
                    <p>Przekroczenie minimalnego promienia gięcia (<span class="rk-err-highlight">5 x dn</span>, czyli dla standardowej rury 16 mm promień wynosi <strong>80 mm</strong>) powoduje przewężenie przekroju lub trwałe pęknięcie struktury polimeru.</p>
                    <p>Wlanie betonu na takie uszkodzenie skutkuje awarią i wyciekiem w okresie późniejszym pod wpływem wahań ciśnień roboczych. Osłabiona <a href="https://projekt-ogrzewania.pl/wytrzymalosc-rur-do-ogrzewania-podlogowego-kompleksowy-przewodnik/">wytrzymałość rury</a> to tykająca bomba.</p>
                    <div class="rk-err-fix">
                        <h4>Procedura Naprawcza</h4>
                        <p>Złamany odcinek należy bezwzględnie usunąć lub zregenerować (tylko w przypadku PEX-a przy użyciu opalarki termo-kurczliwej).</p>
                    </div>
                </div>
            </div>

            <div class="rk-err-panel" id="err-2">
                <h3>Brak dylatacji strefowych i brzegowych</h3>
                <div class="rk-err-desc">
                    <p>Zgodnie z wymogami normy <span class="rk-err-highlight">PN-EN 1264-4</span>, powierzchnia monolityczna jastrychu z rurami grzewczymi nie może przekraczać <strong>40 m²</strong>, a długość boku nie może być większa niż <strong>8 metrów</strong>.</p>
                    <p>Brak <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">taśmy brzegowej</a> (o grubości minimum 8 mm) oraz profili dylatacyjnych na przejściach przez otwory drzwiowe powoduje niekontrolowane pękanie jastrychu wskutek rozszerzalności termicznej posadzki.</p>
                    <div class="rk-err-fix">
                        <h4>Rozwiązanie</h4>
                        <p>Stosuj dylatacje progowe oraz wklejaj profile PVC w dużych pomieszczeniach, oddzielając niezależne płyty grzewcze.</p>
                    </div>
                </div>
            </div>

            <div class="rk-err-panel" id="err-3">
                <h3>Sztukowanie rur w wylewce</h3>
                <div class="rk-err-desc">
                    <p>Łączenie rur za pomocą złączek skręcanych lub zaprasowywanych bezpośrednio wewnątrz warstwy wylewanej mieszanki to kategoryczny błąd w sztuce budowlanej.</p>
                    <p>Ukryte pod <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewką betonową</a> złącza mechaniczne stanowią główny punkt powstawania nieszczelności i utraty ciśnienia w układzie zamkniętym.</p>
                    <div class="rk-err-fix">
                        <h4>Prawidłowy montaż</h4>
                        <p>Każda pętla musi być jednolitym odcinkiem rury. Jedyne dozwolone łączenia mechaniczne mogą znajdować się nad poziomem posadzki (na belce rozdzielacza).</p>
                    </div>
                </div>
            </div>

            <div class="rk-err-panel" id="err-4">
                <h3>Zaniechanie próby ciśnieniowej przed zalaniem</h3>
                <div class="rk-err-desc">
                    <p>Jastrych musi być wylewany wyłącznie w momencie, gdy instalacja znajduje się pod ciśnieniem probierczym wynoszącym minimum <span class="rk-err-highlight">6 bar</span> (rekomendowane <strong>8 bar</strong> według wytycznych PORT PC).</p>
                    <p>Pominięcie <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próby szczelności</a> uniemożliwia natychmiastowe wykrycie ewentualnego przewiercenia lub uszkodzenia rury np. obcasem buta roboczego czy łopatą przez ekipy wylewkarzy.</p>
                    <div class="rk-err-fix">
                        <h4>Złota zasada</h4>
                        <p>Zawsze pozostawiaj instalację naładowaną ciśnieniem powietrza lub wody (z manometrem na rozdzielaczu) na cały czas trwania prac posadzkarskich.</p>
                    </div>
                </div>
            </div>

            <div class="rk-err-panel" id="err-5">
                <h3>Układanie rur pod stałą zabudową meblową</h3>
                <div class="rk-err-desc">
                    <p>Prowadzenie pętli grzewczych pod szafkami kuchennymi stojącymi bezpośrednio na gruncie, wyspami kuchennymi czy potężnymi szafami wnękowymi bez nóżek to marnowanie energii.</p>
                    <p>Masyw mebla blokuje wymianę ciepła drogą radiacji. Prowadzi to do lokalnego przegrzewania betonu, zmniejszenia <a href="https://projekt-ogrzewania.pl/wodne-ogrzewanie-podlogowe-a-meble-jak-polaczyc-komfort-i-aranzacje/">efektywności grzewczej</a> i nadmiernej straty energii oddawanej do gruntu.</p>
                    <div class="rk-err-fix">
                        <h4>Optymalizacja Projektu</h4>
                        <p>Omijaj pętlami obszary stałej, głuchej zabudowy. Zostawiaj margines buforowy na ewentualne modyfikacje w aranżacji (min. 10 cm od obrysu mebli bez nóżek).</p>
                    </div>
                </div>
            </div>

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

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

    tabs.forEach(tab => {
        tab.addEventListener('click', function() {
            // Remove active class from all tabs & panels
            tabs.forEach(t => t.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

            // Add active class to clicked tab
            this.classList.add('active');

            // Find matching panel and activate it
            const targetId = this.getAttribute('data-target');
            document.getElementById(targetId).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-panel: #1e293b;
    --rk-intro-primary: #0ea5e9; 
    --rk-intro-primary-light: #e0f2fe;
    --rk-intro-accent: #f59e0b; 
    --rk-intro-success: #10b981;
    --rk-intro-bg: #f8fafc;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #334155;
    --rk-intro-text-dim: #64748b;
}

.rk-intro-container, .rk-intro-container * {
    box-sizing: border-box;
}

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

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

.rk-intro-header::after {
    content: ''; position: absolute; right: 0; top: 0; width: 400px; height: 100%;
    background: radial-gradient(circle at right, rgba(14, 165, 233, 0.15) 0%, transparent 70%);
}

.rk-expert-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
    position: relative;
    z-index: 2;
    flex-shrink: 0;
    width: 110px;
}

.rk-expert-avatar {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    border: 3px solid var(--rk-intro-primary);
    box-shadow: 0 0 20px rgba(14, 165, 233, 0.4);
    object-fit: cover;
}

.rk-expert-tag {
    font-size: 11px;
    font-weight: 800;
    color: var(--rk-intro-primary);
    text-transform: uppercase;
    text-align: center;
    line-height: 1.3;
}

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

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

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

.rk-header-content h2 span {
    color: var(--rk-intro-accent);
}

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

/* Sekcja Interaktywna - Zwiastun Artykułu */
.rk-intro-body {
    display: grid;
    grid-template-columns: 340px 1fr;
    background: #ffffff;
    align-items: stretch;
}

/* Lewa kolumna nawigacyjna */
.rk-rules-list {
    padding: 30px;
    border-right: 1px solid var(--rk-intro-border);
    display: flex;
    flex-direction: column;
    justify-content: space-between; 
    gap: 15px;
    background: #f8fafc;
}

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

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

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

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

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

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

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

/* Panel Detali (Prawy) */
.rk-rule-details {
    padding: 40px;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.rk-result-box.highlight { border-color: var(--rk-intro-primary); background: rgba(14, 165, 233, 0.1); }

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

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

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

.rk-author-info {
    flex-grow: 1;
}

.rk-author-info h4 {
    margin: 0 0 6px 0;
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-intro-dark);
}

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

.rk-author-links {
    display: flex;
    gap: 15px;
    margin-top: 12px;
}

.rk-author-links a {
    color: var(--rk-intro-accent);
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    transition: color 0.2s;
}

.rk-author-links a:hover {
    color: #b45309;
    text-decoration: underline;
}

/* Animacje SVG */
.anim-pipe-flow { stroke-dasharray: 20; animation: flowMove 1s linear infinite; }
@keyframes flowMove { to { stroke-dashoffset: -40; } }

.anim-heat-radiate { animation: heatRise 2s infinite alternate ease-in-out; }
@keyframes heatRise { 0% { transform: translateY(0); opacity: 0.5; } 100% { transform: translateY(-15px); opacity: 1; } }

.anim-press-pulse { animation: pressPulse 1.5s infinite alternate; }
@keyframes pressPulse { 0% { fill: #3b82f6; r: 15; } 100% { fill: #ef4444; r: 25; } }

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/#article-intro",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/"
    },
    "headline": "Rury do ogrzewania podłogowego – klucz do sprawności instalacji",
    "description": "Wybór odpowiedniego materiału, średnicy oraz gęstości ułożenia rur determinuje sprawność hydrauliczną i koszty eksploatacji ogrzewania podłogowego.",
    "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.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/#dataset-intro",
    "name": "Fundamenty inżynierskie instalacji płaszczyznowych",
    "description": "Baza wiedzy definiująca wpływ parametrów emisyjnych (materiał, przekrój, geometria) na wydajność cieplną wylewki.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "rury do ogrzewania podłogowego",
      "jastrych betonowy a podłogówka",
      "opór cieplny przegrody",
      "sprawność hydrauliczna instalacji",
      "europejskie normy budowlane podłogówka"
    ],
    "measurementTechnique": "Określanie zależności między średnicą rury i jej materiałem a wymaganą charakterystyką pompy obiegowej i temperaturą zasilania.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wybór materiału determinuje trwałość i bezpieczeństwo antydyfuzyjne.",
        "Średnica przewodu definiuje opory hydrauliczne pętli grzewczej.",
        "Gęstość ułożenia wpływa na równomierny rozkład temperatury posadzki."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/#webapp-intro",
    "name": "Kalkulator Szacunkowy: Zład i Rury",
    "description": "Zintegrowany estymator materiałowy, ułatwiający inwestorowi natychmiastowe przeliczenie metrażu na zapotrzebowanie na rury i pojemność wodną.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5 Forms",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="rk-intro-app">
    
    <div class="rk-intro-header">
        <div class="rk-expert-col">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="rk-expert-avatar" loading="lazy">
            <span class="rk-expert-tag">Robert Kucharski<br>CEO portalu</span>
        </div>
        <div class="rk-header-content">
            <div class="rk-hook-badge">
                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Zanim wylejesz beton
            </div>
            <h2>Błąd przy doborze rury to awaria, którą <span>zabetonujesz na dekady.</span></h2>
            <p>Wodne ogrzewanie podłogowe to niskotemperaturowy system płaszczyznowy, w którym rury stanowią kluczowy element emisyjny, odpowiadający za dystrybucję energii termicznej w jastrychu betonowym lub anhydrytowym. Wybór odpowiedniego materiału, średnicy oraz gęstości ułożenia przewodów determinuje opór cieplny przegrody, sprawność hydrauliczną instalacji oraz końcowe koszty eksploatacji budynku.</p>
        </div>
    </div>

    <div class="rk-intro-body">
        
        <div class="rk-rules-list">
            <button class="rk-rule-btn active" data-panel="intro-1">
                <div class="rk-rule-icon"><svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><path d="M12 8v4l3 3"></path></svg></div>
                <div class="rk-rule-text">
                    <h3>Technologia Polimerów</h3>
                    <p>Który materiał (PEX/PERT) wybrać?</p>
                </div>
            </button>

            <button class="rk-rule-btn" data-panel="intro-2">
                <div class="rk-rule-icon"><svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><circle cx="12" cy="12" r="4"></circle><line x1="21.17" y1="8" x2="12" y2="8"></line><line x1="3.95" y1="6.06" x2="8.54" y2="14"></line><line x1="10.88" y1="21.94" x2="15.46" y2="14"></line></svg></div>
                <div class="rk-rule-text">
                    <h3>Hydraulika i Średnice</h3>
                    <p>Jak uniknąć przeciążenia pompy?</p>
                </div>
            </button>

            <button class="rk-rule-btn" data-panel="intro-3">
                <div class="rk-rule-icon"><svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8"></path><polyline points="16 6 12 2 8 6"></polyline><line x1="12" y1="2" x2="12" y2="15"></line></svg></div>
                <div class="rk-rule-text">
                    <h3>Geometria Pętli</h3>
                    <p>Rozkład temperatury na posadzce</p>
                </div>
            </button>
        </div>

        <div class="rk-rule-details">
            
            <div class="rk-detail-panel active" id="intro-1">
                <h4>Trwałość ukryta w plastiku</h4>
                <p>Nawet najlepsze źródło ciepła zawiedzie, jeśli rury ulegną korozji elektrochemicznej. Omawiam różnice strukturalne (metoda nadtlenkowa, silanowa) i tłumaczę dlaczego bariera <strong>EVOH</strong> jest absolutnie niezbędna.</p>
                <div class="rk-detail-svg">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <path d="M 20 20 L 180 20 L 180 80 L 20 80 Z" fill="none" stroke="#64748b" stroke-width="4"/>
                        <path d="M 20 50 L 180 50" fill="none" stroke="#10b981" stroke-width="8"/>
                        <text x="100" y="44" fill="#10b981" font-size="10" text-anchor="middle" font-weight="bold">BLOKADA TLENU (EVOH)</text>
                        <circle cx="150" cy="70" r="4" fill="#0ea5e9"/>
                        <circle cx="160" cy="30" r="4" fill="#0ea5e9"/>
                        <circle cx="130" cy="25" r="4" fill="#0ea5e9"/>
                    </svg>
                </div>
            </div>

            <div class="rk-detail-panel" id="intro-2">
                <h4>Matematyka oporów</h4>
                <p>Czy rura 16&#215;2.0 zawsze wystarczy? Dowiesz się, jak pojemność wodna instalacji (tzw. zład) oraz jednostkowe straty ciśnienia wpływają na dobór parametrów pracy pompy obiegowej.</p>
                <div class="rk-detail-svg">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <path class="anim-pipe-flow" d="M 20 50 C 60 20, 140 80, 180 50" fill="none" stroke="#0ea5e9" stroke-width="12" stroke-linecap="round"/>
                        <circle class="anim-press-pulse" cx="100" cy="50" r="15" fill="#3b82f6" opacity="0.8"/>
                        <text x="100" y="90" fill="#ffffff" font-size="11" text-anchor="middle" font-weight="bold">OPÓR HYDRAULICZNY</text>
                    </svg>
                </div>
            </div>

            <div class="rk-detail-panel" id="intro-3">
                <h4>Koniec z zimnymi strefami</h4>
                <p>Prawidłowo zaprojektowana pętla grzewcza zapewnia równomierny rozkład temperatury, zgodny z europejskimi normami. Sprawdzimy optymalny rozstaw i limity długości obiegów grzewczych.</p>
                <div class="rk-detail-svg">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <rect x="20" y="80" width="160" height="10" fill="#475569" rx="2"/>
                        <path class="anim-heat-radiate" d="M 40 70 L 40 40 M 80 70 L 80 40 M 120 70 L 120 40 M 160 70 L 160 40" fill="none" stroke="#f59e0b" stroke-width="4" stroke-linecap="round"/>
                        <text x="100" y="25" fill="#fcd34d" font-size="11" text-anchor="middle" font-weight="bold">RÓWNOMIERNA RADIACJA</text>
                    </svg>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-quick-calc">
        <div class="rk-calc-header">
            <h4>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-intro-primary)" stroke-width="2.5"><rect x="4" y="2" width="16" height="20" rx="2" ry="2"></rect><line x1="8" y1="6" x2="16" y2="6"></line><line x1="16" y1="14" x2="16.01" y2="14"></line><line x1="12" y1="14" x2="12.01" y2="14"></line><line x1="8" y1="14" x2="8.01" y2="14"></line><line x1="16" y1="18" x2="16.01" y2="18"></line><line x1="12" y1="18" x2="12.01" y2="18"></line><line x1="8" y1="18" x2="8.01" y2="18"></line></svg>
                Szybki estymator materiałowy
            </h4>
            <span style="font-size:12px; color:#94a3b8;">Dla standardu rury 16&#215;2.0</span>
        </div>

        <div class="rk-calc-grid">
            <div class="rk-calc-input-area">
                <div class="rk-calc-label">
                    Powierzchnia podłogówki:
                    <span id="introAreaOut">120 m²</span>
                </div>
                <input type="range" class="rk-intro-range" id="introAreaSlider" min="50" max="300" step="10" value="120">
                <p style="font-size: 11px; color:#64748b; margin:0;">*Wartości szacunkowe dla mieszanego rozstawu (średnio 8 mb/m²).</p>
            </div>

            <div class="rk-calc-results">
                <div class="rk-result-box">
                    <span class="rk-res-val" id="introResPipe">960 <span style="font-size:14px;color:#64748b;">m</span></span>
                    <span class="rk-res-lab">Szacunkowa dł. rur</span>
                </div>
                <div class="rk-result-box highlight">
                    <span class="rk-res-val" id="introResWater">108.5 <span style="font-size:14px;color:var(--rk-intro-primary);">L</span></span>
                    <span class="rk-res-lab">Zład wody w pętlach</span>
                </div>
                <div class="rk-result-box">
                    <span class="rk-res-val" id="introResLoops">11 <span style="font-size:14px;color:#64748b;">Szt</span></span>
                    <span class="rk-res-lab">Sugerowana l. pętli</span>
                </div>
            </div>
        </div>
    </div>
    
    <div class="rk-summary-author">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - CEO i Projektant HVAC" class="rk-author-photo-small" loading="lazy">
        <div class="rk-author-info">
            <h4>Robert Kucharski</h4>
            <p>Specjalista HVAC, CEO i twórca portalu Projekt-Ogrzewania.pl. Projektowanie instalacji podłogowych opieram na twardych obliczeniach matematycznych OZC i normie PN-EN 1264, zwalczając wykonawstwo &#8222;na oko&#8221;. Posiadam ponad 1000 zrealizowanych projektów w Polsce.</p>
            <div class="rk-author-links">
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"></path></svg>
                    LinkedIn
                </a>
                <a href="https://www.facebook.com/robert.kucharski.budowa.bez.sciemy" target="_blank" rel="noopener noreferrer">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.469h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.469h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"></path></svg>
                    Facebook
                </a>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-rule-btn');
    const panels = document.querySelectorAll('.rk-detail-panel');

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

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

    const slider = document.getElementById('introAreaSlider');
    const areaOut = document.getElementById('introAreaOut');
    const resPipe = document.getElementById('introResPipe');
    const resWater = document.getElementById('introResWater');
    const resLoops = document.getElementById('introResLoops');

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

        const pipeLen = area * 8;
        const waterVol = pipeLen * 0.113;
        const loops = Math.ceil(pipeLen / 85);

        resPipe.innerHTML = pipeLen + ' <span style="font-size:14px;color:#64748b;">m</span>';
        resWater.innerHTML = waterVol.toFixed(1) + ' <span style="font-size:14px;color:var(--rk-intro-primary);">L</span>';
        resLoops.innerHTML = loops + ' <span style="font-size:14px;color:#64748b;">Szt</span>';
    }

    if(slider) {
        slider.addEventListener('input', updateEstimator);
        updateEstimator(); 
    }
});
</script>



<style>
:root {
    --rk-audit-dark: #0f172a;
    --rk-audit-blue: #0284c7;
    --rk-audit-blue-light: #e0f2fe;
    --rk-audit-red: #ef4444;
    --rk-audit-red-light: #fee2e2;
    --rk-audit-green: #10b981;
    --rk-audit-green-light: #d1fae5;
    --rk-audit-gray: #64748b;
    --rk-audit-bg: #ffffff;
    --rk-audit-border: #cbd5e1;
}

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

/* Nagłówek */
.rk-audit-header {
    background: var(--rk-audit-dark);
    padding: 40px 45px 30px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-audit-blue);
}

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

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

/* Parametry Bazowe (Kafelki u góry) */
.rk-audit-base-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 15px;
    padding: 25px 45px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-audit-border);
}

.rk-audit-stat-card {
    background: #ffffff;
    padding: 15px 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-audit-border);
    display: flex;
    align-items: center;
    gap: 15px;
}

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

.rk-audit-stat-info span {
    display: block;
}

.rk-audit-stat-info .stat-label {
    font-size: 12px;
    color: var(--rk-audit-gray);
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 4px;
}

.rk-audit-stat-info .stat-value {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-audit-dark);
}

/* Nawigacja Zakładek (Pozioma) */
.rk-audit-tabs {
    display: flex;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-audit-border);
    padding: 0 25px;
}

.rk-audit-tab-btn {
    flex: 1;
    padding: 20px 10px;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-audit-gray);
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

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

.rk-audit-tab-btn.active {
    color: var(--rk-audit-blue);
    border-bottom-color: var(--rk-audit-blue);
}

.rk-audit-tab-btn.tab-bad.active { color: var(--rk-audit-red); border-bottom-color: var(--rk-audit-red); }
.rk-audit-tab-btn.tab-good.active { color: var(--rk-audit-green); border-bottom-color: var(--rk-audit-green); }

/* Zawartość Paneli */
.rk-audit-panels {
    padding: 35px 45px;
    background: #ffffff;
}

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

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

.rk-audit-content-grid {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 35px;
    align-items: start;
}

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

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

.rk-audit-text ul {
    list-style: none;
    padding: 0;
    margin: 20px 0;
}

.rk-audit-text li {
    padding: 10px 15px;
    margin-bottom: 10px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 10px;
}

.list-bad li { background: var(--rk-audit-red-light); color: #991b1b; }
.list-bad li::before { content: "⚠️"; }

.list-good li { background: var(--rk-audit-green-light); color: #065f46; }
.list-good li::before { content: "✓"; }

.rk-audit-text a {
    color: var(--rk-audit-blue);
    text-decoration: none;
    font-weight: 700;
    border-bottom: 1px dotted var(--rk-audit-blue);
}

/* Sekcja SVG (Statyczna) */
.rk-audit-visual {
    background: #f8fafc;
    border: 1px solid var(--rk-audit-border);
    border-radius: 16px;
    padding: 20px;
    height: 250px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

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

.rk-audit-visual-caption {
    margin-top: 15px;
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-audit-gray);
    text-align: center;
    text-transform: uppercase;
}

/* Mobile */
@media (max-width: 768px) {
    .rk-audit-header, .rk-audit-base-stats, .rk-audit-panels { padding: 25px 20px; }
    .rk-audit-content-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-audit-tabs { flex-direction: column; padding: 0; }
    .rk-audit-tab-btn { border-bottom: none; border-left: 4px solid transparent; text-align: left; justify-content: flex-start; padding: 15px 20px; border-top: 1px solid var(--rk-audit-border); }
    .rk-audit-tab-btn.active { border-bottom: none; border-left-color: var(--rk-audit-blue); }
    .rk-audit-tab-btn.tab-bad.active { border-left-color: var(--rk-audit-red); }
    .rk-audit-tab-btn.tab-good.active { border-left-color: var(--rk-audit-green); }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#article-audyt-lublin",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/"
    },
    "headline": "Case Study – Analiza rzeczywistego projektu wykonawczego w Lublinie",
    "description": "Zobacz, jak interwencja inżynierska i optymalizacja pętli ogrzewania podłogowego obniżyła temperaturę zasilania z 47°C do 34°C, generując 1450 PLN oszczędności rocznie.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#dataset-audyt-lublin",
    "name": "Wyniki audytu instalacji ogrzewania podłogowego - Case Study",
    "description": "Zestawienie parametrów technicznych budynku (165 m²) przed i po optymalizacji projektu instalacji płaszczyznowej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projektowe obciążenie cieplne OZC",
      "temperatura zasilania pompy ciepła",
      "zużycie energii elektrycznej pompa ciepła",
      "rozstaw rur w ogrzewaniu podłogowym",
      "rura z barierą antydyfuzyjną EVOH"
    ],
    "measurementTechnique": "Przeliczenie hydrauliki i geometrii instalacji dla zapotrzebowania 6,9 kW przy temperaturze zewnętrznej -20°C.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stan pierwotny: Rozstaw 20 cm, zasilanie 47°C, brak bariery antydyfuzyjnej.",
        "Optymalizacja: Strefy brzegowe 7,5 cm, łazienki 10 cm, rura PEX-a EVOH 16x2.0.",
        "Wynik: Spadek temperatury zasilania do 34°C, oszczędność 22% energii (1450 PLN/rok)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#webapp-audyt",
    "name": "Interaktywny Raport z Audytu Ogrzewania",
    "description": "Moduł prezentujący porównanie planów instalacyjnych w formie interaktywnych zakładek z wizualizacjami wektorowymi zmian inżynieryjnych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JS",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-audit-container">
    <div class="rk-audit-header">
        <h2>Case Study – Analiza rzeczywistego projektu wykonawczego</h2>
        <p>We wrześniu 2024 roku zrealizowałem audyt i korektę układu dla Inwestora budującego dom w okolicach Lublina. Zobacz, jak wyeliminowanie podejścia &#8222;na oko&#8221; uratowało portfel i komfort użytkowników.</p>
    </div>

    <div class="rk-audit-base-stats">
        <div class="rk-audit-stat-card">
            <div class="rk-audit-stat-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><polyline points="9 22 9 12 15 12 15 22"/></svg>
            </div>
            <div class="rk-audit-stat-info">
                <span class="stat-label">Metraż &#038; Izolacja</span>
                <span class="stat-value">165 m² | EPS 20 cm</span>
            </div>
        </div>
        <div class="rk-audit-stat-card">
            <div class="rk-audit-stat-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"/></svg>
            </div>
            <div class="rk-audit-stat-info">
                <span class="stat-label">Zapotrzebowanie (-20°C)</span>
                <span class="stat-value">6,9 kW</span>
            </div>
        </div>
        <div class="rk-audit-stat-card">
            <div class="rk-audit-stat-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><path d="M12 8v4l3 3"/></svg>
            </div>
            <div class="rk-audit-stat-info">
                <span class="stat-label">Obciążenie cieplne</span>
                <span class="stat-value">42 W/m²</span>
            </div>
        </div>
    </div>

    <div class="rk-audit-tabs">
        <button class="rk-audit-tab-btn tab-bad active" data-tab="tab-1">
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><line x1="15" y1="9" x2="9" y2="15"/><line x1="9" y1="9" x2="15" y2="15"/></svg>
            1. Plan Pierwotny
        </button>
        <button class="rk-audit-tab-btn" data-tab="tab-2">
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 20h9"/><path d="M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"/></svg>
            2. Interwencja Inżyniera
        </button>
        <button class="rk-audit-tab-btn tab-good" data-tab="tab-3">
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="12" y1="1" x2="12" y2="23"/><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/></svg>
            3. Wyniki &#038; Oszczędności
        </button>
    </div>

    <div class="rk-audit-panels">
        
        <div class="rk-audit-panel active" id="tab-1">
            <div class="rk-audit-content-grid">
                <div class="rk-audit-text">
                    <h3>Ryzykowny układ &#8222;na oko&#8221;</h3>
                    <p>Pierwotny wykonawca zignorował <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne (OZC)</a>. Zaproponował uniwersalne rozwiązanie, które przy temperaturach projektowych dla woj. lubelskiego doprowadziłoby do niedogrzania budynku i degradacji instalacji.</p>
                    <ul class="list-bad">
                        <li>Jednolity rozstaw 20 cm w całym domu (brak uwzględnienia stref).</li>
                        <li>Rura o bliżej nieokreślonych parametrach (brak pewności co do jakości).</li>
                        <li>Brak zabezpieczenia: przewody bez bariery antydyfuzyjnej.</li>
                        <li>Wymagana wysoka temperatura zasilania z kotłowni (ok. 47°C).</li>
                    </ul>
                </div>
                <div class="rk-audit-visual">
                    <svg class="rk-audit-svg" viewBox="0 0 100 100">
                        <rect x="10" y="10" width="80" height="80" fill="#ffffff" stroke="#ef4444" stroke-width="2" stroke-dasharray="4"/>
                        <path d="M 20 20 L 80 20 M 20 40 L 80 40 M 20 60 L 80 60 M 20 80 L 80 80" fill="none" stroke="#fca5a5" stroke-width="4"/>
                        <circle cx="50" cy="50" r="10" fill="#ef4444"/>
                        <text x="50" y="53" font-family="sans-serif" font-weight="bold" font-size="10" fill="#ffffff" text-anchor="middle">47°C</text>
                    </svg>
                    <div class="rk-audit-visual-caption">Rozstaw zbyt rzadki (20cm)</div>
                </div>
            </div>
        </div>

        <div class="rk-audit-panel" id="tab-2">
            <div class="rk-audit-content-grid">
                <div class="rk-audit-text">
                    <h3>Precyzyjna zmiana geometrii</h3>
                    <p>Moja interwencja polegała na kompletnym przeliczeniu hydrauliki. W pierwszej kolejności zastosowaliśmy markową <a href="https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/">rurę z barierą antydyfuzyjną EVOH</a> (PEX-a 16&#215;2,0 mm), chroniąc źródło ciepła.</p>
                    <ul class="list-good">
                        <li><strong>Salon:</strong> Przy oknie przesuwnym (HS 4,5 m) zastosowano <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/">strefę brzegową</a> (szer. 1,2 m) z rozstawem 7,5 cm. Centrum salonu: 15 cm.</li>
                        <li><strong>Łazienki:</strong> Wymagane 24°C wewnątrz wymusiło zagęszczenie pętli do 10 cm.</li>
                        <li><strong>Podział:</strong> Wyznaczono 14 wyważonych pętli grzewczych.</li>
                        <li><strong>Hydraulika:</strong> Żadna pętla nie przekroczyła 88 metrów bieżących.</li>
                    </ul>
                </div>
                <div class="rk-audit-visual">
                    <svg class="rk-audit-svg" viewBox="0 0 100 100">
                        <rect x="10" y="10" width="80" height="80" fill="#ffffff" stroke="#0ea5e9" stroke-width="2"/>
                        <path d="M 15 15 L 85 15 M 15 20 L 85 20 M 15 25 L 85 25" fill="none" stroke="#0ea5e9" stroke-width="2"/>
                        <path d="M 15 40 L 85 40 M 15 60 L 85 60 M 15 80 L 85 80" fill="none" stroke="#10b981" stroke-width="2"/>
                    </svg>
                    <div class="rk-audit-visual-caption">Optymalizacja Strefowa</div>
                </div>
            </div>
        </div>

        <div class="rk-audit-panel" id="tab-3">
            <div class="rk-audit-content-grid">
                <div class="rk-audit-text">
                    <h3>Ekonomia i komfort bosej stopy</h3>
                    <p>Prawidłowe zaprojektowanie rozstawów bezpośrednio wpłynęło na pracę źródła ciepła. <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">Pompa ciepła</a> nie musi już pracować na wysokich parametrach, aby przepchnąć ciepło przez gruby jastrych.</p>
                    <ul class="list-good">
                        <li>Spadek obliczeniowej temperatury zasilania z <strong>47°C do 34°C</strong>.</li>
                        <li>Znaczny wzrost sprawności urządzenia (zwiększony COP).</li>
                        <li>Zmniejszenie zużycia energii elektrycznej przez sprężarkę pompy o <strong>22% w skali roku</strong>.</li>
                        <li><strong>Zysk dla inwestora:</strong> Oszczędność rzędu <strong>1450 PLN rocznie</strong> przy zachowaniu braku stref niedogrzanych.</li>
                    </ul>
                </div>
                <div class="rk-audit-visual">
                    <svg class="rk-audit-svg" viewBox="0 0 100 100">
                        <line x1="10" y1="80" x2="90" y2="80" stroke="#94a3b8" stroke-width="2"/>
                        <rect x="25" y="30" width="20" height="50" fill="#fca5a5" rx="2"/>
                        <text x="35" y="25" font-family="sans-serif" font-weight="bold" font-size="9" fill="#ef4444" text-anchor="middle">Koszt</text>
                        <rect x="55" y="50" width="20" height="30" fill="#34d399" rx="2"/>
                        <text x="65" y="45" font-family="sans-serif" font-weight="bold" font-size="9" fill="#10b981" text-anchor="middle">&#8211; 22%</text>
                        <path d="M 45 40 Q 55 35 65 35" fill="none" stroke="#10b981" stroke-width="2" marker-end="url(#arrow)"/>
                        <defs>
                            <marker id="arrow" viewBox="0 0 10 10" refX="5" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse">
                                <path d="M 0 0 L 10 5 L 0 10 z" fill="#10b981"/>
                            </marker>
                        </defs>
                    </svg>
                    <div class="rk-audit-visual-caption">1450 PLN Rocznie w kieszeni</div>
                </div>
            </div>
        </div>

    </div>
</div>

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

    tabs.forEach(tab => {
        tab.addEventListener('click', function() {
            // Czyszczenie aktywnych klas
            tabs.forEach(t => t.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

            // Aktywacja klikniętego taba
            this.classList.add('active');

            // Aktywacja odpowiedniego panelu
            const targetId = this.getAttribute('data-tab');
            document.getElementById(targetId).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-faq-dark: #1e293b;
    --rk-faq-darker: #0f172a;
    --rk-faq-primary: #2563eb;
    --rk-faq-primary-hover: #1d4ed8;
    --rk-faq-accent: #f59e0b;
    --rk-faq-bg: #ffffff;
    --rk-faq-gray: #64748b;
    --rk-faq-light: #f8fafc;
    --rk-faq-border: #e2e8f0;
}

.rk-faq-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-faq-bg);
    border-radius: 20px;
    box-shadow: 0 15px 35px -5px rgba(37, 99, 235, 0.1);
    border: 1px solid var(--rk-faq-border);
    overflow: hidden;
}

.rk-faq-header {
    background: linear-gradient(135deg, var(--rk-faq-darker) 0%, var(--rk-faq-dark) 100%);
    padding: 40px 45px;
    text-align: center;
    position: relative;
}

.rk-faq-header::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--rk-faq-primary), var(--rk-faq-accent));
}

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

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

.rk-faq-body {
    padding: 40px 45px;
    background: var(--rk-faq-light);
}

/* Interaktywny Akordeon */
.rk-accordion {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-acc-item {
    background: #ffffff;
    border: 1px solid var(--rk-faq-border);
    border-radius: 12px;
    overflow: hidden;
    transition: all 0.3s ease;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-acc-item:hover {
    border-color: #bfdbfe;
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.08);
}

.rk-acc-btn {
    width: 100%;
    text-align: left;
    padding: 20px 25px;
    background: transparent;
    border: none;
    display: grid;
    grid-template-columns: 40px 1fr 24px;
    gap: 15px;
    align-items: center;
    cursor: pointer;
    font-size: 17px;
    font-weight: 700;
    color: var(--rk-faq-darker);
    transition: color 0.3s;
}

.rk-acc-btn:focus { outline: none; }
.rk-acc-item.active .rk-acc-btn { color: var(--rk-faq-primary); }

.rk-acc-icon-svg {
    width: 100%;
    height: auto;
    fill: none;
    stroke: var(--rk-faq-gray);
    stroke-width: 1.5;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-acc-item.active .rk-acc-icon-svg {
    stroke: var(--rk-faq-primary);
}

/* Animowane SVG dla poszczególnych pytań */
.rk-acc-item.active .anim-cog { animation: spin 4s linear infinite; }
.rk-acc-item.active .anim-therm { animation: fillTherm 2s ease-in-out infinite alternate; }
.rk-acc-item.active .anim-ruler { animation: slideRuler 2s ease-in-out infinite alternate; }
.rk-acc-item.active .anim-shield { animation: pulseShield 2s infinite; }
.rk-acc-item.active .anim-flow { animation: dashFlow 2s linear infinite; }

@keyframes spin { 100% { transform: rotate(360deg); } }
@keyframes fillTherm { 0% { transform: translateY(0); } 100% { transform: translateY(-5px); } }
@keyframes slideRuler { 0% { transform: translateX(-3px); } 100% { transform: translateX(3px); } }
@keyframes pulseShield { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.1); } }
@keyframes dashFlow { to { stroke-dashoffset: -20; } }

.rk-acc-chevron {
    width: 24px;
    height: 24px;
    stroke: var(--rk-faq-gray);
    transition: transform 0.3s ease;
}

.rk-acc-item.active .rk-acc-chevron {
    transform: rotate(180deg);
    stroke: var(--rk-faq-primary);
}

.rk-acc-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    background: #ffffff;
}

.rk-acc-inner {
    padding: 0 25px 25px 80px;
}

.rk-acc-inner p {
    margin: 0 0 15px 0;
    color: var(--rk-faq-gray);
    font-size: 15px;
    line-height: 1.7;
}

.rk-acc-inner p:last-child { margin: 0; }

.rk-acc-inner a {
    color: var(--rk-faq-primary);
    text-decoration: none;
    font-weight: 600;
    border-bottom: 1px dotted var(--rk-faq-primary);
    transition: color 0.3s;
}

.rk-acc-inner a:hover {
    color: var(--rk-faq-primary-hover);
    border-bottom-style: solid;
}

@media (max-width: 768px) {
    .rk-faq-header, .rk-faq-body { padding: 30px 20px; }
    .rk-faq-header h2 { font-size: 24px; }
    .rk-acc-btn { padding: 15px; grid-template-columns: 32px 1fr 20px; gap: 12px; font-size: 15px; }
    .rk-acc-inner { padding: 0 15px 20px 59px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/"
    },
    "headline": "Eksperckie FAQ – Rozwiązania najczęstszych problemów z rurami do podłogówki",
    "description": "Najważniejsze pytania z długiego ogona dotyczące wyboru, rozstawu i błędów przy montażu rur do ogrzewania podłogowego. Profesjonalne porady Inżyniera 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.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/#dataset-faq",
    "name": "Baza Odpowiedzi Eksperckich FAQ",
    "description": "Baza zapytań inwestorów dotycząca projektowania i optymalizacji układów rur w instalacjach płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jaką rurę do podłogówki wybrać",
      "rozstaw rur 10 cm czy 15 cm",
      "ile metrów rury na m2 ogrzewania",
      "bariera antydyfuzyjna EVOH kocioł gazowy",
      "za długa pętla ogrzewania podłogowego"
    ],
    "measurementTechnique": "Analiza powtarzających się zapytań technicznych i weryfikacja poprawności montażu w oparciu o normy i obliczenia hydrauliczne.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Korelacja wylewki i rury PEX-a",
        "Wpływ rozstawu na COP pompy ciepła",
        "Metodologia szacowania zużycia rury grzewczej",
        "Mechanizm zabezpieczający wymienniki",
        "Skutki przekroczenia dopuszczalnych oporów linii"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/#webapp-faq",
    "name": "Interaktywny Asystent Wiedzy HVAC",
    "description": "Dynamiczny panel Q&A (akordeon) wykorzystujący animowane elementy wektorowe (SVG) do wspomagania nawigacji i zrozumienia procesów termodynamicznych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-container">
    <div class="rk-faq-header">
        <h2>Eksperckie FAQ – Konkretne odpowiedzi dla Inwestora</h2>
        <p>Projektowanie podłogówki to matematyka, nie zgadywanki. Poniżej odpowiadam na najczęstsze, skomplikowane pytania, które decydują o komforcie i kosztach ogrzewania Twojego domu.</p>
    </div>

    <div class="rk-faq-body">
        <div class="rk-accordion" id="rkFaqAccordion">
            
            <div class="rk-acc-item">
                <button class="rk-acc-btn">
                    <svg viewBox="0 0 24 24" class="rk-acc-icon-svg anim-cog"><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"/></svg>
                    Jaką rurę do ogrzewania podłogowego wybrać pod wylewkę anhydrytową, a jaką pod cementową?
                    <svg viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="rk-acc-chevron"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-acc-content">
                    <div class="rk-acc-inner">
                        <p>Dla systemu emisji ciepła materiał wylewki nie dyskwalifikuje konkretnego typu rury. Zarówno <strong>PEX-a</strong>, jak i <strong>PE-RT Typ II</strong> doskonale współpracują z każdym rodzajem jastrychu (spełniają klasy wytrzymałości cieplnej). Różnica tkwi w przewodnictwie cieplnym samej masy.</p>
                        <p>Zoptymalizowanie układu polega na tym, by przy <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewce anhydrytowej</a> (która szybko oddaje ciepło) odpowiednio wyregulować przepływy, by zapobiec tzw. taktowaniu kotła, co jest kluczowym elementem profesjonalnego projektu.</p>
                    </div>
                </div>
            </div>

            <div class="rk-acc-item">
                <button class="rk-acc-btn">
                    <svg viewBox="0 0 24 24" class="rk-acc-icon-svg anim-therm"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"/><path d="M12 7v5"/></svg>
                    Czy rozstaw rur 10 cm w ogrzewaniu podłogowym zawsze jest lepszy niż 15 cm przy pompie ciepła?
                    <svg viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="rk-acc-chevron"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-acc-content">
                    <div class="rk-acc-inner">
                        <p>Nie zawsze. Gęstszy rozstaw (co 10 cm) faktycznie pozwala na znaczne obniżenie temperatury zasilania, co maksymalizuje współczynnik COP pompy ciepła, generując oszczędności rzędu kilkunastu procent na zużyciu energii.</p>
                        <p>Jednak decyzja o tym, czy ułożyć rury <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">co 10 czy 15 cm</a>, musi bazować na stratach ciepła. Ułożenie ich na siłę co 10 cm w dobrze izolowanym domu drastycznie zwiększa opory hydrauliczne pętli, wymuszając montaż większych, prądożernych pomp obiegowych.</p>
                    </div>
                </div>
            </div>

            <div class="rk-acc-item">
                <button class="rk-acc-btn">
                    <svg viewBox="0 0 24 24" class="rk-acc-icon-svg anim-ruler"><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"/><polyline points="3.27 6.96 12 12.01 20.73 6.96"/><line x1="12" y1="22.08" x2="12" y2="12"/></svg>
                    Ile metrów rury PEX 16&#215;2.0 potrzeba na 100 m² podłogówki i jak to policzyć?
                    <svg viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="rk-acc-chevron"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-acc-content">
                    <div class="rk-acc-inner">
                        <p>Szacunkowe zużycie zależy od rozstawu. Dla standardowego rozstawu 15 cm zużywamy około <strong>6,7 mb na 1 m²</strong>. Dla 100 m² będzie to matematycznie 670 metrów, jednak należy dodać ok. 10-15% naddatku na odcinki dobiegowe do rozdzielacza i strefy brzegowe.</p>
                        <p>Najbezpieczniej przygotować się na zakup około 750-800 metrów rury. Aby nie strzelać w ciemno, polecam skorzystać z dokładnego <a href="https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/">kalkulatora ilości metrów rury</a>, który uwzględnia różne strefy grzewcze.</p>
                    </div>
                </div>
            </div>

            <div class="rk-acc-item">
                <button class="rk-acc-btn">
                    <svg viewBox="0 0 24 24" class="rk-acc-icon-svg anim-shield"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg>
                    Dlaczego rura z barierą antydyfuzyjną EVOH jest tak ważna w systemach z kotłem gazowym?
                    <svg viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="rk-acc-chevron"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-acc-content">
                    <div class="rk-acc-inner">
                        <p>Bez tej bariery mikroskopijne cząsteczki tlenu przenikają przez ściankę rury polietylenowej do wody instalacyjnej. Tworzy się wysoce korozyjne środowisko (woda mocno natleniona).</p>
                        <p>Dla nowoczesnych kotłów gazowych, posiadających wrażliwe aluminiowo-krzemowe lub stalowe wymienniki ciepła, oznacza to błyskawiczną korozję i odkładanie szlamu. <a href="https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/">Bariera antydyfuzyjna EVOH</a> (najlepiej ułożona wewnątrz struktury rury) jest absolutnym gwarantem bezpieczeństwa układu kotłowni.</p>
                    </div>
                </div>
            </div>

            <div class="rk-acc-item">
                <button class="rk-acc-btn">
                    <svg viewBox="0 0 24 24" class="rk-acc-icon-svg anim-flow"><path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8"/><polyline points="16 6 12 2 8 6"/><line x1="12" y1="2" x2="12" y2="15" stroke-dasharray="4" class="anim-flow"/></svg>
                    Co zrobić, gdy pętla ogrzewania podłogowego jest za długa i nie grzeje równomiernie?
                    <svg viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="rk-acc-chevron"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-acc-content">
                    <div class="rk-acc-inner">
                        <p>Przekroczenie maksymalnej długości (np. ponad 120 mb dla rury 16&#215;2.0) wywołuje drastyczny opór hydrauliczny, z którym wbudowana pompa nie potrafi sobie poradzić. Koniec pętli staje się strefą tzw. &#8222;radiacji chłodu&#8221;.</p>
                        <p>Po zalaniu posadzki możliwości są mocno ograniczone. Konieczne jest maksymalne wyregulowanie <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrów w rozdzielaczu</a> (dławienie krótkich pętli, aby wymusić przepływ na najdłuższej), a często jedynym wyjściem pozostaje kosztowna modernizacja kotłowni polegająca na montażu sprzęgła i potężniejszej zewnętrznej pompy obiegowej z powodu <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/">zbyt długiej pętli</a>.</p>
                    </div>
                </div>
            </div>

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

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

    accItems.forEach(item => {
        const btn = item.querySelector('.rk-acc-btn');
        const content = item.querySelector('.rk-acc-content');

        btn.addEventListener('click', () => {
            const isActive = item.classList.contains('active');

            // Zamykanie wszystkich innych
            accItems.forEach(otherItem => {
                otherItem.classList.remove('active');
                otherItem.querySelector('.rk-acc-content').style.maxHeight = null;
            });

            // Otwieranie/zamykanie aktualnie klikniętego
            if (!isActive) {
                item.classList.add('active');
                content.style.maxHeight = content.scrollHeight + "px";
            }
        });
    });
});
</script>



<style>
:root {
    --rk-pipe-dark: #0f172a;
    --rk-pipe-blue: #0ea5e9;
    --rk-pipe-light-blue: #e0f2fe;
    --rk-pipe-green: #059669;
    --rk-pipe-green-light: #d1fae5;
    --rk-pipe-red: #dc2626;
    --rk-pipe-red-light: #fee2e2;
    --rk-pipe-orange: #ea580c;
    --rk-pipe-gray: #475569;
    --rk-pipe-border: #cbd5e1;
    --rk-pipe-bg: #ffffff;
}

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

/* Sekcja Nagłówkowa */
.rk-pipe-header {
    padding: 40px 45px 30px;
    background: linear-gradient(145deg, #1e293b 0%, var(--rk-pipe-dark) 100%);
    color: #f8fafc;
    text-align: center;
    position: relative;
    border-bottom: 4px solid var(--rk-pipe-blue);
}

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

.rk-pipe-quote {
    background: rgba(255, 255, 255, 0.05);
    border-left: 4px solid var(--rk-pipe-orange);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    text-align: left;
    margin: 25px auto 0;
    max-width: 750px;
}

.rk-pipe-quote p {
    font-size: 18px;
    font-weight: 600;
    line-height: 1.5;
    margin: 0 0 10px 0;
    color: #e2e8f0;
    font-style: italic;
}

.rk-pipe-quote span {
    font-size: 13px;
    color: var(--rk-pipe-blue);
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 800;
}

/* Symulator Interaktywny */
.rk-pipe-interactive {
    padding: 40px 45px;
    background: #f8fafc;
}

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

/* Przełącznik (Toggle) */
.rk-toggle-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 40px;
}

.rk-toggle-bg {
    display: inline-flex;
    background: #e2e8f0;
    border-radius: 99px;
    padding: 6px;
    position: relative;
}

.rk-toggle-btn {
    padding: 12px 24px;
    border-radius: 99px;
    border: none;
    background: transparent;
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-pipe-gray);
    cursor: pointer;
    transition: all 0.3s ease;
    position: relative;
    z-index: 2;
}

.rk-toggle-btn.active {
    color: #ffffff;
}

.rk-toggle-slider {
    position: absolute;
    top: 6px;
    left: 6px;
    height: calc(100% - 12px);
    width: calc(50% - 6px);
    background: var(--rk-pipe-green);
    border-radius: 99px;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.4s;
    z-index: 1;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

.rk-toggle-bg.state-amateur .rk-toggle-slider {
    transform: translateX(100%);
    background: var(--rk-pipe-red);
}

/* Zawartość dynamiczna */
.rk-dyn-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: center;
    background: #ffffff;
    border: 1px solid var(--rk-pipe-border);
    border-radius: 16px;
    padding: 35px;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
}

.rk-dyn-svg-container {
    display: flex;
    justify-content: center;
    align-items: center;
}

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

/* Animacje SVG */
.anim-water { transition: fill 0.5s; }
.anim-barrier { transition: stroke 0.5s, stroke-width 0.5s; }
.anim-particle { opacity: 0; }

.state-pro-view .anim-water { fill: url(#gradPro); animation: flowPulse 3s infinite; }
.state-pro-view .anim-barrier { stroke: var(--rk-pipe-green); stroke-width: 4px; }
.state-pro-view .anim-particle { display: none; }

.state-amateur-view .anim-water { fill: #78350f; }
.state-amateur-view .anim-barrier { stroke: transparent; }
.state-amateur-view .anim-particle { opacity: 1; fill: #451a03; animation: sludgeMove 4s infinite linear; }

@keyframes flowPulse {
    0%, 100% { filter: drop-shadow(0 0 5px rgba(14, 165, 233, 0.5)); }
    50% { filter: drop-shadow(0 0 15px rgba(14, 165, 233, 0.8)); }
}
@keyframes sludgeMove {
    0% { transform: translateY(0) rotate(0deg); }
    50% { transform: translateY(-5px) rotate(10deg); }
    100% { transform: translateY(0) rotate(0deg); }
}

.rk-dyn-text h4 {
    font-size: 22px;
    font-weight: 800;
    margin: 0 0 15px 0;
    transition: color 0.3s;
}

.state-pro-view .rk-dyn-text h4 { color: var(--rk-pipe-green); }
.state-amateur-view .rk-dyn-text h4 { color: var(--rk-pipe-red); }

.rk-dyn-text p {
    font-size: 15px;
    line-height: 1.6;
    color: var(--rk-pipe-gray);
    margin: 0 0 15px 0;
}

.rk-dyn-text ul {
    list-style: none;
    padding: 0;
    margin: 0 0 20px 0;
}

.rk-dyn-text li {
    font-size: 14px;
    margin-bottom: 8px;
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-weight: 600;
}

.rk-dyn-text li::before {
    content: "✓";
    color: var(--rk-pipe-green);
    font-weight: 900;
}
.state-amateur-view .rk-dyn-text li::before {
    content: "✗";
    color: var(--rk-pipe-red);
}

.rk-dyn-text a {
    color: var(--rk-pipe-blue);
    text-decoration: none;
    border-bottom: 1px solid dashed;
    font-weight: 700;
}

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

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

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

.rk-btn-solid {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: var(--rk-pipe-blue);
    color: #ffffff;
    padding: 18px 35px;
    font-size: 17px;
    font-weight: 800;
    border-radius: 14px;
    text-decoration: none;
    box-shadow: 0 10px 20px -5px rgba(14, 165, 233, 0.4);
    transition: all 0.3s ease;
}

.rk-btn-solid:hover {
    background: #0284c7;
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(14, 165, 233, 0.5);
}

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

/* Mobile */
@media (max-width: 768px) {
    .rk-pipe-header, .rk-pipe-interactive, .rk-pipe-cta { padding: 30px 20px; }
    .rk-pipe-header h2 { font-size: 24px; }
    .rk-dyn-content { grid-template-columns: 1fr; padding: 25px; text-align: center; }
    .rk-dyn-text li { justify-content: center; text-align: left; }
    .rk-toggle-wrapper { flex-direction: column; width: 100%; max-width: 300px; margin: 0 auto 30px; }
    .rk-toggle-bg { width: 100%; display: flex; }
    .rk-toggle-btn { flex: 1; padding: 12px 10px; font-size: 13px; }
    .rk-btn-solid { width: 100%; justify-content: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/"
    },
    "headline": "Podsumowanie – Jakie rury do ogrzewania podłogowego gwarantują bezawaryjność?",
    "description": "Zrozum różnicę między rurami PEX-a z barierą antydyfuzyjną EVOH a rozwiązaniami amatorskimi. Interaktywny symulator doboru rur grzewczych dla inwestoró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.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/#dataset-evoh",
    "name": "Parametry eksploatacyjne rur z barierą antydyfuzyjną EVOH",
    "description": "Zestawienie techniczne wpływu bariery EVOH na żywotność instalacji ogrzewania podłogowego oraz elementów kotłowni.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "rury do ogrzewania podłogowego",
      "bariera antydyfuzyjna EVOH",
      "żywotność ogrzewania podłogowego",
      "parametry instalacji płaszczyznowej",
      "korozja w instalacji CO"
    ],
    "measurementTechnique": "Analiza przenikania tlenu wg normy DIN 4726 i ocena oporów hydraulicznych pętli grzewczych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "PEX-a EVOH: Ogranicza przenikanie tlenu do <0,1 g/(m³·doba), chroniąc pompę i rozdzielacz.",
        "Rura bez bariery: Prowadzi do powstania szlamu magnetytowego (zjawisko korozji tlenowej)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/#webapp-symulator",
    "name": "Symulator Doboru Rur Grzewczych",
    "description": "Interaktywne narzędzie wizualizujące różnice fizyko-chemiczne zachodzące wewnątrz przewodów ogrzewania płaszczyznowego w zależności od zastosowanej technologii materiałowej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-pipe-container" id="rury-sum-app">
    <div class="rk-pipe-header">
        <h2>Podsumowanie – Jakie rury do ogrzewania podłogowego gwarantują bezawaryjność?</h2>
        <div class="rk-pipe-quote">
            <p>"Rura zalana w 10 centymetrach betonu zostaje tam na dziesiątki lat. Próba oszczędności 50 groszy na metrze bieżącym instalacji to najdroższy i najbardziej destrukcyjny błąd, jaki możesz popełnić przy budowie domu."</p>
            <span>Robert Kucharski | Specjalista HVAC</span>
        </div>
    </div>

    <div class="rk-pipe-interactive">
        <h3>Symulator: Wpływ wyboru rury na układ hydrauliczny</h3>
        
        <div class="rk-toggle-wrapper">
            <div class="rk-toggle-bg state-pro" id="pipeToggleBg">
                <div class="rk-toggle-slider" id="pipeToggleSlider"></div>
                <button class="rk-toggle-btn active" data-state="pro">PEX-a + EVOH (Pro)</button>
                <button class="rk-toggle-btn" data-state="amateur">Tania rura "no-name"</button>
            </div>
        </div>

        <div class="rk-dyn-content state-pro-view" id="pipeDynContent">
            <div class="rk-dyn-svg-container">
                <svg class="rk-svg-pipe" viewBox="0 0 100 100">
                    <defs>
                        <linearGradient id="gradPro" x1="0%" y1="0%" x2="100%" y2="100%">
                            <stop offset="0%" style="stop-color:#38bdf8;stop-opacity:1"></stop>
                            <stop offset="100%" style="stop-color:#0284c7;stop-opacity:1"></stop>
                        </linearGradient>
                    </defs>
                    <circle cx="50" cy="50" r="45" fill="#f1f5f9" stroke="#cbd5e1" stroke-width="2"></circle>
                    <circle class="anim-barrier" cx="50" cy="50" r="41" fill="none"></circle>
                    <circle class="anim-water" cx="50" cy="50" r="35"></circle>
                    <circle class="anim-particle" cx="40" cy="40" r="4"></circle>
                    <circle class="anim-particle" cx="60" cy="65" r="5"></circle>
                    <circle class="anim-particle" cx="30" cy="55" r="3"></circle>
                    <circle class="anim-particle" cx="65" cy="35" r="6"></circle>
                    <circle class="anim-particle" cx="50" cy="50" r="4"></circle>
                </svg>
            </div>
            
            <div class="rk-dyn-text" id="pipeDynText">
                <h4>Pełna ochrona antydyfuzyjna</h4>
                <p>Zastosowanie rury z certyfikowaną warstwą EVOH (wg normy DIN 4726) blokuje wnikanie tlenu. Zabezpiecza to drogie elementy mosiężne i stalowe przed korozją.</p>
                <ul>
                    <li>Czysta woda kotłowa bez szlamu.</li>
                    <li>Ochrona wirnika <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompy obiegowej</a>.</li>
                    <li>Stałe opory hydrauliczne pętli przez 50 lat.</li>
                </ul>
                <p>Niezbędne przy <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewkach betonowych</a> (jastrychu), gdzie nie ma możliwości późniejszej naprawy rurociągu.</p>
            </div>
        </div>
    </div>

    <div class="rk-pipe-cta">
        <h3>Zaprojektuj podłogówkę, która przetrwa pokolenia</h3>
        <p>Decyzje materiałowe, rozstawy rur i zład wody to parametry, których nie da się "zgadnąć". Uniknij najczęstszych <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">błędów montażowych</a> i opanuj technologię płaszczyznową jak ekspert.</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-solid">
            OTWÓRZ BAZĘ WIEDZY HVAC
            <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('#pipeToggleBg .rk-toggle-btn');
    const toggleBg = document.getElementById('pipeToggleBg');
    const dynContent = document.getElementById('pipeDynContent');
    const dynText = document.getElementById('pipeDynText');

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            const state = this.getAttribute('data-state');
            
            // Zmiana aktywnych przycisków
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            // Aktualizacja suwaka i klas wizualnych
            if (state === 'pro') {
                toggleBg.className = 'rk-toggle-bg state-pro';
                dynContent.className = 'rk-dyn-content state-pro-view';
                dynText.innerHTML = `
                    <h4>Pełna ochrona antydyfuzyjna</h4>
                    <p>Zastosowanie rury z certyfikowaną warstwą EVOH (wg normy DIN 4726) blokuje wnikanie tlenu. Zabezpiecza to drogie elementy mosiężne i stalowe przed korozją.</p>
                    <ul>
                        <li>Czysta woda kotłowa bez szlamu.</li>
                        <li>Ochrona wirnika <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompy obiegowej</a>.</li>
                        <li>Stałe opory hydrauliczne pętli przez 50 lat.</li>
                    </ul>
                    <p>Niezbędne przy <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewkach betonowych</a> (jastrychu), gdzie nie ma możliwości późniejszej naprawy rurociągu.</p>
                `;
            } else {
                toggleBg.className = 'rk-toggle-bg state-amateur';
                dynContent.className = 'rk-dyn-content state-amateur-view';
                dynText.innerHTML = `
                    <h4>Zagrożenie korozją i awarią</h4>
                    <p>Brak ciągłej warstwy antydyfuzyjnej (lub zniszczenie jej podczas nieuważnego montażu) doprowadza do napowietrzania zładu. Wynik? Kocioł i wymienniki zarastają rdzą.</p>
                    <ul>
                        <li>Zatykanie zaworów w rozdzielaczu.</li>
                        <li>Ryzyko zablokowania przepływów (spadek mocy).</li>
                        <li>Uszkodzenie <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">automatyki strefowej</a> z powodu szlamu.</li>
                    </ul>
                    <p>Awaria w tym trybie zmusza inwestora do chemicznego płukania instalacji, a nierzadko do kucia posadzki i demontażu podłogi.</p>
                `;
            }
        });
    });
});
</script>



<style>
/* TWARDE RESETOWANIE STYLÓW DLA WORDPRESSA */
.rk-dl-container, .rk-dl-container * {
    box-sizing: border-box !important;
}

:root {
    --rk-dl-primary: #0f172a;
    --rk-dl-panel: #1e293b;
    --rk-dl-accent: #0ea5e9;
    --rk-dl-accent-dark: #0284c7;
    --rk-dl-accent-light: #e0f2fe;
    --rk-dl-bg: #f8fafc;
    --rk-dl-border: #e2e8f0;
    --rk-dl-text: #334155;
    --rk-dl-muted: #64748b;
    --rk-dl-white: #ffffff;
    --rk-dl-red: #ef4444;
}

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

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

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

.rk-dl-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(14, 165, 233, 0.2);
    border: 1px solid rgba(14, 165, 233, 0.3);
    color: #7dd3fc;
    padding: 8px 16px;
    border-radius: 99px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
}

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

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

/* WIZUALIZACJA PDF / IKONA */
.rk-dl-header-visual {
    position: relative;
    z-index: 2;
    flex-shrink: 0;
}

.rk-dl-pdf-icon-svg {
    width: 90px;
    height: auto;
    filter: drop-shadow(0 10px 20px rgba(0,0,0,0.4));
    animation: rkFloatIcon 3s infinite ease-in-out alternate;
}

@keyframes rkFloatIcon {
    from { transform: translateY(0) scale(1); }
    to { transform: translateY(-12px) scale(1.02); }
}

/* GŁÓWNY WORKSPACE */
.rk-dl-workspace {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    padding: 45px 50px;
    gap: 50px;
    background: var(--rk-dl-white);
    align-items: center;
}

.rk-dl-preview-box {
    background: var(--rk-dl-bg);
    border: 1px solid var(--rk-dl-border);
    border-radius: 20px;
    padding: 15px;
    position: relative;
    cursor: zoom-in;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.4s;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
}

.rk-dl-preview-box:hover {
    transform: translateY(-5px) scale(1.02);
    box-shadow: 0 20px 40px -10px rgba(14, 165, 233, 0.2);
    border-color: #bae6fd;
}

.rk-dl-preview-img {
    width: 100%;
    height: auto;
    border-radius: 10px;
    display: block;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.rk-dl-zoom-tag {
    position: absolute; 
    bottom: 25px; 
    right: 25px; 
    background: rgba(15, 23, 42, 0.85); 
    backdrop-filter: blur(4px);
    color: white; 
    padding: 8px 14px; 
    border-radius: 99px; 
    font-size: 12px; 
    font-weight: 800;
    display: flex;
    align-items: center;
    gap: 6px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-dl-info-side {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-dl-feature-list {
    list-style: none;
    padding: 0;
    margin: 0 0 35px 0;
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.rk-dl-feature-item {
    display: flex;
    align-items: center;
    gap: 15px;
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-dl-text);
}

.rk-dl-check-wrap {
    width: 28px;
    height: 28px;
    background: var(--rk-dl-accent-light);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-dl-accent-dark);
    flex-shrink: 0;
}

/* PRZYCISK POBIERANIA */
.rk-dl-main-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-dl-accent);
    color: var(--rk-dl-white);
    text-decoration: none !important;
    padding: 20px 35px;
    border-radius: 16px;
    font-weight: 900;
    font-size: 17px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 10px 25px -5px rgba(14, 165, 233, 0.4);
    border: 2px solid transparent;
}

.rk-dl-main-btn:hover {
    background: var(--rk-dl-accent-dark);
    transform: translateY(-4px);
    box-shadow: 0 20px 35px -5px rgba(14, 165, 233, 0.5);
    border-color: #bae6fd;
}

.rk-dl-main-btn svg {
    transition: transform 0.3s;
}

.rk-dl-main-btn:hover svg {
    transform: translateY(3px);
}

/* STOPKA MODUŁU (Autorska) */
.rk-dl-footer {
    padding: 25px 50px;
    background: var(--rk-dl-bg);
    border-top: 1px solid var(--rk-dl-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    text-align: center;
}

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

.rk-dl-footer-upsell a {
    color: var(--rk-dl-accent-dark);
    font-weight: 800;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: border-color 0.3s;
}

.rk-dl-footer-upsell a:hover {
    border-color: var(--rk-dl-accent-dark);
}

.rk-dl-footer-copy {
    font-size: 13px;
    color: var(--rk-dl-muted);
    margin: 0;
    font-weight: 500;
}

@media (max-width: 800px) {
    .rk-dl-header { flex-direction: column; text-align: center; padding: 35px 25px; gap: 20px; }
    .rk-dl-workspace { grid-template-columns: 1fr; padding: 35px 25px; gap: 35px; }
    .rk-dl-preview-box { margin: 0 auto; max-width: 400px; }
    .rk-dl-footer { padding: 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/#infografika-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/"
    },
    "headline": "Parametry i Dobór Rur Grzewczych (Infografika PDF)",
    "description": "Pobierz inżynierskie zestawienie parametrów rur PEX i PE-RT dla ogrzewania podłogowego. Kompletny poradnik instalatora w formacie PDF i WEBP.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Rury-do-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.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-01",
    "dateModified": "2026-06-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/#dataset-infografika",
    "name": "Tabela inżynierska: Właściwości rur ogrzewania płaszczyznowego",
    "description": "Zbiór danych wizualnych określający pojemności wodne, minimalne promienie gięcia i wymogi dotyczące warstwy EVOH w przewodach grzewczych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "rury do ogrzewania podłogowego pdf",
      "parametry rur pex infografika",
      "zład wody w rurze 16 ściągawka",
      "rozstaw rur podłogówki schemat",
      "bariera antydyfuzyjna evoh rysunek"
    ],
    "measurementTechnique": "Przedstawienie wymogów norm PN-EN 1264 i ISO 15875 w formie graficznej tabeli porównawczej materiałów.",
    "mainEntity": {
      "@type": "Thing",
      "name": "Ściągawka Instalatora HVAC"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/#download-app",
    "name": "Centrum Pobierania Wiedzy HVAC",
    "description": "Interaktywny moduł umożliwiający wizualizację i pobranie zaawansowanej technicznie infografiki doboru materiałów instalacyjnych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5"
  }
]
</script>

<div class="rk-dl-container" id="app-pipe-dl">
    
    <div class="rk-dl-header">
        <div class="rk-dl-header-content">
            <div class="rk-dl-badge">
                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" style="margin-right: 6px;"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
                Darmowe Materiały
            </div>
            <h2>Pobierz Kompletne Zestawienie Rur Grzewczych</h2>
            <p>Zabierz inżynierską ściągawkę na budowę. Zład wody, promienie gięcia, optymalne rozstawy i parametry polimerów w jednej czytelnej infografice.</p>
        </div>
        <div class="rk-dl-header-visual">
            <svg class="rk-dl-pdf-icon-svg" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path d="M14 2H6C4.89543 2 4 2.89543 4 4V20C4 21.1046 4.89543 22 6 22H18C19.1046 22 20 21.1046 20 20V8L14 2Z" fill="var(--rk-dl-red)" stroke="#ffffff" stroke-width="1.5" stroke-linejoin="round"/>
                <path d="M14 2V8H20" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
                <text x="6.5" y="17" fill="white" font-size="5.5" font-weight="900" font-family="sans-serif">PDF</text>
            </svg>
        </div>
    </div>

    <div class="rk-dl-workspace">
        
        <div class="rk-dl-preview-box" onclick="window.open('https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Rury-do-ogrzewania-podlogowego.webp', '_blank')" title="Kliknij, aby powiększyć grafię">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Rury-do-ogrzewania-podlogowego.webp" alt="Infografika - Parametry i dobór rur do ogrzewania podłogowego" class="rk-dl-preview-img" loading="lazy">
            <div class="rk-dl-zoom-tag">
                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                Powiększ
            </div>
        </div>

        <div class="rk-dl-info-side">
            <ul class="rk-dl-feature-list">
                <li class="rk-dl-feature-item">
                    <div class="rk-dl-check-wrap">
                        <svg width="16" height="16" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    </div>
                    Tabela: Średnica vs Pojemność wodna (zład)
                </li>
                <li class="rk-dl-feature-item">
                    <div class="rk-dl-check-wrap">
                        <svg width="16" height="16" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    </div>
                    Porównanie polimerów: PEX-a, PEX-b, PE-RT
                </li>
                <li class="rk-dl-feature-item">
                    <div class="rk-dl-check-wrap">
                        <svg width="16" height="16" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    </div>
                    Zalecane rozstawy i limity długości pętli
                </li>
                <li class="rk-dl-feature-item">
                    <div class="rk-dl-check-wrap">
                        <svg width="16" height="16" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    </div>
                    Format A4 zoptymalizowany pod wydruk i mobile
                </li>
            </ul>

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

    </div>

    <div class="rk-dl-footer">
        <p class="rk-dl-footer-upsell">
            Nie chcesz zgadywać, ile rury kupić i jaki rozstaw przyjąć? <br>
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów profesjonalny projekt podłogówki bazujący na bilansie cieplnym OZC.</a>
        </p>
        <p class="rk-dl-footer-copy">
            © 2026 Projekt-Ogrzewania.pl | Autor: <strong>Robert Kucharski</strong>. Udostępnianie materiału PDF dozwolone wyłącznie z zachowaniem logotypu portalu i bez modyfikacji pliku.
        </p>
    </div>
</div>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">Rury do ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Podłogówka cena za m² robocizny.</title>
		<link>https://projekt-ogrzewania.pl/podlogowka-cena-za-m%c2%b2-robocizny/</link>
					<comments>https://projekt-ogrzewania.pl/podlogowka-cena-za-m%c2%b2-robocizny/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 04 Jan 2025 12:41:44 +0000</pubDate>
				<category><![CDATA[Budżet instalacji]]></category>
		<category><![CDATA[Cena robocizny 2025]]></category>
		<category><![CDATA[Czynniki kosztowe]]></category>
		<category><![CDATA[Efektywność cieplna]]></category>
		<category><![CDATA[Koszty ogrzewania podłogowego]]></category>
		<category><![CDATA[Materiały do podłogówki]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Optymalizacja kosztów]]></category>
		<category><![CDATA[Projekty ogrzewania]]></category>
		<category><![CDATA[Rozstaw rur podłogówki]]></category>
		<category><![CDATA[budżet na podłogówkę]]></category>
		<category><![CDATA[cena robocizny podłogówki]]></category>
		<category><![CDATA[efektywność cieplna]]></category>
		<category><![CDATA[instalacja ogrzewania podłogowego]]></category>
		<category><![CDATA[koszty instalacji]]></category>
		<category><![CDATA[materiały podłogówka]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[podłogówka cena]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=1892</guid>

					<description><![CDATA[<p>Podłogówka cena za m² robocizny to jedno z najczęściej zadawanych pytań przez inwestorów. W tym artykule szczegółowo omawiamy koszty instalacji ogrzewania podłogowego, uwzględniając rozstaw rur, lokalizację inwestycji oraz rok 2025 jako punkt odniesienia cenowego. Dowiesz się, jakie czynniki wpływają na koszt, dlaczego warto inwestować w profesjonalny projekt i jak optymalizować wydatki, aby zapewnić komfort cieplny i efektywność energetyczną.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/podlogowka-cena-za-m%c2%b2-robocizny/">Podłogówka cena za m² robocizny.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --primary: #0f172a;
    --accent: #0284c7; 
    --accent-hover: #0369a1;
    --bg-light: #f0f9ff; 
    --border-color: #e2e8f0;
    --card-bg: #ffffff;
    --text-muted: #64748b;
}

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

.premium-hero-box::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 350px;
    height: 350px;
    background: radial-gradient(circle, rgba(2, 132, 199, 0.05) 0%, rgba(255,255,255,0) 70%);
    border-radius: 50%;
    transform: translate(30%, -30%);
    z-index: 0;
}

.hero-content {
    position: relative;
    z-index: 1;
    padding: 40px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
}

.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #e0f2fe;
    color: var(--accent);
    padding: 8px 16px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid #bae6fd;
}

.hero-text {
    font-size: 17px;
    line-height: 1.8;
    color: #334155;
    margin-bottom: 20px;
}

.hero-text strong {
    color: var(--primary);
}

.hero-text a {
    color: var(--accent);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    font-weight: 600;
    transition: color 0.2s ease;
}

.hero-text a:hover {
    color: var(--accent-hover);
}

.hero-content h3 {
    font-size: 20px;
    font-weight: 700;
    color: var(--primary);
    margin-top: 35px;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Interaktywny Wizualizator Zakresu Prac */
.interactive-scope-container {
    background: #ffffff;
    border: 1px solid #bae6fd;
    border-radius: 20px;
    padding: 25px;
    margin-top: 30px;
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.05);
}

.scope-grid {
    display: flex;
    gap: 15px;
    margin-bottom: 25px;
    flex-wrap: wrap;
}

.scope-btn {
    flex: 1;
    min-width: 120px;
    background: var(--bg-light);
    border: 2px solid transparent;
    padding: 15px 10px;
    border-radius: 14px;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: var(--text-muted);
}

.scope-btn svg {
    width: 28px;
    height: 28px;
    stroke: currentColor;
    transition: transform 0.3s ease;
}

.scope-btn span {
    font-size: 13px;
    font-weight: 700;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.scope-btn:hover {
    background: #e0f2fe;
    color: var(--accent);
}

.scope-btn:hover svg {
    transform: scale(1.1);
}

.scope-btn.active {
    background: var(--accent);
    color: #ffffff;
    border-color: var(--accent-hover);
    box-shadow: 0 8px 15px rgba(2, 132, 199, 0.2);
}

.scope-btn.active svg {
    stroke: #ffffff;
    transform: scale(1.1);
}

.scope-content-box {
    background: var(--bg-light);
    border-left: 4px solid var(--accent);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    min-height: 120px;
    display: none;
    animation: fadeIn 0.4s ease forwards;
}

.scope-content-box.active {
    display: block;
}

.scope-content-box h4 {
    margin: 0 0 10px 0;
    font-size: 16px;
    color: var(--primary);
}

.scope-content-box p {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
}

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

@media (max-width: 900px) {
    .hero-content { padding: 35px 25px; }
}

@media (max-width: 600px) {
    .scope-grid { flex-direction: column; }
    .scope-btn { flex-direction: row; justify-content: flex-start; padding: 12px 20px; }
    .scope-btn svg { width: 24px; height: 24px; }
    .scope-content-box { padding: 15px; border-radius: 12px; border-left: none; border-top: 4px solid var(--accent); }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Podłogówka cena za m² robocizny - Zakres prac i koszty 2026",
    "description": "Szczegółowa analiza stawek robocizny za montaż ogrzewania podłogowego w 2026 roku. Sprawdź, od czego zależy ostateczna cena instalacji i co dokładnie obejmuje kompleksowa wycena.",
    "license": "https://projekt-ogrzewania.pl/",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl"
    },
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Zakres prac monterskich w cenie robocizny ogrzewania podłogowego",
    "description": "Zestawienie elementów wchodzących w skład uśrednionych rynkowych kosztów wykonawczych dla wodnego ogrzewania podłogowego (32-45 PLN/m²).",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Przygotowanie i izolacja",
        "value": "Wliczone w stawkę",
        "description": "Rozłożenie izolacji termicznej, przeciwwilgociowej i folii z rastrem."
      },
      {
        "@type": "PropertyValue",
        "name": "Montaż układu rur",
        "value": "Wliczone w stawkę",
        "description": "Układanie i kotwienie pętli grzewczych z uwzględnieniem stref brzegowych."
      },
      {
        "@type": "PropertyValue",
        "name": "Podłączenie rozdzielacza",
        "value": "Wliczone w stawkę",
        "description": "Złożenie i uzbrojenie rozdzielacza oraz podpięcie wszystkich obiegów."
      },
      {
        "@type": "PropertyValue",
        "name": "Próba szczelności",
        "value": "Wliczone w stawkę",
        "description": "Obowiązkowa próba ciśnieniowa wodą lub powietrzem przed wylaniem jastrychu."
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Interaktywny wizualizator zakresu prac instalacyjnych",
    "applicationCategory": "EducationalApplication",
    "description": "Interaktywny panel pozwalający inwestorowi na eksplorację poszczególnych etapów wchodzących w skład rynkowej stawki za robociznę ogrzewania podłogowego.",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript",
    "license": "https://projekt-ogrzewania.pl/",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="premium-hero-box" id="hero-app-container">
    <div class="hero-content">
        
        <div class="hero-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Analiza stawek 2026
        </div>
        
        <p class="hero-text"><strong>Podłogówka cena za m² robocizny</strong> to jeden z kluczowych parametrów, który inwestor musi uwzględnić przy planowaniu instalacji ogrzewania płaszczyznowego. W 2026 roku podłogówka cena za m² robocizny oscyluje najczęściej w przedziale <strong>32–45 zł/m²</strong> i obejmuje kompleksowe prace monterskie – od przygotowania podłoża, przez ułożenie izolacji termicznej i przeciwwilgociowej, aż po montaż rur grzewczych oraz podłączenie i uruchomienie rozdzielacza.</p>
        
        <p class="hero-text">Na ostateczną wartość, jaką osiąga podłogówka cena za m² robocizny, wpływa przede wszystkim stopień skomplikowania instalacji, zastosowana technologia montażu oraz <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstaw rur w pętlach</a>, który bezpośrednio determinuje czas pracy i precyzję wykonania. W praktyce oznacza to, że <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">dobrze zaprojektowany system</a> pozwala nie tylko kontrolować koszty wykonawcze, ale również zapewnia wyższą efektywność energetyczną na lata.</p>

        <h2>Analiza stawek robocizny za ogrzewanie podłogowe</h2>

        <div class="interactive-scope-container">
            <div class="scope-grid">
                <button class="scope-btn active" data-target="step-izolacja">
                    <svg viewBox="0 0 24 24" fill="none" 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>
                    <span>Izolacja</span>
                </button>
                <button class="scope-btn" data-target="step-rury">
                    <svg viewBox="0 0 24 24" fill="none" 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>
                    <span>Układanie Rur</span>
                </button>
                <button class="scope-btn" data-target="step-rozdzielacz">
                    <svg viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><line x1="9" y1="9" x2="9" y2="15"></line><line x1="15" y1="9" x2="15" y2="15"></line></svg>
                    <span>Rozdzielacz</span>
                </button>
                <button class="scope-btn" data-target="step-proba">
                    <svg viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 8v4l3 3"></path></svg>
                    <span>Próba Ciśnieniowa</span>
                </button>
            </div>

            <div id="step-izolacja" class="scope-content-box active">
                <h4>1. Przygotowanie podłoża i izolacja</h4>
                <p>Ułożenie płyt styropianowych (EPS) oraz folii przeciwwilgociowej z rastrem. W profesjonalnej wycenie wliczone jest również wykonanie dylatacji brzegowych (taśma przyścienna), co jest kluczowe dla ochrony <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">jastrychu podłogowego</a> przed pękaniem podczas pracy cieplnej wylewki.</p>
            </div>
            <div id="step-rury" class="scope-content-box">
                <h4>2. Precyzyjny montaż rur grzewczych</h4>
                <p>Rozwinięcie i zakotwienie rur PEX/PERT za pomocą spinek (tacker) z zachowaniem projektowanego układu (np. ślimakowy). Stawka uwzględnia odpowiednie zagęszczenie rur w tzw. <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/">strefach brzegowych</a>, np. przy oknach tarasowych i drzwiach wyjściowych.</p>
            </div>
            <div id="step-rozdzielacz" class="scope-content-box">
                <h4>3. Podłączenie do rozdzielacza</h4>
                <p>Wpięcie wszystkich obiegów (pętli) do szafki rozdzielaczowej. W tym etapie instalator wykonuje również wstępną regulację hydrauliczną (ustawienie przepływów na rotametrach), aby zapewnić równomierne oddawanie ciepła w każdym z pomieszczeń.</p>
            </div>
            <div id="step-proba" class="scope-content-box">
                <h4>4. Obowiązkowa próba szczelności</h4>
                <p>To krytyczny punkt, którego nie wolno pominąć! Przed zalaniem rur betonem wykonawca przeprowadza nabicie instalacji ciśnieniem powietrza lub wody i sporządza protokół szczelności zgodnie z normą PN-EN 1264. To Twoja gwarancja bezpieczeństwa przed wylaniem posadzki.</p>
            </div>
        </div>

    </div>

    <noscript>
        <div style="padding: 25px 50px; background: #f8fafc; border-top: 1px solid #e2e8f0;">
            <div style="font-size: 16px; color: #0f172a; margin-bottom: 15px; font-weight: bold;">Podsumowanie prac objętych stawką 32-45 zł/m²:</div>
            <ul style="color: #475569; line-height: 1.8; margin: 0; padding-left: 20px;">
                <li>Przygotowanie izolacji termicznej i dylatacji przyściennych.</li>
                <li>Montaż rur grzewczych zgodnie z obliczeniami zapotrzebowania cieplnego.</li>
                <li>Osadzenie i podłączenie rozdzielacza wraz ze wstępną regulacją.</li>
                <li>Udokumentowana próba ciśnieniowa (szczelności).</li>
            </ul>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- OBSŁUGA INTERAKTYWNEGO WIZUALIZATORA ---
    const buttons = document.querySelectorAll('.scope-btn');
    const contentBoxes = document.querySelectorAll('.scope-content-box');

    buttons.forEach(button => {
        button.addEventListener('click', () => {
            // Usuń aktywną klasę ze wszystkich przycisków i okien treści
            buttons.forEach(btn => btn.classList.remove('active'));
            contentBoxes.forEach(box => box.classList.remove('active'));

            // Dodaj aktywną klasę do klikniętego przycisku
            button.classList.add('active');

            // Pokaż odpowiednią treść
            const targetId = button.getAttribute('data-target');
            document.getElementById(targetId).classList.add('active');
        });
    });

    // --- ZABEZPIECZENIE DOMENOWE ---
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('hero-app-container');
        if (container) {
            container.innerHTML = `
                <div style="padding: 60px 20px; text-align: center; background: #e0f2fe; color: #0284c7; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 300px; font-family: sans-serif;">
                    <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                    <div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona prawem autorskim</div>
                    <p style="font-size: 16px; max-width: 500px; color: #0369a1; line-height: 1.5;">
                        Ten interaktywny moduł edukacyjny jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został wdrożony bez licencji.
                    </p>
                    <a href="https://projekt-ogrzewania.pl/" style="margin-top: 25px; padding: 14px 28px; background: #0284c7; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #ea580c; 
    --accent-hover: #c2410c;
    --bg-light: #fff7ed; 
    --border-color: #fdba74;
    --card-bg: #ffffff;
    --text-muted: #64748b;
}

.complexity-box {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--card-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(234, 88, 12, 0.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.complexity-header {
    padding: 40px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
    border-bottom: 1px solid var(--border-color);
}

.complexity-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.complexity-header p {
    font-size: 16px;
    line-height: 1.7;
    color: #475569;
    margin: 0;
}

/* Interaktywny Grid Wyzwań */
.complexity-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    padding: 30px 50px;
    background: #ffffff;
}

.complexity-card {
    border: 2px solid #f1f5f9;
    border-radius: 16px;
    padding: 25px;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    background: #ffffff;
}

.complexity-card:hover {
    border-color: #fdba74;
    transform: translateY(-3px);
    box-shadow: 0 10px 20px -5px rgba(234, 88, 12, 0.05);
}

.complexity-card.active {
    border-color: var(--accent);
    background: var(--bg-light);
}

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

.card-icon {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: #f1f5f9;
    color: var(--accent);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: 0.3s;
}

.complexity-card.active .card-icon {
    background: var(--accent);
    color: #ffffff;
}

.complexity-card h3 {
    font-size: 16px;
    font-weight: 800;
    margin: 0;
    color: var(--primary);
}

.complexity-details {
    max-height: 0;
    overflow: hidden;
    transition: all 0.4s ease;
    opacity: 0;
}

.complexity-card.active .complexity-details {
    max-height: 250px;
    margin-top: 15px;
    opacity: 1;
}

.complexity-details p {
    font-size: 14px;
    line-height: 1.6;
    color: #475569;
    margin-bottom: 12px;
}

.complexity-details a {
    color: var(--accent);
    font-weight: 700;
    text-decoration: underline;
}

.cost-impact-tag {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    background: #fee2e2;
    color: #dc2626;
}

.complexity-card.active .cost-impact-tag {
    background: #dc2626;
    color: #ffffff;
}

@media (max-width: 768px) {
    .complexity-grid { grid-template-columns: 1fr; padding: 25px; }
    .complexity-header { padding: 30px 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Dlaczego stopień skomplikowania projektu podnosi stawkę za m² robocizny?",
    "description": "Analiza techniczna wpływu trudnych brył budynków, automatyki i zbalansowania hydraulicznego na cenę robocizny podłogówki w 2026 roku.",
    "license": "https://projekt-ogrzewania.pl/",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": { "@type": "Organization", "name": "Projekt-Ogrzewania.pl" }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Wskaźniki wzrostu kosztów robocizny podłogówki",
    "description": "Zestawienie procentowych i kwotowych narzutów na robociznę wynikających ze stopnia skomplikowania instalacji HVAC.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Wzrost ceny: nieregularne kształty",
        "value": "+15-25%"
      },
      {
        "@type": "PropertyValue",
        "name": "Koszt montażu automatyki (na strefę)",
        "value": "150-250 PLN"
      },
      {
        "@type": "PropertyValue",
        "name": "Czas balansowania hydraulicznego",
        "value": "3-5 h"
      }
    ],
    "creator": { "@type": "Person", "name": "Robert Kucharski" }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Analizator Trudności Montażowych HVAC",
    "applicationCategory": "EducationalApplication",
    "license": "https://projekt-ogrzewania.pl/",
    "operatingSystem": "All",
    "description": "Interaktywny panel edukacyjny wyjaśniający dylematy inżynierskie i wzrost pracochłonności przy niestandardowych projektach ogrzewania płaszczyznowego."
  }
]
</script>

<div class="complexity-box" id="complexity-app-container">
    
    <div class="complexity-header">
        <h2>Dlaczego stopień skomplikowania projektu podnosi stawkę za m²?</h2>
        <p>Inwestorzy często pytają, skąd biorą się różnice w ofertach. Prawda jest taka, że <strong>cena robocizny podłogówki w trudnych pomieszczeniach</strong> nie może być taka sama jak w prostym garażu. Kliknij w wybrane wyzwanie, aby zobaczyć, co realnie wydłuża czas pracy montera.</p>
    </div>

    <div class="complexity-grid">
        <div class="complexity-card active">
            <div class="card-top">
                <div class="card-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="M3 3h18v18H3z"></path><path d="M21 9H3"></path><path d="M21 15H3"></path><path d="M12 3v18"></path></svg>
                </div>
                <h3>Nieregularna bryła i skosy</h3>
            </div>
            <span class="cost-impact-tag">+15–25% stawki</span>
            <div class="complexity-details">
                <p>Pomieszczenia z wykuszami, wnękami i łukami wymagają precyzyjnego kotwienia rur przy każdym załamaniu. Zwiększa to ryzyko przewężenia przekroju, co musi monitorować inżynier. Każde cięcie styropianu pod skosem to dodatkowe minuty, które sumują się w godziny.</p>
            </div>
        </div>

        <div class="complexity-card">
            <div class="card-top">
                <div class="card-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"><rect x="2" y="2" width="20" height="8" rx="2" ry="2"></rect><rect x="2" y="14" width="20" height="8" rx="2" ry="2"></rect><line x1="6" y1="6" x2="6.01" y2="6"></line><line x1="6" y1="18" x2="6.01" y2="18"></line></svg>
                </div>
                <h3>Automatyka strefowa</h3>
            </div>
            <span class="cost-impact-tag">150–250 zł / strefa</span>
            <div class="complexity-details">
                <p><strong>Koszt montażu sterowania strefowego podłogówki</strong> obejmuje instalację listew sterujących oraz siłowników termoelektrycznych na rozdzielaczu. Wymaga to nie tylko wiedzy hydraulicznej, ale i precyzyjnego sparowania termostatów z obiegami.</p>
            </div>
        </div>

        <div class="complexity-card">
            <div class="card-top">
                <div class="card-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="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>Balansowanie hydrauliczne</h3>
            </div>
            <span class="cost-impact-tag">3–5h pracy fachowca</span>
            <div class="complexity-details">
                <p><strong>Zbalansowanie hydrauliczne instalacji (cena</strong> wliczona w profesjonalną usługę) to etap krytyczny. Brak pracy z <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrami</a> skutkuje niedogrzaniem odległych pętli i reklamacjami.</p>
            </div>
        </div>

        <div class="complexity-card">
            <div class="card-top">
                <div class="card-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="m3 9 9-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>Wielopoziomowość i piony</h3>
            </div>
            <span class="cost-impact-tag">Wycena indywidualna</span>
            <div class="complexity-details">
                <p>Konieczność prowadzenia kilku pionów zasilających i montażu rozdzielaczy na różnych kondygnacjach to wyzwanie logistyczne. Dowiedz się więcej o tym, <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">jak powinien wyglądać projekt</a> dla takich budynków.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- ZABEZPIECZENIE DOMENOWE ---
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        document.getElementById('complexity-app-container').innerHTML = `
            <div style="padding: 60px 20px; text-align: center; background: #fff7ed; color: #ea580c; font-family: sans-serif; border-radius: 24px;">
                <div style="font-size: 48px; margin-bottom: 20px;">🔒</div>
                <div style="font-size: 22px; font-weight: bold; margin-bottom: 10px;">Treść chroniona prawem autorskim</div>
                <p style="font-size: 14px; max-width: 500px; margin: 0 auto 20px auto; color: #9a3412;">Ten moduł interaktywny został skopiowany z serwisu Projekt-Ogrzewania.pl bez zgody autora.</p>
                <a href="https://projekt-ogrzewania.pl/" style="background: #ea580c; color: white; padding: 12px 24px; border-radius: 10px; text-decoration: none; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
            </div>
        `;
        return;
    }

    // --- LOGIKA INTERAKCJI ---
    const cards = document.querySelectorAll('.complexity-card');
    cards.forEach(card => {
        card.addEventListener('click', function() {
            cards.forEach(c => c.classList.remove('active'));
            this.classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #ea580c; 
    --accent-hover: #c2410c;
    --bg-light: #fff7ed; 
    --border-color: #fdba74;
    --card-bg: #ffffff;
    --text-muted: #64748b;
}

.premium-hero-box {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--card-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(234, 88, 12, 0.15);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
    position: relative;
}

.premium-hero-box::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 350px;
    height: 350px;
    background: radial-gradient(circle, rgba(234, 88, 12, 0.08) 0%, rgba(255,255,255,0) 70%);
    border-radius: 50%;
    transform: translate(30%, -30%);
    z-index: 0;
}

.hero-content {
    position: relative;
    z-index: 1;
    padding: 40px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
}

.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #ffedd5;
    color: var(--accent);
    padding: 8px 16px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid #fed7aa;
}

.hero-content h3 {
    font-size: 22px;
    font-weight: 700;
    color: var(--primary);
    margin-top: 35px;
    margin-bottom: 15px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.hero-content h4 {
    font-size: 18px;
    font-weight: 600;
    color: var(--primary);
    margin-top: 30px;
    margin-bottom: 15px;
}

.hero-text {
    font-size: 17px;
    line-height: 1.8;
    color: #334155;
    margin-bottom: 20px;
}

.hero-text strong {
    color: var(--primary);
}

.hero-text a {
    color: var(--accent);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    font-weight: 600;
    transition: color 0.2s ease;
}

.hero-text a:hover {
    color: var(--accent-hover);
}

/* Moduł interaktywny - Symulator Rozstawu */
.interactive-calc-wrapper {
    background: #ffffff;
    border: 1px solid #fed7aa;
    border-radius: 20px;
    padding: 30px;
    margin-top: 30px;
    box-shadow: 0 10px 25px -5px rgba(234, 88, 12, 0.05);
}

.calc-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 30px;
}

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

.calc-label {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    font-weight: 700;
    color: var(--primary);
    margin-bottom: 15px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.calc-value-display {
    color: var(--accent);
    font-size: 18px;
}

/* Suwak */
.range-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    background: #fed7aa;
    border-radius: 5px;
    outline: none;
    transition: background 0.3s;
}

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

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

/* Przełączniki (Toggles) */
.toggle-group {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.toggle-btn {
    flex: 1;
    min-width: 120px;
    padding: 12px 15px;
    background: #fff7ed;
    border: 2px solid #fed7aa;
    border-radius: 12px;
    color: var(--primary);
    font-weight: 600;
    font-size: 14px;
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
}

.toggle-btn span.rate-hint {
    font-size: 12px;
    color: var(--text-muted);
    font-weight: 400;
}

.toggle-btn.active {
    background: var(--accent);
    border-color: var(--accent);
    color: #ffffff;
}

.toggle-btn.active span.rate-hint {
    color: #ffedd5;
}

.toggle-btn:hover:not(.active) {
    background: #ffedd5;
    border-color: var(--accent);
}

/* Panel Wyników i Wizualizacji */
.results-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.data-panel {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.data-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 15px;
    background: var(--bg-light);
    border-radius: 10px;
    font-size: 14px;
    border: 1px solid #ffedd5;
}

.data-row span:first-child {
    color: #64748b;
    font-weight: 600;
}

.data-row span:last-child {
    color: var(--primary);
    font-weight: 800;
    font-size: 16px;
}

.calc-result-box {
    background: var(--primary);
    border-radius: 16px;
    padding: 25px;
    color: #ffffff;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.calc-result-box::before {
    content: '';
    position: absolute;
    top: -50px;
    right: -50px;
    width: 150px;
    height: 150px;
    background: rgba(255,255,255,0.05);
    border-radius: 50%;
}

.result-label {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #94a3b8;
    margin-bottom: 10px;
}

.result-value {
    font-size: 38px;
    font-weight: 900;
    color: #ffffff;
    line-height: 1;
    margin-bottom: 10px;
}

.result-value span {
    font-size: 18px;
    font-weight: 600;
    color: var(--accent);
}

.visual-density {
    margin-top: 10px;
    height: 60px;
    background-image: repeating-linear-gradient(90deg, transparent, transparent 15px, rgba(234, 88, 12, 0.2) 15px, rgba(234, 88, 12, 0.2) 18px);
    border-radius: 8px;
    border: 1px dashed #fed7aa;
    transition: all 0.3s ease;
}

@media (max-width: 900px) {
    .hero-content { padding: 35px 25px; }
}

@media (max-width: 650px) {
    .results-container { grid-template-columns: 1fr; }
    .toggle-group { flex-direction: column; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Jak rozstaw rur wpływa na końcowy koszt montażu i efektywność",
    "description": "Zmniejszenie rozstawu rur z 15 cm do 10 cm zwiększa pracochłonność o 33%, podnosząc cenę robocizny za m². Analiza dla standardów WT 2021.",
    "license": "https://projekt-ogrzewania.pl/",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl"
    },
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Zależność zużycia rury od rozstawu pętli",
    "description": "Dane techniczne pokazujące, ile metrów bieżących rury przypada na metr kwadratowy podłogi przy konkretnym zagęszczeniu.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Zużycie przy rozstawie 15 cm",
        "value": "6,7 mb/m²"
      },
      {
        "@type": "PropertyValue",
        "name": "Zużycie przy rozstawie 10 cm",
        "value": "10,0 mb/m²"
      },
      {
        "@type": "PropertyValue",
        "name": "Wzrost pracochłonności 15cm vs 10cm",
        "value": "+33%"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator gęstości rur i pracochłonności",
    "applicationCategory": "CalculatorApplication",
    "description": "Narzędzie interaktywne ilustrujące zależność między wybranym rozstawem rur a całkowitym kosztem robocizny i ilością użytego materiału.",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript",
    "license": "https://projekt-ogrzewania.pl/",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="premium-hero-box" id="hero-app-container">
    <div class="hero-content">
        
        <div class="hero-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
            Efektywność vs Koszt
        </div>
        
        <h2>Jak rozstaw rur wpływa na końcowy koszt montażu i efektywność?</h2>
        
        <p class="hero-text">Zmniejszenie rozstawu rur z 15 cm do 10 cm zwiększa pracochłonność montażu o <strong>33%</strong>, co bezpośrednio przekłada się na wzrost ceny robocizny o około 7–10 zł/m². Przy rozstawie 10 cm instalator musi ułożyć 10 metrów bieżących rury na każdy metr kwadratowy, podczas gdy przy rozstawie 15 cm jest to tylko 6,7 metra.</p>
        
        <p class="hero-text">Zwiększona gęstość rur wymaga również większej liczby pętli grzewczych, co oznacza więcej czasu poświęconego na precyzyjne podłączenie rur do sekcji rozdzielacza i ich prawidłowe oznaczenie. Wybór rozstawu rur musi wynikać z obliczeń zapotrzebowania na ciepło (q w W/m²). W nowoczesnym budownictwie o standardzie WT 2021, gdzie zapotrzebowanie wynosi zazwyczaj 30–45 W/m², <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">rozstaw 15 cm jest wystarczający</a>.</p>

        <h4>Zagęszczenie w strefach brzegowych</h4>
        
        <p class="hero-text">Jednak w <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/">strefach brzegowych</a> (przy dużych przeszkleniach i ścianach zewnętrznych) norma PN-EN 1264 sugeruje zagęszczenie rur do 10 cm lub nawet 7,5 cm, aby zniwelować wpływ mostków termicznych. Dla instalatora oznacza to konieczność częstszego gięcia rur i zachowania minimalnych promieni gięcia (zazwyczaj 5 × średnica rury), co jest procesem żmudnym i podnoszącym koszt usługi.</p>

        <div class="interactive-calc-wrapper">
            <div class="calc-grid">
                
                <div class="calc-control-group">
                    <div class="calc-label">
                        <span>Analizowana Powierzchnia</span>
                        <span class="calc-value-display"><span id="areaValue">100</span> m²</span>
                    </div>
                    <input type="range" id="areaSlider" class="range-slider" min="30" max="250" step="10" value="100">
                </div>
                
                <div class="calc-control-group">
                    <div class="calc-label"><span>Wybierz gęstość ułożenia pętli</span></div>
                    <div class="toggle-group" id="densityToggles">
                        <button class="toggle-btn" data-spacing="20" data-pipe="5" data-rate="32" data-visual="20">
                            Co 20 cm
                            <span class="rate-hint">Pokoje techniczne</span>
                        </button>
                        <button class="toggle-btn active" data-spacing="15" data-pipe="6.7" data-rate="35" data-visual="15">
                            Co 15 cm
                            <span class="rate-hint">Standard (WT2021)</span>
                        </button>
                        <button class="toggle-btn" data-spacing="10" data-pipe="10" data-rate="42" data-visual="10">
                            Co 10 cm
                            <span class="rate-hint">Łazienki / Okna</span>
                        </button>
                    </div>
                    <div class="visual-density" id="densityVisual"></div>
                    <div style="text-align:center; font-size: 11px; color: #94a3b8; margin-top:5px;">Symulacja gęstości rur</div>
                </div>

                <div class="results-container">
                    <div class="data-panel">
                        <div class="data-row">
                            <span>Zużycie rury (na m²)</span>
                            <span id="pipePerSqM">6.7 mb</span>
                        </div>
                        <div class="data-row">
                            <span>Ilość rury (całość)</span>
                            <span id="totalPipe">670 mb</span>
                        </div>
                        <div class="data-row">
                            <span>Pracochłonność względem 15cm</span>
                            <span id="workloadDiff" style="color: #64748b;">100% (Baza)</span>
                        </div>
                    </div>
                    
                    <div class="calc-result-box">
                        <div class="result-label">Koszt Robocizny</div>
                        <div class="result-value" id="totalCost">3 500 <span>zł</span></div>
                        <div style="font-size: 13px; color: #ffedd5; margin-top: 5px;">
                            Przyjęto: <strong id="currentRateLabel">35 zł/m²</strong>
                        </div>
                    </div>
                </div>

            </div>
        </div>

    </div>

    <noscript>
        <div style="padding: 20px 50px; background: #f8fafc; border-top: 1px solid #e2e8f0;">
            <div style="font-size: 16px; color: #0f172a; margin-bottom: 10px; font-weight: bold;">Zależność zużycia rury od rozstawu:</div>
            <ul style="color: #475569; line-height: 1.6;">
                <li><strong>Rozstaw 20 cm:</strong> 5 mb rury na 1 m²</li>
                <li><strong>Rozstaw 15 cm:</strong> 6,7 mb rury na 1 m² (Standard)</li>
                <li><strong>Rozstaw 10 cm:</strong> 10 mb rury na 1 m² (Zwiększona pracochłonność)</li>
                <li><strong>Rozstaw 7,5 cm:</strong> 13,3 mb rury na 1 m² (Strefy brzegowe)</li>
            </ul>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- LOGIKA SYMULATORA GĘSTOŚCI ---
    const areaSlider = document.getElementById('areaSlider');
    const areaValue = document.getElementById('areaValue');
    const totalCostDisplay = document.getElementById('totalCost');
    const densityToggles = document.querySelectorAll('.toggle-btn');
    const currentRateLabel = document.getElementById('currentRateLabel');
    
    const pipePerSqMDisplay = document.getElementById('pipePerSqM');
    const totalPipeDisplay = document.getElementById('totalPipe');
    const workloadDiffDisplay = document.getElementById('workloadDiff');
    const densityVisual = document.getElementById('densityVisual');
    
    let currentArea = 100;
    let currentRate = 35;
    let currentPipe = 6.7;
    let currentSpacingVisual = 15;

    function formatCurrency(number) {
        return new Intl.NumberFormat('pl-PL', { maximumFractionDigits: 0 }).format(number);
    }

    function calculate() {
        const totalCost = currentArea * currentRate;
        const totalPipe = currentArea * currentPipe;
        
        totalCostDisplay.innerHTML = `${formatCurrency(totalCost)} <span>zł</span>`;
        currentRateLabel.textContent = `${currentRate} zł/m²`;
        
        pipePerSqMDisplay.textContent = `${currentPipe.toString().replace('.', ',')} mb`;
        totalPipeDisplay.textContent = `${formatCurrency(totalPipe)} mb`;
        
        // Obliczenia pracochłonności wzgledem 15cm
        if (currentPipe === 6.7) {
            workloadDiffDisplay.textContent = "100% (Baza)";
            workloadDiffDisplay.style.color = "#64748b";
        } else if (currentPipe > 6.7) {
            const diff = Math.round(((currentPipe / 6.7) - 1) * 100);
            workloadDiffDisplay.textContent = `+${diff}% czasu`;
            workloadDiffDisplay.style.color = "#ea580c";
        } else {
            const diff = Math.round((1 - (currentPipe / 6.7)) * 100);
            workloadDiffDisplay.textContent = `-${diff}% czasu`;
            workloadDiffDisplay.style.color = "#16a34a";
        }
        
        // Aktualizacja wizualizacji gęstości
        densityVisual.style.backgroundImage = `repeating-linear-gradient(90deg, transparent, transparent ${currentSpacingVisual}px, rgba(234, 88, 12, 0.6) ${currentSpacingVisual}px, rgba(234, 88, 12, 0.6) ${currentSpacingVisual + 3}px)`;
    }

    if(areaSlider) {
        areaSlider.addEventListener('input', function(e) {
            currentArea = parseInt(e.target.value);
            areaValue.textContent = currentArea;
            calculate();
        });
    }

    densityToggles.forEach(btn => {
        btn.addEventListener('click', function() {
            densityToggles.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            
            currentRate = parseFloat(this.getAttribute('data-rate'));
            currentPipe = parseFloat(this.getAttribute('data-pipe'));
            currentSpacingVisual = parseInt(this.getAttribute('data-visual'));
            
            calculate();
        });
    });

    calculate(); // Initial run

    // --- ZABEZPIECZENIE DOMENOWE ---
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('hero-app-container');
        if (container) {
            container.innerHTML = `
                <div style="padding: 60px 20px; text-align: center; background: #fff7ed; color: #ea580c; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 300px; font-family: sans-serif;">
                    <div style="font-size: 48px; margin-bottom: 20px;">🔒</div>
                    <div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona prawem autorskim</div>
                    <div style="font-size: 16px; max-width: 500px; color: #9a3412; line-height: 1.5; margin-bottom: 25px;">
                        Ten symulator gęstości rur i pracochłonności jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został skopiowany nielegalnie.
                    </div>
                    <a href="https://projekt-ogrzewania.pl/" style="padding: 14px 28px; background: #ea580c; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s; text-transform: uppercase;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #ea580c; /* Ciepły pomarańczowy, spójny z tematyką ogrzewania */
    --accent-hover: #c2410c;
    --danger: #dc2626;
    --warning: #f59e0b;
    --success: #16a34a;
    --bg-light: #fff7ed;
    --border-color: #fdba74;
}

.premium-anatomy-box {
    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(234, 88, 12, 0.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.anatomy-header {
    padding: 40px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
    border-bottom: 1px solid var(--border-color);
}

.anatomy-header h3 {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
    color: var(--primary);
}

.anatomy-header p {
    font-size: 16px;
    line-height: 1.7;
    color: #475569;
    margin-bottom: 15px;
}

.anatomy-header p:last-child {
    margin-bottom: 0;
}

.anatomy-workspace {
    display: flex;
    min-height: 520px;
}

/* LEWA STRONA - ZAKŁADKI / CZYNNIKI */
.anatomy-layers {
    width: 40%;
    background: #ffffff;
    border-right: 1px solid var(--border-color);
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 30px 20px;
    gap: 12px;
}

.layer-btn {
    position: relative;
    width: 100%;
    padding: 16px;
    border-radius: 12px;
    border: 2px solid #ffedd5;
    background: #ffffff;
    cursor: pointer;
    text-align: left;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    gap: 15px;
    overflow: hidden;
}

.layer-btn::before {
    content: '';
    position: absolute;
    left: 0; top: 0; height: 100%; width: 6px;
    background: #fdba74;
    transition: all 0.3s;
}

/* Subtelne różnice kolorystyczne dla kategorii */
.layer-btn[data-layer="lokalizacja"]::before { background: #3b82f6; } 
.layer-btn[data-layer="skomplikowanie"]::before { background: #8b5cf6; } 
.layer-btn[data-layer="system"]::before { background: #f59e0b; } 
.layer-btn[data-layer="ekipa"]::before { background: #10b981; } 
.layer-btn[data-layer="zakres"]::before { background: #ef4444; } 

.layer-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 15px -3px rgba(234, 88, 12, 0.05);
    border-color: #fdba74;
}

.layer-btn.layer-active {
    border-color: var(--accent);
    background: #fff7ed;
    box-shadow: 0 10px 20px -5px rgba(234, 88, 12, 0.15);
}

.layer-btn.layer-active::before {
    background: var(--accent) !important;
    width: 8px;
}

.layer-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    color: #94a3b8;
    transition: all 0.3s;
}

.layer-btn.layer-active .layer-icon {
    transform: scale(1.15);
    color: var(--accent);
}

.layer-title {
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 800;
    color: var(--primary);
    line-height: 1.3;
}

.layer-subtitle {
    display: block;
    font-size: 11px;
    font-weight: 600;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: 5px;
}

/* PRAWA STRONA - SZCZEGÓŁY WARSTWY */
.anatomy-details {
    width: 60%;
    background: var(--bg-light);
    padding: 40px;
    position: relative;
}

.detail-pane {
    display: none;
    animation: fadeInSlide 0.4s ease-out forwards;
}

.detail-pane.pane-active {
    display: block;
}

.detail-pane h4 {
    margin: 0 0 20px 0;
    font-size: 22px;
    font-weight: 900;
    color: var(--primary);
    display: flex;
    align-items: center;
    gap: 12px;
}

.detail-pane p {
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
    margin-bottom: 15px;
}

.detail-pane ul {
    margin: 0 0 20px 0;
    padding-left: 20px;
}

.detail-pane li {
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
    margin-bottom: 10px;
}

.detail-pane a {
    color: var(--accent);
    text-decoration: underline;
    font-weight: 600;
}

.highlight-box {
    background: #ffffff;
    border-left: 4px solid var(--accent);
    padding: 18px 20px;
    border-radius: 0 12px 12px 0;
    font-size: 14px;
    font-weight: 500;
    color: #334155;
    box-shadow: 0 2px 5px rgba(0,0,0,0.02);
    margin-top: 20px;
    line-height: 1.6;
}

.highlight-box strong {
    color: var(--primary);
    font-weight: 800;
}

/* Mini interaktywny suwak w panelu 1 */
.mini-slider-container {
    margin-top: 20px;
    background: #ffffff;
    padding: 20px;
    border-radius: 12px;
    border: 1px solid #fdba74;
}

.mini-slider-label {
    display: flex;
    justify-content: space-between;
    font-weight: 700;
    font-size: 13px;
    color: var(--primary);
    margin-bottom: 10px;
    text-transform: uppercase;
}

.mini-slider {
    width: 100%;
    -webkit-appearance: none;
    height: 6px;
    background: #ffedd5;
    border-radius: 3px;
    outline: none;
}

.mini-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--accent);
    cursor: pointer;
    border: 2px solid #fff;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

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

@media (max-width: 800px) {
    .anatomy-header { padding: 30px 20px; }
    .anatomy-workspace { flex-direction: column; min-height: auto; }
    .anatomy-layers {
        width: 100%;
        border-right: none;
        border-bottom: 1px solid var(--border-color);
        padding: 20px;
    }
    .anatomy-details {
        width: 100%;
        padding: 30px 20px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Co wpływa na ostateczną cenę robocizny podłogówki?",
    "description": "5 kluczowych czynników decydujących o wycenie instalacji ogrzewania podłogowego w 2026 roku: lokalizacja, stopień skomplikowania, technologia, doświadczenie ekipy oraz pełen zakres prac.",
    "license": "https://projekt-ogrzewania.pl/",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Czynniki kosztotwórcze robocizny ogrzewania podłogowego 2026",
    "description": "Zestawienie mnożników i zmiennych wpływających na odchylenia od bazowej stawki za m² układania podłogówki.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Narzut lokalizacyjny (Warszawa)",
        "value": "+18 do +25%"
      },
      {
        "@type": "PropertyValue",
        "name": "Narzut za skomplikowanie (wiele pomieszczeń)",
        "value": "Wzrost z 0.38 do 0.65 r-g/m²"
      },
      {
        "@type": "PropertyValue",
        "name": "Montaż na siatce stalowej",
        "value": "+12% czasu pracy"
      },
      {
        "@type": "PropertyValue",
        "name": "Dopłata za dojazd powyżej 50km",
        "value": "2.5 - 3.5 PLN/km"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Panel analizy czynników wyceny instalacyjnej",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Narzędzie interaktywne typu 'anatomy', pozwalające inwestorowi badać wpływ różnych zmiennych projektowych (system, dojazd, ekipa) na ostateczną cenę usług hydraulicznych.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="premium-anatomy-box" id="pricing-factors-app-container">
    
    <div class="anatomy-header">
        <h2>Co wpływa na cenę robocizny oprócz rozstawu?</h2>
        <p>Gdy inwestorzy pytają o to, jaka jest obecnie <strong>podłogówka cena za m² robocizny</strong>, często spodziewają się jednej, sztywnej kwoty. W rzeczywistości stawka w 2026 roku zależy od pięciu zmiennych czynników technicznych i rynkowych, które wyceniam indywidualnie w każdym zleceniu.</p>
    </div>

    <div class="anatomy-workspace">
        
        <div class="anatomy-layers">
            <span style="font-size: 11px; font-weight: 800; color: #94a3b8; text-transform: uppercase; letter-spacing: 1px; text-align: center; margin-bottom: 5px;">Eksploruj czynniki wyceny</span>
            
            <button class="layer-btn layer-active" data-target="pane-lokalizacja" data-layer="lokalizacja">
                <svg class="layer-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"></path><circle cx="12" cy="10" r="3"></circle></svg>
                <div>
                    <div class="layer-title">Lokalizacja Inwestycji</div>
                    <span class="layer-subtitle">Region i Dojazd do klienta</span>
                </div>
            </button>
            
            <button class="layer-btn" data-target="pane-skomplikowanie" data-layer="skomplikowanie">
                <svg class="layer-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg>
                <div>
                    <div class="layer-title">Stopień Skomplikowania</div>
                    <span class="layer-subtitle">Bryła budynku i ilość pętli</span>
                </div>
            </button>
            
            <button class="layer-btn" data-target="pane-system" data-layer="system">
                <svg class="layer-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg>
                <div>
                    <div class="layer-title">System Mocowania</div>
                    <span class="layer-subtitle">Spinki vs Tacker vs Płyty</span>
                </div>
            </button>
            
            <button class="layer-btn" data-target="pane-ekipa" data-layer="ekipa">
                <svg class="layer-icon" 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>
                    <div class="layer-title">Doświadczenie Ekipy</div>
                    <span class="layer-subtitle">Gwarancja i profesjonalizm</span>
                </div>
            </button>

            <button class="layer-btn" data-target="pane-zakres" data-layer="zakres">
                <svg class="layer-icon" 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="layer-title">Pełen Zakres Prac</div>
                    <span class="layer-subtitle">Dodatki ukryte w wycenie</span>
                </div>
            </button>
        </div>

        <div class="anatomy-details">
            
            <div class="detail-pane pane-active" id="pane-lokalizacja">
                <h4>1. Regionalizacja cen i logistyka</h4>
                <p>Ceny usług instalacyjnych różnią się drastycznie w zależności od województwa. Warszawa centrum to zazwyczaj <strong>+18–25%</strong> względem średniej krajowej. Z kolei wschodnia Polska i małe miejscowości pozwalają oszczędzić od <strong>-5 do -12%</strong>.</p>
                <p>Istotny jest również dojazd. Gdy budowa znajduje się daleko od siedziby firmy, wkraczają dodatkowe koszty logistyczne.</p>
                
                <div class="mini-slider-container">
                    <div class="mini-slider-label">
                        <span>Dystans powyżej 50 km (Dopłata)</span>
                        <span id="travelCostDisplay" style="color: var(--accent);">0 zł</span>
                    </div>
                    <input type="range" id="travelSlider" class="mini-slider" min="0" max="100" step="5" value="0">
                    <div style="font-size: 11px; color: #64748b; margin-top: 8px;">Stawka: 3,00 zł / km. Przesuń suwak, aby sprawdzić dodatkowy koszt transportu ekipy.</div>
                </div>
            </div>

            <div class="detail-pane" id="pane-skomplikowanie">
                <h4>2. Bryła budynku a pracochłonność</h4>
                <p>Metraż to nie wszystko. Czas, w jakim ekipa ułoży instalację, jest mierzony w roboczo-godzinach na metr kwadratowy (r-g/m²).</p>
                <ul>
                    <li><strong>Proste przestrzenie:</strong> Pomieszczenia otwarte (typu open-space) o powierzchni 60 m² to szybka praca: ok. <strong>0,38 r-g/m²</strong>.</li>
                    <li><strong>Skomplikowane układy:</strong> Dom wielopoziomowy, 14 małych pomieszczeń ze skosami, słupami i dwoma rozdzielaczami winduje czas pracy do <strong>0,65 r-g/m²</strong>.</li>
                </ul>
                <div class="highlight-box">
                    Właśnie z powodu architektury, w profesjonalnych cennikach instalatorów widełki za to samo zadanie mogą wynosić <strong>55–80 zł</strong> dla prostych domów, aż po <strong>80–120 zł</strong> dla rozbudowanych projektów deweloperskich.
                </div>
            </div>

            <div class="detail-pane" id="pane-system">
                <h4>3. Technologia przytwierdzania rur</h4>
                <p>Wybór materiałów wpływa bezpośrednio na tempo pracy montera. Każdy system ma swoje wady i zalety finansowe:</p>
                <ul>
                    <li><a href="https://projekt-ogrzewania.pl/spinka-do-styropianu-do-takera/">Spinki do styropianu EPS 100:</a> Jest to metoda najszybsza (ok. 0,42 r-g/m²). Standard w nowoczesnym budownictwie.</li>
                    <li><strong>Siatka stalowa i opaski:</strong> Wymagają o <strong>+12% więcej czasu</strong> (praca ręczna), stosowane częściej w halach przemysłowych.</li>
                    <li><strong>Płyty systemowe (Tacker z wypustkami):</strong> Przyspieszają montaż o <strong>-8% czasu</strong> w stosunku do spinek, jednak wymagają zakupu znacznie droższego podłoża.</li>
                </ul>
            </div>

            <div class="detail-pane" id="pane-ekipa">
                <h4>4. Kompetencje i rzetelność fachowców</h4>
                <p>Tania robocizna potrafi zemścić się w pierwszym sezonie grzewczym. Podłogówka cena za m² robocizny odzwierciedla też jakość narzędzi i gwarancje.</p>
                <div class="highlight-box" style="border-left-color: var(--success);">
                    <strong>Profesjonalna firma (70–85 zł/m² w wyższym standardzie):</strong><br>
                    Posiada certyfikaty producenta rur. Wykonuje udokumentowaną <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próbę szczelności (zgodnie z PN-EN 1264-4)</a>. Daje nawet 10 lat gwarancji na swój montaż.
                </div>
                <div class="highlight-box" style="border-left-color: var(--danger); margin-top: 15px;">
                    <strong>Firma &#8222;po taniości&#8221; (50 zł/m²):</strong><br>
                    Często nie posiada nawet manometru cyfrowego. Nie przeprowadza prób ciśnieniowych i znika z placu budowy tuż po zalaniu rur wylewką.
                </div>
            </div>

            <div class="detail-pane" id="pane-zakres">
                <h4>5. Co dokładnie obejmuje umowa?</h4>
                <p>Zanim zaakceptujesz ofertę, upewnij się, co zostało wliczone w bazową stawkę za metr układania. Koszty dodatkowe mogą drastycznie zmienić ostateczny rachunek.</p>
                <ul>
                    <li>Czy w cenie jest osadzenie i montaż <a href="https://projekt-ogrzewania.pl/szafka-podtynkowa-do-rozdzielaczy-ogrzewania-podlogowego/">szafek podtynkowych</a>?</li>
                    <li>Czy umowa przewiduje <a href="https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/">frezowanie instalacji</a> (częsty wymóg w budynkach remontowanych)?</li>
                    <li>Zabezpieczenie rur peszlem w miejscach przejść przez dylatacje.</li>
                    <li><strong>Dokumentacja fotograficzna:</strong> W moich projektach wymagam zawsze minimum 12 zdjęć z napełnionym manometrem podczas próby ciśnieniowej.</li>
                </ul>
            </div>

        </div>
    </div>
    
    <noscript>
        <style>
            .detail-pane { display: block !important; margin-bottom: 30px; }
            .mini-slider-container { display: none; }
        </style>
        <div style="padding: 30px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h3 style="font-size: 18px; color: #0f172a; margin-bottom: 15px;">Zestawienie parametrów wyceny:</h3>
            <ul style="color: #475569; line-height: 1.6;">
                <li><strong>Lokalizacja:</strong> Warszawa (+25%), mniejsze miejscowości (-10%). Dopłaty za dojazd powyżej 50km.</li>
                <li><strong>Skomplikowanie:</strong> Otwarte salony (taniej) vs małe pokoje z dużą liczbą załamań (drożej).</li>
                <li><strong>System:</strong> Spinki EPS to standard. Płyty systemowe są szybsze, ale droższe w materiale.</li>
                <li><strong>Gwarancje:</strong> Droższe ekipy wykonują próby ciśnieniowe zgodne z normami.</li>
                <li><strong>Zakres ukryty:</strong> Upewnij się, że w cenie jest szafka podtynkowa i dokumentacja foto.</li>
            </ul>
        </div>
    </noscript>
</div>

<script>
function initPricingFactorsTabs() {
    // --- ZABEZPIECZENIE DOMENOWE ---
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const lockContainer = document.getElementById('pricing-factors-app-container');
        if (lockContainer) {
            lockContainer.innerHTML = `
                <div style="padding: 60px 20px; text-align: center; background: #fff7ed; color: #ea580c; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 400px;">
                    <div style="font-size: 48px; margin-bottom: 20px;">🔒</div>
                    <div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona prawem autorskim</div>
                    <div style="font-size: 16px; max-width: 500px; color: #9a3412; line-height: 1.5; margin-bottom: 25px;">Ten interaktywny moduł edukacyjny jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został wdrożony nielegalnie.</div>
                    <a href="https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/" style="padding: 14px 28px; background: #ea580c; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s; text-transform: uppercase;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
        return; 
    }

    const appContainer = document.getElementById('pricing-factors-app-container');
    if (!appContainer) return;

    // --- LOGIKA ZAKŁADEK ---
    const layerBtns = appContainer.querySelectorAll('.layer-btn');
    const panes = appContainer.querySelectorAll('.detail-pane');

    layerBtns.forEach(function(button) {
        button.addEventListener('click', function(e) {
            e.preventDefault(); 
            layerBtns.forEach(function(btn) { btn.classList.remove('layer-active'); });
            panes.forEach(function(pane) { pane.classList.remove('pane-active'); });
            
            this.classList.add('layer-active');
            const targetId = this.getAttribute('data-target');
            const targetPane = appContainer.querySelector('#' + targetId);
            if(targetPane) {
                targetPane.classList.add('pane-active');
            }
        });
    });

    // --- LOGIKA MINI-KALKULATORA DOJAZDU ---
    const travelSlider = document.getElementById('travelSlider');
    const travelCostDisplay = document.getElementById('travelCostDisplay');
    
    if (travelSlider && travelCostDisplay) {
        travelSlider.addEventListener('input', function() {
            const distance = parseInt(this.value);
            const ratePerKm = 3.0; // średnio 3 zł/km dopłaty
            const cost = distance * ratePerKm;
            travelCostDisplay.textContent = `+ ${cost.toFixed(0)} zł`;
        });
    }
}

if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', initPricingFactorsTabs);
} else {
    initPricingFactorsTabs();
}
</script>



<style>
:root {
    --primary-hvac: #0f172a;
    --accent-hvac: #ea580c; 
    --bg-tip: #fff7ed; 
}

.expert-tip-wrapper {
    max-width: 850px;
    margin: 50px auto 40px auto;
}

.expert-tip-wrapper h2 {
    font-family: 'Inter', -apple-system, sans-serif;
    font-size: 24px;
    font-weight: 900;
    color: var(--primary-hvac);
    margin: 0 0 20px 0;
    text-align: center;
}

.expert-tip-container {
    background: var(--bg-tip);
    border-radius: 20px;
    padding: 30px;
    display: flex;
    gap: 25px;
    align-items: center;
    border-left: 6px solid var(--accent-hvac);
    position: relative;
    font-family: 'Inter', -apple-system, sans-serif;
    text-align: left;
    box-shadow: 0 10px 25px -5px rgba(234, 88, 12, 0.05);
}

.expert-tip-photo-wrap {
    flex-shrink: 0;
    width: 90px;
    height: 90px;
    position: relative;
}

.expert-tip-photo {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    object-position: center top;
    border: 3px solid #ffffff;
    box-shadow: 0 4px 10px rgba(234, 88, 12, 0.15);
}

.expert-tip-photo-wrap::after {
    content: '💡';
    position: absolute;
    bottom: -5px;
    right: -5px;
    background: #ffffff;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    border: 1px solid #fdba74;
}

.expert-tip-content {
    flex-grow: 1;
}

.expert-tip-label {
    display: block;
    font-size: 12px;
    font-weight: 800;
    color: var(--accent-hvac);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 8px;
}

.expert-tip-text {
    font-size: 16px;
    line-height: 1.6;
    color: var(--primary-hvac);
    font-style: italic;
    margin: 0;
}

.expert-tip-text strong {
    color: var(--accent-hvac);
    font-weight: 800;
}

.expert-tip-text a {
    color: var(--accent-hvac);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    font-weight: 700;
    font-style: normal;
}

.expert-tip-text a:hover {
    color: #c2410c;
}

.expert-tip-signature {
    display: block;
    margin-top: 15px;
    font-size: 13px;
    font-weight: 700;
    color: #64748b;
}

@media (max-width: 600px) {
    .expert-tip-container { flex-direction: column; text-align: center; padding: 25px; }
    .expert-tip-photo-wrap { margin-bottom: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Quotation",
    "license": "https://projekt-ogrzewania.pl/",
    "text": "Gdy inwestorzy pytają mnie o to, ile ostatecznie wyniesie ich cena za metr kwadratowy robocizny przy układaniu podłogówki, zawsze powtarzam jedną zasadę: patrzcie na projekt, nie na suche stawki. Najtańszy monter rzucający rurę 'na oko' z reguły pomija koszty dylatacji przyściennych i kluczowej próby ciśnieniowej, co kończy się aneksami. Z mojego doświadczenia jako projektanta instalacji wynika, że rzetelne obliczenia OZC pozwalają zoptymalizować układ pętli i zredukować koszty wykonawcze o 10–15%, a przede wszystkim gwarantują, że wylewka nie popęka po pierwszym uruchomieniu pompy ciepła.",
    "spokenByCharacter": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "jobTitle": "CEO & Główny Projektant",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ],
      "worksFor": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl"
      }
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Ekspercka optymalizacja kosztów robocizny",
    "description": "Zestawienie inżynierskich zasad wpływających na redukcję rynkowej ceny za wykonanie ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Redukcja kosztów wykonawczych z projektem",
        "value": "10-15%"
      },
      {
        "@type": "PropertyValue",
        "name": "Eliminowane ryzyka",
        "value": "Brak dylatacji, przewymiarowanie, brak próby ciśnieniowej"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/"
    }
  }
]
</script>

<div class="expert-tip-wrapper">
    <h2><span style="margin-right:10px">⚖️</span>Robert Kucharski o kosztach i błędach</h2>
    
    <div class="expert-tip-container" id="expert-tip-pricing">
        <div class="expert-tip-photo-wrap">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Główny Projektant" class="expert-tip-photo" loading="lazy">
        </div>
        <div class="expert-tip-content">
            <span class="expert-tip-label">Wskazówka Projektanta</span>
            <p class="expert-tip-text">
                &#8222;Gdy inwestorzy pytają mnie o to, ile ostatecznie wyniesie ich <strong>cena za metr kwadratowy robocizny przy układaniu podłogówki</strong>, zawsze powtarzam jedną zasadę: patrzcie na projekt, nie na suche stawki. Najtańszy monter rzucający rurę 'na oko&#8217; z reguły pomija koszty dylatacji przyściennych i kluczowej próby ciśnieniowej, co kończy się aneksami do umowy. Z mojego doświadczenia jako <a href="https://projekt-ogrzewania.pl/author/admin3399/">głównego projektanta instalacji</a> wynika, że rzetelne obliczenia pozwalają zoptymalizować rozstaw rur, co często redukuje ostateczne koszty wykonawcze o 10–15%, a przede wszystkim daje gwarancję, że wylewka nie popęka po odpaleniu ogrzewania.&#8221;
            </p>
            <span class="expert-tip-signature">— Robert Kucharski, CEO &#038; Główny Projektant Projekt-Ogrzewania.pl</span>
        </div>
    </div>

    <noscript>
        <div style="padding: 20px; background: #fff7ed; border-radius: 20px; margin-top: 20px; font-family: sans-serif; border: 1px solid #fdba74;">
            <p style="font-size: 14px; font-weight: bold; color: #0f172a;">Rekomendacja inżynierska Roberta Kucharskiego:</p>
            <p style="font-size: 14px; color: #475569;">Prawidłowa cena robocizny za m² musi wynikać z projektu. Montaż &#8222;na oko&#8221; i najtańsze wyceny to ryzyko braku dylatacji i prób szczelności. Projekt pozwala oszczędzić 10-15% na kosztach materiałów i robociźnie instalatora.</p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('expert-tip-pricing');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 20px; width: 100%; border: 2px solid #dc2626;">
                    <span style="font-size: 32px; margin-bottom: 15px; display: block;">🔒</span>
                    <div style="font-size: 20px; font-weight: bold; margin-bottom: 10px;">Moduł ekspercki chroniony autorsko</div>
                    <p style="font-size: 14px; color: #7f1d1d; margin: 0;">Osobista rekomendacja ekspercka Roberta Kucharskiego jest własnością serwisu Projekt-Ogrzewania.pl i została skopiowana nielegalnie.</p>
                </div>
            `;
            container.style.borderLeft = 'none';
            container.style.background = 'transparent';
            container.style.padding = '0';
            container.style.boxShadow = 'none';
        }
    }
});
</script>



<p class="wp-block-paragraph"></p>



<style>
:root {
    --primary: #0f172a;
    --accent: #ea580c; 
    --accent-hover: #c2410c;
    --success: #16a34a;
    --bg-light: #fff7ed; 
    --border-color: #fdba74;
    --card-bg: #ffffff;
    --text-muted: #64748b;
}

.premium-calc-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--card-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(234, 88, 12, 0.15);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

/* Sekcja Nagłówka i Steppera */
.calc-intro-section {
    padding: 40px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
    border-bottom: 1px solid var(--border-color);
}

.calc-intro-section h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
    margin: 0 0 20px 0;
    line-height: 1.3;
}

.calc-intro-text {
    font-size: 16px;
    color: #475569;
    line-height: 1.6;
    margin-bottom: 25px;
}

/* Przyjazny Blok Wzoru */
.friendly-formula-box {
    background: #ffffff;
    padding: 25px;
    border-radius: 16px;
    border: 1px solid #fdba74;
    box-shadow: 0 4px 6px -1px rgba(234, 88, 12, 0.05);
    margin-bottom: 30px;
    position: relative;
    overflow: hidden;
}

.friendly-formula-box::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 6px;
    background: var(--accent);
}

.friendly-formula-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--accent);
    text-transform: uppercase;
    margin-bottom: 15px;
    letter-spacing: 0.5px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.friendly-formula-math {
    font-size: 16px;
    font-weight: 700;
    color: var(--primary);
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.math-badge {
    background: var(--bg-light);
    border: 1px solid #fed7aa;
    padding: 8px 14px;
    border-radius: 8px;
    color: #475569;
}

.math-badge strong {
    color: var(--primary);
    font-weight: 800;
}

.math-operator {
    color: #94a3b8;
    font-size: 20px;
}

.math-explanation {
    margin-top: 15px;
    font-size: 14px;
    color: #64748b;
    line-height: 1.6;
    border-top: 1px dashed #e2e8f0;
    padding-top: 15px;
}

/* Interaktywny Stepper */
.stepper-logic {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.step-item {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 18px 20px;
    cursor: pointer;
    transition: all 0.3s;
    background: #fafaf9;
}

.step-item:hover {
    border-color: #fdba74;
    background: #ffffff;
}

.step-item.active {
    background: #ffffff;
    border-color: var(--accent);
    box-shadow: 0 8px 20px rgba(234, 88, 12, 0.08);
}

.step-top {
    display: flex;
    align-items: center;
    gap: 15px;
}

.step-num {
    width: 28px;
    height: 28px;
    background: #e2e8f0;
    color: #64748b;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 13px;
    transition: all 0.3s;
}

.step-item.active .step-num { background: var(--accent); color: #fff; }

.step-title { font-weight: 700; font-size: 15px; flex: 1; color: var(--primary); }

.step-toggle-icon {
    color: #94a3b8;
    transition: transform 0.3s;
}

.step-item.active .step-toggle-icon {
    transform: rotate(180deg);
    color: var(--accent);
}

.step-body {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease, margin-top 0.4s;
    font-size: 14px;
    color: #475569;
    line-height: 1.6;
}

.step-item.active .step-body { max-height: 250px; margin-top: 12px; }

.step-formula-tag {
    display: inline-block;
    background: var(--bg-light);
    color: var(--accent);
    padding: 6px 12px;
    border-radius: 6px;
    font-family: 'Courier New', Courier, monospace;
    font-weight: 700;
    font-size: 13px;
    margin-top: 8px;
    border: 1px dashed #fdba74;
}

/* Sekcja Robocza Kalkulatora */
.calc-main-header { padding: 40px 50px 0 50px; background: #fff; }
.calc-main-header h3 { font-size: 22px; font-weight: 800; margin: 0; color: var(--primary); }

.calc-workspace {
    display: flex;
    flex-wrap: wrap;
    background: #ffffff;
}

.calc-inputs {
    flex: 1.2;
    min-width: 320px;
    padding: 30px 50px 40px 50px;
}

.calc-outputs {
    flex: 0.8;
    min-width: 320px;
    padding: 30px 50px 40px 50px;
    background: #fafaf9;
    border-left: 1px solid var(--border-color);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.input-group { margin-bottom: 25px; }

.input-label {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 12px;
    color: var(--primary);
}

.input-val-box { color: var(--accent); font-size: 16px; }

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

.range-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 26px;
    height: 26px;
    background: var(--accent);
    border-radius: 50%;
    cursor: pointer;
    border: 3px solid #fff;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    transition: transform 0.2s;
}

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

.selector-group { display: flex; gap: 8px; }

/* POPRAWKA KOLORU NA PRZYCISKU */
.selector-btn {
    flex: 1;
    padding: 12px;
    border-radius: 10px;
    border: 2px solid #ffedd5;
    background: #fff;
    font-size: 13px;
    font-weight: 700;
    color: var(--primary); /* Dodano wyraźny granatowy kolor */
    cursor: pointer;
    transition: 0.2s;
}

.selector-btn:hover:not(.active) {
    border-color: var(--accent);
    background: var(--bg-light);
}

.selector-btn.active { 
    background: var(--accent); 
    border-color: var(--accent); 
    color: #fff; 
}

/* Karty Wyników */
.res-card {
    background: #fff;
    padding: 18px;
    border-radius: 14px;
    border: 1px solid #e2e8f0;
    margin-bottom: 15px;
    display: flex;
    align-items: center;
    gap: 15px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.res-icon { 
    width: 44px; height: 44px; 
    background: var(--bg-light); 
    color: var(--accent); 
    border-radius: 10px; 
    display: flex; align-items: center; justify-content: center; 
    flex-shrink: 0; 
}

.res-info { display: flex; flex-direction: column; }
.res-lbl { font-size: 11px; font-weight: 700; color: #64748b; text-transform: uppercase; margin-bottom: 3px; }
.res-val { font-size: 22px; font-weight: 900; color: var(--primary); }

.total-card { background: var(--primary); border: none; padding: 25px; }
.total-card .res-icon { background: rgba(255,255,255,0.1); color: #fff; }
.total-card .res-lbl { color: #94a3b8; }
.total-card .res-val { color: #fff; font-size: 32px; }
.total-card .res-val span { color: var(--accent); font-size: 18px; }

/* CTA */
.calc-cta-footer {
    padding: 40px 50px;
    text-align: center;
    background: linear-gradient(135deg, var(--bg-light) 0%, #ffffff 100%);
    border-top: 1px solid var(--border-color);
}

.calc-cta-footer h4 { font-size: 22px; font-weight: 900; color: var(--primary); margin: 0 0 15px 0; }
.calc-cta-footer p { font-size: 15px; color: #475569; margin: 0 auto 25px auto; max-width: 600px; line-height: 1.6; }

.cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: var(--accent);
    color: #fff;
    padding: 16px 32px;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 800;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: 0.3s;
    box-shadow: 0 10px 20px -5px rgba(234, 88, 12, 0.4);
}

.cta-btn:hover { background: var(--accent-hover); transform: translateY(-3px); color: #fff; }

@media (max-width: 800px) {
    .calc-intro-section, .calc-main-header, .calc-inputs, .calc-outputs, .calc-cta-footer { padding: 30px 25px; }
    .calc-outputs { border-left: none; border-top: 1px solid var(--border-color); }
    .friendly-formula-math { flex-direction: column; align-items: flex-start; gap: 5px; }
    .math-operator { display: none; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Algorytm wyceny robocizny ogrzewania podłogowego 2026",
    "description": "Profesjonalny algorytm obliczania kosztów montażu podłogówki. Zestawienie krok po kroku oraz interaktywny kalkulator inżynierski.",
    "license": "https://projekt-ogrzewania.pl/",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": { "@type": "Organization", "name": "Projekt-Ogrzewania.pl" }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Inżynierski Kalkulator Robocizny Podłogówki",
    "applicationCategory": "CalculatorApplication",
    "license": "https://projekt-ogrzewania.pl/",
    "operatingSystem": "All",
    "description": "Narzędzie do precyzyjnego wyliczania kosztów wykonawczych instalacji grzewczych w oparciu o algorytm netto/brutto i współczynniki skomplikowania."
  }
]
</script>

<div class="premium-calc-container" id="main-engineer-app">
    
    <div class="calc-intro-section">
        <h2>Algorytm wyceny i kalkulacji kosztów robocizny</h2>
        <p class="calc-intro-text">Wycena instalacji to nie zgadywanka z metrażu budynku. Opieram ją zawsze o precyzyjny wzór inżynierski, który uwzględnia wszystkie zmienne układu.</p>
        
        <div class="friendly-formula-box">
            <div class="friendly-formula-title">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line></svg>
                Wzór na ostateczny koszt
            </div>
            
            <div class="friendly-formula-math">
                <span class="math-badge"><strong>Całkowita Robocizna</strong></span> 
                <span class="math-operator">=</span> 
                <span class="math-badge">Σ (Metraż × Stawka)</span> 
                <span class="math-operator">+</span> 
                <span class="math-badge">Rozdzielacz</span> 
                <span class="math-operator">+</span> 
                <span class="math-badge">Próba ciśnieniowa</span>
            </div>
            
            <div class="math-explanation">
                <strong>Jak to czytać?</strong> Zamiast strzelać stawką w ciemno, sumujemy (Σ) koszty ułożenia pętli dla poszczególnych stref (w zależności od gęstości rur), a do tego dodajemy stałe koszty montażu rozdzielacza i wykonania udokumentowanej próby szczelności.
            </div>
        </div>

        <div class="stepper-logic">
            <div class="step-item active">
                <div class="step-top">
                    <div class="step-num">1</div>
                    <div class="step-title">Wyznaczenie powierzchni netto</div>
                    <svg class="step-toggle-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
                <div class="step-body">
                    Odejmujemy powierzchnie pod stałą zabudową, taką jak wyspy kuchenne, wanny czy szafy wnękowe. Pod nimi nie układamy rur grzewczych, więc nie płacisz za ich montaż.
                    <br><span class="step-formula-tag">A_netto = Metraż całkowity – Zabudowa</span>
                </div>
            </div>
            <div class="step-item">
                <div class="step-top">
                    <div class="step-num">2</div>
                    <div class="step-title">Obliczanie długości rur i pętli</div>
                    <svg class="step-toggle-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
                <div class="step-body">
                    Przy standardowym rozstawie 15 cm mnożymy metraż netto przez współczynnik zagęszczenia (6,7). Całość dzielimy na pętle grzewcze, z których żadna nie powinna przekraczać 85-100 mb.
                    <br><span class="step-formula-tag">Liczba pętli = (A_netto × 6,7 × 1,05) / 85 mb</span>
                </div>
            </div>
            <div class="step-item">
                <div class="step-top">
                    <div class="step-num">3</div>
                    <div class="step-title">Korekta o stopień skomplikowania</div>
                    <svg class="step-toggle-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
                <div class="step-body">
                    Jeśli na 100 m² przypada więcej niż 5 oddzielnych pomieszczeń, doliczamy współczynnik skomplikowania (1,15) za utrudniony montaż, liczne dylatacje przyścienne i ciasne podejścia.
                </div>
            </div>
        </div>
    </div>

    <div class="calc-main-header">
        <h3>Interaktywny Kalkulator Robocizny 2026</h3>
    </div>
    
    <div class="calc-workspace">
        <div class="calc-inputs">
            <div class="input-group">
                <div class="input-label"><span>Powierzchnia całkowita</span> <span class="input-val-box"><span id="lblTotal">140</span> m²</span></div>
                <input type="range" id="rngTotal" class="range-input" min="50" max="250" value="140">
            </div>
            <div class="input-group">
                <div class="input-label"><span>Powierzchnia pod zabudowę</span> <span class="input-val-box"><span id="lblBuild">15</span> m²</span></div>
                <input type="range" id="rngBuild" class="range-input" min="0" max="50" value="15">
            </div>
            <div class="input-group">
                <div class="input-label"><span>Liczba pomieszczeń</span> <span class="input-val-box"><span id="lblRooms">6</span> szt.</span></div>
                <input type="range" id="rngRooms" class="range-input" min="2" max="15" value="6">
            </div>
            <div class="input-group" style="margin-bottom: 0;">
                <div class="input-label"><span>Rozstaw rur (Większość domu)</span></div>
                <div class="selector-group" id="densityPick">
                    <button class="selector-btn" data-density="10" data-rate="42">Co 10 cm</button>
                    <button class="selector-btn active" data-density="6.7" data-rate="35">Co 15 cm</button>
                </div>
            </div>
        </div>

        <div class="calc-outputs">
            <div class="res-card">
                <div class="res-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><path d="M3 9h18"></path><path d="M9 21V9"></path></svg></div>
                <div class="res-info">
                    <span class="res-lbl">Powierzchnia Netto</span>
                    <span class="res-val" id="resNet">125 m²</span>
                </div>
            </div>
            <div class="res-card">
                <div class="res-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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></svg></div>
                <div class="res-info">
                    <span class="res-lbl">Długość rur / Obwody</span>
                    <span class="res-val" id="resPipe">879 mb / 11 szt.</span>
                </div>
            </div>
            <div class="res-card total-card">
                <div class="res-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="12" y1="1" x2="12" y2="23"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg></div>
                <div class="res-info">
                    <span class="res-lbl">Suma za robociznę</span>
                    <span class="res-val" id="resTotal">5 675 <span>zł</span></span>
                </div>
            </div>
        </div>
    </div>

    <div class="calc-cta-footer">
        <h4>Projekt eliminuje błędy wyceny i awarie.</h4>
        <p>Brak projektu instalacji powoduje zgadywanie przepływów, zaniżanie pierwotnych wycen i późniejsze kosztowne aneksowanie umów z instalatorami. Zabezpiecz się przed nieuczciwymi wykonawcami.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cta-btn">
            <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="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>
            Zamów Profesjonalny Projekt
        </a>
    </div>

    <noscript>
        <div style="padding: 20px 50px; background: #f8fafc; border-top: 1px solid #e2e8f0;">
            <p><strong>Zależności kosztowe:</strong> Rozstaw 15 cm to standardowa stawka rynkowa (ok. 35 zł/m²), z kolei rozstaw 10 cm, ze względu na większą gęstość i trudność układania rury, kosztuje ok. 42 zł/m².</p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- STEPPER LOGIC ---
    const steps = document.querySelectorAll('.step-item');
    steps.forEach(s => {
        s.addEventListener('click', () => {
            steps.forEach(x => { if (x !== s) x.classList.remove('active'); });
            s.classList.toggle('active');
        });
    });

    // --- CALC LOGIC ---
    const rngT = document.getElementById('rngTotal'), rngB = document.getElementById('rngBuild'), rngR = document.getElementById('rngRooms');
    const lblT = document.getElementById('lblTotal'), lblB = document.getElementById('lblBuild'), lblR = document.getElementById('lblRooms');
    const rNet = document.getElementById('resNet'), rPipe = document.getElementById('resPipe'), rTotal = document.getElementById('resTotal');
    const densityBtns = document.querySelectorAll('#densityPick .selector-btn');

    let density = 6.7, rate = 35;

    function update() {
        let total = parseInt(rngT.value), build = parseInt(rngB.value), rooms = parseInt(rngR.value);
        
        // Zabezpieczenie przed ujemnym netto
        if(build >= total) {
            build = total - 5;
            rngB.value = build;
        }

        lblT.innerText = total; lblB.innerText = build; lblR.innerText = rooms;

        const net = total - build;
        const pipe = Math.ceil(net * density * 1.05);
        const loops = Math.ceil(pipe / 85);
        
        const complexityRatio = rooms / (total / 100);
        const complexity = complexityRatio > 5 ? 1.15 : 1.0;
        
        // Koszty = (Baza) + (Podłączenie Pętli) + (Stałe: rozdzielacz + próba 750zł)
        const totalCost = Math.round((net * rate * complexity) + (loops * 50) + 750);

        rNet.innerText = net + ' m²';
        rPipe.innerText = pipe + ' mb / ' + loops + ' szt.';
        rTotal.innerHTML = new Intl.NumberFormat('pl-PL').format(totalCost) + ' <span>zł</span>';
    }

    [rngT, rngB, rngR].forEach(el => el.addEventListener('input', update));
    
    densityBtns.forEach(btn => {
        btn.addEventListener('click', () => {
            densityBtns.forEach(b => b.classList.remove('active'));
            btn.classList.add('active');
            density = parseFloat(btn.dataset.density);
            rate = parseInt(btn.dataset.rate);
            update();
        });
    });

    update(); // Init

    // --- DOMAIN LOCK ---
    const d = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(d)) {
        document.getElementById('main-engineer-app').innerHTML = '<div style="padding: 80px 20px; text-align: center; background: #fff7ed; color: #ea580c; font-weight: 800; border-radius: 24px; font-size: 18px;">🔒 Treść chroniona prawem autorskim serwisu Projekt-Ogrzewania.pl. Prosimy o usunięcie kodu z tej domeny.</div>';
    }
});
</script>



<style>
:root {
    --cs-primary: #0f172a;
    --cs-accent: #2563eb;
    --cs-step1: #16a34a; /* Kolor zielony dla kosztorysu */
    --cs-step2: #ea580c; /* Kolor pomarańczowy dla hydrauliki */
    --cs-bg: #f8fafc;
    --cs-border: #e2e8f0;
    --cs-text: #475569;
}

.case-study-module {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--cs-border);
    overflow: hidden;
}

/* ================= HEADER I METRYCZKA ================= */
.cs-header-wrapper {
    background: var(--cs-primary);
    color: #ffffff;
    padding: 40px 50px;
    position: relative;
    overflow: hidden;
}

.cs-header-wrapper::after {
    content: '';
    position: absolute;
    top: -50px;
    right: -50px;
    width: 250px;
    height: 250px;
    background: radial-gradient(circle, rgba(37, 99, 235, 0.3) 0%, rgba(255,255,255,0) 70%);
    border-radius: 50%;
}

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

.cs-header-wrapper h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 25px 0;
    line-height: 1.3;
    color: #ffffff;
    position: relative;
    z-index: 2;
}

.cs-stats-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    position: relative;
    z-index: 2;
}

.cs-stat-box {
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 15px;
    border-radius: 12px;
    backdrop-filter: blur(4px);
}

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

.cs-stat-value {
    display: block;
    font-size: 16px;
    font-weight: 900;
    color: #ffffff;
}

/* ================= OPIS WYZWANIA ================= */
.cs-content-section {
    padding: 40px 50px 30px 50px;
    background: #ffffff;
}

.cs-lead-text {
    font-size: 16px;
    line-height: 1.8;
    color: var(--cs-text);
    margin: 0 0 20px 0;
}

.cs-lead-text strong {
    color: var(--cs-primary);
}

.cs-lead-text a {
    color: var(--cs-accent);
    text-decoration: underline;
    font-weight: 600;
}

/* Bloki z wyliczeniami w tekscie */
.cs-calc-block {
    background: #f8fafc;
    border: 1px solid var(--cs-border);
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 25px;
}

.cs-calc-block ul {
    margin: 0;
    padding-left: 20px;
    list-style-type: none;
}

.cs-calc-block li {
    margin-bottom: 10px;
    font-size: 15px;
    color: var(--cs-text);
    position: relative;
}

.cs-calc-block li::before {
    content: '→';
    position: absolute;
    left: -20px;
    color: var(--cs-accent);
    font-weight: bold;
}

.cs-calc-block li strong { color: var(--cs-primary); }

.cs-calc-highlight {
    background: #eff6ff;
    padding: 15px;
    border-radius: 8px;
    margin-top: 15px;
    border-left: 4px solid var(--cs-accent);
    font-size: 14px;
    color: #1e3a8a;
    font-weight: 600;
}

.cs-author-box {
    background: #f0f9ff;
    border-left: 4px solid var(--cs-accent);
    padding: 15px 20px;
    border-radius: 0 12px 12px 0;
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 10px;
}

.cs-author-photo {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid #ffffff;
    box-shadow: 0 4px 10px rgba(37, 99, 235, 0.2);
    flex-shrink: 0;
}

.cs-author-box p {
    margin: 0;
    font-size: 14px;
    color: #1e3a8a;
    line-height: 1.6;
}

/* ================= INTERAKTYWNE WYZWANIE (SPLIT CARDS) ================= */
.cs-interactive-section {
    padding: 0 50px 40px 50px;
}

.cs-split-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.cs-split-card {
    border-radius: 16px;
    padding: 25px;
    border: 2px solid var(--cs-border);
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
    background: #ffffff;
    display: flex;
    flex-direction: column;
}

.cs-split-card:not(.active) {
    opacity: 0.7;
    transform: scale(0.98);
}

.cs-split-card.step1.active {
    border-color: var(--cs-step1);
    background: #f0fdf4;
    box-shadow: 0 10px 25px rgba(22, 163, 74, 0.1);
    opacity: 1;
    transform: scale(1);
}

.cs-split-card.step2.active {
    border-color: var(--cs-step2);
    background: #fff7ed;
    box-shadow: 0 10px 25px rgba(234, 88, 12, 0.1);
    opacity: 1;
    transform: scale(1);
}

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

.cs-card-icon {
    font-size: 28px;
}

.cs-card-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--cs-primary);
    margin: 0;
}

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

.cs-card-solution {
    margin-top: 15px;
    padding-top: 15px;
    border-top: 1px dashed rgba(0,0,0,0.1);
    font-size: 14px;
    line-height: 1.6;
    display: none;
}

.cs-split-card.step1 .cs-card-solution { color: #14532d; }
.cs-split-card.step2 .cs-card-solution { color: #7c2d12; }

.cs-card-solution ul {
    margin: 0;
    padding-left: 20px;
    list-style-type: square;
}

.cs-card-solution li { margin-bottom: 8px; }
.cs-card-solution code { font-weight: 800; font-family: 'Inter', sans-serif; background: rgba(255,255,255,0.5); padding: 2px 6px; border-radius: 4px;}

.cs-split-card.active .cs-card-solution {
    display: block;
    animation: csFadeIn 0.4s ease forwards;
}

/* ================= CTA ================= */
.cs-cta-box {
    background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
    padding: 35px 50px;
    text-align: center;
    border-top: 1px solid var(--cs-border);
}

.cs-cta-box h4 {
    font-size: 20px;
    font-weight: 900;
    color: var(--cs-primary);
    margin: 0 0 10px 0;
}

.cs-cta-box p {
    font-size: 15px;
    color: #475569;
    margin: 0 auto 20px auto;
    max-width: 600px;
}

.cs-cta-button {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--cs-accent);
    color: #ffffff;
    padding: 16px 32px;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 800;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: all 0.3s;
    box-shadow: 0 10px 20px -5px rgba(37, 99, 235, 0.4);
}

.cs-cta-button:hover {
    background: #1e3a8a;
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(37, 99, 235, 0.5);
    color: #ffffff;
}

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

@media (max-width: 768px) {
    .cs-header-wrapper { padding: 35px 25px; }
    .cs-stats-grid { grid-template-columns: 1fr 1fr; }
    .cs-content-section { padding: 30px 25px 20px 25px; }
    .cs-interactive-section { padding: 0 25px 30px 25px; }
    .cs-cta-box { padding: 30px 25px; }
    .cs-split-container { grid-template-columns: 1fr; }
}
</style>

<div class="case-study-module" id="app-calc-case-study">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Kalkulacja Robocizny i Przepływów: Studium Przypadku",
        "description": "Szczegółowa analiza kosztów robocizny ogrzewania podłogowego oraz inżynieryjne wyliczenia nastaw rotametrów dla domu o powierzchni 140 m².",
        "applicationCategory": "EducationalApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/",
        "license": "https://projekt-ogrzewania.pl/",
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Wycena robocizny w podziale na strefy grzewcze",
          "Obliczenia błędów wycen zryczałtowanych",
          "Inżynierskie obliczenia przepływu i nastawy rotametrów"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Realne dane z projektu instalacji (Luty 2026)",
        "description": "Zestawienie parametrów projektowych, finansowych i hydraulicznych użytych do analizy błędów wykonawczych.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Koszt całkowity (rzeczywisty)",
            "value": "10 524 PLN"
          },
          {
            "@type": "PropertyValue",
            "name": "Błąd wyceny ryczałtowej (65 zł/m²)",
            "value": "-13.5%"
          },
          {
            "@type": "PropertyValue",
            "name": "Moc instalacji (Q)",
            "value": "11.5 kW"
          },
          {
            "@type": "PropertyValue",
            "name": "Nastawa rotametru (na pętlę)",
            "value": "3.3 l/min"
          }
        ],
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski"
        }
      }
    ]
    </script>

    <div class="cs-header-wrapper">
        <div class="cs-badge">Kalkulacja z Projektu</div>
        <h2>Jak policzyć całkowity koszt robocizny ogrzewania podłogowego</h2>
        <div class="cs-stats-grid">
            <div class="cs-stat-box">
                <span class="cs-stat-label">Dom pow. netto</span>
                <span class="cs-stat-value">140 m²</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Koszt całkowity</span>
                <span class="cs-stat-value">10 524 zł</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Błąd wyceny &#8222;na oko&#8221;</span>
                <span class="cs-stat-value" style="color: #fca5a5;">-13,5%</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Nastawa rotametru</span>
                <span class="cs-stat-value">3,3 l/min</span>
            </div>
        </div>
    </div>

    <div class="cs-content-section">
        <p class="cs-lead-text">Całkowity koszt robocizny liczysz <strong>z projektu, a nie z metrażu budynku</strong>. Wykonawcy, którzy dają jedną uśrednioną cenę, niemal zawsze dopisują później aneksy do umowy. Poniżej przedstawiam konkretny przykład z lutego 2026 roku (Dom Pana Marka), oparty na autorskim wzorze: <strong>K_rob = Σ (A_i × C_Ti) + K_rozdz + K_proba</strong>.</p>
        
        <div class="cs-calc-block">
            <ul>
                <li><strong>A1 (Strefy otwarte):</strong> 92 m², rozstaw 150 mm, stawka 65 zł/m² <strong>→ 5 980 zł</strong></li>
                <li><strong>A2 (Łazienki, okna):</strong> 28 m², rozstaw zagęszczony 100 mm, stawka 78 zł/m² <strong>→ 2 184 zł</strong></li>
                <li><strong>A3 (Sypialnie):</strong> 20 m², rozstaw 200 mm, stawka 58 zł/m² <strong>→ 1 160 zł</strong></li>
                <li><strong>K_rozdz (Rozdzielacze):</strong> 2 szt. × 450 zł <strong>→ 900 zł</strong></li>
                <li><strong>K_proba (Szczelność):</strong> Próba 6 bar + protokół <strong>→ 300 zł</strong></li>
            </ul>
            <div class="cs-calc-highlight">
                Razem: 10 524 zł, czyli średnio 75,2 zł/m². Gdyby instalator przyjął ryczałtem &#8222;atrakcyjne&#8221; 65 zł/m² dla całości, wyceniłby to na 9 100 zł. Różnica? Ponad 13% błędu, który odbiłby się na jakości materiałów lub aneksach.
            </div>
        </div>

        <div class="cs-author-box">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="cs-author-photo" loading="lazy">
            <p><strong>Robert Kucharski:</strong> &#8222;Rozkładamy koszty i hydraulikę na czynniki pierwsze. Kliknij w karty poniżej, aby zobaczyć jak krok po kroku tworzymy algorytm wyceny i – co najważniejsze – jak liczymy przepływy do precyzyjnego ustawienia pętli.&#8221;</p>
        </div>
    </div>

    <div class="cs-interactive-section">
        <div class="cs-split-container">
            
            <div class="cs-split-card step1 active" id="cs-btn-step1">
                <div class="cs-card-header">
                    <span class="cs-card-icon">📋</span>
                    <h3 class="cs-card-title">7 Kroków Kalkulacji</h3>
                </div>
                <p class="cs-card-desc">Nie zgaduj. Policz w 7 krokach, dokładnie tak, jak liczę to w biurze dla każdego zlecenia.</p>
                <div class="cs-card-solution">
                    <ul>
                        <li><strong>Krok 1:</strong> Policz zapotrzebowanie. <code>Q_obl = Q_OZC × 1,15</code>. Dla 140 m² po OZC Q = 9,8 kW → 11,27 kW.</li>
                        <li><strong>Krok 2:</strong> Podziel na strefy. Salon 35 m², strata 2450 W → wymóg 70 W/m².</li>
                        <li><strong>Krok 3:</strong> Dobierz rozstaw. Z tabeli dla q 70 W/m² i ΔϑH 12K → rozstaw 150 mm.</li>
                        <li><strong>Krok 4:</strong> Policz długość rury. <code>L = A / T × 1,1</code>. Dla salonu to 257 mb.</li>
                        <li><strong>Krok 5:</strong> Podziel na pętle. Maksimum to 110 m → 257 / 110 = 2,34 → czyli 3 pętle.</li>
                        <li><strong>Krok 6:</strong> Przypisz stawkę rynkową. Dla rozstawu 150 mm (65 zł/m²) salon kosztuje nas 2 275 zł.</li>
                        <li><strong>Krok 7:</strong> Dodaj stałe. Rozdzielacz (450 zł), dojazd (120 zł), próba (300 zł). Suma to zwykle widełki 9 500–12 500 zł.</li>
                    </ul>
                </div>
            </div>

            <div class="cs-split-card step2" id="cs-btn-step2">
                <div class="cs-card-header">
                    <span class="cs-card-icon">💧</span>
                    <h3 class="cs-card-title">Obliczenia Przepływów</h3>
                </div>
                <p class="cs-card-desc">Trzecie wyliczenie z projektu, które zawsze robię. To parametr, który monter ustawia w ramach robocizny, a bez projektu – po prostu zgaduje.</p>
                <div class="cs-card-solution">
                    <p style="margin-top:0;">Podstawą prawidłowo ułożonej podłogówki jest ustawienie <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrów na rozdzielaczu</a>.</p>
                    <ul>
                        <li><strong>Krok 1: Wzór bazowy.</strong> Przepływ masowy liczymy ze wzoru: <code>m = Q / (1,163 × ΔT)</code></li>
                        <li><strong>Krok 2: Całkowity zład.</strong> Przy mocy instalacji Q = 11,5 kW i zakładanym spadku temperatury ΔT = 5 K, przepływ całkowity wynosi: 11,5 / (1,163 × 5) = <strong>1,98 m³/h</strong>.</li>
                        <li><strong>Krok 3: Przepływ na rotametrze.</strong> Otrzymany wynik dzielimy na 10 pętli w domu. Daje to 0,198 m³/h na pętlę.</li>
                        <li><strong>Wynik:</strong> Po przeliczeniu jednostek, monter musi ustawić rotametr na około <strong>3,3 l/min</strong>. Dzięki temu <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompa obiegowa</a> precyzyjnie zasili każdy układ.</li>
                    </ul>
                </div>
            </div>

        </div>
    </div>

    <div class="cs-cta-box">
        <h4>Nie ryzykuj błędów monterskich i zaniżonych wycen.</h4>
        <p>Projekt ogrzewania podłogowego chroni Cię przed instalatorami, którzy narzucają jedną cenę za m², a potem domagają się dopłat. Zyskujesz pewność co do ilości rury, nastaw przepływu i wielkości rozdzielaczy.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cs-cta-button">
            <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="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>
            Zamów Profesjonalny Projekt
        </a>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (bez tagów Hx)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-calc-case-study');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 25px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">
                    <span style="font-size: 40px; display: block; margin-bottom: 10px;">🔒</span>
                    <div style="margin: 0 0 10px 0; font-size: 20px; font-weight: bold;">Studium Przypadku Chronione</div>
                    <p style="font-size: 14px; margin-bottom: 15px;">Ten panel informacyjny to autorska własność Projekt-Ogrzewania.pl.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 10px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold; font-size: 13px;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    // Logika przełączania kart Case Study
    const cardStep1 = document.getElementById('cs-btn-step1');
    const cardStep2 = document.getElementById('cs-btn-step2');

    function toggleCards(activeCard, inactiveCard) {
        activeCard.classList.add('active');
        inactiveCard.classList.remove('active');
    }

    if (cardStep1 && cardStep2) {
        cardStep1.addEventListener('click', () => toggleCards(cardStep1, cardStep2));
        cardStep2.addEventListener('click', () => toggleCards(cardStep2, cardStep1));
    }
});
</script>



<style>
:root {
    --ppm-primary: #0f172a;
    --ppm-accent: #ea580c;
    --ppm-accent-hover: #c2410c;
    --ppm-bg: #ffffff;
    --ppm-light: #fff7ed;
    --ppm-border: #fdba74;
    --ppm-text: #475569;
    --ppm-danger: #ef4444;
    --ppm-success: #10b981;
}

.premium-project-module {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--ppm-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(234, 88, 12, 0.1);
    border: 1px solid var(--ppm-border);
    overflow: hidden;
}

/* --- HEADER I TREŚĆ --- */
.ppm-header-area {
    padding: 40px 45px 30px 45px;
    background: linear-gradient(to bottom, #ffffff, var(--ppm-light));
    border-bottom: 1px solid var(--ppm-border);
}

.ppm-header-area h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--ppm-primary);
    margin: 0 0 20px 0;
    line-height: 1.3;
}

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

.ppm-text-content strong { color: var(--ppm-primary); }
.ppm-text-content a { color: var(--ppm-accent); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

/* --- SEKCJA INTERAKTYWNA (Aplikacja) --- */
.ppm-app-section {
    padding: 35px 45px;
    background: #ffffff;
}

.ppm-app-section h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--ppm-primary);
    margin: 0 0 25px 0;
    text-align: center;
}

/* Suwak (Slider) */
.ppm-slider-container {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 25px;
    margin-bottom: 30px;
}

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

.ppm-slider-header h4 {
    margin: 0;
    font-size: 16px;
    font-weight: 700;
    color: var(--ppm-primary);
}

.ppm-slider-value {
    font-size: 22px;
    font-weight: 900;
    color: var(--ppm-accent);
}

.ppm-range-input {
    width: 100%;
    accent-color: var(--ppm-accent);
    cursor: pointer;
}

.ppm-result-box {
    margin-top: 20px;
    background: #eff6ff;
    border-left: 4px solid #3b82f6;
    padding: 15px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 15px;
}

.ppm-result-box svg { flex-shrink: 0; color: #3b82f6; }
.ppm-result-text { font-size: 14px; color: #1e3a8a; line-height: 1.5; margin: 0; }
.ppm-result-text strong { font-size: 18px; display: block; margin-top: 5px; }

/* Przełącznik (Toggle) */
.ppm-toggle-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}

.ppm-toggle-switch {
    display: inline-flex;
    background: #e2e8f0;
    border-radius: 50px;
    padding: 4px;
    position: relative;
    cursor: pointer;
    user-select: none;
}

.ppm-toggle-option {
    padding: 10px 24px;
    font-size: 14px;
    font-weight: 700;
    color: #64748b;
    position: relative;
    z-index: 2;
    transition: color 0.3s;
}

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

.ppm-toggle-container.active-right .ppm-toggle-slider {
    transform: translateX(100%);
}

.ppm-toggle-container.active-right .ppm-toggle-option:nth-child(1) { color: #64748b; }
.ppm-toggle-container.active-right .ppm-toggle-option:nth-child(2) { color: var(--ppm-primary); }
.ppm-toggle-container:not(.active-right) .ppm-toggle-option:nth-child(1) { color: var(--ppm-primary); }

.ppm-scenario-card {
    width: 100%;
    padding: 20px;
    border-radius: 16px;
    border: 2px solid transparent;
    transition: all 0.3s;
}

.ppm-scenario-bad {
    background: #fef2f2;
    border-color: #fca5a5;
    display: block;
}

.ppm-scenario-good {
    background: #ecfdf5;
    border-color: #6ee7b7;
    display: none;
}

.ppm-toggle-container.active-right .ppm-scenario-bad { display: none; }
.ppm-toggle-container.active-right .ppm-scenario-good { display: block; animation: fadeIn 0.4s; }

.ppm-scenario-card h4 { margin: 0 0 10px 0; font-size: 16px; display: flex; align-items: center; gap: 8px; }
.ppm-scenario-bad h4 { color: #991b1b; }
.ppm-scenario-good h4 { color: #065f46; }

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

/* --- CTA --- */
.ppm-cta-section {
    background: var(--ppm-primary);
    padding: 40px 45px;
    text-align: center;
}

.ppm-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--ppm-accent);
    color: #ffffff;
    padding: 16px 36px;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 800;
    text-decoration: none;
    text-transform: uppercase;
    transition: all 0.3s;
    box-shadow: 0 10px 20px rgba(234, 88, 12, 0.3);
}

.ppm-btn:hover {
    background: var(--ppm-accent-hover);
    transform: translateY(-3px);
    box-shadow: 0 15px 25px rgba(234, 88, 12, 0.4);
}

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

@media (max-width: 768px) {
    .ppm-header-area, .ppm-app-section, .ppm-cta-section { padding: 30px 25px; }
    .ppm-toggle-switch { width: 100%; display: flex; }
    .ppm-toggle-option { flex: 1; text-align: center; padding: 10px 0; }
    .ppm-btn { width: 100%; padding: 16px 20px; font-size: 14px; }
}
</style>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Article",
      "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#article-costs",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/"
      },
      "mainEntity": {
        "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#app-ozc-simulator"
      },
      "headline": "Jak projekt ogrzewania podłogowego wpływa na realne koszty?",
      "description": "Profesjonalny projekt OZC redukuje koszty robocizny o 10-15%. Kalkulator doboru pompy obiegowej i wytyczne dotyczące dylatacji (norma PN-EN 1264).",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "keywords": [
        "projekt ogrzewania podłogowego koszty",
        "obliczenia OZC podłogówka",
        "dylatacje ogrzewanie podłogowe norma",
        "dobór pompy obiegowej podłogówka",
        "oszczędności na robociźnie z projektem"
      ],
      "author": {
        "@type": "Person",
        "name": "Robert Kucharski",
        "url": "https://projekt-ogrzewania.pl/author/admin3399/",
        "sameAs": [
          "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
          "https://www.linkedin.com/in/robert-kucharski-38069b48/"
        ]
      },
      "publisher": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl",
        "logo": {
          "@type": "ImageObject",
          "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
        }
      },
      "datePublished": "2026-05-03",
      "dateModified": "2026-05-03",
      "about": [
        { "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#dataset-ozc" },
        { "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#app-ozc-simulator" }
      ]
    },
    {
      "@type": "Dataset",
      "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#dataset-ozc",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#article-costs" },
      "name": "Wpływ obliczeń OZC i dylatacji na koszty instalacji podłogowej",
      "description": "Zestawienie twardych danych inżynieryjnych: redukcja kosztów, wymiary pól dylatacyjnych i wymagania przepływu masowego.",
      "measurementTechnique": "Analiza normy PN-EN 1264 oraz inżynierskie obliczenia hydrauliczne dla pompy obiegowej (wzór Q / 1.163 * ΔT)",
      "license": "https://projekt-ogrzewania.pl/",
      "creator": {
        "@type": "Person",
        "name": "Robert Kucharski"
      },
      "variableMeasured": [
        { "@type": "PropertyValue", "name": "Redukcja kosztów robocizny (z projektem OZC)", "value": "10-15%" },
        { "@type": "PropertyValue", "name": "Maksymalne pole bez dylatacji", "value": "40 m² (lub bok 8 m)" },
        { "@type": "PropertyValue", "name": "Wymagany przepływ (dla 11.5 kW i ΔT 5K)", "value": "1.98 m³/h" }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#app-ozc-simulator",
      "name": "Symulator Oszczędności i Przepływów Hydraulicznych",
      "applicationCategory": "EducationalApplication",
      "operatingSystem": "All",
      "browserRequirements": "Requires JavaScript",
      "description": "Interaktywne narzędzie obliczające wymagany przepływ na pompie obiegowej na podstawie mocy budynku oraz obrazujące ryzyko braku dylatacji.",
      "url": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/"
    }
  ]
}
</script>

<div class="premium-project-module" id="ppm-main-app">
    
    <div class="ppm-header-area">
        <h2>Jak projekt ogrzewania podłogowego wpływa na realne koszty?</h2>
        <p class="ppm-text-content">Profesjonalny projekt wykonany w oparciu o dokładne <a href="https://projekt-ogrzewania.pl/ozc-obliczenie-zapotrzebowania-cieplnego-budynku/">obliczenia OZC</a> (Obciążenie Cieplne Budynku) pozwala <strong>zredukować koszty robocizny o 10–15%</strong> dzięki całkowitemu wyeliminowaniu błędów instalacyjnych na budowie.</p>
        
        <p class="ppm-text-content">Projektant z uprawnieniami precyzyjnie wyznacza miejsca przejść. Zgodnie z normą budowlaną, pole grzejne bez dylatacji <strong>nie powinno przekraczać 40 m² lub długości boku 8 m</strong>. Instalator pracujący bez projektu nierzadko układa rury „na oko”, ignorując naprężenia termiczne, co ostatecznie prowadzi do pękania jastrychu i nieodwracalnych uszkodzeń drogich okładzin ceramicznych.</p>
    </div>

    <div class="ppm-app-section">
        <h3>Optymalizacja pompy i dylatacje</h3>
        
        <div class="ppm-slider-container">
            <div class="ppm-slider-header">
                <h4>Moc Twojej instalacji (Q):</h4>
                <span class="ppm-slider-value" id="ppm-power-val">11.5 kW</span>
            </div>
            <input type="range" min="4" max="25" step="0.5" value="11.5" class="ppm-range-input" id="ppm-power-slider">
            
            <div class="ppm-result-box">
                <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="m17 5-5-3-5 3"></path><path d="m19 19-7 3-7-3"></path><path d="M2 12h20"></path></svg>
                <p class="ppm-result-text">
                    Wymagany przepływ pompy obiegowej (przy ΔT = 5K):
                    <strong id="ppm-flow-result">1.98 m³/h</strong>
                </p>
            </div>
            <p style="font-size: 13px; color: #64748b; margin: 15px 0 0 0;">Znajomość tej wartości z projektu zapobiega przewymiarowaniu pompy i nadmiernemu zużyciu prądu.</p>
        </div>

        <div class="ppm-toggle-container" id="ppm-scenario-toggle">
            <div class="ppm-toggle-switch">
                <div class="ppm-toggle-slider"></div>
                <div class="ppm-toggle-option">Montaż &#8222;Na Oko&#8221;</div>
                <div class="ppm-toggle-option">Profesjonalny Projekt OZC</div>
            </div>

            <div class="ppm-scenario-card ppm-scenario-bad">
                <h4>
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                    Wysokie ryzyko błędów
                </h4>
                <p>Brak wyliczeń hydraulicznych powoduje losowy dobór pompy (często za dużej). Pętle układane są bez poszanowania normy 40 m² / 8 mb, co skutkuje brakiem dylatacji w kluczowych miejscach wylewki. <strong>Efekt:</strong> Wyższe koszty materiału, pękające płytki i brak gwarancji na posadzkę.</p>
            </div>

            <div class="ppm-scenario-card ppm-scenario-good">
                <h4>
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                    Oszczędność i Bezpieczeństwo
                </h4>
                <p>Zmniejszenie kosztów robocizny o <strong>10–15%</strong>. Instalator otrzymuje gotowy rzut z wyznaczonymi strefami dylatacyjnymi. Precyzyjnie dobrana pompa obiegowa pracuje na optymalnych krzywych charakterystyki, co drastycznie obniża rachunki za prąd w skali całego roku.</p>
            </div>
        </div>

    </div>

    <div class="ppm-cta-section">
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="ppm-btn">
            <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="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>
            Zamów Projekt z OZC i zredukuj koszty
        </a>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- Ochrona Domeny (Brak tagów Hx) ---
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        document.getElementById('ppm-main-app').innerHTML = `
            <div style="padding: 40px 25px; text-align: center; background: #fee2e2; border: 2px solid #dc2626; border-radius: 24px;">
                <div style="font-size: 32px; margin-bottom: 15px;">🔒</div>
                <div style="font-size: 18px; font-weight: bold; color: #dc2626; margin-bottom: 10px;">Aplikacja chroniona prawami autorskimi</div>
                <div style="font-size: 14px; color: #7f1d1d; margin-bottom: 15px;">Ten interaktywny symulator jest własnością Projekt-Ogrzewania.pl.</div>
                <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 10px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold; font-size: 13px;">ZOBACZ ORYGINAŁ</a>
            </div>
        `;
        return;
    }

    // --- Logika Suwaka (Obliczenia Hydrauliczne) ---
    const powerSlider = document.getElementById('ppm-power-slider');
    const powerValDisplay = document.getElementById('ppm-power-val');
    const flowResultDisplay = document.getElementById('ppm-flow-result');
    
    // Wzór: m = Q / (c_w * dT), gdzie c_w dla wody to ok. 1.163 kWh/(m3*K), zakładamy dT = 5K
    // m = Q / (1.163 * 5) = Q / 5.815
    const calculateFlow = (powerKw) => {
        return (powerKw / 5.815).toFixed(2);
    };

    powerSlider.addEventListener('input', (e) => {
        const power = parseFloat(e.target.value);
        powerValDisplay.textContent = power.toFixed(1) + ' kW';
        flowResultDisplay.textContent = calculateFlow(power) + ' m³/h';
    });

    // --- Logika Przełącznika Scenariuszy ---
    const toggleContainer = document.getElementById('ppm-scenario-toggle');
    const toggleSwitch = toggleContainer.querySelector('.ppm-toggle-switch');
    
    toggleSwitch.addEventListener('click', () => {
        toggleContainer.classList.toggle('active-right');
    });
});
</script>



<style>
:root {
    --faq-primary: #0f172a;
    --faq-accent: #ea580c;
    --faq-bg: #ffffff;
    --faq-light: #fff7ed;
    --faq-border: #e2e8f0;
    --faq-text: #475569;
}

.premium-faq-module {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--faq-bg);
    border-radius: 24px;
    box-shadow: 0 15px 35px -10px rgba(234, 88, 12, 0.08);
    border: 1px solid #fdba74;
    overflow: hidden;
}

.faq-header-area {
    padding: 40px 45px 30px 45px;
    background: linear-gradient(to bottom, #ffffff, var(--faq-light));
    border-bottom: 1px solid #fdba74;
    text-align: center;
}

.faq-header-area h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--faq-primary);
    margin: 0 0 10px 0;
    line-height: 1.3;
}

.faq-header-area p {
    font-size: 16px;
    color: var(--faq-text);
    margin: 0;
}

.faq-accordion-container {
    padding: 30px 45px 40px 45px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.faq-item {
    border: 2px solid var(--faq-border);
    border-radius: 16px;
    background: #ffffff;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    overflow: hidden;
}

.faq-item:hover {
    border-color: #fdba74;
    box-shadow: 0 5px 15px rgba(234, 88, 12, 0.05);
}

.faq-item.active {
    border-color: var(--faq-accent);
    background: #fffcf9;
}

.faq-question {
    padding: 20px 25px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    user-select: none;
    gap: 15px;
}

.faq-question h3 {
    font-size: 16px;
    font-weight: 800;
    color: var(--faq-primary);
    margin: 0;
    line-height: 1.5;
    flex: 1;
}

/* Ikona Toggle (Plus / Minus) */
.faq-toggle-icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.3s ease;
    color: var(--faq-primary);
}

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

.faq-answer {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: all 0.4s ease-out;
    padding: 0 25px;
}

.faq-item.active .faq-answer {
    max-height: 350px;
    opacity: 1;
    padding: 0 25px 25px 25px;
}

.faq-answer p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: var(--faq-text);
    border-top: 1px dashed #e2e8f0;
    padding-top: 20px;
}

.faq-answer a {
    color: var(--faq-accent);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (max-width: 768px) {
    .faq-header-area { padding: 35px 25px 25px 25px; }
    .faq-accordion-container { padding: 20px 25px 35px 25px; }
    .faq-question { padding: 18px 20px; }
    .faq-question h3 { font-size: 15px; }
    .faq-item.active .faq-answer { padding: 0 20px 20px 20px; }
}
</style>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Article",
      "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#article",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/"
      },
      "headline": "Aktualne Ceny Robocizny Ogrzewania Podłogowego – FAQ",
      "description": "Najczęstsze pytania inwestorów dotyczące wycen instalacji HVAC. Sprawdź koszty montażu rozdzielaczy i styropianu w 2026 roku.",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "keywords": [
        "podłogówka cena za m2 robocizny",
        "koszt ogrzewania podłogowego",
        "ile kosztuje podłogówka",
        "robocizna podłogówki 2026",
        "wycena instalacji grzewczej"
      ],
      "author": {
        "@type": "Person",
        "name": "Robert Kucharski",
        "url": "https://projekt-ogrzewania.pl/author/admin3399/",
        "sameAs": [
          "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
          "https://www.linkedin.com/in/robert-kucharski-38069b48/"
        ]
      },
      "publisher": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl",
        "logo": {
          "@type": "ImageObject",
          "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
        }
      },
      "datePublished": "2025-01-07",
      "dateModified": "2026-05-03"
    },
    {
      "@type": "Dataset",
      "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#dataset-faq",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#article" },
      "name": "Zestawienie kosztów dodatkowych HVAC 2026",
      "description": "Szczegółowa baza wiedzy o stawkach robocizny za montaż rozdzielaczy i izolacji.",
      "measurementTechnique": "Analiza rynkowa ofert firm instalacyjnych oraz audyt rzeczywistych realizacji inwestycji w Polsce w 2026 roku",
      "license": "https://projekt-ogrzewania.pl/",
      "creator": { "@id": "https://projekt-ogrzewania.pl/author/admin3399/" },
      "variableMeasured": [
        { "@type": "PropertyValue", "name": "Montaż rozdzielacza", "value": "400-700 PLN" },
        { "@type": "PropertyValue", "name": "Stawka robocizny ze styropianem", "value": "32-45 PLN/m²" }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#faq-section",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Czy cena robocizny podłogówki obejmuje ułożenie styropianu?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Tak, w profesjonalnych ofertach stawka od 32 do 45 zł/m² obejmuje rozłożenie izolacji EPS, folii systemowej oraz rur."
          }
        },
        {
          "@type": "Question",
          "name": "Ile kosztuje robocizna za montaż rozdzielacza?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Montaż i podłączenie rozdzielacza to koszt od 400 do 700 zł."
          }
        },
        {
          "@type": "Question",
          "name": "Czy w 2026 roku cena robocizny różni się w zależności od województwa?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Tak, analizy rynku instalacyjnego pokazują, że różnice regionalne wynoszą do 20%. Najwyższe stawki dominują w województwach mazowieckim, wielkopolskim i dolnośląskim, a niższe np. w podkarpackim czy lubelskim."
          }
        },
        {
          "@type": "Question",
          "name": "Jak przygotowanie podłoża wpływa na koszt ułożenia m² podłogówki?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nierówna wylewka chudziakowa wymusza dodatkowe prace. Konieczność wcześniejszego wylania warstwy samopoziomującej czy szlifowania podłoża podnosi stawkę robocizny o średnio 10-15 zł na metrze kwadratowym."
          }
        },
        {
          "@type": "Question",
          "name": "Czy robocizna obejmuje wykonanie próby ciśnieniowej instalacji?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Tak, certyfikowana ekipa instalacyjna zawsze wlicza próbę szczelności (pod ciśnieniem) w standardową stawkę. Jest to wymóg normy PN-EN 1264 i podstawa gwarancji."
          }
        }
      ]
    }
  ]
}
</script>

<div class="premium-faq-module" id="faq-app-container">
    <div class="faq-header-area">
        <h2>FAQ – Najczęściej zadawane pytania</h2>
        <p>Rozwiewamy wątpliwości dotyczące wycen i ukrytych kosztów inwestycji.</p>
    </div>

    <div class="faq-accordion-container">
        <div class="faq-item">
            <div class="faq-question">
                <h3>Czy cena robocizny podłogówki obejmuje ułożenie styropianu?</h3>
                <div class="faq-toggle-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </div>
            <div class="faq-answer">
                <p>Tak, rzetelna stawka robocizny obejmuje <strong>rozłożenie izolacji termicznej (EPS)</strong>, folii systemowej oraz właściwy montaż rur. Unikaj ekip, które doliczają każdą warstwę styropianu osobno.</p>
            </div>
        </div>

        <div class="faq-item">
            <div class="faq-question">
                <h3>Ile kosztuje robocizna za montaż rozdzielacza do podłogówki?</h3>
                <div class="faq-toggle-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </div>
            <div class="faq-answer">
                <p>Montaż, usadowienie szafki i podłączenie jednego <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielacza do podłogówki</a> to koszt rzędu <strong>od 400 do 700 zł</strong>, zależnie od liczby sekcji.</p>
            </div>
        </div>

        <div class="faq-item">
            <div class="faq-question">
                <h3>Czy w 2026 roku cena robocizny różni się w zależności od województwa?</h3>
                <div class="faq-toggle-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </div>
            <div class="faq-answer">
                <p>Tak, analizy rynku instalacyjnego pokazują, że różnice regionalne wynoszą do 20%. Najwyższe stawki wykonawcze dominują w województwach mazowieckim, wielkopolskim i dolnośląskim. Zauważalnie niższe wyceny można uzyskać od ekip działających w regionach wschodnich i południowych, np. w podkarpackim czy lubelskim, zachowując przy tym ten sam standard wykonania.</p>
            </div>
        </div>

        <div class="faq-item">
            <div class="faq-question">
                <h3>Jak przygotowanie podłoża wpływa na koszt ułożenia m² podłogówki?</h3>
                <div class="faq-toggle-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </div>
            <div class="faq-answer">
                <p>Nierówna wylewka chudziakowa wymusza dodatkowe prace. Konieczność wcześniejszego wylania warstwy samopoziomującej lub żmudnego docinania pierwszych warstw styropianu podnosi stawkę robocizny o średnio <strong>10 do 15 zł na metrze kwadratowym</strong>.</p>
            </div>
        </div>

        <div class="faq-item">
            <div class="faq-question">
                <h3>Czy robocizna obejmuje wykonanie próby ciśnieniowej instalacji?</h3>
                <div class="faq-toggle-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </div>
            <div class="faq-answer">
                <p>Zdecydowanie tak. Zgodnie z normą PN-EN 1264, certyfikowana ekipa instalacyjna zawsze ma wliczoną próbę szczelności w standardową stawkę za m² lub w kosztorys montażu rozdzielacza. Otrzymujesz wtedy oficjalny protokół z tego procesu.</p>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowedDomains.includes(domain)) {
        document.getElementById('faq-app-container').innerHTML = '<div style="padding: 30px; text-align: center; color: red;">🔒 Treść chroniona autorsko. Projekt-Ogrzewania.pl</div>';
        return;
    }
    const faqItems = document.querySelectorAll('.faq-item');
    faqItems.forEach(item => {
        item.querySelector('.faq-question').addEventListener('click', () => {
            const isActive = item.classList.contains('active');
            item.classList.toggle('active');
            item.querySelector('.faq-toggle-icon svg line:nth-child(1)').style.display = isActive ? 'block' : 'none';
        });
    });
});
</script>



<style>
:root {
    --cs-primary: #0f172a;
    --cs-accent: #2563eb;
    --cs-step1: #16a34a; /* Kolor zielony dla kosztorysu */
    --cs-step2: #ea580c; /* Kolor pomarańczowy dla hydrauliki */
    --cs-bg: #f8fafc;
    --cs-border: #e2e8f0;
    --cs-text: #475569;
}

.case-study-module {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--cs-border);
    overflow: hidden;
}

/* ================= HEADER I METRYCZKA ================= */
.cs-header-wrapper {
    background: var(--cs-primary);
    color: #ffffff;
    padding: 40px 50px;
    position: relative;
    overflow: hidden;
}

.cs-header-wrapper::after {
    content: '';
    position: absolute;
    top: -50px;
    right: -50px;
    width: 250px;
    height: 250px;
    background: radial-gradient(circle, rgba(37, 99, 235, 0.3) 0%, rgba(255,255,255,0) 70%);
    border-radius: 50%;
}

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

.cs-header-wrapper h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 25px 0;
    line-height: 1.3;
    color: #ffffff;
    position: relative;
    z-index: 2;
}

.cs-stats-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    position: relative;
    z-index: 2;
}

.cs-stat-box {
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 15px;
    border-radius: 12px;
    backdrop-filter: blur(4px);
}

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

.cs-stat-value {
    display: block;
    font-size: 16px;
    font-weight: 900;
    color: #ffffff;
}

/* ================= OPIS WYZWANIA ================= */
.cs-content-section {
    padding: 40px 50px 30px 50px;
    background: #ffffff;
}

.cs-lead-text {
    font-size: 16px;
    line-height: 1.8;
    color: var(--cs-text);
    margin: 0 0 20px 0;
}

.cs-lead-text strong {
    color: var(--cs-primary);
}

.cs-lead-text a {
    color: var(--cs-accent);
    text-decoration: underline;
    font-weight: 600;
}

/* Bloki z wyliczeniami w tekscie */
.cs-calc-block {
    background: #f8fafc;
    border: 1px solid var(--cs-border);
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 25px;
}

.cs-calc-block ul {
    margin: 0;
    padding-left: 20px;
    list-style-type: none;
}

.cs-calc-block li {
    margin-bottom: 10px;
    font-size: 15px;
    color: var(--cs-text);
    position: relative;
}

.cs-calc-block li::before {
    content: '→';
    position: absolute;
    left: -20px;
    color: var(--cs-accent);
    font-weight: bold;
}

.cs-calc-block li strong { color: var(--cs-primary); }

.cs-calc-highlight {
    background: #eff6ff;
    padding: 15px;
    border-radius: 8px;
    margin-top: 15px;
    border-left: 4px solid var(--cs-accent);
    font-size: 14px;
    color: #1e3a8a;
    font-weight: 600;
}

.cs-author-box {
    background: #f0f9ff;
    border-left: 4px solid var(--cs-accent);
    padding: 15px 20px;
    border-radius: 0 12px 12px 0;
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 10px;
}

.cs-author-photo {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid #ffffff;
    box-shadow: 0 4px 10px rgba(37, 99, 235, 0.2);
    flex-shrink: 0;
}

.cs-author-box p {
    margin: 0;
    font-size: 14px;
    color: #1e3a8a;
    line-height: 1.6;
}

/* ================= INTERAKTYWNE WYZWANIE (SPLIT CARDS) ================= */
.cs-interactive-section {
    padding: 0 50px 40px 50px;
}

.cs-split-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.cs-split-card {
    border-radius: 16px;
    padding: 25px;
    border: 2px solid var(--cs-border);
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
    background: #ffffff;
    display: flex;
    flex-direction: column;
}

.cs-split-card:not(.active) {
    opacity: 0.7;
    transform: scale(0.98);
}

.cs-split-card.step1.active {
    border-color: var(--cs-step1);
    background: #f0fdf4;
    box-shadow: 0 10px 25px rgba(22, 163, 74, 0.1);
    opacity: 1;
    transform: scale(1);
}

.cs-split-card.step2.active {
    border-color: var(--cs-step2);
    background: #fff7ed;
    box-shadow: 0 10px 25px rgba(234, 88, 12, 0.1);
    opacity: 1;
    transform: scale(1);
}

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

.cs-card-icon {
    font-size: 28px;
}

.cs-card-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--cs-primary);
    margin: 0;
}

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

.cs-card-solution {
    margin-top: 15px;
    padding-top: 15px;
    border-top: 1px dashed rgba(0,0,0,0.1);
    font-size: 14px;
    line-height: 1.6;
    display: none;
}

.cs-split-card.step1 .cs-card-solution { color: #14532d; }
.cs-split-card.step2 .cs-card-solution { color: #7c2d12; }

.cs-card-solution ul {
    margin: 0;
    padding-left: 20px;
    list-style-type: square;
}

.cs-card-solution li { margin-bottom: 8px; }
.cs-card-solution code { font-weight: 800; font-family: 'Inter', sans-serif; background: rgba(255,255,255,0.5); padding: 2px 6px; border-radius: 4px;}

.cs-split-card.active .cs-card-solution {
    display: block;
    animation: csFadeIn 0.4s ease forwards;
}

/* ================= CTA WRAZ Z PRZYCISKIEM BLOGA ================= */
.cs-cta-box {
    background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
    padding: 45px 50px;
    text-align: center;
    border-top: 1px solid var(--cs-border);
}

.cs-cta-box h4 {
    font-size: 22px;
    font-weight: 900;
    color: var(--cs-primary);
    margin: 0 0 10px 0;
}

.cs-cta-box p {
    font-size: 15px;
    color: #475569;
    margin: 0 auto 25px auto;
    max-width: 650px;
    line-height: 1.6;
}

.cs-cta-buttons-wrapper {
    display: flex;
    justify-content: center;
    gap: 15px;
    flex-wrap: wrap;
}

.cs-cta-button {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--cs-accent);
    color: #ffffff;
    padding: 16px 32px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: all 0.3s;
    box-shadow: 0 10px 20px -5px rgba(37, 99, 235, 0.4);
    border: 2px solid var(--cs-accent);
}

.cs-cta-button:hover {
    background: #1e3a8a;
    border-color: #1e3a8a;
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(37, 99, 235, 0.5);
    color: #ffffff;
}

/* Nowy intensywny przycisk do bloga */
.cs-blog-btn-intense {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--cs-primary);
    color: #ffffff;
    padding: 16px 32px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: all 0.3s;
    box-shadow: 0 10px 20px -5px rgba(15, 23, 42, 0.4);
    border: 2px solid var(--cs-primary);
}

.cs-blog-btn-intense:hover {
    background: #ffffff;
    color: var(--cs-primary);
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(15, 23, 42, 0.2);
}

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

@media (max-width: 768px) {
    .cs-header-wrapper { padding: 35px 25px; }
    .cs-stats-grid { grid-template-columns: 1fr 1fr; }
    .cs-content-section { padding: 30px 25px 20px 25px; }
    .cs-interactive-section { padding: 0 25px 30px 25px; }
    .cs-cta-box { padding: 35px 25px; }
    .cs-split-container { grid-template-columns: 1fr; }
    .cs-cta-buttons-wrapper { flex-direction: column; }
    .cs-cta-button, .cs-blog-btn-intense { width: 100%; justify-content: center; }
}
</style>

<div class="case-study-module" id="app-calc-case-study">

    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@graph": [
        {
          "@type": "Article",
          "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#article",
          "mainEntityOfPage": {
            "@type": "WebPage",
            "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/"
          },
          "headline": "Kalkulacja Robocizny i Przepływów: Studium Przypadku",
          "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
          "author": {
            "@type": "Person",
            "name": "Robert Kucharski",
            "url": "https://projekt-ogrzewania.pl/",
            "sameAs": [
              "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
              "https://www.linkedin.com/in/robert-kucharski-38069b48/"
            ]
          },
          "publisher": {
            "@type": "Organization",
            "name": "Projekt-Ogrzewania.pl",
            "logo": {
              "@type": "ImageObject",
              "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
            }
          },
          "datePublished": "2025-01-07",
          "dateModified": "2026-05-03",
          "about": [
            { "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#app-calc-case-study" },
            { "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#dataset-case-study" }
          ]
        },
        {
          "@type": "WebApplication",
          "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#app-calc-case-study",
          "name": "Kalkulacja Robocizny i Przepływów: Studium Przypadku",
          "description": "Szczegółowa analiza kosztów robocizny ogrzewania podłogowego oraz inżynieryjne wyliczenia nastaw rotametrów dla domu o powierzchni 140 m².",
          "applicationCategory": "EducationalApplication",
          "operatingSystem": "All",
          "url": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/",
          "license": "https://projekt-ogrzewania.pl/",
          "keywords": [
            "kalkulator kosztów robocizny podłogówki",
            "wzór na wycenę ogrzewania podłogowego",
            "obliczenia przepływów rotametry",
            "kalkulacja długości pętli",
            "wycena robocizny z projektu"
          ],
          "mainEntity": {
            "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#app-calc-case-study"
          },
          "creator": {
            "@type": "Person",
            "name": "Robert Kucharski",
            "sameAs": [
              "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
              "https://www.linkedin.com/in/robert-kucharski-38069b48/"
            ]
          },
          "featureList": [
            "Wycena robocizny w podziale na strefy grzewcze",
            "Obliczenia błędów wycen zryczałtowanych",
            "Inżynierskie obliczenia przepływu i nastawy rotametrów"
          ]
        },
        {
          "@type": "Dataset",
          "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#dataset-case-study",
          "isPartOf": { "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#article" },
          "name": "Realne dane z projektu instalacji (Luty 2026)",
          "description": "Zestawienie parametrów projektowych, finansowych i hydraulicznych użytych do analizy błędów wykonawczych.",
          "measurementTechnique": "Autorski algorytm inżynierski wyceny oparty na wzorze K_rob, obliczeniach OZC oraz normie PN-EN 1264",
          "license": "https://projekt-ogrzewania.pl/",
          "variableMeasured": [
            {
              "@type": "PropertyValue",
              "name": "Koszt całkowity (rzeczywisty)",
              "value": "10 524 PLN"
            },
            {
              "@type": "PropertyValue",
              "name": "Błąd wyceny ryczałtowej (65 zł/m²)",
              "value": "-13.5%"
            },
            {
              "@type": "PropertyValue",
              "name": "Moc instalacji (Q)",
              "value": "11.5 kW"
            },
            {
              "@type": "PropertyValue",
              "name": "Nastawa rotametru (na pętlę)",
              "value": "3.3 l/min"
            }
          ],
          "creator": {
            "@type": "Person",
            "name": "Robert Kucharski"
          }
        }
      ]
    }
    </script>

    <div class="cs-header-wrapper">
        <div class="cs-badge">Kalkulacja z Projektu</div>
        <h2>Jak policzyć całkowity koszt robocizny ogrzewania podłogowego</h2>
        <div class="cs-stats-grid">
            <div class="cs-stat-box">
                <span class="cs-stat-label">Dom pow. netto</span>
                <span class="cs-stat-value">140 m²</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Koszt całkowity</span>
                <span class="cs-stat-value">10 524 zł</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Błąd wyceny &#8222;na oko&#8221;</span>
                <span class="cs-stat-value" style="color: #fca5a5;">-13,5%</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Nastawa rotametru</span>
                <span class="cs-stat-value">3,3 l/min</span>
            </div>
        </div>
    </div>

    <div class="cs-content-section">
        <p class="cs-lead-text">Całkowity koszt robocizny liczysz <strong>z projektu, a nie z metrażu budynku</strong>. Wykonawcy, którzy dają jedną uśrednioną cenę, niemal zawsze dopisują później aneksy do umowy. Poniżej przedstawiam konkretny przykład z lutego 2026 roku (Dom Pana Marka), oparty na autorskim wzorze: <strong>K_rob = Σ (A_i × C_Ti) + K_rozdz + K_proba</strong>.</p>
        
        <div class="cs-calc-block">
            <ul>
                <li><strong>A1 (Strefy otwarte):</strong> 92 m², rozstaw 150 mm, stawka 65 zł/m² <strong>→ 5 980 zł</strong></li>
                <li><strong>A2 (Łazienki, okna):</strong> 28 m², rozstaw zagęszczony 100 mm, stawka 78 zł/m² <strong>→ 2 184 zł</strong></li>
                <li><strong>A3 (Sypialnie):</strong> 20 m², rozstaw 200 mm, stawka 58 zł/m² <strong>→ 1 160 zł</strong></li>
                <li><strong>K_rozdz (Rozdzielacze):</strong> 2 szt. × 450 zł <strong>→ 900 zł</strong></li>
                <li><strong>K_proba (Szczelność):</strong> Próba 6 bar + protokół <strong>→ 300 zł</strong></li>
            </ul>
            <div class="cs-calc-highlight">
                Razem: 10 524 zł, czyli średnio 75,2 zł/m². Gdyby instalator przyjął ryczałtem &#8222;atrakcyjne&#8221; 65 zł/m² dla całości, wyceniłby to na 9 100 zł. Różnica? Ponad 13% błędu, który odbiłby się na jakości materiałów lub aneksach.
            </div>
        </div>

        <div class="cs-author-box">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="cs-author-photo" loading="lazy">
            <p><strong>Robert Kucharski:</strong> &#8222;Rozkładamy koszty i hydraulikę na czynniki pierwsze. Kliknij w karty poniżej, aby zobaczyć jak krok po kroku tworzymy algorytm wyceny i – co najważniejsze – jak liczymy przepływy do precyzyjnego ustawienia pętli.&#8221;</p>
        </div>
    </div>

    <div class="cs-interactive-section">
        <div class="cs-split-container">
            
            <div class="cs-split-card step1 active" id="cs-btn-step1">
                <div class="cs-card-header">
                    <span class="cs-card-icon">📋</span>
                    <h3 class="cs-card-title">7 Kroków Kalkulacji</h3>
                </div>
                <p class="cs-card-desc">Nie zgaduj. Policz w 7 krokach, dokładnie tak, jak liczę to w biurze dla każdego zlecenia.</p>
                <div class="cs-card-solution">
                    <ul>
                        <li><strong>Krok 1:</strong> Policz zapotrzebowanie. <code>Q_obl = Q_OZC × 1,15</code>. Dla 140 m² po OZC Q = 9,8 kW → 11,27 kW.</li>
                        <li><strong>Krok 2:</strong> Podziel na strefy. Salon 35 m², strata 2450 W → wymóg 70 W/m².</li>
                        <li><strong>Krok 3:</strong> Dobierz rozstaw. Z tabeli dla q 70 W/m² i ΔϑH 12K → rozstaw 150 mm.</li>
                        <li><strong>Krok 4:</strong> Policz długość rury. <code>L = A / T × 1,1</code>. Dla salonu to 257 mb.</li>
                        <li><strong>Krok 5:</strong> Podziel na pętle. Maksimum to 110 m → 257 / 110 = 2,34 → czyli 3 pętle.</li>
                        <li><strong>Krok 6:</strong> Przypisz stawkę rynkową. Dla rozstawu 150 mm (65 zł/m²) salon kosztuje nas 2 275 zł.</li>
                        <li><strong>Krok 7:</strong> Dodaj stałe. Rozdzielacz (450 zł), dojazd (120 zł), próba (300 zł). Suma to zwykle widełki 9 500–12 500 zł.</li>
                    </ul>
                </div>
            </div>

            <div class="cs-split-card step2" id="cs-btn-step2">
                <div class="cs-card-header">
                    <span class="cs-card-icon">💧</span>
                    <h3 class="cs-card-title">Obliczenia Przepływów</h3>
                </div>
                <p class="cs-card-desc">Trzecie wyliczenie z projektu, które zawsze robię. To parametr, który monter ustawia w ramach robocizny, a bez projektu – po prostu zgaduje.</p>
                <div class="cs-card-solution">
                    <p style="margin-top:0;">Podstawą prawidłowo ułożonej podłogówki jest ustawienie <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrów na rozdzielaczu</a>.</p>
                    <ul>
                        <li><strong>Krok 1: Wzór bazowy.</strong> Przepływ masowy liczymy ze wzoru: <code>m = Q / (1,163 × ΔT)</code></li>
                        <li><strong>Krok 2: Całkowity zład.</strong> Przy mocy instalacji Q = 11,5 kW i zakładanym spadku temperatury ΔT = 5 K, przepływ całkowity wynosi: 11,5 / (1,163 × 5) = <strong>1,98 m³/h</strong>.</li>
                        <li><strong>Krok 3: Przepływ na rotametrze.</strong> Otrzymany wynik dzielimy na 10 pętli w domu. Daje to 0,198 m³/h na pętlę.</li>
                        <li><strong>Wynik:</strong> Po przeliczeniu jednostek, monter musi ustawić rotametr na około <strong>3,3 l/min</strong>. Dzięki temu <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompa obiegowa</a> precyzyjnie zasili każdy układ.</li>
                    </ul>
                </div>
            </div>

        </div>
    </div>

    <div class="cs-cta-box">
        <h4>Nie ryzykuj błędów monterskich i zaniżonych wycen.</h4>
        <p>Projekt ogrzewania podłogowego chroni Cię przed instalatorami, którzy narzucają jedną cenę za m², a potem domagają się dopłat. Zyskujesz pewność co do ilości rury, nastaw przepływu i wielkości rozdzielaczy.</p>
        
        <div class="cs-cta-buttons-wrapper">
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cs-cta-button">
                <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="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>
                Zamów Profesjonalny Projekt
            </a>
            
            <a href="https://projekt-ogrzewania.pl/blog/" class="cs-blog-btn-intense">
                <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="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"></path><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"></path></svg>
                Więcej Wiedzy na Blogu
            </a>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (bez tagów Hx)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-calc-case-study');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 25px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">
                    <span style="font-size: 40px; display: block; margin-bottom: 10px;">🔒</span>
                    <div style="margin: 0 0 10px 0; font-size: 20px; font-weight: bold;">Studium Przypadku Chronione</div>
                    <p style="font-size: 14px; margin-bottom: 15px;">Ten panel informacyjny to autorska własność Projekt-Ogrzewania.pl.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 10px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold; font-size: 13px;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    // Logika przełączania kart Case Study
    const cardStep1 = document.getElementById('cs-btn-step1');
    const cardStep2 = document.getElementById('cs-btn-step2');

    function toggleCards(activeCard, inactiveCard) {
        activeCard.classList.add('active');
        inactiveCard.classList.remove('active');
    }

    if (cardStep1 && cardStep2) {
        cardStep1.addEventListener('click', () => toggleCards(cardStep1, cardStep2));
        cardStep2.addEventListener('click', () => toggleCards(cardStep2, cardStep1));
    }
});
</script>



<style>
:root {
    --info-primary: #0f172a;
    --info-accent: #ea580c;
    --info-accent-hover: #c2410c;
    --info-bg: #ffffff;
    --info-light: #fff7ed;
    --info-border: #e2e8f0;
    --info-text: #475569;
}

.premium-infographic-module {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--info-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid #fdba74;
    overflow: hidden;
}

.info-header-area {
    padding: 40px 45px 30px 45px;
    background: linear-gradient(to bottom, #ffffff, var(--info-light));
    border-bottom: 1px solid #fdba74;
    text-align: center;
}

.info-header-area h3 {
    font-size: 26px;
    font-weight: 900;
    color: var(--info-primary);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.info-header-area p {
    font-size: 16px;
    line-height: 1.6;
    color: var(--info-text);
    margin: 0;
}

.info-header-area strong {
    color: var(--info-primary);
}

.info-image-container {
    padding: 30px 45px;
    background: #f8fafc;
    position: relative;
    text-align: center;
}

.info-img-wrapper {
    position: relative;
    display: inline-block;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 10px 25px rgba(0,0,0,0.1);
    cursor: zoom-in;
    transition: transform 0.3s ease;
}

.info-img-wrapper:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 35px rgba(0,0,0,0.15);
}

.info-img-wrapper img {
    max-width: 100%;
    height: auto;
    display: block;
}

.info-zoom-hint {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(15, 23, 42, 0.85);
    color: #ffffff;
    padding: 8px 16px;
    border-radius: 50px;
    font-size: 13px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 8px;
    pointer-events: none;
    backdrop-filter: blur(4px);
    opacity: 0;
    transition: opacity 0.3s;
}

.info-img-wrapper:hover .info-zoom-hint {
    opacity: 1;
}

.info-cta-area {
    padding: 0 45px 40px 45px;
    background: #f8fafc;
    text-align: center;
}

/* Lightbox Modal */
.info-lightbox {
    display: none;
    position: fixed;
    z-index: 9999;
    padding: 40px;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(15, 23, 42, 0.95);
    backdrop-filter: blur(5px);
}

.info-lightbox-content {
    margin: auto;
    display: block;
    max-width: 90%;
    max-height: 90vh;
    border-radius: 12px;
    box-shadow: 0 0 50px rgba(0,0,0,0.5);
    object-fit: contain;
}

.info-lightbox-close {
    position: absolute;
    top: 20px;
    right: 35px;
    color: #f1f1f1;
    font-size: 40px;
    font-weight: bold;
    cursor: pointer;
    transition: color 0.3s;
}

.info-lightbox-close:hover {
    color: var(--info-accent);
}

@media (max-width: 768px) {
    .info-header-area { padding: 35px 25px 25px 25px; }
    .info-image-container { padding: 25px; }
    .info-cta-area { padding: 0 25px 35px 25px; }
    .info-header-area h3 { font-size: 22px; }
    .info-zoom-hint { opacity: 1; bottom: 10px; padding: 6px 12px; font-size: 11px; }
    .info-lightbox { padding: 15px; }
    .info-lightbox-close { top: 10px; right: 20px; font-size: 30px; }
}
</style>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Article",
      "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#article",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/"
      },
      "headline": "Ile naprawdę kosztuje ułożenie ogrzewania podłogowego w 2026 roku?",
      "author": { "@id": "https://projekt-ogrzewania.pl/#person" },
      "datePublished": "2026-05-03",
      "dateModified": "2026-05-03",
      "about": [
        { "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#infographic" }
      ]
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#infographic",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/podlogowka-cena-za-m2-robocizny/#article" },
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Podlogowka-cena-za-m²-robocizny.webp",
      "width": "1200",
      "height": "1600",
      "caption": "Kompleksowe zestawienie cen robocizny ogrzewania podłogowego w 2026 roku oraz parametry techniczne montażu.",
      "description": "Infografika przedstawiająca koszty robocizny podłogówki, etapy wykonania, najczęstsze błędy oraz zalety profesjonalnego projektu OZC.",
      "keywords": [
        "podłogówka cena za m2 robocizny",
        "koszty instalacji podłogowej",
        "cennik usług hydraulicznych 2026",
        "etapy montażu ogrzewania",
        "infografika budowlana"
      ],
      "author": {
        "@type": "Person",
        "@id": "https://projekt-ogrzewania.pl/#person",
        "name": "Robert Kucharski",
        "sameAs": [
          "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
          "https://www.linkedin.com/in/robert-kucharski-38069b48/"
        ]
      },
      "license": "https://projekt-ogrzewania.pl/"
    }
  ]
}
</script>

<div class="premium-infographic-module" id="infographic-app-container">
    
    <div class="info-header-area">
        <h3>Ile naprawdę kosztuje ułożenie ogrzewania podłogowego w 2026 roku? [INFOGRAFIKA]</h3>
        <p>Sprawdź aktualne zestawienie: <strong>podłogówka cena za m² robocizny</strong> i dowiedz się, jak profesjonalny projekt instalacji zabezpiecza przed kosztownymi błędami wykonawczymi.</p>
    </div>

    <div class="info-image-container">
        <div class="info-img-wrapper" id="info-trigger-lightbox">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Podlogowka-cena-za-m²-robocizny.webp" 
                 alt="Infografika: Podłogówka cena za m2 robocizny w 2026 roku – szczegółowe zestawienie kosztów montażu, parametrów technicznych i najczęstszych błędów wykonawczych." 
                 loading="lazy" />
            <div class="info-zoom-hint">
                <svg width="16" height="16" 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>
                Kliknij, aby powiększyć
            </div>
        </div>
    </div>

    <div class="info-cta-area">
        <div style="margin: 0; text-align: center;">
            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Podlogowka-cena-za-m²-robocizny.pdf" download 
               style="display: inline-flex; align-items: center; gap: 12px; background: #ea580c; color: #ffffff; padding: 18px 35px; border-radius: 12px; font-family: 'Inter', -apple-system, sans-serif; font-size: 16px; font-weight: 800; text-decoration: none; text-transform: uppercase; letter-spacing: 1px; box-shadow: 0 10px 20px rgba(234, 88, 12, 0.3); transition: all 0.3s;"
               onmouseover="this.style.background='#c2410c'; this.style.transform='translateY(-3px)'; this.style.boxShadow='0 15px 25px rgba(234, 88, 12, 0.4)';"
               onmouseout="this.style.background='#ea580c'; this.style.transform='none'; this.style.boxShadow='0 10px 20px rgba(234, 88, 12, 0.3)';">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
                    <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path>
                    <polyline points="7 10 12 15 17 10"></polyline>
                    <line x1="12" y1="15" x2="12" y2="3"></line>
                </svg>
                Pobierz PDF: Podłogówka cena za m² robocizny
            </a>
            <p style="margin-top: 15px; font-size: 13px; color: #64748b; font-family: 'Inter', -apple-system, sans-serif;">
                Format: PDF | Rozmiar: ok. 1.2 MB | Zawiera: Cennik 2026 i Wytyczne Techniczne
            </p>
        </div>
    </div>

</div>

<div id="info-myLightbox" class="info-lightbox">
    <span class="info-lightbox-close">&times;</span>
    <img decoding="async" class="info-lightbox-content" id="info-lightbox-img" src="">
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- Ochrona Domeny ---
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        document.getElementById('infographic-app-container').innerHTML = `
            <div style="padding: 40px 25px; text-align: center; background: #fee2e2; border: 2px solid #dc2626; border-radius: 20px;">
                <div style="font-size: 32px; margin-bottom: 15px;">🔒</div>
                <div style="font-size: 18px; font-weight: bold; color: #dc2626; margin-bottom: 10px;">Moduł chroniony prawami autorskimi</div>
                <div style="font-size: 14px; color: #7f1d1d; margin-bottom: 15px;">Ta infografika jest własnością Projekt-Ogrzewania.pl.</div>
                <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 10px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold; font-size: 13px;">ZOBACZ ORYGINAŁ</a>
            </div>
        `;
        return;
    }

    // --- Logika Lightboxa ---
    const modal = document.getElementById("info-myLightbox");
    const imgWrapper = document.getElementById("info-trigger-lightbox");
    const modalImg = document.getElementById("info-lightbox-img");
    const sourceImg = imgWrapper.querySelector("img");
    const spanClose = document.getElementsByClassName("info-lightbox-close")[0];

    imgWrapper.addEventListener('click', function() {
        modal.style.display = "flex";
        modalImg.src = sourceImg.src;
        document.body.style.overflow = "hidden"; // Blokuje przewijanie strony w tle
    });

    spanClose.addEventListener('click', function() {
        modal.style.display = "none";
        document.body.style.overflow = "auto";
    });

    // Zamknięcie po kliknięciu w tło
    modal.addEventListener('click', function(e) {
        if (e.target === modal) {
            modal.style.display = "none";
            document.body.style.overflow = "auto";
        }
    });
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/podlogowka-cena-za-m%c2%b2-robocizny/">Podłogówka cena za m² robocizny.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/podlogowka-cena-za-m%c2%b2-robocizny/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Instalacja ogrzewania podłogowego – czy warto robić to samemu?</title>
		<link>https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-czy-warto-robic-to-samemu/</link>
					<comments>https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-czy-warto-robic-to-samemu/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 28 Dec 2024 12:07:38 +0000</pubDate>
				<category><![CDATA[DIY instalacje]]></category>
		<category><![CDATA[Energooszczędność]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Nowoczesne technologie grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Planowanie instalacji grzewczych]]></category>
		<category><![CDATA[Porady budowlane]]></category>
		<category><![CDATA[Remonty i budowa]]></category>
		<category><![CDATA[instalacja ogrzewania podłogowego]]></category>
		<category><![CDATA[izolacja brzegowa]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędności ogrzewanie]]></category>
		<category><![CDATA[planowanie instalacji]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[profesjonalne instalacje grzewcze]]></category>
		<category><![CDATA[rozdzielacze podłogówki]]></category>
		<category><![CDATA[samodzielny montaż podłogówki]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=1849</guid>

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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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