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

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa rury do ogrzewania podłogowego - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/tag/rury-do-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>Ile kosztuje 100 m² ogrzewania podłogowego?</title>
		<link>https://projekt-ogrzewania.pl/ile-kosztuje-100-m%c2%b2-ogrzewania-podlogowego/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Wed, 01 Jan 2025 12:48:12 +0000</pubDate>
				<category><![CDATA[Cennik]]></category>
		<category><![CDATA[Ceny]]></category>
		<category><![CDATA[Ceny instalacji]]></category>
		<category><![CDATA[Koszt podłogówki]]></category>
		<category><![CDATA[Koszty instalacji]]></category>
		<category><![CDATA[Koszty materiałów grzewczych]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Planowanie budżetów]]></category>
		<category><![CDATA[Porady inwestycyjne]]></category>
		<category><![CDATA[Systemy grzewcze]]></category>
		<category><![CDATA[darmowy projekt ogrzewania]]></category>
		<category><![CDATA[ile kosztuje ogrzewanie podłogowe]]></category>
		<category><![CDATA[instalacja ogrzewania]]></category>
		<category><![CDATA[koszty instalacji ogrzewania]]></category>
		<category><![CDATA[ogrzewanie podłogowe 2025]]></category>
		<category><![CDATA[planowanie budżetów]]></category>
		<category><![CDATA[rozdzielacz do podłogówki]]></category>
		<category><![CDATA[rury do ogrzewania podłogowego]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<category><![CDATA[szafka do rozdzielacza]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=1875</guid>

					<description><![CDATA[<p>Ile kosztuje 100 m² ogrzewania podłogowego? To pytanie nurtuje wielu inwestorów. W artykule szczegółowo omawiamy koszty materiałów i robocizny na 2025 rok. Dowiedz się, jakie wydatki uwzględnić, by zaplanować budżet na ogrzewanie podłogowe. Opisujemy kluczowe elementy, takie jak rury, rozdzielacz i szafka, a także podpowiadamy, jak skorzystać z darmowego projektu.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-kosztuje-100-m%c2%b2-ogrzewania-podlogowego/">Ile kosztuje 100 m² ogrzewania podłogowego?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-hero-dark: #0f172a;
    --rk-hero-blue: #2563eb;
    --rk-hero-blue-light: #eff6ff;
    --rk-hero-accent: #f59e0b;
    --rk-hero-accent-light: #fef3c7;
    --rk-hero-gray: #475569;
    --rk-hero-border: #e2e8f0;
    --rk-hero-bg: #ffffff;
}

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

/* Górna sekcja - HOOK i Szybka Odpowiedź */
.rk-hero-top {
    background: linear-gradient(135deg, var(--rk-hero-dark) 0%, #1e293b 100%);
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
}

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

.rk-hero-top h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 20px 0;
    line-height: 1.25;
    color: #ffffff;
}

.rk-hero-hook {
    font-size: 18px;
    line-height: 1.6;
    color: #cbd5e1;
    margin: 0 0 30px 0;
    max-width: 800px;
}

/* Pudełko Szybkiej Odpowiedzi (Blink Test) */
.rk-hero-tldr {
    background: #ffffff;
    border-radius: 16px;
    padding: 25px 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.2);
    border-left: 6px solid var(--rk-hero-blue);
}

.rk-hero-tldr-text h3 {
    margin: 0 0 5px 0;
    color: var(--rk-hero-dark);
    font-size: 18px;
    font-weight: 800;
}

.rk-hero-tldr-text p {
    margin: 0;
    color: var(--rk-hero-gray);
    font-size: 15px;
    line-height: 1.5;
}

.rk-hero-tldr-price {
    text-align: right;
    flex-shrink: 0;
}

.rk-hero-tldr-price .val {
    display: block;
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-hero-blue);
}

.rk-hero-tldr-price .sub {
    font-size: 13px;
    color: var(--rk-hero-gray);
    font-weight: 600;
    text-transform: uppercase;
}

/* Interaktywna Nawigacja (Co w artykule) */
.rk-hero-nav-section {
    padding: 40px 50px;
    background: #f8fafc;
}

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

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

.rk-hero-tab {
    background: var(--rk-hero-bg);
    border: 1px solid var(--rk-hero-border);
    border-radius: 16px;
    padding: 20px;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.rk-hero-tab:hover {
    border-color: var(--rk-hero-blue);
    transform: translateY(-3px);
    box-shadow: 0 10px 15px -3px rgba(37, 99, 235, 0.1);
}

.rk-hero-tab.active {
    background: var(--rk-hero-blue-light);
    border-color: var(--rk-hero-blue);
}

.rk-hero-tab.active::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: var(--rk-hero-blue);
}

.rk-hero-tab-icon {
    width: 32px;
    height: 32px;
    color: var(--rk-hero-blue);
    margin-bottom: 12px;
}

.rk-hero-tab h4 {
    margin: 0 0 8px 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-hero-dark);
}

.rk-hero-tab p {
    margin: 0;
    font-size: 13px;
    color: var(--rk-hero-gray);
    line-height: 1.5;
}

/* Dynamiczny Podgląd Treści */
.rk-hero-content-view {
    background: var(--rk-hero-bg);
    border: 1px solid var(--rk-hero-border);
    border-radius: 16px;
    padding: 25px 30px;
    margin-top: 20px;
    display: none;
    animation: fadeInTab 0.4s ease forwards;
}

.rk-hero-content-view.active {
    display: block;
}

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

.rk-hero-content-view p {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-hero-gray);
    margin: 0 0 15px 0;
}

.rk-hero-content-view p:last-child { margin: 0; }

.rk-hero-content-view a {
    color: var(--rk-hero-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.3s;
}

.rk-hero-content-view a:hover { color: #1d4ed8; }

.rk-hero-alert {
    background: var(--rk-hero-accent-light);
    border-left: 4px solid var(--rk-hero-accent);
    padding: 15px 20px;
    border-radius: 0 8px 8px 0;
    margin-top: 15px;
    font-size: 14px;
    color: #92400e;
    font-weight: 600;
}

/* RWD */
@media (max-width: 768px) {
    .rk-hero-top, .rk-hero-nav-section { padding: 30px 20px; }
    .rk-hero-top h2 { font-size: 24px; }
    .rk-hero-tldr { flex-direction: column; align-items: flex-start; text-align: left; }
    .rk-hero-tldr-price { text-align: left; margin-top: 10px; }
    .rk-hero-tabs { grid-template-columns: 1fr; }
    .rk-hero-tab { padding: 15px; }
    .rk-hero-content-view { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/"
    },
    "headline": "Ile kosztuje 100 m² ogrzewania podłogowego w 2026 roku? [Kompendium Inwestora]",
    "description": "Zanim wylejesz posadzkę, musisz poznać realne liczby. Kompletne zestawienie kosztów materiałów i robocizny. Sprawdź m.in. czy rekuperacja i ogrzewanie podłogowe się opłaca.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-06-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#dataset-wstep",
    "name": "Baza Kosztów Bazowych Ogrzewania Podłogowego 2026",
    "description": "Agregacja podstawowych widełek cenowych brutto dla instalacji płaszczyznowej na 100 metrach kwadratowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ile kosztuje 100 m2 ogrzewania podłogowego",
      "koszt podłogówki 2026",
      "rekuperacja i ogrzewanie podłogowe czy to się opłaca",
      "ukryte koszty ogrzewania podłogowego",
      "cena materiałów i robocizny podłogówka"
    ],
    "measurementTechnique": "Określenie średnich stawek rynkowych dla domów jednorodzinnych z wyodrębnieniem głównych czynników wpływających na ostateczną cenę.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Koszt całkowity brutto (materiały + robocizna): 8 500 PLN - 10 000 PLN.",
        "Główne zmienne: parametry techniczne budynku, rozstaw rur, klasa komponentów."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#webapp-wstep",
    "name": "Interaktywny Przewodnik Inwestora (Spis Treści)",
    "description": "Moduł nawigacyjny wprowadzający użytkownika w tematykę kosztów. Pozwala na szybkie zorientowanie się w ukrytych kosztach, interaktywnych narzędziach oraz synergii z rekuperacją.",
    "applicationCategory": "NavigationApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-hero-widget">
    
    <div class="rk-hero-top">
        <div class="rk-hero-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
            Zaktualizowano na 2026 Rok
        </div>
        
        <h2>Ile kosztuje 100 m² ogrzewania podłogowego? Zanim wylejesz beton, poznaj fakty.</h2>
        
        <p class="rk-hero-hook">
            Brak rzetelnego kosztorysu to najczęstszy błąd na etapie stanu surowego. Ostateczna kwota to nie tylko rury. To izolacja, dylatacje i chemia. Zobacz, ile musisz przygotować, aby system grzewczy przetrwał dekady bez kosztownych awarii.
        </p>

        <div class="rk-hero-tldr">
            <div class="rk-hero-tldr-text">
                <h3>Szybka Odpowiedź (Blink Test)</h3>
                <p>Średni rynkowy koszt zakupu materiałów systemowych oraz montażu wodnego ogrzewania na 100 m² dla standardowego domu jednorodzinnego.</p>
            </div>
            <div class="rk-hero-tldr-price">
                <span class="val">8 500 &#8211; 10 000 PLN</span>
                <span class="sub">Materiały + Robocizna (Brutto)</span>
            </div>
        </div>
    </div>

    <div class="rk-hero-nav-section">
        <h3 class="rk-hero-nav-title">
            <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="8" y1="6" x2="21" y2="6"></line><line x1="8" y1="12" x2="21" y2="12"></line><line x1="8" y1="18" x2="21" y2="18"></line><line x1="3" y1="6" x2="3.01" y2="6"></line><line x1="3" y1="12" x2="3.01" y2="12"></line><line x1="3" y1="18" x2="3.01" y2="18"></line></svg>
            Co przygotowałem dla Ciebie w tym kompendium? Wybierz temat:
        </h3>

        <div class="rk-hero-tabs">
            <div class="rk-hero-tab active" data-target="tab-koszty">
                <div class="rk-hero-tab-icon">
                    <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="1" x2="12" y2="23"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                </div>
                <h4>Pełne Rozbicie Kosztów</h4>
                <p>Robocizna vs Materiały. Co z rozstawem rur?</p>
            </div>
            
            <div class="rk-hero-tab" data-target="tab-haczyki">
                <div class="rk-hero-tab-icon">
                    <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                </div>
                <h4>Zmniejsz koszty ogrzewania.</h4>
                <p>Rekuperacja a podłogówka. Prawdy i mity.</p>
            </div>
            
            <div class="rk-hero-tab" data-target="tab-tools">
                <div class="rk-hero-tab-icon">
                    <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><rect x="9" y="9" width="6" height="6"></rect><line x1="9" y1="1" x2="9" y2="4"></line><line x1="15" y1="1" x2="15" y2="4"></line><line x1="9" y1="20" x2="9" y2="23"></line><line x1="15" y1="20" x2="15" y2="23"></line><line x1="20" y1="9" x2="23" y2="9"></line><line x1="20" y1="14" x2="23" y2="14"></line><line x1="1" y1="9" x2="4" y2="9"></line><line x1="1" y1="14" x2="4" y2="14"></line></svg>
                </div>
                <h4>Narzędzia Interaktywne</h4>
                <p>Kalkulatory, które policzą to za Ciebie.</p>
            </div>
        </div>

        <div class="rk-hero-content-view active" id="tab-koszty">
            <p>Ostateczna kwota zależy bezpośrednio od parametrów technicznych budynku, wybranego rozstawu rur grzewczych oraz klasy użytych komponentów systemowych. Właściwa kalkulacja wydatków wymaga dokładnego rozbicia inwestycji.</p>
            <p>Dowiesz się, ile zapłacisz za samą <a href="https://projekt-ogrzewania.pl/podlogowka-cena-za-m%c2%b2-robocizny/">robociznę instalatora</a>, a ile musisz doliczyć na tzw. prace towarzyszące, takie jak chociażby wylanie grubego jastrychu czy ułożenie izolacji termicznej.</p>
        </div>

        <div class="rk-hero-content-view" id="tab-haczyki">
            <p>Inwestorzy często pytają, od czego zależą wspomniane na górze widełki. Odpowiedzią jest bilans energetyczny. W dalszej części artykułu bezwzględnie weryfikujemy dylemat: <strong><a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">rekuperacja i ogrzewanie podłogowe – czy to się opłaca?</a></strong></p>
            <p>Pokażę Ci, jak obecność wentylacji mechanicznej z odzyskiem ciepła drastycznie zmniejsza zapotrzebowanie na moc, co pozwala na bezpieczne zwiększenie rozstawu rur i realne obniżenie początkowych kosztów zakupu materiałów.</p>
        </div>

        <div class="rk-hero-content-view" id="tab-tools">
            <p>Ten artykuł to nie jest ściana suchego tekstu. Zastosowaliśmy podejście narzędziowe.</p>
            <p>Czytając dalej, natrafisz na interaktywne suwaki, przełączniki budżetowe oraz nasz <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/">kompleksowy kalkulator ogrzewania podłogowego</a>, w którym samodzielnie wymodelujesz ceny w zależności od tego, czy planujesz układ gęsty pod pompę ciepła, czy układ ekonomiczny.</p>
            <div class="rk-hero-alert">
                Zjeżdżaj w dół i korzystaj z interaktywnych skanerów kosztów, które przeliczą zapotrzebowanie rur na żywo!
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const tabs = document.querySelectorAll('.rk-hero-tab');
    const views = document.querySelectorAll('.rk-hero-content-view');

    tabs.forEach(tab => {
        tab.addEventListener('click', function() {
            // Zdejmij active ze wszystkich zakładek i widoków
            tabs.forEach(t => t.classList.remove('active'));
            views.forEach(v => {
                v.classList.remove('active');
                // Mały trik wymuszający reflow dla animacji
                void v.offsetWidth;
            });

            // Aktywuj klikniętą
            this.classList.add('active');
            const targetId = this.getAttribute('data-target');
            document.getElementById(targetId).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-sys-dark: #111827;
    --rk-sys-primary: #3b82f6;
    --rk-sys-primary-light: #dbeafe;
    --rk-sys-accent: #10b981;
    --rk-sys-accent-light: #d1fae5;
    --rk-sys-gray: #4b5563;
    --rk-sys-border: #e5e7eb;
    --rk-sys-bg: #ffffff;
    --rk-sys-bg-alt: #f9fafb;
}

.rk-sys-widget {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-sys-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(59, 130, 246, 0.1);
    border: 1px solid #bfdbfe;
    overflow: hidden;
}

/* Nagłówek i Długi Ogon SEO */
.rk-sys-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-sys-dark) 0%, #1f2937 100%);
    color: #ffffff;
    text-align: center;
}

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

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

.rk-sys-seo-tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin-top: 20px;
}

.rk-sys-seo-tag {
    background: rgba(59, 130, 246, 0.15);
    border: 1px solid rgba(59, 130, 246, 0.3);
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 12px;
    color: #93c5fd;
    font-weight: 600;
}

/* Interaktywny Panel Porównawczy (Bez Grafik) */
.rk-sys-interactive {
    padding: 40px 50px;
    background: var(--rk-sys-bg-alt);
    border-bottom: 1px solid var(--rk-sys-border);
}

.rk-sys-toggle-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 35px;
}

.rk-sys-toggle {
    display: flex;
    background: var(--rk-sys-bg);
    border: 2px solid var(--rk-sys-border);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
}

.rk-sys-toggle-btn {
    padding: 16px 28px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-sys-gray);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    text-align: center;
}

.rk-sys-toggle-btn.active[data-mode="eco"] {
    background: var(--rk-sys-primary);
    color: #ffffff;
}

.rk-sys-toggle-btn.active[data-mode="pro"] {
    background: var(--rk-sys-accent);
    color: #ffffff;
}

/* Kafelki Danych */
.rk-sys-data-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

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

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

.mode-eco .rk-sys-card:hover { border-color: var(--rk-sys-primary); }
.mode-pro .rk-sys-card:hover { border-color: var(--rk-sys-accent); }

.rk-sys-card h4 {
    font-size: 13px;
    color: var(--rk-sys-gray);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 12px 0;
    font-weight: 700;
}

.rk-sys-val {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-sys-dark);
    margin: 0 0 12px 0;
    transition: color 0.3s, opacity 0.3s;
}

.mode-eco .highlight-val { color: var(--rk-sys-primary); }
.mode-pro .highlight-val { color: var(--rk-sys-accent); }

.rk-sys-card p {
    font-size: 14px;
    color: var(--rk-sys-gray);
    margin: 0;
    line-height: 1.5;
    font-weight: 500;
}

/* Dynamiczny Box Informacyjny */
.rk-sys-insight-box {
    margin-top: 30px;
    background: var(--rk-sys-bg);
    border: 1px dashed var(--rk-sys-primary);
    border-radius: 16px;
    padding: 25px 30px;
    transition: all 0.4s ease;
}

.mode-pro .rk-sys-insight-box {
    border-color: var(--rk-sys-accent);
}

.rk-sys-insight-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-sys-dark);
    margin: 0 0 10px 0;
    transition: opacity 0.3s;
}

.rk-sys-insight-desc {
    font-size: 15px;
    color: var(--rk-sys-gray);
    line-height: 1.7;
    margin: 0;
    transition: opacity 0.3s;
}

/* Treść Merytoryczna */
.rk-sys-content {
    padding: 40px 50px;
}

.rk-sys-content p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-sys-gray);
    margin: 0 0 20px 0;
}

.rk-sys-content a {
    color: var(--rk-sys-primary);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.3s;
}

.rk-sys-content a:hover {
    color: #1d4ed8;
}

.rk-sys-expert-note {
    background: var(--rk-sys-bg-alt);
    border-left: 4px solid var(--rk-sys-dark);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    margin-top: 30px;
}

.rk-sys-expert-note h4 {
    color: var(--rk-sys-dark);
    margin: 0 0 8px 0;
    font-size: 16px;
    font-weight: 800;
}

/* RWD */
@media (max-width: 768px) {
    .rk-sys-header, .rk-sys-interactive, .rk-sys-content { padding: 30px 20px; }
    .rk-sys-data-grid { grid-template-columns: 1fr; }
    .rk-sys-toggle { flex-direction: column; width: 100%; border-radius: 12px; }
    .rk-sys-toggle-btn { width: 100%; }
    .rk-sys-insight-box { padding: 20px; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#article-system-mokry",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/"
    },
    "headline": "Cena ogrzewania podłogowego za m² z robocizną dla 100 m² – ile wynosi całkowity koszt w systemie mokrym?",
    "description": "Szczegółowa wycena całkowitego kosztu ogrzewania podłogowego (materiały + robocizna) w systemie mokrym. Porównanie stawek od 85 PLN do 100 PLN za m2.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-07",
    "dateModified": "2026-06-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#dataset-system-mokry",
    "name": "Kompletny Cennik Ogrzewania Podłogowego System Mokry 2026 (Materiały + Robocizna)",
    "description": "Zestawienie całkowitych budżetów inwestycyjnych dla 100 m2 instalacji grzewczej w podziale na wariant ekonomiczny i wydajny.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "cena ogrzewania podłogowego za m2 z robocizną",
      "całkowity koszt w systemie mokrym",
      "wodne ogrzewanie podłogowe cena za metr",
      "koszt podłogówki 100m2",
      "wariant ekonomiczny ogrzewania podłogowego"
    ],
    "measurementTechnique": "Agregacja stawek robocizny instalatorskiej oraz cen rynkowych materiałów systemowych zgodnych z normą PN-EN 1264 dla powierzchni 100 metrów kwadratowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wariant Ekonomiczny (15 cm): 85 PLN / m2 (Suma: 8 500 PLN)",
        "Wariant Wydajny (10 cm): 100 PLN / m2 (Suma: 10 000 PLN)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#webapp-system-mokry",
    "name": "Symulator Kosztów Systemu Mokrego 2026",
    "description": "Interaktywny moduł kalkulacyjny porównujący koszty całkowite ogrzewania podłogowego w zależności od gęstości ułożenia pętli grzewczych.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-sys-widget">
    
    <div class="rk-sys-header">
        <h2>Cena ogrzewania podłogowego za m² z robocizną dla 100 m² – ile wynosi całkowity koszt w systemie mokrym?</h2>
        <p>Średnia cena brutto za 1 m² całkowicie zrealizowanego systemu mokrego waha się od 85 PLN do 100 PLN. Zobacz, jak gęstość ułożenia rurociągu determinuje ostateczny budżet Twojej inwestycji.</p>
        
        <div class="rk-sys-seo-tags">
            <span class="rk-sys-seo-tag"># cena za m2 z robocizną</span>
            <span class="rk-sys-seo-tag"># całkowity koszt w systemie mokrym</span>
            <span class="rk-sys-seo-tag"># wodne ogrzewanie podłogowe cena za metr</span>
            <span class="rk-sys-seo-tag"># koszt podłogówki 100m2</span>
        </div>
    </div>

    <div class="rk-sys-interactive" id="sysInteractive">
        
        <div class="rk-sys-toggle-wrapper">
            <div class="rk-sys-toggle">
                <div class="rk-sys-toggle-btn active" data-mode="eco" data-price="85 PLN" data-total="8 500 PLN" data-title="Wariant Ekonomiczny (Rozstaw co 15 cm)" data-desc="Rozwiązanie stosowane w budynkach o bardzo niskim zapotrzebowaniu na energię, gdzie jednostkowe straty ciepła nie przekraczają 40-45 W/m². Optymalne dla kotłów gazowych lub pelletu.">
                    Rozstaw Ekonomiczny (15 cm)
                </div>
                <div class="rk-sys-toggle-btn" data-mode="pro" data-price="100 PLN" data-total="10 000 PLN" data-title="Wariant Wydajny (Rozstaw co 10 cm)" data-desc="Gęstsze ułożenie rur jest absolutnie niezbędne w układach współpracujących z niskotemperaturowymi pompami ciepła (minimalizacja temperatury zasilania do 30-35°C), a także w łazienkach i przy dużych przeszkleniach.">
                    Rozstaw Wydajny (10 cm)
                </div>
            </div>
        </div>

        <div class="rk-sys-data-grid">
            <div class="rk-sys-card">
                <h4>Cena za m² (z robocizną)</h4>
                <div class="rk-sys-val highlight-val" id="valPrice">85 PLN</div>
                <p>Materiały + Usługa</p>
            </div>
            <div class="rk-sys-card">
                <h4>Całkowity koszt dla 100 m²</h4>
                <div class="rk-sys-val highlight-val" id="valTotal">8 500 PLN</div>
                <p>Cena brutto pod klucz</p>
            </div>
            <div class="rk-sys-card">
                <h4>Rodzaj Wylewki</h4>
                <div class="rk-sys-val" style="font-size: 20px; color: var(--rk-sys-dark); line-height: 1.3; margin-top: 5px;">Cementowa lub Anhydrytowa</div>
                <p>System Mokry</p>
            </div>
        </div>

        <div class="rk-sys-insight-box">
            <h3 class="rk-sys-insight-title" id="valTitle">Wariant Ekonomiczny (Rozstaw co 15 cm)</h3>
            <p class="rk-sys-insight-desc" id="valDesc">Rozwiązanie stosowane w budynkach o bardzo niskim zapotrzebowaniu na energię, gdzie jednostkowe straty ciepła nie przekraczają 40-45 W/m². Optymalne dla kotłów gazowych lub pelletu.</p>
        </div>

    </div>

    <div class="rk-sys-content">
        <p>Wytyczne wykonawcze oraz rygorystyczne wymagania techniczne dla tego typu instalacji ściśle definiuje europejska <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">norma PN-EN 1264</a>, która standaryzuje procedury montażowe i zasady obliczania wydajności cieplnej.</p>
        
        <p>W podanym przedziale cenowym inwestor nie kupuje &#8222;kota w worku&#8221;. Otrzymuje w pełni kompletny <a href="https://projekt-ogrzewania.pl/czym-jest-system-mokry-w-wodnym-ogrzewaniu-podlogowym/">system mokry</a>, ułożony bezpośrednio na przygotowanej wcześniej izolacji termicznej (styropianie). Budżet obejmuje zakup certyfikowanych rur wielowarstwowych z barierą antydyfuzyjną, kompletnego rozdzielacza ze stali nierdzewnej, szafki podtynkowej, chemii instalacyjnej oraz pełną robociznę zwieńczoną próbą ciśnieniową.</p>

        <div class="rk-sys-expert-note">
            <h4>Gotowość do prac posadzkarskich</h4>
            <p style="margin: 0; font-size: 15px;">Po zakończeniu prac instalacyjnych i utrzymaniu ciśnienia kontrolnego w rurach, system jest natychmiast gotowy do zalania jastrychem cementowym lub płynnym anhydrytem. Brak projektu i wykonawstwo &#8222;na oko&#8221; na tym etapie to ryzyko awarii, której naprawa po wylaniu betonu pochłonie tysiące złotych.</p>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-sys-toggle-btn');
    const interactiveBox = document.getElementById('sysInteractive');
    
    // Elementy tekstowe do aktualizacji
    const valPrice = document.getElementById('valPrice');
    const valTotal = document.getElementById('valTotal');
    const valTitle = document.getElementById('valTitle');
    const valDesc = document.getElementById('valDesc');

    // Inicjalizacja domyślnego trybu
    interactiveBox.classList.add('mode-eco');

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

            // Pobranie zadeklarowanych danych
            const mode = this.getAttribute('data-mode');
            const price = this.getAttribute('data-price');
            const total = this.getAttribute('data-total');
            const title = this.getAttribute('data-title');
            const desc = this.getAttribute('data-desc');

            // Aktualizacja klasy dla CSS
            interactiveBox.className = 'rk-sys-interactive mode-' + mode;

            // Animacja Fade-Out
            const els = [valPrice, valTotal, valTitle, valDesc];
            els.forEach(el => el.style.opacity = '0');

            // Aktualizacja treści i Fade-In po krótkim opóźnieniu
            setTimeout(() => {
                valPrice.innerText = price;
                valTotal.innerText = total;
                valTitle.innerText = title;
                valDesc.innerText = desc;
                
                els.forEach(el => el.style.opacity = '1');
            }, 250);
        });
    });
});
</script>



<style>
:root {
    --rk-mat-dark: #0f172a;
    --rk-mat-teal: #0d9488;
    --rk-mat-teal-light: #f0fdfa;
    --rk-mat-slate: #64748b;
    --rk-mat-border: #e2e8f0;
    --rk-mat-bg: #ffffff;
    --rk-mat-highlight: #14b8a6;
}

.rk-mat-widget {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-mat-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(13, 148, 136, 0.15);
    border: 1px solid #ccfbf1;
    overflow: hidden;
}

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

.rk-mat-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.35;
}

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

/* Tagi SEO */
.rk-mat-tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin-top: 20px;
}

.rk-mat-tag {
    background: rgba(20, 184, 166, 0.15);
    border: 1px solid rgba(20, 184, 166, 0.3);
    padding: 5px 12px;
    border-radius: 20px;
    font-size: 12px;
    color: #5eead4;
    font-weight: 600;
}

/* Interfejs Kalkulatora */
.rk-mat-interface {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    background: #f8fafc;
}

/* Lewa Kolumna - Lista Materiałów */
.rk-mat-list {
    padding: 40px;
    border-right: 1px solid var(--rk-mat-border);
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-mat-item {
    background: var(--rk-mat-bg);
    border: 1px solid var(--rk-mat-border);
    border-radius: 16px;
    padding: 25px;
    transition: all 0.3s ease;
    position: relative;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-mat-item:hover {
    border-color: var(--rk-mat-teal);
    box-shadow: 0 10px 15px -3px rgba(13, 148, 136, 0.1);
}

.rk-mat-item-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 15px;
}

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

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

.rk-mat-item-title span {
    font-size: 13px;
    color: var(--rk-mat-slate);
    font-weight: 600;
}

.rk-mat-item p {
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-mat-slate);
    margin: 0 0 15px 0;
}

.rk-mat-item p:last-child { margin: 0; }

.rk-mat-item a {
    color: var(--rk-mat-teal);
    text-decoration: none;
    font-weight: 700;
    border-bottom: 1px solid transparent;
    transition: border-color 0.3s;
}

.rk-mat-item a:hover {
    border-bottom-color: var(--rk-mat-teal);
}

.rk-mat-price-tag {
    display: inline-block;
    background: #f1f5f9;
    padding: 6px 12px;
    border-radius: 8px;
    font-weight: 800;
    color: var(--rk-mat-dark);
    font-size: 15px;
    border: 1px solid var(--rk-mat-border);
}

/* Prawa Kolumna - Podsumowanie / Kosztorys */
.rk-mat-summary {
    padding: 40px;
    position: sticky;
    top: 20px;
    display: flex;
    flex-direction: column;
}

.rk-mat-summary-title {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-mat-dark);
    margin: 0 0 25px 0;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Przełącznik Wariantu */
.rk-mat-toggle-box {
    background: var(--rk-mat-bg);
    border: 1px solid var(--rk-mat-border);
    border-radius: 14px;
    padding: 6px;
    display: flex;
    margin-bottom: 30px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.02);
}

.rk-mat-toggle-btn {
    flex: 1;
    padding: 12px;
    text-align: center;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-mat-slate);
    cursor: pointer;
    border-radius: 10px;
    transition: all 0.3s;
    user-select: none;
}

.rk-mat-toggle-btn.active {
    background: var(--rk-mat-teal);
    color: #ffffff;
    box-shadow: 0 4px 6px rgba(13, 148, 136, 0.2);
}

/* Tabela podsumowania */
.rk-mat-calc-row {
    display: flex;
    justify-content: space-between;
    padding: 15px 0;
    border-bottom: 1px dashed var(--rk-mat-border);
    font-size: 15px;
}

.rk-mat-calc-row:last-of-type {
    border-bottom: none;
    margin-bottom: 15px;
}

.rk-mat-calc-label {
    color: var(--rk-mat-slate);
    font-weight: 600;
}

.rk-mat-calc-value {
    color: var(--rk-mat-dark);
    font-weight: 800;
}

.rk-val-dynamic {
    color: var(--rk-mat-teal);
    transition: opacity 0.3s;
}

.rk-val-strike {
    text-decoration: line-through;
    color: #94a3b8;
    margin-right: 8px;
    font-size: 13px;
}

/* Total */
.rk-mat-total-box {
    background: var(--rk-mat-dark);
    border-radius: 16px;
    padding: 25px;
    color: #ffffff;
    margin-top: 20px;
    text-align: center;
}

.rk-mat-total-label {
    font-size: 14px;
    color: #cbd5e1;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 10px;
    font-weight: 700;
}

.rk-mat-total-value {
    font-size: 32px;
    font-weight: 900;
    color: #5eead4;
}

.rk-mat-total-desc {
    font-size: 12px;
    color: #94a3b8;
    margin-top: 10px;
}

/* CTA */
.rk-mat-cta-btn {
    display: block;
    width: 100%;
    background: var(--rk-mat-bg);
    border: 2px solid var(--rk-mat-teal);
    color: var(--rk-mat-teal);
    text-align: center;
    padding: 16px;
    border-radius: 14px;
    font-weight: 800;
    text-decoration: none;
    margin-top: 25px;
    transition: all 0.3s;
}

.rk-mat-cta-btn:hover {
    background: var(--rk-mat-teal);
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 10px 15px -3px rgba(13, 148, 136, 0.2);
}

/* RWD */
@media (max-width: 768px) {
    .rk-mat-interface { grid-template-columns: 1fr; }
    .rk-mat-header { padding: 30px 20px; }
    .rk-mat-list { padding: 20px; border-right: none; border-bottom: 1px solid var(--rk-mat-border); }
    .rk-mat-summary { padding: 30px 20px; position: relative; top: 0; }
    .rk-mat-toggle-btn { padding: 10px; font-size: 13px; }
    .rk-mat-item { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#article-materialy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/"
    },
    "headline": "Ile kosztują materiały na ogrzewanie podłogowe 100 m² z rozdzielaczem i rurami?",
    "description": "Zestawienie kosztów materiałów do instalacji ogrzewania podłogowego. Sprawdź ceny rur, rozdzielacza ze stali nierdzewnej, szafki podtynkowej oraz projektu OZC.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-07",
    "dateModified": "2026-06-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#dataset-materialy",
    "name": "Kosztorys Materiałowy Ogrzewania Podłogowego 100 m2 (Rury i Rozdzielacz)",
    "description": "Szczegółowa struktura wydatków na komponenty instalacji płaszczyznowej, z uwzględnieniem różnic dla rozstawu rur 10 cm i 15 cm.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "koszt rur do ogrzewania podłogowego 100m2",
      "rozdzielacz ze stali nierdzewnej cena",
      "szafka podtynkowa do rozdzielacza koszt",
      "cena rury pe-rt/al/pe za metr",
      "materiały na podłogówkę cennik"
    ],
    "measurementTechnique": "Kalkulacja oparta na średnich cenach rynkowych brutto dla komponentów spełniających normę EN ISO 15875 dla domu 100 m2.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rury grzewcze (15 cm): 3000 PLN (ok. 770 m.b.)",
        "Rury grzewcze (10 cm): 4500 PLN (ok. 1150 m.b.)",
        "Rozdzielacz z rotametrami (8-13 sekcji): 1400 PLN",
        "Szafka podtynkowa: 400 PLN",
        "Projekt OZC: 450 PLN (Zwracany przy zakupie materiałów)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#webapp-materialy",
    "name": "Interaktywny Konfigurator Kosztów Materiałowych",
    "description": "Narzędzie symulujące koszyk ofertowy. Oblicza całkowity koszt materiałów (rury, rozdzielacz, osprzęt) w zależności od zagęszczenia pętli instalacji podłogowej.",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-mat-widget">
    
    <div class="rk-mat-header">
        <h2>Ile kosztują materiały na ogrzewanie podłogowe 100 m² z rozdzielaczem i rurami?</h2>
        <p>Wycena uwzględniająca wyłącznie koszt komponentów instalacyjnych waha się od 5 250 PLN do 6 750 PLN brutto. Różnica na poziomie 1 500 PLN wynika bezpośrednio z ilości zakupionej rury grzewczej i wielkości rozdzielacza.</p>
        
        <div class="rk-mat-tags">
            <span class="rk-mat-tag"># rury wielowarstwowe cena</span>
            <span class="rk-mat-tag"># rozdzielacz nierdzewny</span>
            <span class="rk-mat-tag"># norma EN ISO 15875</span>
        </div>
    </div>

    <div class="rk-mat-interface">
        
        <div class="rk-mat-list">
            
            <div class="rk-mat-item">
                <div class="rk-mat-item-header">
                    <div class="rk-mat-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 14.5a3.5 3.5 0 0 0-7 0"></path><path d="M13 14.5a3.5 3.5 0 0 0-7 0"></path><path d="M6 14.5a3.5 3.5 0 0 1-7 0"></path><path d="M2 14.5V9a7 7 0 0 1 14 0"></path><path d="M16 9v5.5"></path></svg>
                    </div>
                    <div class="rk-mat-item-title">
                        <h3>Certyfikowane Rury Grzewcze</h3>
                        <span>Klasa PE-RT/Al/PE | Cena: ~3,91 PLN/m.b.</span>
                    </div>
                </div>
                <p>Wybór komponentów renomowanych producentów, posiadających certyfikację zgodną z rygorystyczną <strong>normą EN ISO 15875</strong>, gwarantuje bezawaryjną pracę systemu przez deklarowany okres minimum 50 lat.</p>
                <p>Przy rozstawie co 15 cm zapotrzebowanie wynosi ok. 770 m.b. rury. Dogęszczając układ do 10 cm, zużyjesz ok. 1 150 m.b., co podnosi cenę rurociągu z 3 000 PLN na 4 500 PLN.</p>
                <div class="rk-mat-price-tag" id="descPipePrice">Koszt rur: 3 000 PLN</div>
            </div>

            <div class="rk-mat-item">
                <div class="rk-mat-item-header">
                    <div class="rk-mat-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="3" width="20" height="4" rx="1"></rect><rect x="4" y="7" width="4" height="14" rx="1"></rect><rect x="16" y="7" width="4" height="14" rx="1"></rect><path d="M10 11h4"></path><path d="M10 17h4"></path></svg>
                    </div>
                    <div class="rk-mat-item-title">
                        <h3>Rozdzielacz z rotametrami</h3>
                        <span>Stal nierdzewna | 8-13 sekcji</span>
                    </div>
                </div>
                <p>Sercem układu jest rozdzielacz wykonany z trwałej stali nierdzewnej, wyposażony w zawory odcinające oraz przepływomierze magnetyczne (rotametry) o optymalnym zakresie regulacji 0,5 &#8211; 5,0 l/min.</p>
                <p>Dla powierzchni 100 m² wymaga się zastosowania belek od 8 sekcji (przy rozstawie 15 cm) do nawet 13 sekcji (przy układzie gęstym). <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/">Zobacz dlaczego stal nierdzewna wypiera mosiądz</a>.</p>
                <div class="rk-mat-price-tag">Koszt uśredniony: 1 400 PLN</div>
            </div>

            <div class="rk-mat-item">
                <div class="rk-mat-item-header">
                    <div class="rk-mat-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><path d="M9 14v4"></path><path d="M15 14v4"></path></svg>
                    </div>
                    <div class="rk-mat-item-title">
                        <h3>Szafka podtynkowa</h3>
                        <span>Blacha ocynkowana / malowana</span>
                    </div>
                </div>
                <p>Estetyczna szafka montowana w wykutej wnęce ściany. Skutecznie chroni podzespoły hydrauliczne przed uszkodzeniami mechanicznymi i ułatwia podejście rurociągów tranzytowych do belek rozdzielacza.</p>
                <div class="rk-mat-price-tag">Koszt szafki: 400 PLN</div>
            </div>

        </div>

        <div class="rk-mat-summary">
            <h3 class="rk-mat-summary-title">Kalkulator Kosztorysu</h3>
            
            <div class="rk-mat-toggle-box">
                <div class="rk-mat-toggle-btn active" data-val="15">Rozstaw 15 cm</div>
                <div class="rk-mat-toggle-btn" data-val="10">Rozstaw 10 cm</div>
            </div>

            <div class="rk-mat-calc-row">
                <span class="rk-mat-calc-label">Zapotrzebowanie rury:</span>
                <span class="rk-mat-calc-value rk-val-dynamic" id="calcPipeLength">~770 m.b.</span>
            </div>
            
            <div class="rk-mat-calc-row">
                <span class="rk-mat-calc-label">Koszt rurociągu:</span>
                <span class="rk-mat-calc-value rk-val-dynamic" id="calcPipePrice">3 000 PLN</span>
            </div>

            <div class="rk-mat-calc-row">
                <span class="rk-mat-calc-label">Rozdzielacz + Szafka:</span>
                <span class="rk-mat-calc-value">1 800 PLN</span>
            </div>

            <div class="rk-mat-calc-row">
                <span class="rk-mat-calc-label">Projekt techniczny (OZC):</span>
                <span class="rk-mat-calc-value" style="color: var(--rk-mat-teal);">
                    <span class="rk-val-strike">450 PLN</span> 0 PLN
                </span>
            </div>

            <div class="rk-mat-total-box">
                <div class="rk-mat-total-label">Suma (Materiały Systemowe)</div>
                <div class="rk-mat-total-value rk-val-dynamic" id="calcTotal">5 250 PLN</div>
                <div class="rk-mat-total-desc">Ceny brutto szacunkowe na rok 2026. <br>Projekt OZC w 100% zwracany w formie rabatu na rury.</div>
            </div>

            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-mat-cta-btn">
                ZAMÓW PROJEKT PODŁOGÓWKI
            </a>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-mat-toggle-btn');
    
    // Pola do aktualizacji
    const descPipePrice = document.getElementById('descPipePrice');
    const calcPipeLength = document.getElementById('calcPipeLength');
    const calcPipePrice = document.getElementById('calcPipePrice');
    const calcTotal = document.getElementById('calcTotal');
    const dynamicVals = document.querySelectorAll('.rk-val-dynamic');

    const data = {
        '15': {
            descText: 'Koszt rur: 3 000 PLN',
            pipeLength: '~770 m.b.',
            pipePrice: '3 000 PLN',
            total: '5 250 PLN'
        },
        '10': {
            descText: 'Koszt rur: 4 500 PLN',
            pipeLength: '~1 150 m.b.',
            pipePrice: '4 500 PLN',
            total: '6 750 PLN'
        }
    };

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

            const val = this.getAttribute('data-val');
            const d = data[val];

            // Animacja zanikania
            dynamicVals.forEach(el => el.style.opacity = '0');
            descPipePrice.style.opacity = '0';

            setTimeout(() => {
                descPipePrice.innerText = d.descText;
                calcPipeLength.innerText = d.pipeLength;
                calcPipePrice.innerText = d.pipePrice;
                calcTotal.innerText = d.total;

                // Powrót widoczności
                dynamicVals.forEach(el => el.style.opacity = '1');
                descPipePrice.style.opacity = '1';
            }, 200);
        });
    });
});
</script>



<style>
:root {
    --rk-labor-dark: #0f172a;
    --rk-labor-primary: #2563eb;
    --rk-labor-primary-light: #eff6ff;
    --rk-labor-cyan: #06b6d4;
    --rk-labor-cyan-light: #ecfeff;
    --rk-labor-gray: #475569;
    --rk-labor-border: #e2e8f0;
    --rk-labor-bg: #ffffff;
}

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

/* Nagłówek i SEO */
.rk-labor-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-labor-dark) 0%, #1e293b 100%);
    color: #ffffff;
    text-align: center;
}

.rk-labor-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.35;
}

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

/* Statystyki - Koszty Robocizny */
.rk-labor-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    padding: 0 50px;
    margin-top: -25px;
    position: relative;
    z-index: 10;
}

.rk-labor-stat-card {
    background: var(--rk-labor-bg);
    border: 1px solid var(--rk-labor-border);
    border-radius: 16px;
    padding: 25px;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
    display: flex;
    align-items: center;
    gap: 20px;
    transition: transform 0.3s, border-color 0.3s;
}

.rk-labor-stat-card:hover {
    transform: translateY(-5px);
    border-color: var(--rk-labor-primary);
}

.rk-labor-icon-box {
    width: 54px;
    height: 54px;
    border-radius: 14px;
    background: var(--rk-labor-primary-light);
    color: var(--rk-labor-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rk-labor-stat-content h4 {
    font-size: 13px;
    color: var(--rk-labor-gray);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 5px 0;
    font-weight: 700;
}

.rk-labor-stat-content .rk-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-labor-dark);
}

/* Interaktywny Harmonogram (Akordeon SEO) */
.rk-labor-process {
    padding: 40px 50px;
}

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

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

.rk-acc-item {
    background: #f8fafc;
    border: 1px solid var(--rk-labor-border);
    border-radius: 16px;
    overflow: hidden;
    transition: all 0.3s ease;
}

.rk-acc-item.active {
    background: #ffffff;
    border-color: var(--rk-labor-primary);
    box-shadow: 0 10px 25px -5px rgba(37, 99, 235, 0.1);
}

.rk-acc-header {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 20px 25px;
    cursor: pointer;
    user-select: none;
}

.rk-acc-num {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: var(--rk-labor-border);
    color: var(--rk-labor-gray);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    font-weight: 900;
    flex-shrink: 0;
    transition: all 0.3s;
}

.rk-acc-item.active .rk-acc-num {
    background: var(--rk-labor-primary);
    color: #ffffff;
}

.rk-acc-title {
    flex-grow: 1;
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-labor-dark);
    margin: 0;
    transition: color 0.3s;
}

.rk-acc-item.active .rk-acc-title {
    color: var(--rk-labor-primary);
}

.rk-acc-chevron {
    color: var(--rk-labor-primary);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

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

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

.rk-acc-content-inner {
    padding: 0 25px 25px 81px; /* Wyśrodkowane pod tekstem, omija numerek */
}

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

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

.rk-acc-content-inner a {
    color: var(--rk-labor-primary);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.3s;
}

.rk-acc-content-inner a:hover {
    color: #1d4ed8;
}

.rk-seo-tag-box {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 15px;
}

.rk-seo-pill {
    background: var(--rk-labor-cyan-light);
    color: var(--rk-labor-cyan);
    font-size: 12px;
    font-weight: 700;
    padding: 4px 12px;
    border-radius: 20px;
}

/* RWD */
@media (max-width: 768px) {
    .rk-labor-header, .rk-labor-process { padding: 30px 20px; }
    .rk-labor-stats { grid-template-columns: 1fr; padding: 0 20px; margin-top: -20px; }
    .rk-acc-header { padding: 15px; gap: 15px; }
    .rk-acc-content-inner { padding: 0 15px 20px 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#article-robocizna",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/"
    },
    "headline": "Jaki jest koszt robocizny ogrzewania podłogowego 100 m² u profesjonalnego instalatora?",
    "description": "Dokładne zestawienie kosztów robocizny ogrzewania podłogowego krok po kroku. Cena montażu rozdzielacza, układania rur, izolacji oraz próby szczelności.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-07",
    "dateModified": "2026-06-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#dataset-robocizna",
    "name": "Szczegółowy cennik robocizny instalatora ogrzewania podłogowego 2026",
    "description": "Baza danych wycenowych obejmująca stawkę ryczałtową za ułożenie podłogówki oraz szczegółowy zakres prac wchodzących w cenę za m2.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "koszt robocizny ogrzewania podłogowego 100 m2",
      "cena za m2 podłogówki robocizna",
      "ile kosztuje montaż rozdzielacza",
      "cena za metr bieżący układania rury",
      "układanie styropianu pod podłogówkę cena robocizny",
      "ile kosztuje próba ciśnieniowa instalacji"
    ],
    "measurementTechnique": "Kalkulacja w oparciu o ryczałt 32,50 PLN/m2, definiująca pełny harmonogram prac instalacyjnych wymaganych przez normę PN-EN 1264-4.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Osadzenie szafki podtynkowej i montaż rozdzielacza",
        "Rozłożenie folii rastrowej i taśmy dylatacyjnej",
        "Montaż rur grzewczych takerem",
        "Przejścia dylatacyjne w rurach ochronnych",
        "Napełnienie instalacji i próba ciśnieniowa"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#webapp-robocizna",
    "name": "Interaktywny Harmonogram Kosztów Instalacji",
    "description": "Rozwijany moduł akordeonowy (Q&A style), pozwalający inwestorowi zweryfikować, jakie konkretnie prace wchodzą w ryczałtową stawkę robocizny instalatora.",
    "applicationCategory": "ReferenceApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-labor-widget">
    
    <div class="rk-labor-header">
        <h2>Jaki jest koszt robocizny ogrzewania podłogowego 100 m² u profesjonalnego instalatora?</h2>
        <p>Projektowy koszt instalacji na rok 2026 jest zazwyczaj wyliczany ryczałtowo. Pozwala to inwestorowi na precyzyjne zaplanowanie budżetu bez ryzyka ukrytych dopłat za trudniejsze logistycznie dogęszczanie pętli przy oknach.</p>
    </div>

    <div class="rk-labor-stats">
        <div class="rk-labor-stat-card">
            <div class="rk-labor-icon-wrap rk-labor-icon-box">
                <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            </div>
            <div class="rk-labor-stat-content">
                <h4>Stawka całkowita (100 m²)</h4>
                <div class="rk-val">3 250 PLN</div>
            </div>
        </div>
        <div class="rk-labor-stat-card">
            <div class="rk-labor-icon-wrap rk-labor-icon-box" style="background: var(--rk-labor-cyan-light); color: #0891b2;">
                <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
            </div>
            <div class="rk-labor-stat-content">
                <h4>Cena za m² robocizny</h4>
                <div class="rk-val">32,50 PLN/m²</div>
            </div>
        </div>
    </div>

    <div class="rk-labor-process">
        <h3 class="rk-labor-process-title">Co dokładnie obejmuje wycena montażu? (Norma PN-EN 1264-4)</h3>
        
        <div class="rk-accordion-list" id="laborAccordion">
            
            <div class="rk-acc-item active">
                <div class="rk-acc-header">
                    <div class="rk-acc-num">1</div>
                    <h4 class="rk-acc-title">Montaż rozdzielacza i osadzenie szafki</h4>
                    <div class="rk-acc-chevron">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                    </div>
                </div>
                <div class="rk-acc-content" style="max-height: 500px; opacity: 1;">
                    <div class="rk-acc-content-inner">
                        <p>Wycena robocizny musi uwzględniać fizyczne wykucie wnęki w ścianie (w przypadku szafek podtynkowych), stabilne osadzenie obudowy oraz zamontowanie ram blaszanych. Następnie instalator uzbraja <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/">rozdzielacz do podłogówki ze stali nierdzewnej</a>, wyposażając go w zawory spustowe i odpowietrzniki.</p>
                        <p>Wielielu wykonawców dolicza dodatkowe koszty rzędu 250-400 PLN za sam punkt rozdzielacza – w naszej uśrednionej stawce 32,50 PLN/m² ten etap jest już wkalkulowany w cenę całkowitą.</p>
                        <div class="rk-seo-tag-box">
                            <span class="rk-seo-pill"># cena montażu rozdzielacza</span>
                            <span class="rk-seo-pill"># obsadzenie szafki podtynkowej koszt</span>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-acc-item">
                <div class="rk-acc-header">
                    <div class="rk-acc-num">2</div>
                    <h4 class="rk-acc-title">Ułożenie folii rastrowej i przygotowanie podłoża</h4>
                    <div class="rk-acc-chevron">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                    </div>
                </div>
                <div class="rk-acc-content">
                    <div class="rk-acc-content-inner">
                        <p>Robocizna instalatora instalacji sanitarnych <strong>nie obejmuje</strong> układania płyt styropianowych (EPS/XPS) na chudziaku – to zadanie należy zazwyczaj do ekipy posadzkarskiej lub jest oddzielnie płatne. W cenie instalacji płaszczyznowej zawiera się natomiast rzetelne, szczelne rozłożenie folii z warstwą aluminium i nadrukiem kratki (rastra).</p>
                        <p>Instalator musi dokładnie skleić zakłady folii, aby mleczko cementowe z jastrychu nie przedostało się pomiędzy <a href="https://projekt-ogrzewania.pl/jakie-sa-najlepsze-sposoby-izolacji-pod-ogrzewanie-podlogowe/">izolację termiczną pod podłogówkę</a>.</p>
                        <div class="rk-seo-tag-box">
                            <span class="rk-seo-pill"># układanie styropianu pod podłogówkę cena</span>
                            <span class="rk-seo-pill"># montaż folii aluminiowej robocizna</span>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-acc-item">
                <div class="rk-acc-header">
                    <div class="rk-acc-num">3</div>
                    <h4 class="rk-acc-title">Montaż rur grzewczych (Tackerowanie)</h4>
                    <div class="rk-acc-chevron">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                    </div>
                </div>
                <div class="rk-acc-content">
                    <div class="rk-acc-content-inner">
                        <p>To najbardziej czasochłonny proces. Płacąc stałą kwotę za metr kwadratowy, nie musisz się martwić o to, <a href="https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/">ile trwa układanie podłogówki</a> i czy instalator policzy Cię za dodatkowe metry bieżące rury zagęszczanej przy oknach.</p>
                        <p>Rury mocowane są za pomocą spinek wbijanych takerem. Krytycznym elementem, wycenianym w ramach robocizny, jest zachowanie normatywnych promieni gięcia (dla rur 16 mm wynosi on minimum 80 mm). Złamanie rury przez niedoświadczonego montera wymaga zastosowania złączki zaprasowywanej pod posadzką, co jest <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">jednym z najczęstszych błędów montażowych</a>.</p>
                        <div class="rk-seo-tag-box">
                            <span class="rk-seo-pill"># cena za metr bieżący układania rury</span>
                            <span class="rk-seo-pill"># tackerowanie podłogówki koszt</span>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-acc-item">
                <div class="rk-acc-header">
                    <div class="rk-acc-num">4</div>
                    <h4 class="rk-acc-title">Izolacja brzegowa i zabezpieczenia w peszlach</h4>
                    <div class="rk-acc-chevron">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                    </div>
                </div>
                <div class="rk-acc-content">
                    <div class="rk-acc-content-inner">
                        <p>Przed rozłożeniem pętli, profesjonalna usługa wymaga przyklejenia piankowej taśmy brzegowej z tzw. &#8222;fartuchem&#8221; na wszystkich ścianach obwodowych i słupach. Zapobiega to pękaniu betonu podczas nagrzewania.</p>
                        <p>Ponadto, każde przejście rury grzewczej przez drzwi lub <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">profil dylatacyjny między pomieszczeniami</a> musi zostać zabezpieczone twardą rurą osłonową (peszlem) o długości minimum 30-40 cm. Brak tego elementu w wycenie wykonawcy to sygnał alarmowy dla inwestora.</p>
                        <div class="rk-seo-tag-box">
                            <span class="rk-seo-pill"># montaż taśmy brzegowej cena</span>
                            <span class="rk-seo-pill"># dylatacje w progach robocizna</span>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-acc-item">
                <div class="rk-acc-header">
                    <div class="rk-acc-num">5</div>
                    <h4 class="rk-acc-title">Napełnienie zładu i próba ciśnieniowa</h4>
                    <div class="rk-acc-chevron">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                    </div>
                </div>
                <div class="rk-acc-content">
                    <div class="rk-acc-content-inner">
                        <p>Końcowy, najważniejszy etap zamykający temat kosztów wykonawczych. Instalator musi podłączyć wszystkie pętle do rozdzielacza, stosując złączki typu eurokonus, a następnie napełnić sekcje wodą, odpowietrzając układ pętla po pętli.</p>
                        <p>Zwieńczeniem robocizny jest <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">wykonanie próby szczelności</a> powietrzem lub wodą (min. 6 barów przez 24 godziny) i wypisanie protokołu, który stanowi gwarancję wykonawczą przed zalaniem rur wylewką.</p>
                        <div class="rk-seo-tag-box">
                            <span class="rk-seo-pill"># ile kosztuje próba ciśnieniowa instalacji</span>
                            <span class="rk-seo-pill"># protokół szczelności podłogówki</span>
                        </div>
                    </div>
                </div>
            </div>

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

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

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

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

            // Zwiń wszystkie
            accItems.forEach(acc => {
                acc.classList.remove('active');
                acc.querySelector('.rk-acc-content').style.maxHeight = null;
                acc.querySelector('.rk-acc-content').style.opacity = '0';
            });

            // Rozwiń kliknięty (jeśli nie był aktywny)
            if (!isActive) {
                item.classList.add('active');
                content.style.maxHeight = content.scrollHeight + "px";
                content.style.opacity = '1';
            }
        });
    });
});
</script>



<style>
:root {
    --rk-space-dark: #1e293b;
    --rk-space-primary: #4f46e5;
    --rk-space-primary-light: #e0e7ff;
    --rk-space-secondary: #0ea5e9;
    --rk-space-accent: #f59e0b;
    --rk-space-accent-light: #fef3c7;
    --rk-space-gray: #64748b;
    --rk-space-bg: #ffffff;
    --rk-space-border: #e2e8f0;
}

.rk-space-widget {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-space-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -15px rgba(79, 70, 229, 0.15);
    border: 1px solid var(--rk-space-primary-light);
    overflow: hidden;
}

/* Nagłówek i SEO Długi Ogon */
.rk-space-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-space-dark) 0%, #334155 100%);
    color: #ffffff;
    text-align: center;
}

.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 auto;
    max-width: 750px;
    line-height: 1.6;
}

.rk-seo-tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin-top: 20px;
}

.rk-seo-tag {
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 12px;
    color: #e0f2fe;
    font-weight: 600;
}

/* Interaktywny Kalkulator - Bez grafiki, czyste dane */
.rk-space-interactive {
    padding: 40px 50px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-space-border);
}

.rk-space-tabs {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 30px;
    flex-wrap: wrap;
    background: var(--rk-space-bg);
    padding: 10px;
    border-radius: 20px;
    border: 1px solid var(--rk-space-border);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
}

.rk-space-tab {
    flex: 1;
    padding: 18px 24px;
    background: transparent;
    border: 2px solid transparent;
    border-radius: 14px;
    cursor: pointer;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-space-gray);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 5px;
    min-width: 180px;
}

.rk-space-tab:hover {
    background: var(--rk-space-primary-light);
    color: var(--rk-space-primary);
}

.rk-space-tab.active {
    background: var(--rk-space-primary);
    border-color: var(--rk-space-primary);
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(79, 70, 229, 0.4);
}

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

.rk-space-tab.active .rk-space-tab-sub { opacity: 0.9; }

/* Dynamiczny panel eksperta (zamiast SVG) */
.rk-dynamic-insight {
    background: var(--rk-space-bg);
    border: 1px dashed var(--rk-space-secondary);
    border-radius: 16px;
    padding: 25px 30px;
    margin-bottom: 30px;
    display: flex;
    align-items: flex-start;
    gap: 20px;
    transition: all 0.4s ease;
}

.rk-insight-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: #e0f2fe;
    color: var(--rk-space-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

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

.rk-insight-content p {
    margin: 0;
    color: var(--rk-space-gray);
    font-size: 14px;
    line-height: 1.6;
}

/* Kafelki z danymi */
.rk-space-data-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.rk-space-card {
    background: var(--rk-space-bg);
    border: 1px solid var(--rk-space-border);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 20px;
    transition: transform 0.3s, box-shadow 0.3s;
}

.rk-space-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
    border-color: var(--rk-space-primary-light);
}

.rk-space-icon-wrap {
    width: 54px;
    height: 54px;
    border-radius: 14px;
    background: var(--rk-space-primary-light);
    color: var(--rk-space-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rk-space-card-content h4 {
    font-size: 12px;
    color: var(--rk-space-gray);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 5px 0;
    font-weight: 700;
}

.rk-space-card-content .rk-val {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-space-dark);
    transition: opacity 0.3s ease;
}

.rk-val-highlight { color: var(--rk-space-primary) !important; font-size: 24px !important; }

/* Sekcja Wniosków i CTA */
.rk-space-conclusion {
    padding: 40px 50px;
    background: #ffffff;
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-space-conclusion p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-space-gray);
    margin: 0;
}

.rk-cta-box {
    background: var(--rk-space-accent-light);
    border: 1px solid #fde68a;
    padding: 25px 30px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.rk-cta-text h4 {
    margin: 0 0 5px 0;
    color: #92400e;
    font-size: 18px;
    font-weight: 800;
}

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

.rk-cta-btn {
    background: var(--rk-space-accent);
    color: #ffffff;
    padding: 14px 28px;
    border-radius: 12px;
    font-weight: 800;
    text-decoration: none;
    font-size: 15px;
    white-space: nowrap;
    transition: all 0.3s;
    box-shadow: 0 4px 6px rgba(245, 158, 11, 0.2);
}

.rk-cta-btn:hover {
    background: #d97706;
    transform: translateY(-2px);
    box-shadow: 0 6px 12px rgba(245, 158, 11, 0.3);
}

/* RWD */
@media (max-width: 768px) {
    .rk-space-header, .rk-space-interactive, .rk-space-conclusion { padding: 30px 20px; }
    .rk-space-tabs { flex-direction: column; gap: 8px; padding: 10px; }
    .rk-space-tab { min-width: 100%; padding: 14px; }
    .rk-space-data-grid { grid-template-columns: 1fr; }
    .rk-dynamic-insight { flex-direction: column; text-align: center; align-items: center; padding: 20px; }
    .rk-cta-box { flex-direction: column; text-align: center; }
    .rk-cta-btn { width: 100%; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#article-rozstaw-rur",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/"
    },
    "headline": "Ile kosztuje podłogówka na 100 m² w zależności od rozstawu rur i stref brzegowych?",
    "description": "Sprawdź, ile kosztuje instalacja ogrzewania podłogowego na 100 m2. Porównanie zużycia materiałów: rozstaw rur co 10 cm, 15 cm oraz układ mieszany w strefach brzegowych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-06",
    "dateModified": "2026-06-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#dataset-rozstaw",
    "name": "Zestawienie kosztów materiałowych i zużycia rur dla podłogówki 100 m2",
    "description": "Kalkulacja długości pętli, wielkości rozdzielacza i całkowitej ceny podłogówki dla różnych zagęszczeń instalacji wodnej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "cena materiałów ogrzewania podłogowego 100m2",
      "ile metrów rury na 100m2 podłogówki",
      "koszt rur do podłogówki co 10 cm",
      "rozstaw rur w strefach brzegowych",
      "koszt rozdzielacza do podłogówki 10 sekcji"
    ],
    "measurementTechnique": "Algorytm oparty na przeliczniku L = (A/b)*1.15, uwzględniający naddatki instalacyjne oraz cennik hurtowy komponentów na rok 2026.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wariant ekonomiczny (15 cm): Zużycie 770 m.b. rury, rozdzielacz 8 sekcji, koszt ok. 8 500 PLN.",
        "Wariant inżynieryjny (mieszany): Zużycie 940 m.b. rury, rozdzielacz 10 sekcji, koszt ok. 9 175 PLN.",
        "Wariant gęsty (10 cm): Zużycie 1150 m.b. rury, rozdzielacz 12 sekcji, koszt ok. 10 000 PLN."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#webapp-rozstaw",
    "name": "Interaktywny Asystent Kosztorysu Podłogówki",
    "description": "Moduł dynamicznie przeliczający całkowity koszt instalacji i zużycie komponentów w zależności od wybranego rozstawu rur grzewczych.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and CSS3",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-space-widget">
    
    <div class="rk-space-header">
        <h2>Ile kosztuje podłogówka na 100 m² w zależności od rozstawu rur i stref brzegowych?</h2>
        <p>Zagęszczenie rur to główny czynnik determinujący to, ile wydasz na materiały i osprzęt rozdzielacza. Zgodnie z fizyką budowli, gęstszy rozstaw kompensuje straty ciepła przy dużych oknach i ścianach zewnętrznych.</p>
        
        <div class="rk-seo-tags">
            <span class="rk-seo-tag"># cena materiałów podłogówki 100m2</span>
            <span class="rk-seo-tag"># ile metrów rury</span>
            <span class="rk-seo-tag"># strefy brzegowe</span>
        </div>
    </div>

    <div class="rk-space-interactive">
        
        <div class="rk-space-tabs" id="spaceTabs">
            <div class="rk-space-tab" data-target="state-15">
                Wariant Ekonomiczny
                <span class="rk-space-tab-sub">Całość co 15 cm</span>
            </div>
            <div class="rk-space-tab active" data-target="state-mix">
                Wariant Inżynieryjny
                <span class="rk-space-tab-sub">Rozstaw Mieszany</span>
            </div>
            <div class="rk-space-tab" data-target="state-10">
                Maksymalna Wydajność
                <span class="rk-space-tab-sub">Całość co 10 cm</span>
            </div>
        </div>

        <div class="rk-dynamic-insight" id="insightBox">
            <div class="rk-insight-icon">
                <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
            </div>
            <div class="rk-insight-content">
                <h4 id="insightTitle">Złoty standard (Strefy co 10 cm / Środek co 15 cm)</h4>
                <p id="insightDesc">Najbardziej opłacalne rozwiązanie. Dogęszczając rury wyłącznie w strefach brzegowych (przy drzwiach tarasowych i ścianach), zapobiegasz ciągowi zimna od okien, nie przepłacając za rury w centrum dobrze izolowanego salonu.</p>
            </div>
        </div>

        <div class="rk-space-data-grid">
            
            <div class="rk-space-card">
                <div class="rk-space-icon-wrap">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242"></path><path d="M12 12v9"></path><path d="m8 17 4 4 4-4"></path></svg>
                </div>
                <div class="rk-space-card-content">
                    <h4>Zużycie / Całkowita Długość Rury</h4>
                    <div class="rk-val" id="valLength">8,2 m.b. / 940 m.b.</div>
                </div>
            </div>

            <div class="rk-space-card">
                <div class="rk-space-icon-wrap">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><rect x="9" y="9" width="6" height="6"></rect><line x1="9" y1="1" x2="9" y2="4"></line><line x1="15" y1="1" x2="15" y2="4"></line><line x1="9" y1="20" x2="9" y2="23"></line><line x1="15" y1="20" x2="15" y2="23"></line><line x1="20" y1="9" x2="23" y2="9"></line><line x1="20" y1="14" x2="23" y2="14"></line><line x1="1" y1="9" x2="4" y2="9"></line><line x1="1" y1="14" x2="4" y2="14"></line></svg>
                </div>
                <div class="rk-space-card-content">
                    <h4>Rozdzielacz / Liczba Pętli</h4>
                    <div class="rk-val" id="valLoops">10 sekcji / 10 obwodów</div>
                </div>
            </div>

            <div class="rk-space-card">
                <div class="rk-space-icon-wrap">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                </div>
                <div class="rk-space-card-content">
                    <h4>Koszt Materiałów Systemowych</h4>
                    <div class="rk-val" id="valMat">5 925 PLN</div>
                </div>
            </div>

            <div class="rk-space-card" style="border-color: var(--rk-space-primary); background: var(--rk-space-primary-light);">
                <div class="rk-space-icon-wrap" style="background: var(--rk-space-primary); color: #fff;">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="5" width="20" height="14" rx="2"></rect><line x1="2" y1="10" x2="22" y2="10"></line></svg>
                </div>
                <div class="rk-space-card-content">
                    <h4 style="color: var(--rk-space-primary);">Koszt z Robocizną (Brutto)</h4>
                    <div class="rk-val rk-val-highlight" id="valTotal">9 175 PLN</div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-space-conclusion">
        <p>Stosowanie <strong>rozstawu mieszanego</strong> jest w praktyce inżynierskiej najbardziej uzasadnione ekonomicznie i technicznie. Pozwala na optymalne pokrycie strat ciepła tam, gdzie jest to konieczne, bez generowania zbędnych wydatków materiałowych w miejscach o niskim zapotrzebowaniu na energię.</p>
        
        <div class="rk-cta-box">
            <div class="rk-cta-text">
                <h4>Chcesz uniknąć przepłacania za rury?</h4>
                <p>Cena projektu na portalu projekt-ogrzewania.pl (450 PLN) jest w całości zwracana w postaci rabatu (0 PLN) przy zakupie materiałów.</p>
            </div>
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-cta-btn">
                ZAMÓW PROJEKT
            </a>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const tabs = document.querySelectorAll('.rk-space-tab');
    
    // Pola tekstowe w panelu eksperta
    const insightBox = document.getElementById('insightBox');
    const insightTitle = document.getElementById('insightTitle');
    const insightDesc = document.getElementById('insightDesc');

    // Pola danych do podmiany
    const valLength = document.getElementById('valLength');
    const valLoops = document.getElementById('valLoops');
    const valMat = document.getElementById('valMat');
    const valTotal = document.getElementById('valTotal');

    // Baza danych SEO i Długi Ogon dla poszczególnych stanów
    const simData = {
        'state-15': {
            title: 'Wariant ekonomiczny (Rury co 15 cm)',
            desc: 'Najniższy koszt zakupu rur i mniejszy rozdzielacz (zaledwie 8 sekcji na 100 m2). Rozwiązanie odpowiednie dla bardzo dobrze docieplonych domów bez dużych okien. Wymaga jednak zasilania z pompy ciepła o wyższej temperaturze, co minimalnie podnosi rachunki za prąd.',
            length: '6,7 m.b. / 770 m.b.',
            loops: '8 sekcji / 8 obwodów',
            mat: '5 250 PLN',
            total: '8 500 PLN'
        },
        'state-mix': {
            title: 'Złoty standard (Strefy co 10 cm / Środek co 15 cm)',
            desc: 'Najbardziej opłacalne rozwiązanie. Dogęszczając rury wyłącznie w strefach brzegowych (przy drzwiach tarasowych i ścianach), zapobiegasz ciągowi zimna od okien, nie przepłacając za rury w centrum dobrze izolowanego salonu.',
            length: '8,2 m.b. / 940 m.b.',
            loops: '10 sekcji / 10 obwodów',
            mat: '5 925 PLN',
            total: '9 175 PLN'
        },
        'state-10': {
            title: 'Maksymalna wydajność (Całość co 10 cm)',
            desc: 'Najwyższy początkowy koszt instalacji podłogówki ze względu na zużycie aż 10 m.b. rury na m2 i potężny rozdzielacz. Ten wariant to gwarancja pracy pompy ciepła na ultra-niskich temperaturach (np. 30 stopni), co daje ogromne oszczędności eksploatacyjne w skali lat.',
            length: '10,0 m.b. / 1 150 m.b.',
            loops: '12 sekcji / 12 obwodów',
            mat: '6 750 PLN',
            total: '10 000 PLN'
        }
    };

    tabs.forEach(tab => {
        tab.addEventListener('click', function() {
            // Usunięcie klasy active ze wszystkich
            tabs.forEach(t => t.classList.remove('active'));
            // Dodanie do klikniętego
            this.classList.add('active');

            // Pobranie targetu
            const target = this.getAttribute('data-target');
            const dataObj = simData[target];
            
            // Animacja zmiany tekstu i danych
            const valElements = [valLength, valLoops, valMat, valTotal, insightTitle, insightDesc];
            valElements.forEach(el => el.style.opacity = '0');
            
            setTimeout(() => {
                // Update panelu eksperta
                insightTitle.innerText = dataObj.title;
                insightDesc.innerText = dataObj.desc;

                // Update kafelków danych
                valLength.innerText = dataObj.length;
                valLoops.innerText = dataObj.loops;
                valMat.innerText = dataObj.mat;
                valTotal.innerText = dataObj.total;
                
                valElements.forEach(el => el.style.opacity = '1');
            }, 200);
        });
    });
});
</script>



<style>
:root {
    --rk-proj-dark: #0f172a;
    --rk-proj-blue: #0284c7;
    --rk-proj-light-blue: #f0f9ff;
    --rk-proj-accent: #38bdf8;
    --rk-proj-red: #ef4444;
    --rk-proj-red-light: #fef2f2;
    --rk-proj-green: #10b981;
    --rk-proj-gray: #64748b;
    --rk-proj-border: #e2e8f0;
    --rk-proj-bg: #ffffff;
}

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

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

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

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

/* Interaktywny Panel */
.rk-proj-interactive {
    padding: 40px 50px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-proj-border);
}

.rk-proj-controls {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    margin-bottom: 35px;
    background: #ffffff;
    padding: 15px 30px;
    border-radius: 999px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
    border: 1px solid var(--rk-proj-border);
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.rk-proj-label {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-proj-gray);
    cursor: pointer;
    transition: color 0.3s;
}

.rk-proj-label.state-bad { color: var(--rk-proj-red); }
.rk-proj-label.state-good { color: var(--rk-proj-green); }

/* Switch iOS Style */
.rk-proj-switch {
    position: relative;
    display: inline-block;
    width: 70px;
    height: 36px;
}
.rk-proj-switch input { opacity: 0; width: 0; height: 0; }
.rk-proj-slider {
    position: absolute;
    cursor: pointer;
    top: 0; left: 0; right: 0; bottom: 0;
    background-color: var(--rk-proj-red);
    transition: .4s cubic-bezier(0.4, 0, 0.2, 1);
    border-radius: 36px;
}
.rk-proj-slider:before {
    position: absolute;
    content: "";
    height: 28px;
    width: 28px;
    left: 4px;
    bottom: 4px;
    background-color: white;
    transition: .4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    border-radius: 50%;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}
input:checked + .rk-proj-slider { background-color: var(--rk-proj-green); }
input:checked + .rk-proj-slider:before { transform: translateX(34px); }

/* SVG Wizualizacja */
.rk-proj-visual {
    background: #ffffff;
    border: 1px solid var(--rk-proj-border);
    border-radius: 20px;
    padding: 30px;
    text-align: center;
    position: relative;
    overflow: hidden;
    min-height: 250px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: border-color 0.4s;
}

.rk-proj-visual.state-bad { border-color: #fca5a5; background: var(--rk-proj-red-light); }
.rk-proj-visual.state-good { border-color: #6ee7b7; background: #ecfdf5; }

.svg-pipe {
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: all 0.5s ease-in-out;
}

/* Animacje SVG */
.state-bad .svg-pipe-dense { stroke: var(--rk-proj-red); stroke-width: 4; opacity: 1; animation: pipePulse 2s infinite; }
.state-bad .svg-pipe-opt { opacity: 0; }
.state-bad .svg-money-fly { opacity: 1; animation: moneyFly 2s infinite linear; }

.state-good .svg-pipe-opt { stroke: var(--rk-proj-blue); stroke-width: 4; opacity: 1; animation: waterFlow 3s linear infinite; stroke-dasharray: 15 10; }
.state-good .svg-pipe-dense { opacity: 0; }
.state-good .svg-money-fly { opacity: 0; }

@keyframes pipePulse {
    0% { filter: drop-shadow(0 0 2px rgba(239, 68, 68, 0.5)); }
    50% { filter: drop-shadow(0 0 8px rgba(239, 68, 68, 0.9)); stroke-width: 5; }
    100% { filter: drop-shadow(0 0 2px rgba(239, 68, 68, 0.5)); }
}

@keyframes waterFlow {
    from { stroke-dashoffset: 50; }
    to { stroke-dashoffset: 0; }
}

@keyframes moneyFly {
    0% { transform: translateY(0) scale(1); opacity: 1; }
    100% { transform: translateY(-40px) scale(1.5); opacity: 0; }
}

/* Panel Danych (Kafelki zamiast tabeli) */
.rk-proj-data-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    padding: 0 50px 40px;
    margin-top: -20px;
}

.rk-proj-card {
    background: var(--rk-proj-bg);
    border: 1px solid var(--rk-proj-border);
    border-radius: 16px;
    padding: 25px;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.02);
    transition: transform 0.3s;
}

.rk-proj-card:hover {
    transform: translateY(-5px);
    border-color: var(--rk-proj-blue);
}

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

.rk-proj-card h3 {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-proj-gray);
    margin: 0 0 10px 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-proj-value {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-proj-dark);
    margin: 0 0 10px 0;
}

.rk-proj-formula {
    font-size: 13px;
    font-family: 'Courier New', Courier, monospace;
    color: #475569;
    background: #f1f5f9;
    padding: 8px 10px;
    border-radius: 6px;
    word-break: break-all;
    line-height: 1.4;
}

/* Sekcja Tekstowa i Wnioski */
.rk-proj-text-content {
    padding: 0 50px 40px;
    color: var(--rk-proj-gray);
    font-size: 16px;
    line-height: 1.7;
}

.rk-proj-text-content p { margin: 0 0 15px 0; }
.rk-proj-text-content a {
    color: var(--rk-proj-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.rk-proj-alert {
    background: var(--rk-proj-red-light);
    border-left: 4px solid var(--rk-proj-red);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin-top: 25px;
}

.rk-proj-alert strong { color: var(--rk-proj-red); font-size: 18px; }

/* Potężne CTA */
.rk-proj-cta-box {
    background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
    padding: 50px;
    text-align: center;
    border-top: 1px solid var(--rk-proj-border);
}

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

.rk-proj-btn-mega {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-proj-blue);
    color: #ffffff;
    font-size: 18px;
    font-weight: 900;
    padding: 22px 45px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 15px 30px -5px rgba(2, 132, 199, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 2px solid transparent;
    margin-top: 20px;
}

.rk-proj-btn-mega:hover {
    transform: translateY(-5px) scale(1.02);
    background: #0369a1;
    box-shadow: 0 20px 40px -5px rgba(2, 132, 199, 0.5);
}

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

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-proj-header, .rk-proj-interactive, .rk-proj-data-grid, .rk-proj-text-content, .rk-proj-cta-box {
        padding: 30px 20px;
    }
    .rk-proj-data-grid { grid-template-columns: 1fr; margin-top: 0; }
    .rk-proj-controls { flex-direction: column; padding: 20px; border-radius: 20px; }
    .rk-proj-btn-mega { 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/ile-kosztuje-100-m2-ogrzewania-podlogowego/#article-wplyw-projektu",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/"
    },
    "headline": "Jak projekt ogrzewania podłogowego wpływa na cenę ogrzewania podłogowego.",
    "description": "Zobacz, jak precyzyjne obliczenia OZC (PN-EN 12831) chronią Twój budżet przed przewymiarowaniem instalacji grzewczej. Kalkulacje przepływów i zapotrzebowania cieplnego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-06",
    "dateModified": "2026-06-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#dataset-ozc",
    "name": "Kalkulacja Parametrów Hydraulicznych dla 100 m² (OZC vs Brak Projektu)",
    "description": "Zestawienie różnic w obciążeniu cieplnym, przepływie masowym i pojemności wodnej systemu grzewczego przy zastosowaniu normy PN-EN 12831.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projektowe obciążenie cieplne ozc",
      "norma pn-en 12831",
      "przepływ masowy czynnika grzewczego",
      "pojemność wodna układu podłogówki",
      "koszty przewymiarowania instalacji"
    ],
    "measurementTechnique": "Porównanie zapotrzebowania materiałowego opartego na algorytmach inżynieryjnych (Q = A * q * 1.15) względem układania pętli w maksymalnym zagęszczeniu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Obciążenie cieplne: 5,75 kW dla 100 m2 (q = 50 W/m2)",
        "Wymagany przepływ czynnika: 0,99 m3/h przy Delta T = 5K",
        "Pojemność zładu wodnego: 129,95 litrów",
        "Strata finansowa bez projektu: Minimum 2000 PLN przepłacone na rurach i mosiądzu."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#webapp-ozc",
    "name": "Symulator Opłacalności Projektu OZC",
    "description": "Narzędzie pozwalające przełączać widok między instalacją robioną 'na oko' a zoptymalizowaną hydraulicznie, wizualizujące straty finansowe i techniczne.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-proj-wrapper">
    <div class="rk-proj-header">
        <h2>Jak projekt ogrzewania podłogowego wpływa na cenę ogrzewania podłogowego.</h2>
        <p>Prawidłowo sporządzony projekt to jedyne narzędzie chroniące inwestora przed katastrofą budżetową. Oparty na <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/" style="color: #38bdf8;">normie PN-EN 12831</a>, precyzyjnie definiuje rzeczywiste zapotrzebowanie, zamiast opierać się na domysłach &#8222;fachowca&#8221;.</p>
    </div>

    <div class="rk-proj-interactive">
        <div class="rk-proj-controls">
            <span class="rk-proj-label state-bad" id="labelBad">Instalacja &#8222;na oko&#8221;</span>
            <label class="rk-proj-switch">
                <input type="checkbox" id="projectToggle" checked="">
                <span class="rk-proj-slider"></span>
            </label>
            <span class="rk-proj-label state-good" id="labelGood">Zoptymalizowany Projekt (OZC)</span>
        </div>

        <div class="rk-proj-visual state-good" id="visualBox">
            <svg viewBox="0 0 400 200" width="100%" height="200" xmlns="http://www.w3.org/2000/svg">
                <rect x="50" y="20" width="300" height="160" fill="none" stroke="#cbd5e1" stroke-width="4" rx="8"></rect>
                <rect x="40" y="80" width="10" height="40" fill="#cbd5e1"></rect> <path class="svg-pipe svg-pipe-dense" d="M60 40 L340 40 L340 50 L60 50 L60 60 L340 60 L340 70 L60 70 L60 80 L340 80 L340 90 L60 90 L60 100 L340 100 L340 110 L60 110 L60 120 L340 120 L340 130 L60 130 L60 140 L340 140 L340 150 L60 150 L60 160 L340 160"></path>
                
                <path class="svg-pipe svg-pipe-opt" d="M60 40 L340 40 L340 60 L60 60 L60 80 L340 80 L340 100 L60 100 L60 120 L340 120 L340 140 L60 140 L60 160 L340 160"></path>

                <g class="svg-money-fly" fill="#ef4444" font-weight="bold" font-size="18" opacity="0">
                    <text x="180" y="100">-2000 PLN</text>
                    <text x="250" y="60">Przepłacone!</text>
                    <text x="100" y="140">Zbędne rury</text>
                </g>
            </svg>
        </div>
    </div>

    <div class="rk-proj-data-grid">
        <div class="rk-proj-card">
            <div class="rk-proj-card-icon">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            </div>
            <h3>Projektowe Obciążenie</h3>
            <div class="rk-proj-value" id="valObc">5,75 kW</div>
            <div class="rk-proj-formula">
                Q_obl = 100 m² * 50 W/m² * 1,15 = 5750 W
            </div>
        </div>

        <div class="rk-proj-card">
            <div class="rk-proj-card-icon">
                <svg width="20" height="20" 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>
            <h3>Przepływ czynnika</h3>
            <div class="rk-proj-value" id="valPrze">0,99 m³/h</div>
            <div class="rk-proj-formula">
                m_przepływ = 5750 / (4186 * 5K) = 0,275 kg/s
            </div>
        </div>

        <div class="rk-proj-card">
            <div class="rk-proj-card-icon">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22a7 7 0 0 0 7-7c0-2-1-3.9-3-5.5s-3.5-4-4-6.5c-.5 2.5-2 4.9-4 6.5C6 11.1 5 13 5 15a7 7 0 0 0 7 7z"></path></svg>
            </div>
            <h3>Pojemność zładu</h3>
            <div class="rk-proj-value" id="valPoj">129,95 litrów</div>
            <div class="rk-proj-formula">
                V_inst = 1150 m.b. * 0,113 l/m.b.
            </div>
        </div>
    </div>

    <div class="rk-proj-text-content">
        <p>Projektant na podstawie struktury przegród określa rzeczywiste zapotrzebowanie na moc grzewczą każdego pomieszczenia, co bezpośrednio determinuje gęstość rozłożenia rur, liczbę pętli, a w konsekwencji – <strong>ostateczną cenę materiałów</strong>.</p>
        <p>Dzięki tym danym, inżynier precyzyjnie dobiera parametry pompy obiegowej oraz nastawy wstępne na rotametrach rozdzielacza. Zrozumienie relacji <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">Obliczeń Zapotrzebowania Cieplnego (OZC)</a> a rozstawem rur to klucz do energooszczędności.</p>
        
        <div class="rk-proj-alert" id="alertBox" style="display: none;">
            <strong>Uwaga: Katastrofa finansowa!</strong><br>
            Brak projektu skutkuje zazwyczaj układaniem rur &#8222;na oko&#8221; w maksymalnym zagęszczeniu w całym domu. Dla inwestora oznacza to bezpowrotne przepłacenie minimum <strong>2000 PLN</strong> na samych rurach i większym rozdzielaczu w miejscach, gdzie realne straty ciepła były znikome.
        </div>
    </div>

    <div class="rk-proj-cta-box">
        <h3 class="rk-proj-cta-title">Nie pozwól wykonawcy &#8222;zgadywać&#8221; Twojego budżetu!</h3>
        <p style="color: #64748b; margin-bottom: 20px; font-size: 16px;">
            W domu o powierzchni 100 m² brak projektu ogrzewania podłogowego często oznacza układanie rur „na oko” i przewymiarowanie instalacji. Efekt? Nawet <strong>ponad 2000 zł</strong> niepotrzebnie wydanych na dodatkowe rury i większy rozdzielacz.
        </p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-proj-btn-mega">
            ZAMÓW PROFESJONALNY PROJEKT PODŁOGÓWKI
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const toggle = document.getElementById('projectToggle');
    const visualBox = document.getElementById('visualBox');
    const alertBox = document.getElementById('alertBox');
    
    // Zmienne do podmiany tekstów dla efektu WOW
    const valObc = document.getElementById('valObc');
    const valPrze = document.getElementById('valPrze');
    const valPoj = document.getElementById('valPoj');

    function updateState() {
        if(toggle.checked) {
            // Stan: Z PROJEKTEM (DOBRZE)
            visualBox.className = 'rk-proj-visual state-good';
            alertBox.style.display = 'none';
            
            // Wartości zoptymalizowane
            valObc.innerText = '5,75 kW';
            valObc.style.color = 'var(--rk-proj-dark)';
            
            valPrze.innerText = '0,99 m³/h';
            valPrze.style.color = 'var(--rk-proj-dark)';
            
            valPoj.innerText = '129,95 litrów';
            valPoj.style.color = 'var(--rk-proj-dark)';
            
        } else {
            // Stan: BEZ PROJEKTU (ŹLE)
            visualBox.className = 'rk-proj-visual state-bad';
            alertBox.style.display = 'block';
            
            // Wartości przewymiarowane
            valObc.innerText = 'Błąd OZC!';
            valObc.style.color = 'var(--rk-proj-red)';
            
            valPrze.innerText = 'Opory hydrauliczne!';
            valPrze.style.color = 'var(--rk-proj-red)';
            
            valPoj.innerText = 'Ponad 200 litrów!';
            valPoj.style.color = 'var(--rk-proj-red)';
        }
    }

    toggle.addEventListener('change', updateState);
    
    // Inicjalizacja stanu
    updateState();
});
</script>



<style>
:root {
    --rk-hc-dark: #1e293b;
    --rk-hc-blue: #0284c7;
    --rk-hc-light-blue: #e0f2fe;
    --rk-hc-orange: #f97316;
    --rk-hc-orange-light: #ffedd5;
    --rk-hc-gray: #64748b;
    --rk-hc-border: #cbd5e1;
    --rk-hc-bg: #ffffff;
    --rk-hc-bg-alt: #f8fafc;
}

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

/* Sekcja Nagłówkowa */
.rk-hc-header {
    padding: 40px 50px 30px;
    background: var(--rk-hc-dark);
    color: #ffffff;
    text-align: center;
    position: relative;
}

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

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

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

/* Interaktywny Skaner Kosztów */
.rk-hc-scanner {
    display: grid;
    grid-template-columns: 350px 1fr;
    background: var(--rk-hc-bg);
}

/* Lista Warstw (Przyciski) */
.rk-hc-layers {
    background: var(--rk-hc-bg-alt);
    padding: 30px;
    border-right: 1px solid var(--rk-hc-border);
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-hc-layer-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 16px 20px;
    background: var(--rk-hc-bg);
    border: 2px solid var(--rk-hc-border);
    border-radius: 14px;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    text-align: left;
    position: relative;
    overflow: hidden;
}

.rk-hc-layer-btn:hover {
    border-color: var(--rk-hc-blue);
    transform: translateX(5px);
}

.rk-hc-layer-btn.active {
    background: var(--rk-hc-light-blue);
    border-color: var(--rk-hc-blue);
    box-shadow: 0 10px 15px -3px rgba(2, 132, 199, 0.1);
}

.rk-hc-layer-btn.active::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 6px;
    background: var(--rk-hc-blue);
}

.rk-hc-layer-title {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-hc-dark);
    margin-bottom: 4px;
}

.rk-hc-layer-cost {
    font-size: 14px;
    color: var(--rk-hc-gray);
    font-weight: 600;
}

.rk-hc-layer-btn.active .rk-hc-layer-title { color: var(--rk-hc-blue); }
.rk-hc-layer-btn.active .rk-hc-layer-cost { color: var(--rk-hc-dark); }

/* Panel Szczegółów (Prawa strona) */
.rk-hc-details {
    padding: 40px;
    position: relative;
    min-height: 400px;
    display: flex;
    flex-direction: column;
}

.rk-hc-detail-view {
    display: none;
    animation: slideFadeIn 0.4s ease forwards;
}

.rk-hc-detail-view.active {
    display: block;
}

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

/* Animacje SVG dla Warstw */
.rk-hc-svg-container {
    width: 100%;
    height: 140px;
    background: var(--rk-hc-bg-alt);
    border-radius: 16px;
    margin-bottom: 25px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px dashed var(--rk-hc-border);
}

.rk-svg-layer { transform-origin: center; }

/* Dedykowane animacje */
.anim-float { animation: floatingLayer 3s ease-in-out infinite; }
@keyframes floatingLayer {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
}

.anim-expand { animation: expandDilation 2s infinite alternate; }
@keyframes expandDilation {
    from { transform: scaleX(0.95); }
    to { transform: scaleX(1.05); }
}

.anim-fill { stroke-dasharray: 100; animation: fillScreed 2s forwards ease-out; }
@keyframes fillScreed {
    from { stroke-dashoffset: 100; }
    to { stroke-dashoffset: 0; }
}

.anim-bubbles circle { animation: bubbleRise 2s infinite ease-in; opacity: 0; }
.anim-bubbles circle:nth-child(2) { animation-delay: 0.5s; }
.anim-bubbles circle:nth-child(3) { animation-delay: 1s; }
@keyframes bubbleRise {
    0% { transform: translateY(10px) scale(0.5); opacity: 0; }
    50% { opacity: 1; }
    100% { transform: translateY(-20px) scale(1.2); opacity: 0; }
}

/* Typografia detali */
.rk-hc-detail-view h3 {
    font-size: 22px;
    font-weight: 800;
    color: var(--rk-hc-dark);
    margin: 0 0 10px 0;
}

.rk-hc-detail-price {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-hc-orange);
    margin: 0 0 20px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-hc-detail-desc {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-hc-gray);
    margin: 0 0 20px 0;
}

.rk-hc-tech-box {
    background: #f1f5f9;
    padding: 15px;
    border-radius: 12px;
    border-left: 4px solid var(--rk-hc-blue);
    font-size: 14px;
    font-weight: 600;
    color: var(--rk-hc-dark);
    margin-bottom: 20px;
}

.rk-hc-link-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--rk-hc-blue);
    font-weight: 700;
    text-decoration: none;
    font-size: 15px;
    transition: all 0.3s;
}

.rk-hc-link-btn:hover {
    color: #0369a1;
    gap: 12px;
}

/* Sumator kosztów */
.rk-hc-total {
    background: var(--rk-hc-dark);
    color: #ffffff;
    padding: 20px 50px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-top: 1px solid var(--rk-hc-border);
}

.rk-hc-total-label {
    font-size: 18px;
    font-weight: 700;
    color: #cbd5e1;
}

.rk-hc-total-val {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-hc-orange-light);
}

/* RWD */
@media (max-width: 768px) {
    .rk-hc-scanner { grid-template-columns: 1fr; }
    .rk-hc-header { padding: 30px 20px; }
    .rk-hc-layers { padding: 20px; flex-direction: row; flex-wrap: wrap; }
    .rk-hc-layer-btn { width: calc(50% - 6px); padding: 12px; flex-direction: column; align-items: flex-start; gap: 5px; }
    .rk-hc-details { padding: 25px; min-height: auto; }
    .rk-hc-total { flex-direction: column; gap: 10px; text-align: center; padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#article-ukryte-koszty",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/"
    },
    "headline": "Jakie są ukryte koszty instalacji podłogówki na 100 m², których nie podają instalatorzy?",
    "description": "Zdemaskowanie ukrytych kosztów towarzyszących przy instalacji wodnego ogrzewania podłogowego. Sprawdź realne ceny styropianu, wylewki, dylatacji i chemii instalacyjnej.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-06",
    "dateModified": "2026-06-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#dataset-ukryte-koszty",
    "name": "Zestawienie Ukrytych Kosztów Towarzyszących (Wylewka, Izolacja, Chemia)",
    "description": "Dokładne zestawienie danych kosztowych dla warstw konstrukcyjnych podłogi na gruncie (pow. 100 m²), niezbędnych do prawidłowego działania systemu grzewczego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ukryte koszty ogrzewania podłogowego",
      "cena styropianu pod podłogówkę",
      "wylewka anhydrytowa koszt 100m2",
      "woda demineralizowana do układu",
      "dylatacje brzegowe norma"
    ],
    "measurementTechnique": "Szacowanie budżetu w oparciu o aktualne ceny rynkowe (2026 r.) dla komponentów wymaganych przez WT 2021 oraz normę PN-EN 1264.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Izolacja (EPS 100 / XPS): 2500-3500 PLN",
        "Dylatacje brzegowe: 250-400 PLN",
        "Wylewka maszynowa (5 cm nad rurą): 4000-5500 PLN",
        "Uzdatnianie wody (demineralizacja + inhibitor): 300-500 PLN"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#webapp-ukryte-koszty",
    "name": "Skaner Warstw Budżetowych Podłogówki",
    "description": "Interaktywny panel uświadamiający inwestora, symulujący wgląd w przekrój podłogi z przypisanymi realnymi kosztami do każdej z warstw konstrukcyjnych.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-hc-container">
    <div class="rk-hc-header">
        <div class="rk-hc-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
            Strefa Prawdy Inwestycyjnej
        </div>
        <h2>Jakie są ukryte koszty instalacji podłogówki na 100 m², których nie podają instalatorzy?</h2>
        <p>Podawany powszechnie koszt zakupu samych materiałów i robocizny (8 500 &#8211; 10 000 PLN) nie odzwierciedla pełnego nakładu. Kompletne ogrzewanie płaszczyznowe wymaga wykonania warstw konstrukcyjnych i ochrony chemicznej. <strong>Poznaj realne wydatki.</strong></p>
    </div>

    <div class="rk-hc-scanner">
        <div class="rk-hc-layers" id="hcLayersList">
            <button class="rk-hc-layer-btn active" data-target="layer-eps">
                <div>
                    <div class="rk-hc-layer-title">1. Izolacja Termiczna (EPS)</div>
                    <div class="rk-hc-layer-cost">+ 2 500 &#8211; 3 500 PLN</div>
                </div>
            </button>
            <button class="rk-hc-layer-btn" data-target="layer-dyl">
                <div>
                    <div class="rk-hc-layer-title">2. Dylatacje i Profile</div>
                    <div class="rk-hc-layer-cost">+ 250 &#8211; 400 PLN</div>
                </div>
            </button>
            <button class="rk-hc-layer-btn" data-target="layer-wyl">
                <div>
                    <div class="rk-hc-layer-title">3. Wylewka Jastrychowa</div>
                    <div class="rk-hc-layer-cost">+ 4 000 &#8211; 5 500 PLN</div>
                </div>
            </button>
            <button class="rk-hc-layer-btn" data-target="layer-wod">
                <div>
                    <div class="rk-hc-layer-title">4. Uzdatnianie i Chemia</div>
                    <div class="rk-hc-layer-cost">+ 300 &#8211; 500 PLN</div>
                </div>
            </button>
        </div>

        <div class="rk-hc-details">
            
            <div class="rk-hc-detail-view active" id="layer-eps">
                <div class="rk-hc-svg-container">
                    <svg width="120" height="100" viewBox="0 0 100 100" class="anim-float">
                        <rect x="10" y="40" width="80" height="30" fill="#cbd5e1" rx="4"/>
                        <circle cx="20" cy="55" r="3" fill="#ffffff" opacity="0.5"/>
                        <circle cx="40" cy="45" r="4" fill="#ffffff" opacity="0.5"/>
                        <circle cx="60" cy="60" r="2" fill="#ffffff" opacity="0.5"/>
                        <circle cx="80" cy="50" r="5" fill="#ffffff" opacity="0.5"/>
                        <path d="M10 30 L90 30" stroke="#0ea5e9" stroke-width="3" stroke-dasharray="5 5"/>
                    </svg>
                </div>
                <h3>Styropian EPS 100 / XPS</h3>
                <div class="rk-hc-detail-price">2 500 &#8211; 3 500 PLN</div>
                <p class="rk-hc-detail-desc">Ogrzewanie ziemi pod domem to wyrzucanie pieniędzy. Aby spełnić wymagania Warunków Technicznych (WT 2021), potrzebujesz odpowiedniej warstwy izolatora.</p>
                <div class="rk-hc-tech-box">
                    Współczynnik przenikania ciepła podłogi na gruncie U nie może przekraczać 0,3 W/(m²·K), co w praktyce wymaga ułożenia minimum 15 cm styropianu podłogowego.
                </div>
                <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/" class="rk-hc-link-btn">
                    Czytaj poradnik o doborze styropianu
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" 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 class="rk-hc-detail-view" id="layer-dyl">
                <div class="rk-hc-svg-container">
                    <svg width="120" height="100" viewBox="0 0 100 100">
                        <rect x="20" y="20" width="25" height="60" fill="#f1f5f9" stroke="#94a3b8" stroke-width="2"/>
                        <rect x="55" y="20" width="25" height="60" fill="#f1f5f9" stroke="#94a3b8" stroke-width="2"/>
                        <rect class="anim-expand" x="46" y="20" width="8" height="60" fill="#38bdf8"/>
                    </svg>
                </div>
                <h3>Taśma dylatacyjna i profile</h3>
                <div class="rk-hc-detail-price">250 &#8211; 400 PLN</div>
                <p class="rk-hc-detail-desc">Beton pod wpływem ciepła pracuje. Brak dylatacji to gwarancja popękanych płytek i zniszczonych paneli na całej powierzchni 100 m².</p>
                <div class="rk-hc-tech-box">
                    Zgodnie z normą PN-EN 1264-4, konieczne jest odcięcie płyty grzewczej od ścian taśmą z pianki PE o grubości min. 8 mm oraz wykonanie dylatacji przejściowych w polach powyżej 40 m².
                </div>
                <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" class="rk-hc-link-btn">
                    Zasady wykonywania dylatacji
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" 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 class="rk-hc-detail-view" id="layer-wyl">
                <div class="rk-hc-svg-container">
                    <svg width="120" height="100" viewBox="0 0 100 100">
                        <path class="anim-fill" d="M10 80 V40 Q50 30 90 40 V80 Z" fill="#e2e8f0" stroke="#94a3b8" stroke-width="2"/>
                        <circle cx="30" cy="60" r="6" fill="#ef4444" stroke="#ffffff" stroke-width="2"/>
                        <circle cx="50" cy="60" r="6" fill="#ef4444" stroke="#ffffff" stroke-width="2"/>
                        <circle cx="70" cy="60" r="6" fill="#ef4444" stroke="#ffffff" stroke-width="2"/>
                    </svg>
                </div>
                <h3>Wylewka Jastrychowa</h3>
                <div class="rk-hc-detail-price">4 000 &#8211; 5 500 PLN</div>
                <p class="rk-hc-detail-desc">Instalacja rur musi zostać zatopiona w specjalnym jastrychu (anhydrytowym lub cementowym z plastyfikatorem), który staje się wielkim akumulatorem ciepła.</p>
                <div class="rk-hc-tech-box">
                    Wymagane wykonanie maszynowe wylewki o optymalnej grubości około 5 cm nad rurą, co daje łączną grubość płyty grzewczej na poziomie ok. 6,5 cm.
                </div>
                <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/" class="rk-hc-link-btn">
                    Kompletny przewodnik po wylewkach
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" 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 class="rk-hc-detail-view" id="layer-wod">
                <div class="rk-hc-svg-container">
                    <svg width="120" height="100" viewBox="0 0 100 100">
                        <path d="M30 20 L30 80 L70 80 L70 20" fill="none" stroke="#64748b" stroke-width="4" stroke-linecap="round"/>
                        <path d="M32 80 V50 Q50 45 68 50 V80 Z" fill="#38bdf8" opacity="0.3"/>
                        <g class="anim-bubbles" fill="#0284c7">
                            <circle cx="40" cy="70" r="3"/>
                            <circle cx="50" cy="65" r="2"/>
                            <circle cx="60" cy="75" r="4"/>
                        </g>
                    </svg>
                </div>
                <h3>Woda demineralizowana i chemia</h3>
                <div class="rk-hc-detail-price">300 &#8211; 500 PLN</div>
                <p class="rk-hc-detail-desc">Zalanie instalacji wodą prosto z węża to cichy zabójca Twojej pompy ciepła i rozdzielacza. Osadzający się kamień drastycznie obniża wydajność układu.</p>
                <div class="rk-hc-tech-box">
                    Należy napełnić zład czystą wodą pozbawioną minerałów wraz z obligatoryjną aplikacją inhibitora korozji w celu ochrony wewnętrznych podzespołów instalacji.
                </div>
                <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-z-inhibitorem-korozji-do-ogrzewania-podlogowego/" class="rk-hc-link-btn">
                    Dlaczego chemia instalacyjna to mus?
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" 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>
    </div>

    <div class="rk-hc-total">
        <div class="rk-hc-total-label">Suma dodatkowych, realnych kosztów (100 m²)</div>
        <div class="rk-hc-total-val">od 7 050 do 9 900 PLN</div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const layerBtns = document.querySelectorAll('.rk-hc-layer-btn');
    const layerViews = document.querySelectorAll('.rk-hc-detail-view');

    layerBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Usuń active ze wszystkich przycisków
            layerBtns.forEach(b => b.classList.remove('active'));
            // Dodaj active do klikniętego
            this.classList.add('active');

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

            // Ukryj wszystkie widoki i pokaż docelowy
            layerViews.forEach(view => {
                view.classList.remove('active');
                if (view.id === targetId) {
                    view.classList.add('active');
                }
            });
        });
    });
});
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-primary: #6366f1; /* Indigo - symbolizuje innowację/rozwiązanie */
    --rk-case-primary-light: #e0e7ff;
    --rk-case-danger: #ef4444;
    --rk-case-danger-light: #fee2e2;
    --rk-case-success: #10b981;
    --rk-case-gray: #64748b;
    --rk-case-border: #e2e8f0;
    --rk-case-bg: #ffffff;
}

.rk-case-widget {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-case-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(99, 102, 241, 0.15);
    border: 1px solid #c7d2fe;
    overflow: hidden;
}

/* Nagłówek i Długi Ogon SEO */
.rk-case-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-case-dark) 0%, #1e1b4b 100%);
    color: #ffffff;
    text-align: center;
    position: relative;
}

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

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

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

.rk-case-tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin-top: 20px;
}

.rk-case-tag {
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    padding: 5px 12px;
    border-radius: 20px;
    font-size: 12px;
    color: #e0e7ff;
    font-weight: 600;
}

/* Sekcja Story (Opis sytuacji) */
.rk-case-story {
    padding: 35px 50px 30px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-case-border);
}

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

.rk-case-story p:last-child {
    margin-bottom: 0;
}

.rk-case-story a {
    color: var(--rk-case-primary);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.3s;
}

.rk-case-story a:hover {
    color: #4338ca;
}

/* Interaktywny Panel */
.rk-case-interactive {
    padding: 40px 50px;
}

.rk-case-toggle-box {
    display: flex;
    background: var(--rk-case-bg);
    border: 2px solid var(--rk-case-border);
    border-radius: 16px;
    overflow: hidden;
    margin-bottom: 35px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
}

.rk-case-toggle-btn {
    flex: 1;
    padding: 16px 20px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-case-gray);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

.rk-case-toggle-sub {
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 600;
    opacity: 0.7;
}

.rk-case-toggle-btn.active[data-view="bad"] {
    background: var(--rk-case-danger);
    color: #ffffff;
    border-color: var(--rk-case-danger);
}

.rk-case-toggle-btn.active[data-view="good"] {
    background: var(--rk-case-primary);
    color: #ffffff;
    border-color: var(--rk-case-primary);
}

/* Kafelki z Kosztami */
.rk-case-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.rk-case-card {
    background: #f8fafc;
    border: 1px solid var(--rk-case-border);
    border-radius: 16px;
    padding: 25px 20px;
    text-align: center;
    transition: all 0.3s, border-color 0.3s;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.rk-case-card h4 {
    font-size: 12px;
    color: var(--rk-case-gray);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 10px 0;
    font-weight: 700;
}

.rk-case-val {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-case-dark);
    margin: 0 0 8px 0;
    transition: opacity 0.3s, color 0.3s;
}

.rk-case-desc {
    font-size: 13px;
    color: var(--rk-case-gray);
    margin: 0;
    line-height: 1.4;
    transition: opacity 0.3s;
}

/* Zmiana borderów w zależności od stanu */
.view-bad .rk-case-card { border-color: var(--rk-case-danger-light); }
.view-good .rk-case-card { border-color: var(--rk-case-primary-light); }

/* Zawsze widoczny, dynamiczny panel wyniku */
.rk-case-result {
    padding: 25px 30px;
    border-radius: 16px;
    text-align: center;
    margin-top: 30px;
    color: #ffffff;
    transition: all 0.5s ease;
}

.view-bad .rk-case-result {
    background: linear-gradient(135deg, var(--rk-case-danger) 0%, #dc2626 100%);
    box-shadow: 0 10px 20px -5px rgba(239, 68, 68, 0.3);
}

.view-good .rk-case-result {
    background: linear-gradient(135deg, var(--rk-case-success) 0%, #059669 100%);
    box-shadow: 0 10px 20px -5px rgba(16, 185, 129, 0.3);
}

.rk-case-result h3 { 
    margin: 0 0 8px 0; 
    font-size: 22px; 
    font-weight: 900; 
    transition: opacity 0.3s;
}

.rk-case-result p { 
    margin: 0; 
    font-size: 15px; 
    opacity: 0.95; 
    line-height: 1.6;
    transition: opacity 0.3s;
}

.rk-case-result a {
    color: #ffffff;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* RWD */
@media (max-width: 768px) {
    .rk-case-header, .rk-case-story, .rk-case-interactive { padding: 30px 20px; }
    .rk-case-toggle-box { flex-direction: column; border-radius: 12px; }
    .rk-case-grid { grid-template-columns: 1fr; gap: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/"
    },
    "headline": "Case Study: Jak Pan Antoni z Olsztyna zaoszczędził 8 500 PLN na podłogówce?",
    "description": "Praktyczne studium przypadku inwestora. Porównanie ślepej wyceny hydraulika (rury układane na oko) z optymalizacją na podstawie projektu OZC i samodzielnym montażem.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-06-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#dataset-casestudy",
    "name": "Analiza porównawcza kosztów instalacji ogrzewania podłogowego - Case Study Olsztyn",
    "description": "Baza danych finansowych prezentująca różnicę w kosztach pomiędzy ryczałtową wyceną instalatora a modelem opartym o projekt OZC i montaż systemem gospodarczym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wycena hydraulika podłogówka",
      "samodzielny montaż podłogówki koszt",
      "ile rury na 150m2 ogrzewania podłogowego",
      "optymalizacja kosztów ogrzewania OZC",
      "czy warto samemu układać podłogówkę"
    ],
    "measurementTechnique": "Zestawienie rzeczywistej wyceny ofertowej z kwietnia 2025 (dom 150 m2) ze zweryfikowanym kosztorysem opartym na normie PN-EN 12831.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Koszt przed optymalizacją (Hydraulik na oko): Rury 8775 PLN + Robocizna 5250 PLN = 14025 PLN",
        "Koszt po optymalizacji (OZC + DIY): Rury 4972 PLN + Robocizna 0 PLN + Projekt 450 PLN = 5422 PLN",
        "Zysk netto inwestora: 8603 PLN"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#webapp-casestudy",
    "name": "Symulator Oszczędności Inwestora (Case Study)",
    "description": "Interaktywny panel edukacyjny demonstrujący mechanizm powstawania ukrytych marż wykonawczych oraz redukcji kosztów poprzez samodzielny montaż w oparciu o projekt techniczny.",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-widget">
    
    <div class="rk-case-header">
        <div class="rk-case-badge">
            <svg width="14" height="14" 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></svg>
            Case Study: Prawdziwa Historia
        </div>
        <h2>Jak Pan Antoni z Olsztyna zaoszczędził ponad 8 500 PLN na podłogówce?</h2>
        <p>Zobacz, dlaczego ślepa wiara w wyceny instalatorów bez weryfikacji inżynierskiej może zrujnować Twój budżet budowlany. Poniżej analiza rzeczywistego przypadku z kwietnia 2025 roku (Dom 150 m²).</p>
        
        <div class="rk-case-tags">
            <span class="rk-case-tag"># wycena hydraulika podłogówka</span>
            <span class="rk-case-tag"># samodzielny montaż podłogówki koszt</span>
            <span class="rk-case-tag"># optymalizacja kosztów OZC</span>
        </div>
    </div>

    <div class="rk-case-story">
        <p>W kwietniu 2025 roku zwrócił się do mnie Pan Antoni z okolic Olsztyna, budujący dom o powierzchni 150 m² systemem gospodarczym. Otrzymał od lokalnego instalatora ofertę, w której widniała tylko jedna główna pozycja: <strong>&#8222;Materiały do ułożenia: 2250 metrów rury&#8221;</strong> (co daje 15 m.b. rury na każdy m², czyli układanie wszędzie zagęszczenia co 6-7 cm). Brak wyliczeń z programu, brak normatywów, wycena zrobiona &#8222;na oko&#8221;.</p>
        <p>Zaproponowałem weryfikację. Wykonaliśmy profesjonalne obliczenia strat ciepła OZC, które udowodniły drastyczne przewymiarowanie hydrauliczne układu. Równocześnie zachęciłem Pana Antoniego do zastanowienia się, <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-czy-warto-robic-to-samemu/">czy instalację ogrzewania podłogowego warto robić samemu</a> mając na tacy gotowe wytyczne z projektu. Co się stało potem? Sprawdź wyniki poniżej.</p>
    </div>

    <div class="rk-case-interactive view-bad" id="csInteractive">
        
        <div class="rk-case-toggle-box">
            <div class="rk-case-toggle-btn active" data-view="bad">
                Oferta Hydraulika
                <span class="rk-case-toggle-sub">Brak projektu, montaż płatny</span>
            </div>
            <div class="rk-case-toggle-btn" data-view="good">
                Rozwiązanie Projekt-Ogrzewania.pl
                <span class="rk-case-toggle-sub">OZC + Samodzielny Montaż</span>
            </div>
        </div>

        <div class="rk-case-grid">
            <div class="rk-case-card">
                <h4>Koszt Rur i Rozdzielaczy</h4>
                <div class="rk-case-val" id="csValMats">8 775 PLN</div>
                <p class="rk-case-desc" id="csDescMats">2250 m rury (przewymiarowane)</p>
            </div>
            <div class="rk-case-card">
                <h4>Koszt Robocizny</h4>
                <div class="rk-case-val" id="csValLabor" style="color: var(--rk-case-danger);">5 250 PLN</div>
                <p class="rk-case-desc" id="csDescLabor">Stawka zewnętrznej ekipy</p>
            </div>
            <div class="rk-case-card" style="background: #ffffff;">
                <h4>Całkowity Budżet</h4>
                <div class="rk-case-val" id="csValTotal">14 025 PLN</div>
                <p class="rk-case-desc" id="csDescTotal">Bez dokumentacji technicznej</p>
            </div>
        </div>

        <div class="rk-case-result" id="csResultBox">
            <h3 id="csResultTitle">Ukryta strata inwestora: &#8211; 8 603 PLN</h3>
            <p id="csResultDesc">Akceptacja wyceny &#8222;z sufitu&#8221; (bez rzetelnego OZC) sprawia, że inwestor bezpowrotnie przepłaca za zbędne metry rury, gigantyczny rozdzielacz i robociznę obcej ekipy, jednocześnie dławiąc układ hydrauliczny.</p>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-case-toggle-btn');
    const interactiveBox = document.getElementById('csInteractive');
    
    // Zaktualizowane, w pełni unikalne ID
    const valMats = document.getElementById('csValMats');
    const descMats = document.getElementById('csDescMats');
    
    const valLabor = document.getElementById('csValLabor');
    const descLabor = document.getElementById('csDescLabor');
    
    const valTotal = document.getElementById('csValTotal');
    const descTotal = document.getElementById('csDescTotal');
    
    const resTitle = document.getElementById('csResultTitle');
    const resDesc = document.getElementById('csResultDesc');

    const data = {
        'bad': {
            mats: '8 775 PLN',
            descMats: '2250 m rury (przewymiarowane)',
            labor: '5 250 PLN',
            laborColor: 'var(--rk-case-danger)',
            descLabor: 'Stawka zewnętrznej ekipy (35 zł/m²)',
            total: '14 025 PLN',
            descTotal: 'Bez dokumentacji technicznej',
            resTitle: 'Ukryta strata inwestora: -8 603 PLN',
            resDesc: 'Akceptacja wyceny "z sufitu" (bez rzetelnego OZC) sprawia, że inwestor bezpowrotnie przepłaca za zbędne metry rury, gigantyczny rozdzielacz i robociznę obcej ekipy, jednocześnie dławiąc układ hydrauliczny.'
        },
        'good': {
            mats: '4 972 PLN',
            descMats: '1275 m rury (zoptymalizowane OZC)',
            labor: '0 PLN',
            laborColor: 'var(--rk-case-success)',
            descLabor: 'Samodzielny montaż inwestora (DIY)',
            total: '5 422 PLN',
            descTotal: 'W tym 450 PLN za projekt OZC',
            resTitle: 'Zysk netto inwestora: 8 603 PLN!',
            resDesc: 'Omijając błędy instalatorskie (<a href="https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/">sprawdź 5 pułapek</a>) i wykonując pracę samodzielnie na bazie jasnego schematu inżynierskiego, Pan Antoni zachował w kieszeni potężną kwotę.'
        }
    };

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

            const view = this.getAttribute('data-view');
            interactiveBox.className = 'rk-case-interactive view-' + view;

            // Fade-out danych
            const els = [valMats, descMats, valLabor, descLabor, valTotal, descTotal, resTitle, resDesc];
            els.forEach(el => el.style.opacity = '0');

            setTimeout(() => {
                const d = data[view];
                
                valMats.innerHTML = d.mats;
                descMats.innerHTML = d.descMats;
                
                valLabor.innerHTML = d.labor;
                valLabor.style.color = d.laborColor;
                descLabor.innerHTML = d.descLabor;
                
                valTotal.innerHTML = d.total;
                descTotal.innerHTML = d.descTotal;
                
                resTitle.innerHTML = d.resTitle;
                resDesc.innerHTML = d.resDesc;
                
                // Fade-in danych
                els.forEach(el => el.style.opacity = '1');
            }, 250); 
        });
    });
});
</script>



<style>
:root {
    --rk-exp-dark: #0f172a;
    --rk-exp-panel: #1e293b;
    --rk-exp-bg: #ffffff;
    --rk-exp-surface: #f8fafc;
    --rk-exp-border: #e2e8f0;
    --rk-exp-text: #334155;
    --rk-exp-muted: #64748b;
    
    --rk-exp-blue: #0284c7;
    --rk-exp-gold: #d97706;
    --rk-exp-fb: #1877F2;
    --rk-exp-li: #0A66C2;
}

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

/* Header Area ze zoptymalizowanym H2 */
.rk-exp-header {
    background: var(--rk-exp-dark);
    padding: 35px 40px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-exp-gold);
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-exp-header-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
}

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

.rk-exp-trust-badge {
    background: rgba(217, 119, 6, 0.15);
    border: 1px solid rgba(217, 119, 6, 0.3);
    color: #fcd34d;
    padding: 8px 16px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 800;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 1px;
    flex-shrink: 0;
}

/* Tagi Długi Ogon w nagłówku */
.rk-exp-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 5px;
}

.rk-exp-tag {
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    padding: 4px 12px;
    border-radius: 15px;
    font-size: 12px;
    color: #e0f2fe;
    font-weight: 600;
}

/* Main Layout Grid */
.rk-exp-grid {
    display: grid;
    grid-template-columns: 300px 1fr;
    background: var(--rk-exp-bg);
}

/* Left Sidebar: Profile */
.rk-exp-profile {
    background: var(--rk-exp-surface);
    padding: 40px 30px;
    border-right: 1px solid var(--rk-exp-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.rk-exp-photo-wrap {
    width: 150px;
    height: 150px;
    margin-bottom: 20px;
}

.rk-exp-photo {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid #ffffff;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

.rk-exp-name {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-exp-dark);
    margin: 0 0 5px 0;
}

.rk-exp-title {
    font-size: 14px;
    color: var(--rk-exp-blue);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 25px;
}

.rk-exp-socials {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
}

.rk-exp-social-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 12px;
    border-radius: 10px;
    color: #ffffff;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    transition: filter 0.2s;
}

.rk-exp-social-btn:hover { filter: brightness(1.1); }
.rk-exp-social-btn.fb { background: var(--rk-exp-fb); }
.rk-exp-social-btn.li { background: var(--rk-exp-li); }

/* Right Content Area */
.rk-exp-content {
    display: flex;
    flex-direction: column;
}

/* Cytat (Hook) */
.rk-exp-quote-box {
    padding: 35px 40px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-exp-border);
    position: relative;
}

.rk-exp-quote-mark {
    position: absolute;
    top: 20px;
    left: 20px;
    font-size: 80px;
    color: var(--rk-exp-blue);
    line-height: 0;
    opacity: 0.1;
    font-family: Georgia, serif;
}

.rk-exp-quote-text {
    font-size: 18px;
    font-weight: 700;
    color: var(--rk-exp-dark);
    line-height: 1.6;
    margin: 0;
    font-style: italic;
    position: relative;
    z-index: 2;
}

/* Navigation Tabs */
.rk-exp-tabs {
    display: flex;
    border-bottom: 1px solid var(--rk-exp-border);
    background: var(--rk-exp-surface);
}

.rk-exp-tab {
    flex: 1;
    padding: 16px 10px;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-exp-muted);
    cursor: pointer;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

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

/* Tab Panels */
.rk-exp-panel {
    padding: 35px 40px;
    display: none;
}

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

.rk-exp-panel h3 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-exp-dark);
    margin: 0 0 15px 0;
}

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

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

/* Stats Grid in Panel */
.rk-exp-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
    margin-top: 25px;
}

.rk-exp-stat-box {
    background: var(--rk-exp-surface);
    border: 1px solid var(--rk-exp-border);
    border-radius: 12px;
    padding: 15px;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-exp-stat-icon {
    width: 40px;
    height: 40px;
    border-radius: 8px;
    background: #ffffff;
    color: var(--rk-exp-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--rk-exp-border);
    flex-shrink: 0;
}

.rk-exp-stat-info { display: flex; flex-direction: column; }
.rk-exp-stat-val { font-size: 20px; font-weight: 900; color: var(--rk-exp-dark); line-height: 1.2; }
.rk-exp-stat-label { font-size: 11px; font-weight: 700; color: var(--rk-exp-muted); text-transform: uppercase; }

/* Mobile */
@media (max-width: 850px) {
    .rk-exp-grid { grid-template-columns: 1fr; }
    .rk-exp-header-top { flex-direction: column; align-items: flex-start; }
    .rk-exp-trust-badge { width: 100%; justify-content: center; }
    .rk-exp-profile { border-right: none; border-bottom: 1px solid var(--rk-exp-border); padding: 30px; }
    .rk-exp-socials { flex-direction: row; }
    .rk-exp-social-btn { flex: 1; }
    .rk-exp-tabs { flex-direction: column; background: #ffffff; }
    .rk-exp-tab { border-bottom: none; border-left: 4px solid transparent; justify-content: flex-start; padding: 15px 25px; }
    .rk-exp-tab.active { border-left-color: var(--rk-exp-blue); border-bottom-color: transparent; background: var(--rk-exp-surface); }
    .rk-exp-quote-box { padding: 25px; }
    .rk-exp-panel { padding: 30px 25px; }
    .rk-exp-stats { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#article-ekspert",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/"
    },
    "headline": "Ekspert HVAC Robert Kucharski: Dlaczego nie liczymy rur na oko?",
    "description": "Opinia eksperta ds. ogrzewania podłogowego. Sprawdź, dlaczego błędy w rozstawie rur i brak obliczeń OZC prowadzą do drastycznego wzrostu kosztów eksploatacji pomp ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "jobTitle": "Inżynier HVAC",
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-07",
    "dateModified": "2026-06-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#dataset-ekspert",
    "name": "Doświadczenie inżynierskie autoryzujące wyceny podłogówki",
    "description": "Zestawienie autorskich statystyk w zakresie normatywnego projektowania systemów ogrzewania płaszczyznowego i redukcji oporów hydraulicznych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "specjalista hvac robert kucharski",
      "projektowanie ogrzewania podłogowego OZC",
      "błędy w układaniu podłogówki",
      "optymalizacja kosztów ogrzewania pompą ciepła",
      "norma PN-EN 1264 obliczenia"
    ],
    "measurementTechnique": "Weryfikacja oparta na doświadczeniu z ponad 1000 wdrożonych projektów OZC i audytach starych instalacji c.o.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Liczba zweryfikowanych projektów: 1000+",
        "Średnia redukcja kosztów eksploatacyjnych po optymalizacji OZC: ~20%",
        "Zgodność z prawem budowlanym: Norma PN-EN 1264"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#webapp-ekspert",
    "name": "Panel Weryfikacji Eksperta E-E-A-T",
    "description": "Statyczny, obsługiwany zakładkami interfejs prezentujący kwalifikacje autora, powiązania z oficjalnymi profilami (LinkedIn, Facebook) oraz jego stanowisko techniczne.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-exp-container">
    
    <div class="rk-exp-header">
        <div class="rk-exp-header-top">
            <h2>Ekspert HVAC Robert Kucharski: Dlaczego nie liczymy rur &#8222;na oko&#8221;?</h2>
            <div class="rk-exp-trust-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 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                Weryfikacja E-E-A-T
            </div>
        </div>
        <div class="rk-exp-tags">
            <span class="rk-exp-tag"># specjalista hvac robert kucharski</span>
            <span class="rk-exp-tag"># optymalizacja kosztów ogrzewania pompą ciepła</span>
            <span class="rk-exp-tag"># norma PN-EN 1264 obliczenia</span>
        </div>
    </div>

    <div class="rk-exp-grid">
        
        <div class="rk-exp-profile">
            <div class="rk-exp-photo-wrap">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Inżynier HVAC" class="rk-exp-photo">
            </div>
            
            <h3 class="rk-exp-name">Robert Kucharski</h3>
            <div class="rk-exp-title">Główny Specjalista HVAC</div>
            
            <div class="rk-exp-socials">
                <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener noreferrer" class="rk-exp-social-btn fb">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
                    Projekt Ogrzewania
                </a>
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer" class="rk-exp-social-btn li">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect x="2" y="9" width="4" height="12"></rect><circle cx="4" cy="4" r="2"></circle></svg>
                    Profil LinkedIn
                </a>
            </div>
        </div>

        <div class="rk-exp-content">
            
            <div class="rk-exp-quote-box">
                <span class="rk-exp-quote-mark">&#8222;</span>
                <p class="rk-exp-quote-text">
                    Nigdy nie pozwalaj wykonawcy kłaść rur 'na oko&#8217;. Zbyt gęsty rozstaw zadławi hydraulicznie Twoją pompę obiegową, a zbyt rzadki wymusi podniesienie temperatury zasilania, bezpowrotnie niszcząc oszczędności z pompy ciepła. Fizyka układu wybacza znacznie mniej niż wylewka betonowa.
                </p>
            </div>

            <div class="rk-exp-tabs">
                <button class="rk-exp-tab active" data-panel="wiedza">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>
                    Dlaczego ja?
                </button>
                <button class="rk-exp-tab" data-panel="fakty">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                    Twarde Fakty
                </button>
                <button class="rk-exp-tab" data-panel="zasady">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"></polygon></svg>
                    Standardy OZC
                </button>
            </div>

            <div class="rk-exp-panel active" id="panel-wiedza">
                <h3>Praktyka i audyty placów budowy</h3>
                <p>
                    Jako założyciel portali projekt-ogrzewania.pl, remont.biz.pl oraz sobir.pl, od lat audytuję błędy instalatorskie. Projektowanie systemów grzewczych to nie są zgadywanki – to czysta matematyka i fizyka przepływów.
                </p>
                <p>
                    Moim celem jest chronić budżet inwestora przed nieuczciwymi wycenami. Pokazuję mechanizmy i normy budowlane, o których milczą wykonawcy, udowadniając, że <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">brak profesjonalnego projektu</a> to najdroższy błąd, jaki możesz popełnić przy podłogówce.
                </p>
            </div>

            <div class="rk-exp-panel" id="panel-fakty">
                <h3>Instalacje bazujące na inżynierii</h3>
                <p>Każdy opór hydrauliczny i każdy metr rury PEX ma kluczowe znaczenie. Spójrz na statystyki, które stoją za moim doświadczeniem:</p>
                
                <div class="rk-exp-stats">
                    <div class="rk-exp-stat-box">
                        <div class="rk-exp-stat-icon">
                            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="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></svg>
                        </div>
                        <div class="rk-exp-stat-info">
                            <div class="rk-exp-stat-val">1000+</div>
                            <div class="rk-exp-stat-label">Wykonanych Projektów OZC</div>
                        </div>
                    </div>
                    
                    <div class="rk-exp-stat-box">
                        <div class="rk-exp-stat-icon">
                            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                        </div>
                        <div class="rk-exp-stat-info">
                            <div class="rk-exp-stat-val">~20%</div>
                            <div class="rk-exp-stat-label">Oszczędności w sezonie</div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-exp-panel" id="panel-zasady">
                <h3>Bezbłędny system zaczyna się na papierze</h3>
                <p>
                    Nie uznaję układania rur &#8222;wszędzie tak samo&#8221;. Każde pomieszczenie w Twoim domu traci ciepło w innym tempie. Stosuję gęstszy rozstaw przy drzwiach tarasowych i witrynach, a rzadszy w sypialniach.
                </p>
                <p>
                    Wszystkie kalkulatory i wyceny na tej stronie bazują na obowiązującej normie projektowej <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">PN-EN 1264</a>. To gwarantuje Ci nie tylko pełną zgodność prawno-techniczną przy ubieganiu się o dotacje (np. Czyste Powietrze), ale przede wszystkim bezstresową eksploatację jastrychów.
                </p>
            </div>

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

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

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

            this.classList.add('active');

            const target = this.getAttribute('data-panel');
            document.getElementById('panel-' + target).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-blue: #0284c7;
    --rk-faq-light-blue: #e0f2fe;
    --rk-faq-accent: #38bdf8;
    --rk-faq-bg: #ffffff;
    --rk-faq-border: #cbd5e1;
    --rk-faq-text: #334155;
    --rk-faq-hover: #f8fafc;
}

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

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

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

.rk-faq-header p {
    font-size: 16px;
    color: #94a3b8;
    margin: 0;
    max-width: 700px;
    margin: 0 auto;
}

/* Lista Akordeonów */
.rk-faq-list {
    padding: 30px 40px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-faq-item {
    border: 1px solid var(--rk-faq-border);
    border-radius: 16px;
    background: var(--rk-faq-bg);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    overflow: hidden;
}

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

/* Pytanie (H3) - Klikalne */
.rk-faq-question {
    padding: 20px 25px;
    display: flex;
    align-items: center;
    gap: 20px;
    cursor: pointer;
    background: var(--rk-faq-bg);
    transition: background 0.3s;
}

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

.rk-faq-item.active .rk-faq-question {
    background: var(--rk-faq-light-blue);
}

.rk-faq-icon {
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: var(--rk-faq-light-blue);
    color: var(--rk-faq-blue);
    transition: all 0.4s;
}

.rk-faq-item.active .rk-faq-icon {
    background: var(--rk-faq-blue);
    color: #ffffff;
    transform: scale(1.05);
}

.rk-faq-title {
    flex-grow: 1;
}

.rk-faq-title h3 {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
    color: var(--rk-faq-dark);
    line-height: 1.4;
}

.rk-faq-chevron {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    color: var(--rk-faq-blue);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

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

/* Odpowiedź - Treść */
.rk-faq-answer {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq-answer-inner {
    padding: 0 25px 25px 93px;
}

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

.rk-faq-answer a {
    color: var(--rk-faq-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(2, 132, 199, 0.2);
    transition: all 0.3s;
}

.rk-faq-answer a:hover {
    border-bottom-color: var(--rk-faq-blue);
    background: rgba(2, 132, 199, 0.05);
}

/* Animacje SVG dla poszczególnych ikon */
.rk-svg-pulse { animation: rk-pulse 2s infinite; }
.rk-svg-spin { transition: transform 0.5s; }
.rk-faq-item.active .rk-svg-spin { transform: rotate(180deg); }
.rk-svg-bounce { transition: transform 0.5s; }
.rk-faq-item.active .rk-svg-bounce { transform: translateY(-3px); }

@keyframes rk-pulse {
    0% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.1); opacity: 0.8; }
    100% { transform: scale(1); opacity: 1; }
}

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/"
    },
    "headline": "FAQ – Najczęściej zadawane pytania o koszt ogrzewania podłogowego na 100 m²",
    "description": "Baza wiedzy i odpowiedzi na najczęstsze pytania inwestorów dotyczące kosztów podłogówki: cena projektu, robocizny, wody demineralizowanej, frezowania i oszczędności z OZC.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-06",
    "dateModified": "2026-06-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#dataset-faq",
    "name": "Baza Wiedzy Q&A – Koszty Instalacji Ogrzewania Podłogowego 100 m²",
    "description": "Zestawienie i kategoryzacja pytań dotyczących nakładów finansowych na poszczególne etapy i komponenty płaszczyznowego systemu grzewczego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "cena projektu ogrzewania podłogowego",
      "koszt robocizny podłogówka",
      "woda demineralizowana cena",
      "frezowanie ogrzewania podłogowego koszt",
      "oszczędności z projektu OZC"
    ],
    "measurementTechnique": "Agregacja najczęściej pojawiających się pytań ofertowych od inwestorów budujących domy o powierzchni około 100 metrów kwadratowych w 2026 roku.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wycena projektowa OZC dla 100m2",
        "Regionalizacje stawek instalatorskich",
        "Koszty chemii zabezpieczającej i uzdatniania",
        "Różnice kosztowe między systemem mokrym a frezowaniem"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#webapp-faq",
    "name": "Interaktywny Asystent Kosztów FAQ",
    "description": "Moduł rozwijany (accordion) umożliwiający szybkie wyszukiwanie i przeglądanie krótkich odpowiedzi eksperckich na temat budżetowania podłogówki.",
    "applicationCategory": "ReferenceApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and CSS Flexbox",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-widget">
    <div class="rk-faq-header">
        <h2>FAQ – Najczęściej zadawane pytania o koszt ogrzewania podłogowego na 100 m²</h2>
        <p>Kliknij wybrane pytanie, aby rozwinąć szczegółową odpowiedź inżyniera i dowiedzieć się, gdzie szukać realnych oszczędności bez utraty jakości.</p>
    </div>

    <div class="rk-faq-list" id="rkFaqContainer">
        
        <div class="rk-faq-item">
            <div class="rk-faq-question">
                <div class="rk-faq-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="rk-svg-pulse">
                        <path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path>
                        <polyline points="14 2 14 8 20 8"></polyline>
                        <line x1="16" y1="13" x2="8" y2="13"></line>
                        <line x1="16" y1="17" x2="8" y2="17"></line>
                        <polyline points="10 9 9 9 8 9"></polyline>
                    </svg>
                </div>
                <div class="rk-faq-title">
                    <h3>Ile kosztuje projekt ogrzewania podłogowego dla domu o powierzchni 100 m²?</h3>
                </div>
                <div class="rk-faq-chevron">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </div>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-inner">
                    <p>Standardowy, komercyjny koszt wykonania profesjonalnego projektu technicznego wraz z obliczeniami OZC dla powierzchni 100 m² wynosi 450 PLN. W przypadku podjęcia decyzji o zakupie kompletnego systemu rur i rozdzielaczy na naszym portalu, koszt ten jest w całości anulowany, a inwestor otrzymuje <a href="https://projekt-ogrzewania.pl/ile-kosztuje-projekt-ogrzewania-podlogowego/">pełną dokumentację za 0 PLN</a>.</p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <div class="rk-faq-question">
                <div class="rk-faq-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="rk-svg-bounce">
                        <polygon points="12 2 2 7 12 12 22 7 12 2"></polygon>
                        <polyline points="2 17 12 22 22 17"></polyline>
                        <polyline points="2 12 12 17 22 12"></polyline>
                    </svg>
                </div>
                <div class="rk-faq-title">
                    <h3>Czy cena ogrzewania podłogowego na 100 m² różni się w zależności od województwa?</h3>
                </div>
                <div class="rk-faq-chevron">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </div>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-inner">
                    <p>Koszty materiałów systemowych (rur, rozdzielaczy, szafek) są stałe w całym kraju, natomiast <a href="https://projekt-ogrzewania.pl/podlogowka-cena-za-m%c2%b2-robocizny/">stawki robocizny instalatorskiej</a> wykazują wahania regionalne na poziomie 10-15%. Prezentowana stawka ryczałtowa 32,50 PLN/m² stanowi uśrednioną i stabilną wartość kontraktową, która chroni inwestora przed lokalnymi zawyżeniami cen usług.</p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <div class="rk-faq-question">
                <div class="rk-faq-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="rk-svg-pulse">
                        <path d="M12 22a7 7 0 0 0 7-7c0-2-1-3.9-3-5.5s-3.5-4-4-6.5c-.5 2.5-2 4.9-4 6.5C6 11.1 5 13 5 15a7 7 0 0 0 7 7z"></path>
                    </svg>
                </div>
                <div class="rk-faq-title">
                    <h3>Jaki jest koszt napełnienia instalacji 100 m² wodą demineralizowaną?</h3>
                </div>
                <div class="rk-faq-chevron">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </div>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-inner">
                    <p>Zakup <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/">wody demineralizowanej</a> o przewodności elektrycznej poniżej 10 µS/cm oraz dedykowanego inhibitora korozji dla instalacji o pojemności ok. 130 litrów to koszt rzędu 300 &#8211; 500 PLN. Jest to wydatek jednorazowy i obligatoryjny, chroniący rury oraz wymiennik ciepła pompy przed drastycznym spadkiem sprawności na skutek zakamienienia.</p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <div class="rk-faq-question">
                <div class="rk-faq-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="rk-svg-spin">
                        <circle cx="12" cy="12" r="10"></circle>
                        <line x1="12" y1="8" x2="12" y2="12"></line>
                        <line x1="12" y1="16" x2="12.01" y2="16"></line>
                    </svg>
                </div>
                <div class="rk-faq-title">
                    <h3>O ile droższe jest frezowanie ogrzewania podłogowego na 100 m² od systemu mokrego?</h3>
                </div>
                <div class="rk-faq-chevron">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </div>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-inner">
                    <p>Wykonanie podłogówki <a href="https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/">metodą frezowania</a> w istniejącej wylewce betonowej podnosi koszt robocizny i oprzyrządowania o około 40 &#8211; 50%, windując cenę metra kwadratowego do poziomu 130 &#8211; 150 PLN/m². Metoda ta eliminuje jednak konieczność skuwania starego podłoża, co w ostatecznym rozrachunku remontowym może okazać się opłacalne.</p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <div class="rk-faq-question">
                <div class="rk-faq-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="rk-svg-bounce">
                        <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="rk-faq-title">
                    <h3>Ile można zaoszczędzić na kosztach eksploatacji 100 m² podłogówki dzięki dobremu projektowi?</h3>
                </div>
                <div class="rk-faq-chevron">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </div>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-inner">
                    <p>Rzetelne zbalansowanie hydrauliczne i precyzyjny dobór rozstawu rur pod <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">niską temperaturę zasilania</a> (35°C zamiast 45°C) pozwala obniżyć rachunki za energię o 15 &#8211; 20% w skali roku. Dla domu 100 m² ogrzewanego pompą ciepła generuje to realne oszczędności rzędu kilkuset złotych w każdym sezonie grzewczym.</p>
                </div>
            </div>
        </div>

    </div>
</div>

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

    faqItems.forEach(item => {
        const question = item.querySelector('.rk-faq-question');
        const answer = item.querySelector('.rk-faq-answer');

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

            // Najpierw zwiń wszystkie
            faqItems.forEach(faq => {
                faq.classList.remove('active');
                faq.querySelector('.rk-faq-answer').style.maxHeight = null;
                faq.querySelector('.rk-faq-answer').style.opacity = '0';
            });

            // Jeśli kliknięty nie był aktywny, rozwiń go
            if (!isActive) {
                item.classList.add('active');
                // Ustaw max-height na wartość scrollHeight aby płynnie się animowało
                answer.style.maxHeight = answer.scrollHeight + "px";
                answer.style.opacity = '1';
            }
        });
    });
});
</script>



<style>
:root {
    --rk-budg-dark: #0f172a;
    --rk-budg-blue: #0284c7;
    --rk-budg-light-blue: #f0f9ff;
    --rk-budg-green: #059669;
    --rk-budg-green-light: #ecfdf5;
    --rk-budg-red: #dc2626;
    --rk-budg-red-light: #fef2f2;
    --rk-budg-gold: #d97706;
    --rk-budg-gray: #475569;
    --rk-budg-border: #e2e8f0;
    --rk-budg-bg: #ffffff;
}

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

/* Sekcja Nagłówkowa */
.rk-budg-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
    text-align: center;
    border-bottom: 1px solid var(--rk-budg-border);
}

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

.rk-budg-header p {
    font-size: 16px;
    color: var(--rk-budg-gray);
    margin: 0 auto;
    max-width: 700px;
    line-height: 1.6;
}

/* Interaktywny Switch iOS Style */
.rk-budg-interactive {
    padding: 40px 50px;
}

.rk-budg-toggle-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    margin-bottom: 40px;
}

.rk-toggle-label {
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-budg-gray);
    cursor: pointer;
    transition: color 0.3s;
}

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

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

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

.rk-slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: var(--rk-budg-green);
    transition: .4s;
    border-radius: 40px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);
}

.rk-slider:before {
    position: absolute;
    content: "";
    height: 32px;
    width: 32px;
    left: 4px;
    bottom: 4px;
    background-color: white;
    transition: .4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    border-radius: 50%;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}

input:checked + .rk-slider {
    background-color: var(--rk-budg-red);
}

input:checked + .rk-slider:before {
    transform: translateX(40px);
}

/* Panele z danymi */
.rk-budg-panel {
    display: none;
    grid-template-columns: 1.2fr 1fr;
    gap: 40px;
    align-items: center;
    animation: fadeInPanel 0.5s ease;
}

.rk-budg-panel.active {
    display: grid;
}

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

/* Sekcja Animacji SVG */
.rk-budg-visual {
    background: #f1f5f9;
    border-radius: 20px;
    padding: 40px;
    text-align: center;
    position: relative;
}

.rk-panel-pro .rk-budg-visual { background: var(--rk-budg-green-light); border: 1px solid #a7f3d0; }
.rk-panel-risk .rk-budg-visual { background: var(--rk-budg-red-light); border: 1px solid #fecaca; }

.rk-anim-svg-box {
    width: 100%;
    max-width: 200px;
    margin: 0 auto 20px;
}

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

.anim-pulse-shield {
    transform-origin: center;
    animation: pulsePro 2s infinite;
}
@keyframes pulsePro {
    0% { transform: scale(1); filter: drop-shadow(0 0 0 rgba(5, 150, 105, 0.4)); }
    50% { transform: scale(1.05); filter: drop-shadow(0 0 10px rgba(5, 150, 105, 0.8)); }
    100% { transform: scale(1); filter: drop-shadow(0 0 0 rgba(5, 150, 105, 0.4)); }
}

.anim-crack {
    stroke-dasharray: 100;
    stroke-dashoffset: 100;
    animation: drawCrack 1s forwards cubic-bezier(0.4, 0, 0.2, 1);
    animation-delay: 0.5s;
}
@keyframes drawCrack {
    to { stroke-dashoffset: 0; }
}

.anim-alert {
    transform-origin: center;
    animation: shakeAlert 0.5s infinite alternate;
}
@keyframes shakeAlert {
    from { transform: rotate(-10deg) scale(1); }
    to { transform: rotate(10deg) scale(1.1); }
}

/* Tekst i dane */
.rk-budg-content h3 {
    font-size: 22px;
    font-weight: 800;
    margin: 0 0 15px 0;
}

.rk-panel-pro .rk-budg-content h3 { color: var(--rk-budg-green); }
.rk-panel-risk .rk-budg-content h3 { color: var(--rk-budg-red); }

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

.rk-budg-content a {
    color: var(--rk-budg-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(2, 132, 199, 0.2);
    transition: all 0.3s;
}

.rk-budg-content a:hover {
    border-bottom-color: var(--rk-budg-blue);
    background: rgba(2, 132, 199, 0.05);
}

.rk-data-list {
    list-style: none;
    padding: 0;
    margin: 20px 0 0 0;
}

.rk-data-list li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 12px;
    font-size: 14px;
    font-weight: 600;
    color: var(--rk-budg-dark);
    padding: 12px;
    background: #f8fafc;
    border-radius: 12px;
    border: 1px solid var(--rk-budg-border);
}

.rk-data-list svg {
    flex-shrink: 0;
    margin-top: 2px;
}

/* Kafelki z budżetem (zamiast tabeli) */
.rk-price-tag {
    font-size: 28px;
    font-weight: 900;
    display: block;
    margin-top: 5px;
}

.rk-panel-pro .rk-price-tag { color: var(--rk-budg-green); }
.rk-panel-risk .rk-price-tag { color: var(--rk-budg-red); }

/* RWD */
@media (max-width: 768px) {
    .rk-budg-header { padding: 30px 20px; }
    .rk-budg-interactive { padding: 30px 20px; }
    .rk-budg-panel { grid-template-columns: 1fr; gap: 25px; }
    .rk-budg-visual { padding: 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/"
    },
    "headline": "Podsumowanie i rekomendacje budżetowe – Ile realnie kosztuje podłogówka?",
    "description": "Szczegółowe podsumowanie kosztów instalacji ogrzewania podłogowego. Porównanie bezpiecznego standardu z rurami EVOH i projektem technicznym do ryzykownych oszczędności.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-06",
    "dateModified": "2026-06-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#dataset-podsumowanie",
    "name": "Kalkulacja Ryzyka Inwestycyjnego Ogrzewania Podłogowego",
    "description": "Zestawienie kosztów optymalnej instalacji hydraulicznej względem potencjalnych kosztów naprawy awarii wynikających z oszczędności materiałowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "podsumowanie kosztów ogrzewania podłogowego",
      "budżet na podłogówkę",
      "rury z barierą antydyfuzyjną EVOH",
      "ryzyko awarii ogrzewania podłogowego",
      "koszty usunięcia awarii wylewki"
    ],
    "measurementTechnique": "Modelowanie finansowe porównujące bazowy koszt bezpiecznej instalacji (8500-10000 PLN) z ukrytymi kosztami napraw uszkodzeń bez projektu OZC.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wariant Optymalny: 8500 - 10000 PLN (certyfikowane rury EVOH, projekt, próba ciśnieniowa).",
        "Wariant Ryzykowny: Pozorna oszczędność prowadząca do katastrofy finansowej po wylaniu betonu."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#webapp-podsumowanie",
    "name": "Symulator Budżetu i Ryzyka Instalacyjnego",
    "description": "Interaktywny przełącznik pozwalający inwestorowi na wizualizację konsekwencji cięcia kosztów przy budowie wodnego ogrzewania podłogowego.",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-budg-container">
    <div class="rk-budg-header">
        <h2>Podsumowanie i rekomendacje budżetowe – Ile realnie kosztuje podłogówka?</h2>
        <p>Planując wydatki na ogrzewanie płaszczyznowe, jako inwestor musisz wyraźnie oddzielić czysty koszt instalacji hydraulicznej od całkowitego kosztu wykonania gotowej podłogi. Sprawdź, dlaczego cięcie budżetu to najgorsza możliwa decyzja.</p>
    </div>

    <div class="rk-budg-interactive">
        
        <div class="rk-budg-toggle-wrapper">
            <span class="rk-toggle-label active-pro" id="labelPro">Standard Inżynierski</span>
            <label class="rk-switch">
                <input type="checkbox" id="budgetToggle">
                <span class="rk-slider"></span>
            </label>
            <span class="rk-toggle-label" id="labelRisk">Złudne Oszczędności</span>
        </div>

        <!-- Panel 1: Profesjonalny Standard -->
        <div class="rk-budg-panel rk-panel-pro active" id="panelPro">
            <div class="rk-budg-visual">
                <svg class="rk-anim-svg-box" viewBox="0 0 200 200" fill="none" xmlns="http://www.w3.org/2000/svg">
                    <!-- Bezpieczny dom -->
                    <path d="M20 90 L100 20 L180 90 V180 H20 V90 Z" fill="#ffffff" stroke="#059669" stroke-width="6" stroke-linejoin="round"/>
                    <!-- Rury z przepływem -->
                    <path d="M40 160 H160" stroke="#10b981" stroke-width="8" stroke-linecap="round"/>
                    <path class="anim-pipe-flow" d="M40 160 H160" stroke="#ecfdf5" stroke-width="4" stroke-linecap="round"/>
                    <!-- Tarcza Ochronna -->
                    <g class="anim-pulse-shield">
                        <path d="M100 60 C100 60 140 70 140 100 C140 130 100 150 100 150 C100 150 60 130 60 100 C60 70 100 60 100 60 Z" fill="#34d399" opacity="0.2" stroke="#059669" stroke-width="4" stroke-linejoin="round"/>
                        <path d="M85 105 L95 115 L115 90" stroke="#059669" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
                    </g>
                </svg>
                <div class="rk-price-tag">8 500 &#8211; 10 000 PLN</div>
                <div style="font-weight: 700; color: var(--rk-budg-green); margin-top: 10px;">Spokój na 50 lat</div>
            </div>
            
            <div class="rk-budg-content">
                <h3>Inwestycja w Bezpieczeństwo</h3>
                <p>Podstawowy wydatek gwarantuje spokój ducha. Kwota ta zabezpiecza zakup certyfikowanych rur wielowarstwowych (wyposażonych w niezbędną <a href="https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/">barierę antydyfuzyjną EVOH</a>), systemowego rozdzielacza ze stali nierdzewnej oraz profesjonalny montaż zakończony próbą ciśnieniową.</p>
                <p>Bezpieczna i wysoce efektywna instalacja grzewcza to proces, który bezwzględnie musi rozpocząć się od rzetelnego, <a href="https://projekt-ogrzewania.pl/darmowy-projekt-ogrzewania-podlogowego/">profesjonalnego projektu technicznego</a>.</p>
                
                <ul class="rk-data-list">
                    <li>
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-budg-green)" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                        <span>Certyfikowane materiały i chemia instalacyjna</span>
                    </li>
                    <li>
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-budg-green)" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                        <span>Dokładne obliczenia hydrauliczne i nastawy OZC</span>
                    </li>
                </ul>
            </div>
        </div>

        <!-- Panel 2: Ryzyko / Amator -->
        <div class="rk-budg-panel rk-panel-risk" id="panelRisk">
            <div class="rk-budg-visual">
                <svg class="rk-anim-svg-box" viewBox="0 0 200 200" fill="none" xmlns="http://www.w3.org/2000/svg">
                    <!-- Uszkodzony dom -->
                    <path d="M20 90 L100 20 L180 90 V180 H20 V90 Z" fill="#ffffff" stroke="#94a3b8" stroke-width="6" stroke-linejoin="round"/>
                    <!-- Pęknięta wylewka -->
                    <path d="M40 160 H160" stroke="#cbd5e1" stroke-width="8" stroke-linecap="round"/>
                    <path class="anim-crack" d="M80 160 L90 140 L100 170 L110 150 L120 160" stroke="#dc2626" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
                    <!-- Alert -->
                    <g class="anim-alert">
                        <polygon points="100,50 140,120 60,120" fill="#fef2f2" stroke="#dc2626" stroke-width="5" stroke-linejoin="round"/>
                        <line x1="100" y1="75" x2="100" y2="95" stroke="#dc2626" stroke-width="6" stroke-linecap="round"/>
                        <circle cx="100" cy="110" r="3" fill="#dc2626"/>
                    </g>
                </svg>
                <div class="rk-price-tag" style="text-decoration: line-through; font-size: 20px; color: var(--rk-budg-gray);">ok. 6 000 PLN</div>
                <div class="rk-price-tag" style="margin-top: -5px;">+ 15 000 PLN za kucie</div>
                <div style="font-weight: 700; color: var(--rk-budg-red); margin-top: 10px;">Finansowa Katastrofa</div>
            </div>
            
            <div class="rk-budg-content">
                <h3>Ryzyko, którego nie widać</h3>
                <p>Chęć bezrefleksyjnego obniżania kwot poprzez rezygnację z obliczeń inżynieryjnych, stosowanie tanich rur bez bariery EVOH czy zatrudnianie przypadkowych ekip wykonawczych to najszybsza droga do <a href="https://projekt-ogrzewania.pl/kompleksowa-wycena-ogrzewania-podlogowego-wodnego-na-co-przygotowac-budzet/">przekroczenia budżetu</a>.</p>
                <p>Niesie to za sobą ogromne ryzyko błędów hydraulicznych, brak balansu przepływów i wycieki. Usunięcie awarii po zalaniu instalacji betonem wielokrotnie przewyższa koszty, które początkowo &#8222;zaoszczędziłeś&#8221;.</p>
                
                <ul class="rk-data-list">
                    <li style="background: #fef2f2; border-color: #fecaca;">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-budg-red)" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
                        <span>Zapowietrzanie układu i korozja kotła bez EVOH</span>
                    </li>
                    <li style="background: #fef2f2; border-color: #fecaca;">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-budg-red)" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
                        <span>Skuwanie wylewek w poszukiwaniu nieszczelności</span>
                    </li>
                </ul>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const toggle = document.getElementById('budgetToggle');
    const panelPro = document.getElementById('panelPro');
    const panelRisk = document.getElementById('panelRisk');
    const labelPro = document.getElementById('labelPro');
    const labelRisk = document.getElementById('labelRisk');

    toggle.addEventListener('change', function() {
        if(this.checked) {
            // Przełącz na Ryzyko
            panelPro.classList.remove('active');
            panelRisk.classList.add('active');
            
            labelPro.classList.remove('active-pro');
            labelRisk.classList.add('active-risk');
            
            // Restart animacji pęknięcia
            const crackAnim = panelRisk.querySelector('.anim-crack');
            if(crackAnim) {
                crackAnim.style.animation = 'none';
                crackAnim.offsetHeight; /* trigger reflow */
                crackAnim.style.animation = null; 
            }
        } else {
            // Przełącz na Standard
            panelRisk.classList.remove('active');
            panelPro.classList.add('active');
            
            labelRisk.classList.remove('active-risk');
            labelPro.classList.add('active-pro');
        }
    });
});
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-primary: #0284c7; /* Sky blue */
    --rk-dl-primary-light: #e0f2fe;
    --rk-dl-accent: #10b981; /* Emerald for download */
    --rk-dl-accent-light: #d1fae5;
    --rk-dl-gray: #475569;
    --rk-dl-border: #cbd5e1;
    --rk-dl-bg: #ffffff;
    --rk-dl-surface: #f8fafc;
}

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

/* Nagłówek i Długi Ogon SEO */
.rk-dl-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-dl-dark) 0%, #1e293b 100%);
    color: #ffffff;
    text-align: center;
}

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

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

.rk-dl-tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin-top: 20px;
}

.rk-dl-tag {
    background: rgba(2, 132, 199, 0.2);
    border: 1px solid rgba(2, 132, 199, 0.4);
    padding: 5px 14px;
    border-radius: 20px;
    font-size: 12px;
    color: #bae6fd;
    font-weight: 600;
}

/* Interaktywny Panel Nawigacji */
.rk-dl-interactive {
    background: var(--rk-dl-surface);
    padding: 35px 50px;
    border-bottom: 1px solid var(--rk-dl-border);
}

.rk-dl-toggle-box {
    display: flex;
    background: var(--rk-dl-bg);
    border: 2px solid var(--rk-dl-border);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
}

.rk-dl-toggle-btn {
    flex: 1;
    padding: 16px 20px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-dl-gray);
    cursor: pointer;
    transition: all 0.2s ease;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

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

.rk-dl-toggle-btn.active[data-view="image"] {
    background: var(--rk-dl-primary);
    color: #ffffff;
    border-color: var(--rk-dl-primary);
}

.rk-dl-toggle-btn.active[data-view="pdf"] {
    background: var(--rk-dl-accent);
    color: #ffffff;
    border-color: var(--rk-dl-accent);
}

/* Widoki Zawartości */
.rk-dl-content-wrapper {
    padding: 40px 50px;
    background: var(--rk-dl-bg);
}

.rk-dl-view {
    display: none;
}

.rk-dl-view.active {
    display: block;
}

/* Widok: Obraz (Infografika) */
.rk-dl-image-container {
    border: 2px dashed var(--rk-dl-border);
    border-radius: 16px;
    padding: 10px;
    background: var(--rk-dl-surface);
    text-align: center;
}

.rk-dl-image-container img {
    max-width: 100%;
    height: auto;
    border-radius: 10px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    display: block;
    margin: 0 auto;
}

/* Widok: Pobieranie PDF */
.rk-dl-pdf-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    background: var(--rk-dl-surface);
    border: 1px solid var(--rk-dl-border);
    border-radius: 16px;
    padding: 40px 30px;
}

.rk-dl-pdf-icon {
    width: 64px;
    height: 64px;
    color: var(--rk-dl-accent);
    margin-bottom: 20px;
    background: var(--rk-dl-accent-light);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px;
}

.rk-dl-pdf-title {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-dl-dark);
    margin: 0 0 10px 0;
}

.rk-dl-pdf-desc {
    font-size: 15px;
    color: var(--rk-dl-gray);
    margin: 0 0 25px 0;
    max-width: 500px;
    line-height: 1.6;
}

.rk-dl-btn-download {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--rk-dl-accent);
    color: #ffffff;
    padding: 16px 35px;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 800;
    text-decoration: none;
    box-shadow: 0 10px 20px -5px rgba(16, 185, 129, 0.4);
    transition: all 0.2s;
}

.rk-dl-btn-download:hover {
    background: #059669;
    transform: translateY(-2px);
    box-shadow: 0 15px 25px -5px rgba(16, 185, 129, 0.5);
}

/* Prawa Autorskie */
.rk-dl-copyright {
    margin-top: 30px;
    padding-top: 20px;
    border-top: 1px solid var(--rk-dl-border);
    font-size: 12px;
    color: var(--rk-dl-gray);
    line-height: 1.6;
    text-align: center;
    background: transparent;
}

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

/* RWD */
@media (max-width: 768px) {
    .rk-dl-header, .rk-dl-interactive, .rk-dl-content-wrapper { padding: 30px 20px; }
    .rk-dl-toggle-box { flex-direction: column; border-radius: 12px; }
    .rk-dl-pdf-container { padding: 30px 20px; }
    .rk-dl-btn-download { width: 100%; justify-content: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/"
    },
    "headline": "Kompletne zestawienie kosztów do pobrania – Infografika i PDF",
    "description": "Zapisz na dysku lub wydrukuj nasze szczegółowe zestawienie kosztów instalacji wodnego ogrzewania podłogowego. Pobierz czytelną infografikę oraz dokument PDF.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Ile-kosztuje-100-m%C2%B2-ogrzewania-podlogowego.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-06-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#dataset-infografika",
    "name": "Infografika i Kosztorys Ogrzewania Podłogowego 2026 (PDF/WebP)",
    "description": "Pliki do pobrania zawierające wizualne zestawienie kosztów materiałów i robocizny dla 100 m2. Przeznaczone do druku i konsultacji z wykonawcą.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika ogrzewanie podłogowe",
      "kosztorys podłogówki pdf",
      "zestawienie materiałów do druku",
      "podsumowanie kosztów hydraulik",
      "ile kosztuje podłogówka materiały pobierz"
    ],
    "measurementTechnique": "Agregacja i wizualizacja danych kosztorysowych omawianych w artykule, przystosowana do formatu wektorowego i PDF.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wersja graficzna WebP (Podgląd Online)",
        "Wersja PDF (Dokumentacja do pobrania i druku)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-kosztuje-100-m2-ogrzewania-podlogowego/#webapp-infografika",
    "name": "Centrum Pobierania Materiałów Inwestora",
    "description": "Interaktywny moduł pozwalający na szybki podgląd infografiki kosztorysowej bezpośrednio w przeglądarce oraz na bezpieczne pobranie pliku PDF na dysk urządzenia.",
    "applicationCategory": "MultimediaApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-widget">
    
    <div class="rk-dl-header">
        <h2>Kompletne zestawienie kosztów do pobrania – Infografika i PDF</h2>
        <p>Zapisz na dysku lub wydrukuj nasze szczegółowe zestawienie kosztów instalacji wodnego ogrzewania podłogowego. Przygotowałem dla Ciebie czytelną infografikę oraz gotowy plik PDF, idealny do omówienia z Twoim wykonawcą.</p>
        
        <div class="rk-dl-tags">
            <span class="rk-dl-tag"># infografika ogrzewanie podłogowe</span>
            <span class="rk-dl-tag"># kosztorys podłogówki pdf</span>
            <span class="rk-dl-tag"># zestawienie materiałów do druku</span>
        </div>
    </div>

    <div class="rk-dl-interactive">
        <div class="rk-dl-toggle-box">
            <div class="rk-dl-toggle-btn active" data-view="image">
                <svg width="20" height="20" 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>
                Podgląd Infografiki
            </div>
            <div class="rk-dl-toggle-btn" data-view="pdf">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="12" y1="18" x2="12" y2="12"></line><line x1="9" y1="15" x2="15" y2="15"></line></svg>
                Pobierz Dokumentację PDF
            </div>
        </div>
    </div>

    <div class="rk-dl-content-wrapper">
        
        <!-- Widok 1: Podgląd Obrazka -->
        <div class="rk-dl-view active" id="view-image">
            <div class="rk-dl-image-container">
                <!-- Zastosowano dokładny link z polecenia (spacja/znaki specjalne zakodowane wg standardu URL by zapobiec błędom na WordPressie) -->
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Ile-kosztuje-100-m%C2%B2-ogrzewania-podlogowego.webp" alt="Infografika - Ile kosztuje 100 m² ogrzewania podłogowego" loading="lazy">
            </div>
        </div>

        <!-- Widok 2: Panel Pobierania PDF -->
        <div class="rk-dl-view" id="view-pdf">
            <div class="rk-dl-pdf-container">
                <div class="rk-dl-pdf-icon">
                    <svg width="100%" height="100%" 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><path d="M12 18v-6"></path><path d="M9 15l3 3 3-3"></path></svg>
                </div>
                <h3 class="rk-dl-pdf-title">Kosztorys: 100 m² Podłogówki</h3>
                <p class="rk-dl-pdf-desc">Plik PDF wysokiej rozdzielczości przygotowany do wydruku. Zawiera pełne rozbicie cenowe materiałów systemowych oraz robocizny, opracowane na rok 2026.</p>
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Ile-kosztuje-100-m%C2%B2-ogrzewania-podlogowego.pdf" class="rk-dl-btn-download" target="_blank" rel="noopener noreferrer" download>
                    Pobierz plik PDF
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
                </a>
            </div>
        </div>

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

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-dl-toggle-btn');
    const views = document.querySelectorAll('.rk-dl-view');

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Zdejmij active ze wszystkich
            btns.forEach(b => b.classList.remove('active'));
            views.forEach(v => v.classList.remove('active'));

            // Dodaj active do klikniętego
            this.classList.add('active');

            // Pokaż odpowiedni widok
            const viewId = this.getAttribute('data-view');
            document.getElementById('view-' + viewId).classList.add('active');
        });
    });
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-kosztuje-100-m%c2%b2-ogrzewania-podlogowego/">Ile kosztuje 100 m² ogrzewania podłogowego?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
