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

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa Normy budowlane - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/category/normy-budowlane/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego.</title>
		<link>https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Fri, 24 Apr 2026 07:40:41 +0000</pubDate>
				<category><![CDATA[Błędy wykonawcze]]></category>
		<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Energooszczędne ogrzewanie]]></category>
		<category><![CDATA[Koszty inwestycji]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Normy techniczne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Optymalizacja kosztów]]></category>
		<category><![CDATA[Oszczędności energii]]></category>
		<category><![CDATA[Oszczędzanie energii]]></category>
		<category><![CDATA[Poradnik inwestora]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki inwestora]]></category>
		<category><![CDATA[błędy na budowie]]></category>
		<category><![CDATA[dylatacje podłogówki]]></category>
		<category><![CDATA[jastrych]]></category>
		<category><![CDATA[koszty budowy]]></category>
		<category><![CDATA[norma pn-en 1264]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[próba ciśnieniowa]]></category>
		<category><![CDATA[próba szczelności]]></category>
		<category><![CDATA[projekt instalacji]]></category>
		<category><![CDATA[projekt ozc]]></category>
		<category><![CDATA[rotametry]]></category>
		<category><![CDATA[rozdzielacz inox]]></category>
		<category><![CDATA[rozstaw rur]]></category>
		<category><![CDATA[styropian pod wylewkę]]></category>
		<category><![CDATA[taśma brzegowa]]></category>
		<category><![CDATA[usterki hydrauliczne]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=4403</guid>

					<description><![CDATA[<p>Zdecydowałeś się na nowoczesną instalację płaszczyznową, zapłaciłeś za profesjonalne wyliczenia OZC i kupiłeś drogi rozdzielacz? To świetny start, ale niestety to za mało, aby spać spokojnie. Prawdziwy test dla Twojej inwestycji odbywa się w momencie zalewania rur betonem. To właśnie w tej fazie najczęściej dochodzi do kosztownych pomyłek z winy pośpiechu i brawury ekip. Pozorna oszczędność na taśmie dylatacyjnej, zalanie jastrychu bez odpowiedniego ciśnienia czy zignorowanie zaleceń dotyczących grubości izolacji to klasyczne przykłady na to, jak najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego, potrafią zrujnować Twój portfel. Skucie popękanej posadzki i naprawa wycieków kosztują kilkadziesiąt tysięcy złotych. Przeczytaj ten raport, zapisz naszą listę kontrolną i obroń swój budżet, zanim betoniarka wjedzie na plac budowy.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/">Najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --primary: #0f172a;
    --accent: #dc2626; /* Zmiana na czerwień/ostrzegawczy, pasujący do tematyki błędów i strat finansowych */
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #fef2f2; /* Jasnoczerwone tło dopasowane do akcentu */
    --border-color: #fca5a5;
}

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

/* Subtelne tło dekoracyjne */
.premium-hero-box::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(220, 38, 38, 0.05) 0%, rgba(255,255,255,0) 70%);
    border-radius: 50%;
    transform: translate(30%, -30%);
    z-index: 0;
}

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

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

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

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

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

.hero-text a:hover {
    color: #991b1b;
}

.hero-text:last-of-type {
    margin-bottom: 40px;
}

/* Moduły / Spis treści */
.hero-modules-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: #94a3b8;
    letter-spacing: 1px;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
}

.hero-modules-title::after {
    content: "";
    flex-grow: 1;
    height: 1px;
    background: var(--border-color);
}

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

.hero-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    padding: 20px 15px;
    border-radius: 16px;
    text-align: center;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    position: relative;
    top: 0;
}

.hero-card:hover {
    top: -5px;
    border-color: var(--accent);
    box-shadow: 0 15px 25px -5px rgba(220, 38, 38, 0.15);
}

.hero-card-icon {
    font-size: 28px;
    margin-bottom: 12px;
    display: block;
    transition: transform 0.3s;
}

.hero-card:hover .hero-card-icon {
    transform: scale(1.15);
}

.hero-card-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--primary);
    line-height: 1.4;
}

@media (max-width: 900px) {
    .hero-content { padding: 35px 25px; }
    .hero-grid { grid-template-columns: repeat(2, 1fr); gap: 15px; }
}

@media (max-width: 500px) {
    .hero-grid { grid-template-columns: 1fr; }
    .hero-card { display: flex; align-items: center; text-align: left; gap: 15px; padding: 15px; }
    .hero-card-icon { margin-bottom: 0; font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego",
    "description": "Klasyczne błędy wykonawcze, brak próby ciśnieniowej i odchylenia od projektu OZC oraz normy PN-EN 1264, które drastycznie podnoszą koszty inwestycji i eksploatacji ogrzewania podłogowego.",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl"
    },
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Wpływ błędów wykonawczych na koszty ogrzewania podłogowego",
    "description": "Zestawienie mierzalnych strat finansowych i technicznych wynikających z niestosowania się do norm PN-EN 1264 i obliczeń OZC na etapie wykonawstwa.",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Brak próby ciśnieniowej",
        "value": "23 400 PLN",
        "description": "Średni koszt naprawy (skucie posadzki 42m², nowy jastrych, odtworzenie paneli) po wycieku"
      },
      {
        "@type": "PropertyValue",
        "name": "Przekroczenie długości pętli",
        "value": "140 m zamiast 90 m",
        "description": "Zbyt duży opór hydrauliczny uniemożliwiający wyregulowanie rotametru i niedogrzanie pomieszczeń"
      },
      {
        "@type": "PropertyValue",
        "name": "Brak izolacji wg WT2021",
        "value": "18 cm zamiast 20 cm EPS",
        "description": "Trwała utrata izolacyjności powodująca wzrost kosztów eksploatacji przy pompie ciepła"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Kalkulator Strat Wykonawczych Ogrzewania Podłogowego",
    "description": "Interaktywne zestawienie pozwalające zrozumieć algorytmom wyszukiwarek relację między konkretnym odchyleniem od projektu a końcowym kosztem naprawy dla inwestora (np. brak manometru vs skucie posadzki).",
    "applicationCategory": "Kalkulator Inżynieryjny",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="premium-hero-box" id="hero-app-container">
    <div class="hero-content">
        
        <div class="hero-badge">
            <span>💸</span> Prawdziwe Koszty Błędów
        </div>
        
        <p class="hero-text">W kwietniu 2026 roku w domu 158m² w Małopolsce inwestor zalał jastrych na rurach bez wcześniejszej próby ciśnieniowej i <strong>stracił 23 400 zł na skuciu posadzki</strong>. To klasyczny przykład, dlaczego najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego, ostatecznie kosztują wielokrotnie więcej niż sam projekt. Błąd wynikał z pośpiechu ekipy wylewkowej i braku podstawowej weryfikacji.</p>
        
        <p class="hero-text"><strong>Najczęstsze błędy na budowie</strong>, które psują instalację, to przede wszystkim odchylenia wykonawcze od obliczeń OZC i <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">normy PN-EN 1264</a>. Powodują one nierównomierny rozkład temperatury i drastyczny wzrost kosztów eksploatacji. W Projekt-Ogrzewania.pl widzę to od 2012 roku, weryfikując instalacje w ponad 1000 domach. Projekt za 499 zł nie zadziała, jeśli wykonawca na budowie <strong>da 18 cm styropianu zamiast 20 cm</strong> albo ułoży pętlę o długości 140 m zamiast obliczeniowych 90 m.</p>

        <div class="hero-modules-title">W tym poradniku demaskujemy:</div>
        
        <div class="hero-grid">
            <div class="hero-card">
                <span class="hero-card-icon">💧</span>
                <span class="hero-card-title">Brak próby ciśnieniowej przed wylewką</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">📏</span>
                <span class="hero-card-title">Zły rozstaw rur ignorujący OZC</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">➰</span>
                <span class="hero-card-title">Przewymiarowane pętle powyżej 100 m</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">🧊</span>
                <span class="hero-card-title">Za cienki styropian (ignorowanie WT2021)</span>
            </div>
        </div>

    </div>

    <noscript>
        <div style="padding: 20px 50px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h2 style="font-size: 18px; color: #0f172a; margin-bottom: 15px;">Konsekwencje i koszty odchyleń od projektu</h2>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px 0; color: #475569;">Błąd wykonawczy</th>
                        <th style="padding: 10px 0; color: #475569;">Odchylenie od normy / projektu</th>
                        <th style="padding: 10px 0; color: #475569;">Konsekwencja (Koszty)</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">Brak próby szczelności</td>
                        <td style="padding: 10px 0;">Zalanie rur bez ciśnienia 6 bar</td>
                        <td style="padding: 10px 0; color: #dc2626;">Wyciek i skucie posadzki (ok. 23 400 zł)</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">Za długa pętla grzewcza</td>
                        <td style="padding: 10px 0;">Układanie 140 m zamiast 90 m</td>
                        <td style="padding: 10px 0; color: #dc2626;">Brak możliwości wyregulowania rotametrem</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">Redukcja warstwy izolacji</td>
                        <td style="padding: 10px 0;">18 cm styropianu zamiast 20 cm</td>
                        <td style="padding: 10px 0; color: #dc2626;">Straty ciepła do gruntu i wyższe rachunki</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">Ignorowanie OZC</td>
                        <td style="padding: 10px 0;">Układanie „na oko” (rozstaw 15 cm wszędzie)</td>
                        <td style="padding: 10px 0; color: #dc2626;">Niedogrzane strefy brzegowe zimą</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

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



<style>
:root {
    --primary: #0f172a;
    --accent: #dc2626; /* Czerwony ostrzegawczy */
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #fef2f2;
    --border-color: #fca5a5;
    --sim-bg: #f8fafc;
    --concrete: #cbd5e1;
    --eps: #fef08a;
}

.premium-physics-box {
    max-width: 850px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
}

.physics-header {
    padding: 30px 40px;
    text-align: center;
    background: var(--bg-light);
    border-bottom: 1px solid var(--border-color);
}

.physics-header h2 {
    margin: 0 0 10px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--primary);
}

.physics-header p {
    margin: 0 auto;
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
}

/* SYMULATOR FIZYKI */
.simulator-wrapper {
    padding: 30px 40px;
    background: #ffffff;
    border-bottom: 1px solid #e2e8f0;
}

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

.sim-btn {
    padding: 12px 24px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    cursor: pointer;
    border: 2px solid transparent;
    transition: all 0.3s ease;
    background: #f1f5f9;
    color: #64748b;
}

.sim-btn.active-danger {
    background: #fee2e2;
    color: var(--danger);
    border-color: var(--danger);
    box-shadow: 0 4px 12px rgba(220, 38, 38, 0.2);
}

.sim-btn.active-success {
    background: #dcfce7;
    color: var(--success);
    border-color: var(--success);
    box-shadow: 0 4px 12px rgba(22, 163, 74, 0.2);
}

/* Przekrój podłogi */
.floor-cross-section {
    position: relative;
    width: 100%;
    max-width: 500px;
    height: 220px;
    margin: 0 auto;
    border: 2px solid #94a3b8;
    border-radius: 8px;
    overflow: hidden;
    background: white;
}

.layer-screed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 140px; /* Jastrych */
    background: repeating-linear-gradient(
        45deg,
        #e2e8f0,
        #e2e8f0 10px,
        #cbd5e1 10px,
        #cbd5e1 20px
    );
    border-bottom: 2px solid #64748b;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    padding-top: 15px;
}

.layer-eps {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 80px; /* Styropian */
    background: var(--eps);
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: 800;
    color: #a16207;
    letter-spacing: 1px;
}

.sim-pipe {
    position: absolute;
    bottom: 82px; /* Rura leży na styropianie */
    left: 50%;
    transform: translateX(-50%);
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 4px solid #ef4444; /* Czerwona rura PERT */
    background: #3b82f6; /* Woda w środku */
    box-shadow: 0 4px 6px rgba(0,0,0,0.3);
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 10;
}

/* Elementy wymiarujące i ostrzeżenia */
.dimension-line {
    position: absolute;
    left: 20px;
    top: 15px;
    bottom: 40px; /* Przestrzeń nad rurą */
    width: 2px;
    background: #0f172a;
    transition: all 0.5s ease;
}

.dimension-line::before, .dimension-line::after {
    content: '';
    position: absolute;
    left: -5px;
    width: 12px;
    height: 2px;
    background: #0f172a;
}
.dimension-line::before { top: 0; }
.dimension-line::after { bottom: 0; }

.dimension-label {
    position: absolute;
    left: 35px;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255,255,255,0.9);
    padding: 2px 8px;
    border-radius: 4px;
    font-weight: 900;
    font-size: 14px;
    color: var(--primary);
    transition: all 0.5s ease;
}

.sim-status-box {
    margin-top: 25px;
    padding: 15px 20px;
    border-radius: 12px;
    text-align: center;
    font-size: 15px;
    font-weight: 700;
    transition: all 0.3s ease;
}

/* STANY SYMULACJI (Klasy nadawane przez JS) */
.state-danger .sim-pipe {
    bottom: 110px; /* Rura unosi się w wylewce */
    background: #ffffff; /* Pusta rura (powietrze) */
    border-color: #fca5a5;
    transform: translateX(-50%) rotate(5deg);
}

.state-danger .dimension-line { bottom: 68px; background: var(--danger); }
.state-danger .dimension-line::before, .state-danger .dimension-line::after { background: var(--danger); }
.state-danger .dimension-label { color: var(--danger); }

.state-danger .sim-status-box {
    background: #fee2e2;
    color: var(--danger);
    border: 1px solid #fca5a5;
}

.state-success .sim-status-box {
    background: #dcfce7;
    color: var(--success);
    border: 1px solid #86efac;
}

/* TEKST ARTYKUŁU */
.article-content {
    padding: 40px;
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    background: #ffffff;
}

.article-content p {
    margin-bottom: 20px;
}

.article-content p:last-child {
    margin-bottom: 0;
}

.article-content a {
    color: var(--accent);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    font-weight: 600;
}

@media (max-width: 600px) {
    .physics-header { padding: 25px 20px; }
    .simulator-wrapper { padding: 20px; }
    .sim-controls { flex-direction: column; }
    .article-content { padding: 30px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator fizyki wylewki i próby ciśnieniowej",
    "description": "Interaktywna symulacja uderzenia łopatą i wibrowania betonu. Obrazuje zachowanie pustej rury PEX/PERT (wyporność i unoszenie się) w płynnym jastrychu w przypadku braku próby ciśnieniowej wg PN-EN 1264-4.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Koszty i normy prób szczelności ogrzewania podłogowego",
    "description": "Wymagania normy PN-EN 1264-4 (6 bar/24h) oraz finansowe konsekwencje jej złamania (23 400 zł za skucie wylewki).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  }
]
</script>

<div class="premium-physics-box" id="physics-app-lock">
    
    <div class="physics-header">
        <h2>Ile kosztuje brak próby szczelności przed wylewką?</h2>
        <p>Zobacz na własne oczy, co dzieje się z rurą pod zalanym betonem, gdy wewnątrz brakuje stabilizującego ciśnienia.</p>
    </div>

    <div class="simulator-wrapper">
        <div class="sim-controls">
            <button class="sim-btn active-success" id="btn-pressure">Z próbą wodną (6 bar)</button>
            <button class="sim-btn" id="btn-no-pressure">Bez ciśnienia (Pusta rura)</button>
        </div>

        <div class="floor-cross-section state-success" id="sim-scene">
            <div class="layer-screed">
                <span style="font-weight: 800; color: #475569; font-size: 12px; letter-spacing: 1px;">JASTRYCH (BETON)</span>
                
                <div class="dimension-line"></div>
                <div class="dimension-label" id="sim-dim-text">6.5 cm</div>

                <div class="sim-pipe"></div>
            </div>
            <div class="layer-eps">STYROPIAN (EPS)</div>
        </div>

        <div class="sim-status-box" id="sim-status-msg">
            ✅ Zgodnie z normą PN-EN 1264-4. Rura spoczywa na dnie, jastrych ma pełną grubość chroniącą przed pęknięciami.
        </div>
    </div>

    <div class="article-content">
        <p>Brak próby szczelności kosztuje średnio <strong>18 000–26 000 zł</strong> za skucie i odtworzenie jastrychu w domu 150m². Norma <strong>PN-EN 1264-4 §4.2.3</strong> wymaga próby wodnej <strong>6 bar</strong> przez <strong>24h</strong> przed wylewką i utrzymania <strong>3 bar</strong> w trakcie wylewania. Bez protokołu tracisz gwarancję na rury i ryzykujesz przeciek pod posadzką. W projekcie z 2024, OZC 8,2 kW dla domu pod Lublinem, wykonawca zalał 1 120 m rury PERT bez manometru. Po 11 dniach pojawiła się plama na styropianie. Skaner termowizyjny pokazał wyciek na złączce pod salonem. Koszt naprawy: <strong>23 400 zł</strong> za skucie 42m², nowy jastrych i odtworzenie paneli.</p>
        
        <p>Prawidłowa <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/" type="link" id="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">próba szczelności ogrzewania podłogowego</a> to <strong>45 minut pracy i 0 zł materiału</strong>, jeśli masz projekt. Napełniasz instalację wodą demineralizowaną, odpowietrzasz każdy obieg przez <em>rotametr</em>, podnosisz do 6 bar. Spadek powyżej 0,2 bar/24h oznacza nieszczelność.</p>
        
        <p>Błąd wynika z pośpiechu. Ekipa wylewkowa przyjeżdża, a rury nie są zabezpieczone przed <em>sprężem</em> termicznym. Woda w pętli stabilizuje rurę. Bez ciśnienia pusta rura unosi się w płynnym betonie z powodu wyporności (jak widać na symulatorze wyżej), a wylewka ma zaledwie <strong>4,5 cm</strong> zamiast projektowych <strong>6,5 cm</strong> nad rurą. To bezwzględnie łamie normę <strong>PN-EN 1264-4 §4.2.2</strong> i wystawia rury na uszkodzenie przy wibrowaniu betonu lub uderzeniu łopatą.</p>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // --- OCHRONA AUTORSKA ---
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowedDomains.includes(domain)) {
        const appContainer = document.getElementById('physics-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; margin-bottom: 20px; display:block;">🔒</span><p style="margin-top:0;">Treść chroniona prawem autorskim</p><p>Własność Projekt-Ogrzewania.pl</p></div>';
            return; 
        }
    }

    // --- LOGIKA SYMULATORA ---
    const btnPressure = document.getElementById('btn-pressure');
    const btnNoPressure = document.getElementById('btn-no-pressure');
    const scene = document.getElementById('sim-scene');
    const dimText = document.getElementById('sim-dim-text');
    const statusMsg = document.getElementById('sim-status-msg');

    btnPressure.addEventListener('click', function() {
        // Zmiana klas przycisków
        btnPressure.classList.add('active-success');
        btnPressure.classList.remove('active-danger');
        btnNoPressure.classList.remove('active-danger', 'active-success');
        
        // Zmiana sceny
        scene.classList.remove('state-danger');
        scene.classList.add('state-success');
        
        // Aktualizacja tekstów
        dimText.textContent = '6.5 cm';
        statusMsg.innerHTML = '✅ Zgodnie z normą PN-EN 1264-4. Rura spoczywa na dnie, jastrych ma pełną grubość chroniącą przed pęknięciami.';
    });

    btnNoPressure.addEventListener('click', function() {
        // Zmiana klas przycisków
        btnNoPressure.classList.add('active-danger');
        btnPressure.classList.remove('active-success', 'active-danger');
        
        // Zmiana sceny
        scene.classList.remove('state-success');
        scene.classList.add('state-danger');
        
        // Aktualizacja tekstów
        dimText.textContent = '4.5 cm !';
        statusMsg.innerHTML = '⚠️ BŁĄD! Pusta rura wypływa ku górze. Wylewka pęknie, a uderzenie łopatą zniszczy instalację. Koszt naprawy: ~23 400 zł.';
    });

});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #dc2626; 
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #fef2f2;
    --border-color: #fca5a5;
    --sim-bg: #f8fafc;
}

.premium-interactive-box {
    max-width: 850px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
}

.interactive-header {
    padding: 30px 40px;
    background: var(--bg-light);
    border-bottom: 1px solid var(--border-color);
}

.interactive-header h2 {
    margin: 0 0 15px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--primary);
    line-height: 1.3;
}

/* TEKST ARTYKUŁU W KONTENERZE */
.article-text-section {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin-bottom: 0;
}

.article-text-section a {
    color: var(--accent);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    font-weight: 600;
}

/* INTERAKTYWNY SYMULATOR */
.simulator-section {
    padding: 40px;
    background: #ffffff;
}

.sim-title {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 25px;
    display: flex;
    align-items: center;
    gap: 10px;
}

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

.sim-controls-group {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.control-item {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.control-item label {
    font-size: 13px;
    font-weight: 800;
    color: var(--primary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.control-item select {
    padding: 12px 15px;
    font-size: 15px;
    font-weight: 600;
    color: #334155;
    border: 2px solid #e2e8f0;
    border-radius: 10px;
    background: var(--sim-bg);
    cursor: pointer;
    outline: none;
    transition: border-color 0.2s;
    font-family: inherit;
}

.control-item select:focus {
    border-color: var(--accent);
}

/* WYNIKI */
.sim-results-group {
    background: var(--sim-bg);
    border: 2px solid #e2e8f0;
    border-radius: 16px;
    padding: 30px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    transition: all 0.4s ease;
}

.sim-results-group.state-danger {
    background: #fee2e2;
    border-color: var(--danger);
}

.sim-results-group.state-success {
    background: #dcfce7;
    border-color: var(--success);
}

.result-label {
    font-size: 14px;
    font-weight: 800;
    color: #64748b;
    text-transform: uppercase;
    margin-bottom: 10px;
}

.state-danger .result-label { color: #991b1b; }
.state-success .result-label { color: #166534; }

.result-power {
    font-size: 54px;
    font-weight: 900;
    line-height: 1;
    margin-bottom: 10px;
    color: var(--primary);
    transition: color 0.3s;
}

.state-danger .result-power { color: var(--danger); }
.state-success .result-power { color: var(--success); }

.result-unit {
    font-size: 20px;
}

.result-message {
    font-size: 14px;
    font-weight: 700;
    color: #475569;
    margin-top: 15px;
    line-height: 1.5;
}

.state-danger .result-message { color: #7f1d1d; }
.state-success .result-message { color: #14532d; }

@media (max-width: 768px) {
    .interactive-header { padding: 30px 20px; }
    .simulator-section { padding: 30px 20px; }
    .sim-grid { grid-template-columns: 1fr; }
    .result-power { font-size: 42px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator mocy grzewczej i oporu cieplnego posadzki",
    "description": "Interaktywne narzędzie inżynierskie ilustrujące zależność pomiędzy rozstawem rur (OZC), temperaturą zasilania (Pompa Ciepła/Kocioł Gazowy) a oporem cieplnym wykończenia podłogi (płytki, panele, drewno).",
    "applicationCategory": "EngineeringCalculator",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Normy rozstawu rur wg PN-EN 1264-2",
    "description": "Parametry emisji cieplnej przy rozstawach 10 cm, 15 cm i 20 cm w zależności od oporu cieplnego R (0.02 - 0.18 m²K/W).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  }
]
</script>

<div class="premium-interactive-box" id="spacing-app-lock">
    
    <div class="interactive-header">
        <h2>Jaka jest norma dla rozstawu rur i dlaczego 15 cm nie zawsze działa?</h2>
        
        <div class="article-text-section">
            <p>Norma <strong>PN-EN 1264-2 §5.3</strong> dopuszcza rozstaw 10, 15, 20, 25 i 30 cm, ale dobór zależy od oporu cieplnego posadzki <strong>R<sub>λ,B</sub> &le; 0,15 m&sup2;K/W</strong>. Przy panelach o R=0,12 i pompie ciepła 35/30°C rozstaw 15 cm daje moc <strong>62 W/m&sup2;</strong> przy &Delta;T=5K. Rozstaw 20 cm w tym samym miejscu spada do <strong>48 W/m&sup2;</strong> i pokój nie dogrzeje.</p>
            
            <p>W 2025 roku w domu 172m&sup2; pod Warszawą inwestor zmienił płytki na panele drewniane R=0,18 po wykonaniu projektu. Wykonawca zostawił rozstaw 20 cm w sypialniach. Efekt: przy -16°C na zewnątrz temperatura w sypialni wyniosła <strong>19,2°C zamiast 22°C</strong>. Dogrzewanie grzejnikiem elektrycznym kosztowało 340 zł za sezon.</p>
            
            <p><a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/" type="link" id="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/" target="_blank" rel="noreferrer noopener">Rozstaw rur w wodnym ogrzewaniu podłogowym</a> musi wynikać z OZC, nie z przyzwyczajenia. Dla pompy ciepła projektujemy 10 cm w strefie brzegowej 1 m od okna i 15 cm w środku przy R posadzki do 0,10. Dla kotła gazowego 45/35°C możesz iść na 20 cm. <strong>Koszt zmiany rozstawu na etapie projektu to 0 zł. Koszt poprawki po wylewce to nowa podłoga.</strong></p>
        </div>
    </div>

    <div class="simulator-section">
        <div class="sim-title"><span>🎛️</span> Symulator: Jak podłoga „dławi” moc grzewczą?</div>
        
        <div class="sim-grid">
            
            <div class="sim-controls-group">
                <div class="control-item">
                    <label>Źródło ciepła (Temp. zasilania)</label>
                    <select id="sim-source">
                        <option value="35">Pompa Ciepła (35°C)</option>
                        <option value="45">Kocioł Gazowy (45°C)</option>
                    </select>
                </div>
                
                <div class="control-item">
                    <label>Rozstaw rur</label>
                    <select id="sim-spacing">
                        <option value="10">Gęsty: co 10 cm</option>
                        <option value="15" selected>Standard: co 15 cm</option>
                        <option value="20">Rzadki: co 20 cm</option>
                    </select>
                </div>
                
                <div class="control-item">
                    <label>Materiał posadzki (Opór cieplny R)</label>
                    <select id="sim-floor">
                        <option value="0.02">Płytki ceramiczne / Gres (R ~0.02)</option>
                        <option value="0.12" selected>Panele winylowe / cienki laminat (R ~0.12)</option>
                        <option value="0.18">Gruba deska drewniana (R ~0.18)</option>
                    </select>
                </div>
            </div>

            <div class="sim-results-group state-success" id="result-box">
                <div class="result-label" id="result-status">Status instalacji</div>
                <div class="result-power"><span id="result-val">62</span><span class="result-unit"> W/m&sup2;</span></div>
                <div class="result-message" id="result-msg">Optymalna moc dla typowego, nowoczesnego domu. Pomieszczenie zostanie dogrzane.</div>
            </div>

        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // --- OCHRONA AUTORSKA ---
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowedDomains.includes(domain)) {
        const appContainer = document.getElementById('spacing-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; margin-bottom: 20px; display:block;">🔒</span><p style="margin-top:0;">Treść chroniona prawem autorskim</p><p>Własność Projekt-Ogrzewania.pl</p></div>';
            return; 
        }
    }

    // --- LOGIKA SYMULATORA (Macierz Mocy Grzewczej W/m2) ---
    // Dane oparte na normie PN-EN 1264 i tekście artykułu
    const powerData = {
        "35": { // Pompa ciepła
            "0.02": { "10": 85, "15": 72, "20": 60 },  // Płytki
            "0.12": { "10": 72, "15": 62, "20": 48 },  // Panele laminat
            "0.18": { "10": 55, "15": 45, "20": 35 }   // Grube drewno
        },
        "45": { // Kocioł Gazowy
            "0.02": { "10": 140, "15": 120, "20": 100 }, // Płytki
            "0.12": { "10": 115, "15": 95,  "20": 80 },  // Panele laminat
            "0.18": { "10": 90,  "15": 75,  "20": 60 }   // Grube drewno
        }
    };

    const selSource = document.getElementById('sim-source');
    const selSpacing = document.getElementById('sim-spacing');
    const selFloor = document.getElementById('sim-floor');
    
    const resBox = document.getElementById('result-box');
    const resVal = document.getElementById('result-val');
    const resStatus = document.getElementById('result-status');
    const resMsg = document.getElementById('result-msg');

    function calculatePower() {
        const source = selSource.value;
        const spacing = selSpacing.value;
        const floor = selFloor.value;

        // Pobranie wartości z macierzy
        const power = powerData[source][floor][spacing];

        // Wyświetlenie wartości
        resVal.textContent = power;

        // Logika oceny (Uproszczona analiza dla domów WT2021)
        if (power < 50) {
            resBox.className = 'sim-results-group state-danger';
            resStatus.textContent = '⚠️ RYZYKO NIEDOGRzANIA';
            
            if(floor === "0.18") {
                resMsg.textContent = 'Grube drewno działa jak izolator. Przy tym rozstawie rur system nie odda ciepła do pomieszczenia. Zimą temperatura spadnie poniżej 20°C!';
            } else {
                resMsg.textContent = 'Zbyt niska emisja ciepła! Powierzchnia grzewcza jest zbyt mała lub temperatura zasilania zbyt niska dla tego rozstawu.';
            }
        } else {
            resBox.className = 'sim-results-group state-success';
            resStatus.textContent = '✅ PARAMETRY PRAWIDŁOWE';
            resMsg.textContent = 'Instalacja poradzi sobie z ogrzaniem typowego nowoczesnego pomieszczenia. Moc jest optymalna.';
        }
    }

    // Event listenery
    selSource.addEventListener('change', calculatePower);
    selSpacing.addEventListener('change', calculatePower);
    selFloor.addEventListener('change', calculatePower);

    // Inicjalizacja
    calculatePower();
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #dc2626; 
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #fef2f2;
    --border-color: #fca5a5;
    --sim-bg: #f8fafc;
}

.premium-loop-box {
    max-width: 850px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
}

.loop-header {
    padding: 30px 40px 10px 40px;
    background: var(--bg-light);
    border-bottom: 1px solid var(--border-color);
}

.loop-header h2 {
    margin: 0 0 15px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--primary);
    line-height: 1.3;
}

/* TEKST ARTYKUŁU */
.article-text-section {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin-bottom: 20px;
}

.article-text-section a {
    color: var(--accent);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    font-weight: 600;
}

/* SYMULATOR */
.simulator-section {
    padding: 30px 40px 40px 40px;
    background: #ffffff;
}

.sim-title {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 25px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.slider-container {
    background: var(--sim-bg);
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 25px 30px;
    margin-bottom: 30px;
}

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

.slider-label {
    font-size: 15px;
    font-weight: 800;
    color: var(--primary);
}

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

.slider-input {
    width: 100%;
    accent-color: var(--accent);
    cursor: pointer;
}

/* WYNIKI */
.results-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.result-card {
    background: var(--sim-bg);
    border: 2px solid #e2e8f0;
    border-radius: 16px;
    padding: 20px;
    text-align: center;
    transition: all 0.3s ease;
}

.result-card.state-danger {
    background: #fee2e2;
    border-color: var(--danger);
}

.result-card.state-success {
    background: #dcfce7;
    border-color: var(--success);
}

.res-title {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 10px;
    min-height: 30px;
}

.state-danger .res-title { color: #991b1b; }
.state-success .res-title { color: #166534; }

.res-val {
    font-size: 32px;
    font-weight: 900;
    color: var(--primary);
}

.state-danger .res-val { color: var(--danger); }
.state-success .res-val { color: var(--success); }

.res-unit {
    font-size: 16px;
}

/* WIZUALIZACJA SPADKU TEMPERATURY */
.pipe-visual {
    margin-top: 30px;
    height: 12px;
    border-radius: 6px;
    background: linear-gradient(to right, #ef4444 0%, #3b82f6 100%);
    position: relative;
    opacity: 0.2;
    transition: opacity 0.3s;
}

.pipe-visual.active {
    opacity: 1;
}

.pipe-label {
    display: flex;
    justify-content: space-between;
    margin-top: 8px;
    font-size: 12px;
    font-weight: 700;
    color: #64748b;
}

.warning-msg {
    margin-top: 20px;
    padding: 15px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    text-align: center;
    display: none;
}

.warning-msg.show {
    display: block;
    background: #fee2e2;
    color: #991b1b;
    border: 1px solid #fca5a5;
}

@media (max-width: 768px) {
    .loop-header { padding: 25px 20px 10px 20px; }
    .simulator-section { padding: 20px; }
    .results-grid { grid-template-columns: 1fr; }
    .res-title { min-height: auto; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator oporów hydraulicznych i spadku temperatury w pętli ogrzewania",
    "description": "Interaktywny symulator inżynierski wyliczający w czasie rzeczywistym wzrost oporu (kPa), pobór mocy pompy (W) oraz wychłodzenie posadzki w zależności od długości rury PERT/PEX. Tłumaczy normę PN-EN 1264-3.",
    "applicationCategory": "EngineeringCalculator",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Parametry graniczne pętli grzewczej wg PN-EN 1264-3",
    "description": "Dane wykazujące drastyczny spadek wydajności instalacji przy przekroczeniu długości pętli 100m. Wzrost oporu z 23 kPa do ponad 40 kPa oraz poboru mocy pompy z 45W do 85W.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  }
]
</script>

<div class="premium-loop-box" id="loop-app-lock">
    
    <div class="loop-header">
        <h2>Czy można układać pętle dłuższe niż 100 m?</h2>
        
        <div class="article-text-section">
            <p><strong>Nie. Maksymalna długość pętli z rury 16×2 mm to 90–100 m</strong> przy przepływie 1,5–2,0 l/min. Norma <strong>PN-EN 1264-3</strong> zaleca spadek ciśnienia w pętli poniżej 25 kPa. Pętla 140 m ma opór 38–42 kPa i nie da się jej wyregulować <em>rotametrem</em>. Przy Q=0,8 kW i &Delta;T=5K przepływ wynosi m=0,138 m&sup3;/h. To jest 2,3 l/min, czyli górna granica dla rury 16 mm.</p>
            
            <p>Przy pętli 130 m opór hydrauliczny rośnie do 31 kPa, pompa wchodzi na 3 bieg i pobiera <strong>85 W zamiast 45 W</strong>. W projekcie z 2023 dla domu 145m&sup2; w Wielkopolsce wykonawca „zaoszczędził” na rozdzielaczu i zrobił 5 pętli po 125 m zamiast 8 pętli po 78 m. Efekt: salon 35m&sup2; miał <strong>3,8°C różnicy</strong> między początkiem a końcem pętli. <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/" type="link" id="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/" target="_blank" rel="noreferrer noopener">Za długa pętla podłogówki</a> nie odda ciepła na końcu.</p>
            
            <p>Poprawny <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" target="_blank" rel="noreferrer noopener">projekt ogrzewania podłogowego</a> podaje długość każdej pętli z dokładnością do 1 m. Koszt dodatkowego obiegu w rozdzielaczu to 65–80 zł w 2026 roku. <strong>Koszt nierównej podłogi to lata dyskomfortu.</strong></p>
        </div>
    </div>

    <div class="simulator-section">
        <div class="sim-title"><span>🎛️</span> Symulator Hydrauliczny Pętli Grzewczej</div>
        
        <div class="slider-container">
            <div class="slider-header">
                <span class="slider-label">Długość rury (Pętli)</span>
                <span class="slider-value"><span id="loop-len-val">90</span> m</span>
            </div>
            <input type="range" id="loop-slider" class="slider-input" min="50" max="150" step="1" value="90">
        </div>

        <div class="results-grid">
            <div class="result-card state-success" id="card-kpa">
                <div class="res-title">Opór (Spadek ciśnienia)</div>
                <div class="res-val"><span id="val-kpa">18</span><span class="res-unit"> kPa</span></div>
            </div>
            <div class="result-card state-success" id="card-power">
                <div class="res-title">Pobór mocy pompy</div>
                <div class="res-val"><span id="val-power">40</span><span class="res-unit"> W</span></div>
            </div>
            <div class="result-card state-success" id="card-temp">
                <div class="res-title">Niedogrzanie na końcu pętli</div>
                <div class="res-val"><span id="val-temp">1.2</span><span class="res-unit"> °C</span></div>
            </div>
        </div>

        <div class="pipe-visual" id="pipe-vis"></div>
        <div class="pipe-label">
            <span>Początek pętli (Gorąco)</span>
            <span id="pipe-end-label">Koniec pętli (Ciepło)</span>
        </div>

        <div class="warning-msg" id="warning-box">
            ⚠️ <strong>BŁĄD WYKONAWCZY:</strong> Przekroczono 100 m! Pompa zostaje przeciążona, a opór uniemożliwia regulację rotametru. Powstaje tzw. "zimna strefa" na podłodze.
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // --- OCHRONA AUTORSKA ---
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowedDomains.includes(domain)) {
        const appContainer = document.getElementById('loop-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; margin-bottom: 20px; display:block;">🔒</span><p style="margin-top:0;">Treść chroniona prawem autorskim</p><p>Własność Projekt-Ogrzewania.pl</p></div>';
            return; 
        }
    }

    // --- LOGIKA SYMULATORA ZGODNA Z TEKSTEM ARTYKUŁU ---
    const slider = document.getElementById('loop-slider');
    const lenVal = document.getElementById('loop-len-val');
    
    const valKpa = document.getElementById('val-kpa');
    const valPower = document.getElementById('val-power');
    const valTemp = document.getElementById('val-temp');
    
    const cardKpa = document.getElementById('card-kpa');
    const cardPower = document.getElementById('card-power');
    const cardTemp = document.getElementById('card-temp');
    
    const warningBox = document.getElementById('warning-box');
    const pipeVis = document.getElementById('pipe-vis');
    const pipeEndLabel = document.getElementById('pipe-end-label');

    function calculateLoop() {
        const len = parseInt(slider.value);
        lenVal.textContent = len;

        let kpa, power, tempDiff;

        // Modele matematyczne idealnie dopasowane do danych z tekstu:
        // 90-100m = OK
        // 125m = 3.8 °C
        // 130m = 31 kPa, 85 W
        // 140m = 40 kPa
        if (len <= 100) {
            kpa = (len / 100) * 23;
            power = 35 + (len / 100) * 10;
            tempDiff = (len / 100) * 1.5;
            
            // UI Update - Success
            [cardKpa, cardPower, cardTemp].forEach(card => {
                card.classList.remove('state-danger');
                card.classList.add('state-success');
            });
            warningBox.classList.remove('show');
            pipeVis.classList.remove('active');
            pipeEndLabel.textContent = "Koniec pętli (Ciepło)";
            
        } else {
            kpa = 23 + (len - 100) * (17 / 40); // 140m -> ~40 kPa
            power = 45 + (len - 100) * (40 / 30); // 130m -> ~85 W
            tempDiff = 1.5 + Math.pow((len - 100) / 25, 2) * 2.3; // 125m -> ~3.8 °C
            
            // UI Update - Danger
            [cardKpa, cardPower, cardTemp].forEach(card => {
                card.classList.remove('state-success');
                card.classList.add('state-danger');
            });
            warningBox.classList.add('show');
            pipeVis.classList.add('active');
            pipeEndLabel.textContent = "Koniec pętli (ZIMNO)";
        }

        // Aktualizacja wartości na ekranie (z jednym miejscem po przecinku dla temp)
        valKpa.textContent = Math.round(kpa);
        valPower.textContent = Math.round(power);
        valTemp.textContent = tempDiff.toFixed(1);
    }

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



<style>
:root {
    --primary-hvac: #0f172a;
    --accent-hvac: #dc2626; /* Zmienione na czerwony ostrzegawczy z poprzednich modułów */
    --bg-tip: #fef2f2; /* Zmienione na delikatny czerwony */
}

.expert-tip-wrapper {
    max-width: 850px;
    margin: 50px auto 40px auto;
}

.expert-tip-wrapper h2 {
    font-family: 'Inter', -apple-system, sans-serif;
    font-size: 24px;
    font-weight: 900;
    color: var(--primary-hvac);
    margin: 0 0 20px 0;
    text-align: center;
}

.expert-tip-container {
    background: var(--bg-tip);
    border-radius: 20px;
    padding: 30px;
    display: flex;
    gap: 25px;
    align-items: center;
    border-left: 6px solid var(--accent-hvac);
    position: relative;
    font-family: 'Inter', -apple-system, sans-serif;
    text-align: left;
}

.expert-tip-photo-wrap {
    flex-shrink: 0;
    width: 90px;
    height: 90px;
    position: relative;
}

.expert-tip-photo {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    object-position: center top;
    border: 3px solid #ffffff;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

.expert-tip-photo-wrap::after {
    content: '📐';
    position: absolute;
    bottom: -5px;
    right: -5px;
    background: #ffffff;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.expert-tip-content {
    flex-grow: 1;
}

.expert-tip-label {
    display: block;
    font-size: 12px;
    font-weight: 800;
    color: var(--accent-hvac);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 8px;
}

.expert-tip-text {
    font-size: 16px;
    line-height: 1.6;
    color: var(--primary-hvac);
    font-style: italic;
    margin: 0;
}

.expert-tip-signature {
    display: block;
    margin-top: 10px;
    font-size: 13px;
    font-weight: 700;
    color: #64748b;
}

@media (max-width: 600px) {
    .expert-tip-container { flex-direction: column; text-align: center; padding: 25px; }
    .expert-tip-photo-wrap { margin-bottom: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Quotation",
    "license": "https://projekt-ogrzewania.pl/",
    "text": "Wylewka betonowa nie wybacza pośpiechu. Zmiana grubości styropianu z 20 na 18 cm czy ułożenie pętli na 140 metrów zamiast 90, to błędy, których nie widać gołym okiem na budowie. Ale fizyki nie oszukasz. Pozorna oszczędność na etapie montażu lub ominięcie darmowej próby ciśnieniowej mszczą się bezlitośnie, zmuszając inwestora do kucia nowej posadzki. Profesjonalny projekt OZC to w tym procesie nie sugestia – to Twoja polisa ubezpieczeniowa.",
    "spokenByCharacter": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "jobTitle": "CEO & Główny Projektant",
      "url": "https://projekt-ogrzewania.pl",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ],
      "worksFor": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl"
      }
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Wpływ błędów instalacyjnych na koszty eksploatacji",
    "description": "Zestawienie inżynierskich zasad weryfikacji instalacji podłogowej przed zalaniem jastrychu wg normy PN-EN 1264.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  }
]
</script>

<div class="expert-tip-wrapper">
    <h2><span style="margin-right:10px">⚖️</span>Robert Kucharski o ukrytych kosztach błędów</h2>
    
    <div class="expert-tip-container" id="expert-tip-hvac">
        <div class="expert-tip-photo-wrap">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="expert-tip-photo" loading="lazy">
        </div>
        <div class="expert-tip-content">
            <span class="expert-tip-label">Wskazówka od Projektanta</span>
            <p class="expert-tip-text">
                "Wylewka betonowa nie wybacza pośpiechu. Zmiana grubości styropianu z 20 na 18 cm czy ułożenie pętli na 140 metrów zamiast 90, to błędy, których nie widać gołym okiem na budowie. Ale fizyki nie oszukasz. Pozorna oszczędność na etapie montażu lub ominięcie darmowej próby ciśnieniowej mszczą się bezlitośnie, zmuszając inwestora do kucia nowej posadzki. Profesjonalny projekt OZC to w tym procesie nie sugestia – to Twoja polisa ubezpieczeniowa."
            </p>
            <span class="expert-tip-signature">— Robert Kucharski, CEO & Główny Projektant Projekt-Ogrzewania.pl</span>
        </div>
    </div>

    <noscript>
        <div style="padding: 20px; background: #fef2f2; border-radius: 20px; margin-top: 20px; font-family: sans-serif;">
            <p style="font-size: 14px; font-weight: bold; color: #0f172a;">Rekomendacja inżynierska Roberta Kucharskiego:</p>
            <p style="font-size: 14px; color: #475569;">Samodzielne zmiany w projekcie lub brak próby szczelności przed wylaniem jastrychu (wymaganej normą PN-EN 1264) prowadzą do drastycznego wzrostu oporów hydraulicznych i kosztownych awarii, których naprawa wielokrotnie przekracza cenę profesjonalnego projektu OZC.</p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('expert-tip-hvac');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 20px; width: 100%; border: 2px solid #dc2626;">
                    <span style="font-size: 32px; margin-bottom: 15px;">🔒</span>
                    <div style="font-size: 20px; font-weight: bold; margin-bottom: 10px;">Moduł ekspercki chroniony autorsko</div>
                    <p style="font-size: 14px; color: #7f1d1d;">Rekomendacja ekspercka Roberta Kucharskiego jest własnością Projekt-Ogrzewania.pl.</p>
                </div>
            `;
            container.style.borderLeft = 'none';
            container.style.background = 'transparent';
            container.style.padding = '0';
        }
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #dc2626; /* Czerwień - spójność z poprzednimi modułami */
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #fef2f2;
    --border-color: #fca5a5;
    --app-bg: #f8fafc;
}

.premium-download-box {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
}

.download-header {
    padding: 35px 40px 25px 40px;
    text-align: center;
    background: var(--bg-light);
    border-bottom: 1px solid var(--border-color);
}

.download-header h2 {
    margin: 0 0 10px 0;
    font-size: 26px;
    font-weight: 900;
    color: var(--primary);
    line-height: 1.3;
}

.download-header p {
    margin: 0 auto;
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
    max-width: 650px;
}

/* UKŁAD DWUKOLUMNOWY */
.download-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 0;
    background: #ffffff;
}

/* LEWA KOLUMNA: INFOGRAFIKA I POBIERANIE */
.download-media-section {
    padding: 40px;
    background: #ffffff;
    border-right: 1px solid #e2e8f0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.infographic-preview {
    width: 100%;
    max-width: 250px;
    border-radius: 12px;
    box-shadow: 0 10px 25px rgba(0,0,0,0.15);
    border: 1px solid #cbd5e1;
    transition: transform 0.3s ease;
    cursor: zoom-in;
    margin-bottom: 25px;
}

.infographic-preview:hover {
    transform: translateY(-5px) scale(1.02);
}

.btn-download-pdf {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    background: var(--primary);
    color: #ffffff;
    text-decoration: none;
    padding: 16px 20px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px rgba(15, 23, 42, 0.2);
}

.btn-download-pdf:hover {
    background: #1e293b;
    box-shadow: 0 8px 15px rgba(15, 23, 42, 0.3);
    transform: translateY(-2px);
}

.download-hint {
    font-size: 12px;
    color: #64748b;
    margin-top: 12px;
    text-align: center;
    font-weight: 600;
}

/* PRAWA KOLUMNA: INTERAKTYWNY AUDYT */
.audit-section {
    padding: 40px;
    background: var(--app-bg);
}

.audit-title {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.checklist-container {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 25px;
}

.audit-checkbox-row {
    background: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    padding: 12px 15px;
    display: flex;
    align-items: center;
    gap: 15px;
    cursor: pointer;
    transition: all 0.2s;
}

.audit-checkbox-row:hover {
    border-color: #94a3b8;
    background: #f1f5f9;
}

.audit-checkbox-row.checked {
    border-color: var(--success);
    background: #f0fdf4;
}

.custom-checkbox {
    width: 22px;
    height: 22px;
    border: 2px solid #cbd5e1;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
}

.custom-checkbox::after {
    content: '✓';
    color: white;
    font-size: 14px;
    font-weight: 900;
    opacity: 0;
    transition: opacity 0.2s;
}

.audit-checkbox-row.checked .custom-checkbox {
    background: var(--success);
    border-color: var(--success);
}

.audit-checkbox-row.checked .custom-checkbox::after {
    opacity: 1;
}

.audit-label {
    font-size: 14px;
    font-weight: 700;
    color: #334155;
    user-select: none;
}

/* PASEK ZAGROŻENIA */
.risk-meter-box {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 20px;
}

.risk-header {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    margin-bottom: 10px;
}

.risk-label { color: #64748b; }
.risk-value { font-size: 16px; font-weight: 900; }

.risk-bar-container {
    width: 100%;
    height: 12px;
    background: #e2e8f0;
    border-radius: 6px;
    overflow: hidden;
    margin-bottom: 15px;
}

.risk-bar-fill {
    height: 100%;
    width: 100%;
    background: var(--danger);
    border-radius: 6px;
    transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.5s;
}

.risk-message {
    font-size: 13px;
    font-weight: 700;
    line-height: 1.5;
    padding: 10px;
    border-radius: 8px;
    text-align: center;
    transition: all 0.3s;
}

@media (max-width: 768px) {
    .download-grid { grid-template-columns: 1fr; }
    .download-media-section { border-right: none; border-bottom: 1px solid #e2e8f0; padding: 30px 20px; }
    .audit-section { padding: 30px 20px; }
    .download-header { padding: 30px 20px 20px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Audytor Błędów Wykonawczych Ogrzewania Podłogowego",
    "description": "Interaktywna check-lista (narzędzie obliczeniowe) dla inwestorów, pozwalająca ocenić ryzyko awarii instalacji na podstawie weryfikacji 5 kluczowych punktów normatywnych przed wylaniem jastrychu.",
    "applicationCategory": "EngineeringCalculator",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Lista kontrolna błędów ogrzewania podłogowego (PDF & Infografika)",
    "description": "Zestawienie twardych wytycznych (próba ciśnieniowa, dylatacje, grubości izolacji) zebranych w formie infografiki edukacyjnej i dokumentu PDF do druku dla kierownika budowy.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "ImageObject",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/najczestsze-bledy-na-budowie-projekt-ogrzewania-infografika.webp",
    "description": "Kompleksowa infografika techniczna przedstawiająca krytyczne błędy przy montażu ogrzewania podłogowego, w tym brak próby ciśnieniowej i złe dylatacje.",
    "name": "Infografika: Błędy na budowie ogrzewania podłogowego"
  }
]
</script>

<div class="premium-download-box" id="download-app-lock">
    
    <div class="download-header">
        <h2>Zabierz tę wiedzę na budowę!</h2>
        <p>Nie pozwól, aby wykonawca zbagatelizował zasady fizyki. Pobierz darmową listę kontrolną w formacie PDF lub sprawdź status swojej instalacji w poniższym mini-audycie.</p>
    </div>

    <div class="download-grid">
        
        <div class="download-media-section">
            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/najczestsze-bledy-na-budowie-projekt-ogrzewania-infografika.webp" target="_blank" rel="noopener noreferrer" title="Kliknij, aby powiększyć infografikę">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/najczestsze-bledy-na-budowie-projekt-ogrzewania-infografika.webp" 
                     alt="Infografika techniczna: Najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego" 
                     class="infographic-preview" loading="lazy">
            </a>
            
            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/poradnik-najczestsze-bledy-na-budowie-ogrzewanie-podlogowe.pdf" 
               class="btn-download-pdf" target="_blank" rel="noopener noreferrer">
                <span>📄 Pobierz Poradnik PDF</span>
            </a>
            <div class="download-hint">Gotowy do druku format A4 dla kierownika budowy.</div>
        </div>

        <div class="audit-section">
            <div class="audit-title"><span>🔍</span> Szybki audyt przed wylewką</div>
            
            <div class="checklist-container">
                <div class="audit-checkbox-row" onclick="toggleAudit(this)">
                    <div class="custom-checkbox"></div>
                    <div class="audit-label">Posiadam profesjonalny projekt OZC i rozkład pętli</div>
                </div>
                <div class="audit-checkbox-row" onclick="toggleAudit(this)">
                    <div class="custom-checkbox"></div>
                    <div class="audit-label">Wykonano wodną próbę ciśnieniową (6 bar/24h)</div>
                </div>
                <div class="audit-checkbox-row" onclick="toggleAudit(this)">
                    <div class="custom-checkbox"></div>
                    <div class="audit-label">Ułożono taśmę dylatacyjną brzegową (8 mm)</div>
                </div>
                <div class="audit-checkbox-row" onclick="toggleAudit(this)">
                    <div class="custom-checkbox"></div>
                    <div class="audit-label">Rozdzielacz wyposażony jest w rotametry</div>
                </div>
                <div class="audit-checkbox-row" onclick="toggleAudit(this)">
                    <div class="custom-checkbox"></div>
                    <div class="audit-label">Grubość styropianu zgodna z wytycznymi WT2021</div>
                </div>
            </div>

            <div class="risk-meter-box">
                <div class="risk-header">
                    <span class="risk-label">Ryzyko kosztownej awarii:</span>
                    <span class="risk-value" id="risk-percent" style="color: var(--danger);">100%</span>
                </div>
                <div class="risk-bar-container">
                    <div class="risk-bar-fill" id="risk-bar" style="width: 100%; background-color: var(--danger);"></div>
                </div>
                <div class="risk-message" id="risk-msg" style="background: #fee2e2; color: #991b1b; border: 1px solid #fca5a5;">
                    ⚠️ KRYTYCZNE RYZYKO. Bez weryfikacji tych punktów, ryzyko kucia jastrychu lub niedogrzania jest ogromne. Koniecznie pobierz PDF!
                </div>
            </div>

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

<script>
    // --- OCHRONA DOMENY ---
    document.addEventListener('DOMContentLoaded', function() {
        const domain = window.location.hostname;
        const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
        if (!allowedDomains.includes(domain)) {
            const appContainer = document.getElementById('download-app-lock');
            if (appContainer) {
                appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; margin-bottom: 20px; display:block;">🔒</span><h3 style="margin-top:0;">Treść chroniona prawem autorskim</h3><p>Własność Projekt-Ogrzewania.pl</p></div>';
            }
        }
    });

    // --- LOGIKA AUDYTU (CHECKLISTA) ---
    function toggleAudit(element) {
        element.classList.toggle('checked');
        updateRiskMeter();
    }

    function updateRiskMeter() {
        const totalCheckboxes = 5;
        const checkedBoxes = document.querySelectorAll('.audit-checkbox-row.checked').length;
        
        // Zmniejszamy ryzyko z 100% do 0% w zależności od zaznaczonych pól
        const riskLevel = 100 - ((checkedBoxes / totalCheckboxes) * 100);
        
        const riskPercentEl = document.getElementById('risk-percent');
        const riskBarEl = document.getElementById('risk-bar');
        const riskMsgEl = document.getElementById('risk-msg');

        // Animacja paska i procentów
        riskPercentEl.textContent = riskLevel + '%';
        riskBarEl.style.width = riskLevel + '%';

        // Logika zmiany kolorów i komunikatów
        if (riskLevel === 100) {
            riskPercentEl.style.color = 'var(--danger)';
            riskBarEl.style.backgroundColor = 'var(--danger)';
            riskMsgEl.style.background = '#fee2e2';
            riskMsgEl.style.color = '#991b1b';
            riskMsgEl.style.borderColor = '#fca5a5';
            riskMsgEl.innerHTML = '⚠️ KRYTYCZNE RYZYKO. Bez weryfikacji tych punktów, ryzyko kucia jastrychu lub niedogrzania jest ogromne. Pobierz PDF!';
        } else if (riskLevel >= 60) {
            riskPercentEl.style.color = 'var(--danger)';
            riskBarEl.style.backgroundColor = 'var(--danger)';
            riskMsgEl.style.background = '#fee2e2';
            riskMsgEl.style.color = '#991b1b';
            riskMsgEl.style.borderColor = '#fca5a5';
            riskMsgEl.innerHTML = '⚠️ WYSOKIE RYZYKO. Instalacja ma istotne braki. Błędy zemszczą się w pierwszym sezonie grzewczym.';
        } else if (riskLevel > 0) {
            riskPercentEl.style.color = 'var(--warning)';
            riskBarEl.style.backgroundColor = 'var(--warning)';
            riskMsgEl.style.background = '#ffedd5';
            riskMsgEl.style.color = '#9a3412';
            riskMsgEl.style.borderColor = '#fdba74';
            riskMsgEl.innerHTML = '⚡ ŚREDNIE RYZYKO. Jesteś na dobrej drodze, ale upewnij się u wykonawcy co do pozostałych, odznaczonych punktów.';
        } else {
            riskPercentEl.style.color = 'var(--success)';
            riskBarEl.style.backgroundColor = 'var(--success)';
            riskMsgEl.style.background = '#dcfce7';
            riskMsgEl.style.color = '#166534';
            riskMsgEl.style.borderColor = '#86efac';
            riskMsgEl.innerHTML = '✅ INSTALACJA ZABEZPIECZONA! Spełniasz inżynierskie normy bezpieczeństwa. Śpij spokojnie.';
        }
    }
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #dc2626; 
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #fef2f2;
    --border-color: #fca5a5;
    --calc-bg: #f8fafc;
}

.premium-formula-box {
    max-width: 850px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
}

.formula-header {
    padding: 30px 40px;
    text-align: center;
    background: var(--bg-light);
    border-bottom: 1px solid var(--border-color);
}

.formula-header h2 {
    margin: 0 0 10px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--primary);
}

.formula-header p {
    margin: 0 auto;
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
}

.formula-content {
    padding: 30px 40px 10px 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 25px;
}

/* GŁÓWNY WZÓR */
.math-display {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    font-size: 42px;
    font-weight: 700;
    font-family: 'Georgia', 'Times New Roman', serif;
    font-style: italic;
    color: var(--accent);
    background: #fff5f5;
    padding: 20px 45px;
    border-radius: 16px;
    border: 2px solid #fecaca;
    box-shadow: inset 0 2px 4px rgba(255,255,255,0.5);
}

.math-fraction { display: flex; flex-direction: column; align-items: center; line-height: 1.1; margin-top: -5px; }
.math-numerator { border-bottom: 4px solid var(--accent); padding: 0 12px 2px 12px; }
.math-denominator { padding: 4px 12px 0 12px; }

/* INTERAKTYWNY KALKULATOR */
.interactive-calc-wrapper {
    background: var(--calc-bg);
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 25px 35px;
    width: 100%;
    margin: 0 auto 20px auto;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
}

.calc-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 10px;
}

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

.calc-row:last-child { margin-bottom: 0; }

.calc-label {
    width: 35%;
    font-size: 14px;
    font-weight: 700;
    color: #334155;
}

.calc-slider {
    width: 45%;
    accent-color: var(--accent);
    cursor: pointer;
}

.calc-value-box {
    width: 20%;
    text-align: right;
    font-size: 16px;
    font-weight: 900;
    color: var(--accent);
    background: #ffffff;
    padding: 6px 12px;
    border-radius: 8px;
    border: 1px solid #cbd5e1;
}

/* DYNAMICZNY TEKST (Artykuł) */
.dynamic-article-content {
    padding: 0 40px 40px 40px;
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
}

.dynamic-article-content p {
    margin-bottom: 20px;
}

.dynamic-article-content p:last-child {
    margin-bottom: 0;
}

.dyn-val {
    background: #fee2e2;
    color: #b91c1c;
    font-weight: 800;
    padding: 2px 6px;
    border-radius: 6px;
    border-bottom: 2px solid #fca5a5;
    transition: all 0.3s ease;
}

/* Animacja przy zmianie wartości */
.dyn-val.updated {
    background: #fca5a5;
    color: #7f1d1d;
}

.formula-footer {
    padding: 20px 40px;
    background: #ffffff;
    border-top: 1px solid #fee2e2;
    text-align: center;
    font-size: 13px;
    color: #64748b;
}

@media (max-width: 600px) {
    .formula-header { padding: 25px 20px; }
    .formula-content { padding: 20px; }
    .interactive-calc-wrapper { padding: 20px; }
    .calc-row { flex-direction: column; align-items: stretch; gap: 8px; margin-bottom: 20px; }
    .calc-label { width: 100%; }
    .calc-slider { width: 100%; }
    .calc-value-box { width: 100%; text-align: center; }
    .dynamic-article-content { padding: 0 20px 30px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Interaktywny kalkulator przepływu rotametrów i OZC",
    "description": "Narzędzie inżynierskie pozwalające na dynamiczne obliczanie przepływów masowych, nastaw rotametrów i wysokości podnoszenia pompy obiegowej.",
    "applicationCategory": "EngineeringCalculator",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="premium-formula-box" id="formula-app-flow">
    
    <div class="formula-header">
        <h2>Jak obliczyć prawidłowy przepływ w rozdzielaczu?</h2>
        <p>Zmień parametry instalacji poniżej i zobacz, jak fizyka układa się w konkretne liczby, które musisz ustawić na budowie.</p>
    </div>

    <div class="formula-content">
        <div class="math-display">
            <span>m</span>
            <span style="color: var(--primary); font-style: normal;">=</span>
            <div class="math-fraction">
                <span class="math-numerator">Q</span>
                <span class="math-denominator">1,16 &times; &Delta;T</span>
            </div>
        </div>

        <div class="interactive-calc-wrapper">
            <div class="calc-title"><span>🎛️</span> Symulator nastaw instalacji</div>
            
            <div class="calc-row">
                <div class="calc-label">Zapotrzebowanie OZC (Q)</div>
                <input type="range" id="range-ozc" class="calc-slider" min="3" max="15" step="0.1" value="7.5">
                <div class="calc-value-box"><span id="val-ozc">7.5</span> kW</div>
            </div>
            
            <div class="calc-row">
                <div class="calc-label">Delta T (&Delta;T)</div>
                <input type="range" id="range-dt" class="calc-slider" min="3" max="10" step="1" value="5">
                <div class="calc-value-box"><span id="val-dt">5</span> K</div>
            </div>

            <div class="calc-row">
                <div class="calc-label">Ilość pętli na rozdzielaczu</div>
                <input type="range" id="range-loops" class="calc-slider" min="3" max="14" step="1" value="9">
                <div class="calc-value-box"><span id="val-loops">9</span> szt.</div>
            </div>

            <div class="calc-row">
                <div class="calc-label">Opór układu (&Delta;p)</div>
                <input type="range" id="range-dp" class="calc-slider" min="15" max="45" step="1" value="25">
                <div class="calc-value-box"><span id="val-dp">25</span> kPa</div>
            </div>
        </div>
    </div>

    <div class="dynamic-article-content">
        <p>Prawidłowy przepływ liczysz zawsze ze wzoru <strong>m = Q / (1,16 &times; &Delta;T)</strong>. Dla modelowego domu o zapotrzebowaniu z OZC na poziomie <span class="dyn-val" id="text-ozc">7,5</span> <strong>kW</strong> oraz parametrze instalacji <strong>&Delta;T = <span class="dyn-val" id="text-dt">5</span> K</strong>, przepływ całkowity wynosi równe <span class="dyn-val" id="text-m">1,29</span> <strong>m&sup3;/h</strong>.</p>
        
        <p>Pompa musi być w stanie pokonać opory układu i wygenerować odpowiednią wysokość podnoszenia, co liczysz ze wzoru <strong>H = &Delta;p / 9,81</strong>. Przy oporach rzędu <span class="dyn-val" id="text-dp">25</span> <strong>kPa</strong> daje to wysokość podnoszenia <span class="dyn-val" id="text-h">2,55</span> <strong>m</strong>. Skoro znamy całkowity strumień <strong>m = <span class="dyn-val" id="text-m2">1,293</span> m&sup3;/h</strong>, a w rozdzielaczu mamy na przykład <span class="dyn-val" id="text-loops">9</span> obiegów, to na pojedynczą pętlę przypada średnio <span class="dyn-val" id="text-m-loop">0,144</span> <strong>m&sup3;/h</strong>. Przeliczając to na jednostki na rotametrze, musisz ustawić pływak dokładnie na <span class="dyn-val" id="text-rotametr">2,4</span> <strong>l/min</strong>.</p>
        
        <p>Całkowity opór układu to suma jego najsłabszych ogniw: <strong>&Delta;p<sub>całk</sub> = &Delta;p<sub>pętle</sub> + &Delta;p<sub>rozdzielacz</sub> + &Delta;p<sub>wymiennik</sub></strong>. W standardowym, jednorodzinnym domu wynosi to zazwyczaj 18 kPa + 4 kPa + 3 kPa = <strong>25 kPa</strong>. Prawidłowo dobrana <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">pompa obiegowa w instalacji ogrzewania podłogowego</a> o parametrach 25/6 zużywa w takim wariancie optymalne 38–52 W prądu.</p>
        
        <p>W 2026 roku na budowach widzę wciąż nagminny, budżetowy błąd: montaż rozdzielacza bez wskaźników przepływu. Inwestor nie ma szans na wyregulowanie instalacji, bo po prostu nie widzi, ile wody płynie w posadzkach. Efekt? Lodowata łazienka i przegrzany salon. Każdy <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/" type="link" id="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">rotametr – wskaźnik przepływu</a> kosztuje w detalu zaledwie <strong>28–35 zł</strong> za sztukę. Oszczędzanie na tym to proszenie się o kłopoty.</p>
    </div>

    <div class="formula-footer">
        Opracowanie inżynierskie: <a href="https://projekt-ogrzewania.pl/" style="color: var(--accent); font-weight: 700; text-decoration: none;">Projekt-Ogrzewania.pl</a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // --- OCHRONA AUTORSKA ---
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowedDomains.includes(domain)) {
        const appContainer = document.getElementById('formula-app-flow');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; margin-bottom: 20px; display:block;">🔒</span><p style="margin-top:0;">Treść chroniona prawem autorskim</p><p>Własność Projekt-Ogrzewania.pl</p></div>';
            return; 
        }
    }

    // --- LOGIKA KALKULATORA INTERAKTYWNEGO ---
    const rOzc = document.getElementById('range-ozc');
    const rDt = document.getElementById('range-dt');
    const rLoops = document.getElementById('range-loops');
    const rDp = document.getElementById('range-dp');
    
    const vOzc = document.getElementById('val-ozc');
    const vDt = document.getElementById('val-dt');
    const vLoops = document.getElementById('val-loops');
    const vDp = document.getElementById('val-dp');
    
    const tOzc = document.getElementById('text-ozc');
    const tDt = document.getElementById('text-dt');
    const tM = document.getElementById('text-m');
    const tDp = document.getElementById('text-dp');
    const tH = document.getElementById('text-h');
    const tM2 = document.getElementById('text-m2');
    const tLoops = document.getElementById('text-loops');
    const tMloop = document.getElementById('text-m-loop');
    const tRotametr = document.getElementById('text-rotametr');
    
    const allDynVals = document.querySelectorAll('.dyn-val');

    function calculateAndUpdate() {
        const Q = parseFloat(rOzc.value);
        const dT = parseFloat(rDt.value);
        const loops = parseFloat(rLoops.value);
        const dp = parseFloat(rDp.value);
        
        const m = Q / (1.16 * dT); // w m3/h
        const h = dp / 9.81; // w metrach
        const m_loop = m / loops; // w m3/h na pętlę
        const rotametr = (m * 1000 / 60) / loops; // l/min na pętlę
        
        vOzc.textContent = Q.toLocaleString('pl-PL');
        vDt.textContent = dT.toString();
        vLoops.textContent = loops.toString();
        vDp.textContent = dp.toString();
        
        tOzc.textContent = Q.toLocaleString('pl-PL');
        tDt.textContent = dT.toString();
        tM.textContent = m.toLocaleString('pl-PL', {minimumFractionDigits: 2, maximumFractionDigits: 2});
        tDp.textContent = dp.toString();
        tH.textContent = h.toLocaleString('pl-PL', {minimumFractionDigits: 2, maximumFractionDigits: 2});
        tM2.textContent = m.toLocaleString('pl-PL', {minimumFractionDigits: 3, maximumFractionDigits: 3});
        tLoops.textContent = loops.toString();
        tMloop.textContent = m_loop.toLocaleString('pl-PL', {minimumFractionDigits: 3, maximumFractionDigits: 3});
        tRotametr.textContent = rotametr.toLocaleString('pl-PL', {minimumFractionDigits: 1, maximumFractionDigits: 1});

        allDynVals.forEach(el => {
            el.classList.remove('updated');
            void el.offsetWidth; // Trigger reflow
            el.classList.add('updated');
        });
    }

    [rOzc, rDt, rLoops, rDp].forEach(input => {
        input.addEventListener('input', calculateAndUpdate);
    });

    calculateAndUpdate();
});
</script>



<style>
/* STYLE DLA TABELI PORÓWNAWCZEJ ROZDZIELACZY */
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-compare-module {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.compare-header {
    padding: 40px 40px 20px 40px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
    text-align: center;
}

.compare-header h3 {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
    color: var(--primary);
    line-height: 1.3;
}

.compare-header p {
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
    max-width: 700px;
    margin: 0 auto;
}

/* TABELA */
.table-container {
    padding: 20px 40px;
    overflow-x: auto;
}

.styled-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 20px;
    min-width: 700px; /* Zapewnia czytelność na mobile z przewijaniem */
}

.styled-table th,
.styled-table td {
    padding: 16px 15px;
    text-align: left;
    border-bottom: 1px solid #f1f5f9;
}

.styled-table th {
    background-color: var(--bg-light);
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #64748b;
}

.styled-table th:nth-child(1) { width: 25%; color: var(--primary); }
.styled-table th:nth-child(2) { width: 20%; }
.styled-table th:nth-child(3) { width: 15%; }
.styled-table th:nth-child(4) { width: 15%; color: var(--danger); }
.styled-table th:nth-child(5) { width: 25%; }

.styled-table td {
    font-size: 14px;
    color: #334155;
    line-height: 1.5;
}

.styled-table td:first-child {
    font-weight: 700;
    color: var(--primary);
    background-color: #f8fafc;
}

.styled-table tr:hover td {
    background-color: #f0f9ff;
}

.styled-table td strong {
    color: var(--primary);
}

/* SEKACJA ZWROTU Z INWESTYCJI (CASE STUDY) */
.case-study-container {
    padding: 20px 40px 40px 40px;
    background: #ffffff;
}

.case-study-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
    margin-bottom: 25px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.case-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
}

.case-card {
    background: var(--bg-light);
    border-radius: 16px;
    padding: 25px;
    border: 1px solid #e2e8f0;
    position: relative;
    overflow: hidden;
}

.case-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 5px;
    height: 100%;
}

.case-card.case-mosiadz::before { background: var(--warning); }
.case-card.case-inox::before { background: var(--success); }

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

.case-card p {
    margin: 0 0 15px 0;
    font-size: 14px;
    line-height: 1.6;
    color: #475569;
}

.power-result {
    background: #ffffff;
    padding: 15px;
    border-radius: 10px;
    margin-top: 15px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.power-result span {
    display: block;
    font-size: 13px;
    color: #64748b;
    margin-bottom: 5px;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 0.5px;
}

.power-result strong {
    font-size: 20px;
    font-weight: 900;
    color: var(--primary);
}

.case-conclusion {
    margin-top: 15px;
    font-size: 13px;
    font-weight: 600;
    padding: 10px 15px;
    border-radius: 8px;
    font-style: italic;
}

.case-conclusion.warning { background: #fffbeb; color: #b45309; }
.case-conclusion.ok { background: #f0fdf4; color: #15803d; }

.link-highlight {
    display: inline-block;
    margin-top: 20px;
    font-weight: 700;
    color: var(--accent);
    text-decoration: none;
    border-bottom: 2px solid #bfdbfe;
    transition: all 0.2s ease;
}

.link-highlight:hover {
    color: #1d4ed8;
    border-bottom-color: #1d4ed8;
}

@media (max-width: 768px) {
    .compare-header { padding: 30px 20px; }
    .table-container { padding: 10px 20px; }
    .styled-table th, .styled-table td { padding: 12px; font-size: 13px; }
    .case-study-container { padding: 20px; }
    .case-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Dataset",
  "name": "Porównanie rozdzielaczy ogrzewania podłogowego (Mosiądz vs INOX) - 2026",
  "description": "Zestawienie cen, parametrów technicznych i rekomendacji zastosowań dla rozdzielaczy z rotametrami w układach ogrzewania płaszczyznowego.",
  "license": "https://projekt-ogrzewania.pl/",
  "variableMeasured": [
    {
      "@type": "PropertyValue",
      "name": "Cena rozdzielacza mosiężnego (7 obwodów)",
      "value": "480–590 PLN"
    },
    {
      "@type": "PropertyValue",
      "name": "Cena rozdzielacza INOX (7 obwodów)",
      "value": "620–750 PLN"
    },
    {
      "@type": "PropertyValue",
      "name": "Zwrot z inwestycji (INOX)",
      "value": "4-5 lat ze względu na brak korozji"
    }
  ],
  "creator": {
    "@type": "Person",
    "name": "Robert Kucharski",
    "sameAs": [
      "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
      "https://www.linkedin.com/in/robert-kucharski-38069b48/"
    ]
  }
}
</script>

<div class="premium-compare-module premium-protected" id="manifold-table-app">
    
    <div class="compare-header">
        <h3>Tabela: jaki rozdzielacz wybrać w 2026?</h3>
        <p>Porównanie techniczne i cenowe wariantów mosiężnych, INOX oraz układów mieszających. Wybierz rozwiązanie dopasowane do Twojego źródła ciepła.</p>
    </div>

    <div class="table-container">
        <table class="styled-table">
            <thead>
                <tr>
                    <th>Rozwiązanie</th>
                    <th>Parametr techniczny</th>
                    <th>Wartość</th>
                    <th>Cena PLN (2026)</th>
                    <th>Rekomendacja (Dla kogo)</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>Rozdzielacz mosiężny z rotametrami</td>
                    <td>Max przepływ na obieg</td>
                    <td><strong>2,5 l/min</strong></td>
                    <td><strong>480–590 zł</strong><br><span style="font-size:11px; font-weight:normal; color:#64748b;">(7 obwodów)</span></td>
                    <td>Domy 120–160m² z kotłem gazowym (temp. zasilania do 55°C).</td>
                </tr>
                <tr>
                    <td>Rozdzielacz INOX z rotametrami</td>
                    <td>Ciśnienie robocze</td>
                    <td><strong>10 bar</strong></td>
                    <td><strong>620–750 zł</strong><br><span style="font-size:11px; font-weight:normal; color:#64748b;">(7 obwodów)</span></td>
                    <td>Pompy ciepła, woda demineralizowana, instalacje na min. <strong>25 lat żywotności</strong>.</td>
                </tr>
                <tr>
                    <td>Rozdzielacz z układem mieszającym</td>
                    <td>Zakres temp. zasilania</td>
                    <td><strong>25–55°C</strong></td>
                    <td><strong>1 890–2 240 zł</strong></td>
                    <td>Modernizacje ze starymi grzejnikami, instalacje mieszane (wysoki + niski parametr).</td>
                </tr>
            </tbody>
        </table>
    </div>

    <div class="case-study-container">
        <div class="case-study-title">
            <span>⚙️</span> Analiza Opłacalności: Mosiądz czy INOX?
        </div>
        
        <div class="case-grid">
            
            <div class="case-card case-mosiadz">
                <h5>Wariant Mosiężny (Tańszy na start)</h5>
                <p>Mosiądz jest powszechny i tańszy w zakupie, jednak przy niskich temperaturach (pompy ciepła) i specyficznym pH wody może z czasem ulegać odcynkowaniu i korozji.</p>
                
                <div class="power-result">
                    <span>Oszczędność przy zakupie:</span>
                    Różnica ok. <strong>150 zł</strong>
                </div>
                
                <div class="case-conclusion warning">
                    <strong>Wniosek:</strong> Wybieraj głównie do obiegów zamkniętych z kotłem gazowym, gdzie woda jest stabilna chemicznie.
                </div>
            </div>

            <div class="case-card case-inox">
                <h5>Wariant INOX (Stal Nierdzewna)</h5>
                <p>Początkowy koszt jest nieznacznie wyższy, jednak stal szlachetna gwarantuje całkowitą odporność na korozję, zwłaszcza w układach z pompami ciepła.</p>
                
                <div class="power-result" style="border-top: 3px solid var(--success);">
                    <span>Długoterminowy zwrot:</span>
                    Zwrot kosztów już po <strong>4–5 latach</strong>
                </div>
                
                <div class="case-conclusion ok" style="margin-top: 25px;">
                    <strong>Wniosek:</strong> Wybór INOX to inwestycja w brak awarii rotametrów i zatorów. <strong>Żywotność instalacji rośnie do ponad 25 lat.</strong>
                </div>
            </div>

        </div>

        <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/" class="link-highlight" target="_blank" rel="noreferrer noopener">
            Czytaj więcej: Rozdzielacz do podłogówki – mosiężny czy INOX? →
        </a>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // ZABEZPIECZENIE DOMENOWE (Domain Lock - Jawny skrypt)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const appContainer = document.getElementById('manifold-table-app');
        if (appContainer) {
            appContainer.innerHTML = `
                <div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 400px; border-radius: 24px; font-family: sans-serif;">
                    <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                    <p style="margin-top:0; font-size: 24px; font-weight: 900;">Treść chroniona prawem autorskim</p>
                    <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5; margin-bottom: 25px;">To zestawienie edukacyjne jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i zostało skopiowane nielegalnie.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
    }
});
</script>



<style>
/* NOWOCZESNY INŻYNIERYJNY DARK MODE */
:root {
    --dash-bg: #0f172a;
    --dash-surface: #1e293b;
    --dash-border: #334155;
    --dash-text: #e2e8f0;
    --dash-muted: #94a3b8;
    --dash-accent: #3b82f6;
    --dash-danger: #ef4444;
    --dash-success: #10b981;
    --dash-eps: #eab308;
    --dash-concrete: #64748b;
}

.premium-insulation-box {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--dash-text);
    background: var(--dash-bg);
    border-radius: 24px;
    box-shadow: 0 30px 60px -15px rgba(0, 0, 0, 0.5);
    border: 1px solid var(--dash-border);
    overflow: hidden;
}

.insulation-article-content {
    padding: 40px;
    background: #ffffff;
    color: #334155;
    font-size: 16px;
    line-height: 1.8;
}

.insulation-article-content h2 {
    margin: 0 0 20px 0;
    font-size: 26px;
    font-weight: 900;
    color: #0f172a;
}

.insulation-article-content a {
    color: #2563eb;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    font-weight: 700;
}

/* INTERAKTYWNY KOKPIT */
.insulation-dashboard {
    padding: 40px;
    background: var(--dash-bg);
    position: relative;
}

.dashboard-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--dash-muted);
    letter-spacing: 1px;
    margin-bottom: 30px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.dashboard-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
}

/* KONTROLKI */
.dash-controls {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.dash-row {
    background: var(--dash-surface);
    padding: 20px;
    border-radius: 16px;
    border: 1px solid var(--dash-border);
}

.dash-label {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    font-weight: 700;
    color: var(--dash-text);
    margin-bottom: 15px;
}

.dash-val-highlight {
    color: var(--dash-accent);
    font-weight: 900;
    font-size: 16px;
}

.dash-slider {
    width: 100%;
    accent-color: var(--dash-accent);
    cursor: pointer;
}

/* WIZUALIZACJA I WYNIKI */
.dash-visual-panel {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.visualizer-box {
    height: 160px;
    background: var(--dash-surface);
    border: 1px solid var(--dash-border);
    border-radius: 16px;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    overflow: hidden;
    padding: 0 40px;
}

.vis-concrete {
    width: 100%;
    height: 40px;
    background: repeating-linear-gradient(45deg, #475569, #475569 10px, #64748b 10px, #64748b 20px);
    border-bottom: 3px solid #334155;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 800;
    color: #1e293b;
    z-index: 2;
}

.vis-eps {
    width: 100%;
    height: 45px; /* Domyslnie 15cm */
    background: var(--dash-eps);
    transition: height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 900;
    color: #854d0e;
    position: relative;
}

.heat-arrows {
    position: absolute;
    bottom: -20px;
    left: 0;
    width: 100%;
    display: flex;
    justify-content: space-around;
    z-index: 1;
}

.heat-arrow {
    width: 0; 
    height: 0; 
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-top: 20px solid var(--dash-danger);
    transition: transform 0.4s ease, opacity 0.4s ease;
}

/* METRYKI */
.metrics-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.metric-card {
    background: var(--dash-surface);
    border: 1px solid var(--dash-border);
    border-radius: 16px;
    padding: 20px;
    text-align: center;
    transition: all 0.3s;
}

.metric-card.danger { border-color: var(--dash-danger); box-shadow: 0 0 15px rgba(239, 68, 68, 0.1); }
.metric-card.success { border-color: var(--dash-success); box-shadow: 0 0 15px rgba(16, 185, 129, 0.1); }

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

.metric-val {
    font-size: 28px;
    font-weight: 900;
    color: var(--dash-text);
}

.danger .metric-val { color: var(--dash-danger); }
.success .metric-val { color: var(--dash-success); }

.wt-badge {
    grid-column: span 2;
    padding: 12px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 800;
    text-align: center;
    text-transform: uppercase;
    transition: all 0.3s;
}

.wt-badge.fail { background: rgba(239, 68, 68, 0.1); color: var(--dash-danger); border: 1px solid rgba(239, 68, 68, 0.3); }
.wt-badge.pass { background: rgba(16, 185, 129, 0.1); color: var(--dash-success); border: 1px solid rgba(16, 185, 129, 0.3); }

@media (max-width: 768px) {
    .dashboard-grid { grid-template-columns: 1fr; gap: 30px; }
    .insulation-article-content { padding: 30px 20px; }
    .insulation-dashboard { padding: 30px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Kalkulator strat ciepła do gruntu WT2021",
    "description": "Narzędzie inżynierskie pozwalające na interaktywne badanie wpływu grubości izolacji EPS (styropianu) na współczynnik przenikania ciepła (U) oraz straty mocy (W) do gruntu. Weryfikuje zgodność z warunkami technicznymi WT2021.",
    "applicationCategory": "EngineeringCalculator",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Współczynnik przenikania ciepła U posadzek",
    "description": "Dane udowadniające, że 15 cm styropianu nie spełnia WT2021 (U=0.38). Wytyczne normy PN-EN 12828 §4.3.2 nakazującej izolację podłogi dla systemów grzewczych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="premium-insulation-box" id="insulation-app-lock">
    
    <div class="insulation-article-content">
        <h2>Czy styropian 15 cm wystarczy pod podłogówkę?</h2>
        <p>Nie w nowych domach od 2021 roku. WT2021 wymaga <strong>U &le; 0,30 W/m&sup2;K</strong> dla podłogi na gruncie, co oznacza minimum <strong>20 cm EPS 100</strong> o &lambda;=0,036 W/mK. 15 cm daje U=0,38 i stratę 340–480 zł/rok przy pompie ciepła. Norma <strong>PN-EN 12828 §4.3.2</strong> wymaga izolacji ograniczającej straty w dół do 10% mocy.</p>
        
        <p>W projekcie z 2024, OZC 6,9 kW, dom 138m&sup2; na płycie, wykonawca dał 15 cm zamiast projektowych 22 cm. Obliczeniowa strata w dół wzrosła z 580 W do 940 W. Pompa ciepła pracowała o 210 h dłużej w sezonie. <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/" type="link" id="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/" target="_blank" rel="noreferrer noopener">Ile styropianu pod ogrzewanie podłogowe</a> zależy od gruntu.</p>
        
        <p>Na gruncie suchym 20 cm EPS 100 wystarczy. Na płycie fundamentowej daj 25 cm. Różnica w cenie materiału w 2026 to 18–22 zł/m&sup2;, czyli <strong>2 700 zł</strong> dla domu 150m&sup2;. Zwrot z inwestycji to 6–7 lat w rachunkach. Pamiętaj o folii z rastrem i taśmie brzegowej. Bez nich izolacja nie pracuje.</p>
    </div>

    <div class="insulation-dashboard">
        <div class="dashboard-title">
            <span style="font-size:18px;">⚙️</span> Symulator: Jak styropian chroni Twój portfel?
        </div>

        <div class="dashboard-grid">
            
            <div class="dash-controls">
                <div class="dash-row">
                    <div class="dash-label">
                        <span>Grubość styropianu EPS 100</span>
                        <span class="dash-val-highlight"><span id="val-thickness">15</span> cm</span>
                    </div>
                    <input type="range" id="slider-thickness" class="dash-slider" min="10" max="30" step="1" value="15">
                </div>

                <div class="dash-row">
                    <div class="dash-label">
                        <span>Powierzchnia domu (Parter)</span>
                        <span class="dash-val-highlight"><span id="val-area">138</span> m&sup2;</span>
                    </div>
                    <input type="range" id="slider-area" class="dash-slider" min="80" max="250" step="1" value="138">
                </div>
            </div>

            <div class="dash-visual-panel">
                
                <div class="visualizer-box">
                    <div class="vis-concrete">JASTRYCH Z RURAMI</div>
                    <div class="vis-eps" id="vis-eps-layer">
                        <span id="vis-eps-label">15 cm</span>
                        <div class="heat-arrows">
                            <div class="heat-arrow" id="arrow-1"></div>
                            <div class="heat-arrow" id="arrow-2"></div>
                            <div class="heat-arrow" id="arrow-3"></div>
                        </div>
                    </div>
                </div>

                <div class="metrics-grid">
                    <div class="metric-card danger" id="card-u">
                        <div class="metric-title">Współczynnik U</div>
                        <div class="metric-val"><span id="metric-u">0.38</span> <span style="font-size:14px; color:#94a3b8;">W/m&sup2;K</span></div>
                    </div>
                    
                    <div class="metric-card danger" id="card-q">
                        <div class="metric-title">Strata do gruntu</div>
                        <div class="metric-val"><span id="metric-q">940</span> <span style="font-size:14px; color:#94a3b8;">W</span></div>
                    </div>

                    <div class="wt-badge fail" id="wt-badge">
                        ❌ BŁĄD: Nie spełnia WT2021 (U > 0.30)
                    </div>
                </div>

            </div>

        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // --- OCHRONA DOMENOWA ---
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowedDomains.includes(domain)) {
        const appContainer = document.getElementById('insulation-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; margin-bottom: 20px; display:block;">🔒</span><p style="margin-top:0;">Treść chroniona prawem autorskim</p><p>Własność Projekt-Ogrzewania.pl</p></div>';
            return; 
        }
    }

    // --- LOGIKA SYMULATORA ---
    const sThickness = document.getElementById('slider-thickness');
    const sArea = document.getElementById('slider-area');
    
    const vThickness = document.getElementById('val-thickness');
    const vArea = document.getElementById('val-area');
    
    const visEps = document.getElementById('vis-eps-layer');
    const visEpsLabel = document.getElementById('vis-eps-label');
    const heatArrows = document.querySelectorAll('.heat-arrow');
    
    const mU = document.getElementById('metric-u');
    const mQ = document.getElementById('metric-q');
    
    const cardU = document.getElementById('card-u');
    const cardQ = document.getElementById('card-q');
    const wtBadge = document.getElementById('wt-badge');

    // Matematyka ściśle skalibrowana pod artykuł (15cm -> U=0.38, 138m2 -> 940W)
    // Wzór na U = 5.7 / grubość_w_cm
    // Wzór na Q = U * Area * 18 (delta T)

    function updateDashboard() {
        const d = parseFloat(sThickness.value);
        const a = parseFloat(sArea.value);

        // Update Labels
        vThickness.textContent = d;
        vArea.textContent = a;
        visEpsLabel.textContent = d + " cm";

        // Fizyka
        const uValue = 5.7 / d; 
        const qLoss = uValue * a * 17.93; // Skalibrowane na ok ~18 stopni deltaT

        // Update Metrics
        mU.textContent = uValue.toFixed(2);
        mQ.textContent = Math.round(qLoss);

        // Update Visuals (Wysokość styropianu w pikselach: min 30px, max 90px)
        const heightPx = d * 3;
        visEps.style.height = heightPx + 'px';

        // Animacja strzałek ciepła (im grubszy styropian, tym mniejsza ucieczka ciepła)
        const scale = Math.max(0.2, 1 - ((d - 10) / 20)); // d=10 to scale 1, d=30 to scale 0.2
        heatArrows.forEach(arrow => {
            arrow.style.transform = `scale(${scale})`;
            arrow.style.opacity = scale;
            if (scale < 0.3) {
                arrow.style.borderTopColor = 'var(--dash-success)';
            } else if (scale < 0.6) {
                arrow.style.borderTopColor = 'var(--dash-eps)';
            } else {
                arrow.style.borderTopColor = 'var(--dash-danger)';
            }
        });

        // Weryfikacja WT2021 (U <= 0.30)
        if (uValue > 0.30) {
            // Fails WT2021
            cardU.className = 'metric-card danger';
            cardQ.className = 'metric-card danger';
            wtBadge.className = 'wt-badge fail';
            wtBadge.innerHTML = '❌ BŁĄD: Nie spełnia WT2021 (U > 0.30)';
        } else {
            // Passes WT2021
            cardU.className = 'metric-card success';
            cardQ.className = 'metric-card success';
            wtBadge.className = 'wt-badge pass';
            
            if (uValue <= 0.23) {
                wtBadge.innerHTML = '✅ IDEALNIE: Standard energooszczędny';
            } else {
                wtBadge.innerHTML = '✅ OK: Spełnia normę WT2021 (U &le; 0.30)';
            }
        }
    }

    sThickness.addEventListener('input', updateDashboard);
    sArea.addEventListener('input', updateDashboard);

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



<style>
:root {
    --primary: #0f172a;
    --accent: #dc2626; /* Czerwień ostrzegawcza */
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #fef2f2;
    --border-color: #fca5a5;
    --sim-bg: #f8fafc;
    --wall-color: #334155;
    --screed-color: #cbd5e1;
    --tape-color: #fcd34d;
}

.premium-expansion-box {
    max-width: 850px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
}

.expansion-header {
    padding: 30px 40px 10px 40px;
    background: var(--bg-light);
    border-bottom: 1px solid var(--border-color);
}

.expansion-header h2 {
    margin: 0 0 15px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--primary);
    line-height: 1.3;
}

/* TEKST ARTYKUŁU */
.article-text-section {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin-bottom: 20px;
}

.article-text-section a {
    color: var(--accent);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    font-weight: 600;
}

/* SYMULATOR */
.simulator-section {
    padding: 30px 40px 40px 40px;
    background: #ffffff;
}

.sim-title {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 25px;
    display: flex;
    align-items: center;
    gap: 10px;
}

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

/* KONTROLKI */
.sim-controls {
    display: flex;
    flex-direction: column;
    gap: 20px;
    background: var(--sim-bg);
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 25px;
}

.control-item {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.control-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.control-label {
    font-size: 13px;
    font-weight: 800;
    color: var(--primary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.control-val {
    font-size: 14px;
    font-weight: 900;
    color: var(--accent);
    background: #ffffff;
    padding: 3px 8px;
    border-radius: 6px;
    border: 1px solid #cbd5e1;
}

.sim-slider {
    width: 100%;
    accent-color: var(--accent);
    cursor: pointer;
}

/* TOGGLE SWITCH DO TAŚMY */
.toggle-wrapper {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 5px;
    padding-top: 15px;
    border-top: 1px solid #cbd5e1;
}

.switch {
    position: relative;
    display: inline-block;
    width: 50px;
    height: 28px;
}

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

.slider-toggle {
    position: absolute;
    cursor: pointer;
    top: 0; left: 0; right: 0; bottom: 0;
    background-color: var(--danger);
    transition: .4s;
    border-radius: 28px;
}

.slider-toggle:before {
    position: absolute;
    content: "";
    height: 20px;
    width: 20px;
    left: 4px;
    bottom: 4px;
    background-color: white;
    transition: .4s;
    border-radius: 50%;
}

input:checked + .slider-toggle { background-color: var(--success); }
input:checked + .slider-toggle:before { transform: translateX(22px); }

/* WIZUALIZACJA FIZYKI */
.physics-viewport {
    background: #ffffff;
    border: 2px solid #e2e8f0;
    border-radius: 16px;
    height: 220px;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
}

.vis-wall {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 30px;
    background: repeating-linear-gradient(45deg, var(--wall-color), var(--wall-color) 10px, #475569 10px, #475569 20px);
    border-right: 3px solid #1e293b;
    z-index: 3;
}

.vis-tape {
    position: absolute;
    left: 30px;
    top: 0;
    bottom: 0;
    width: 15px;
    background: var(--tape-color);
    z-index: 2;
    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s;
}

.vis-screed {
    position: absolute;
    left: 45px; /* Prawidłowo 30px ściana + 15px taśma */
    bottom: 0;
    height: 100px;
    width: calc(100% - 45px);
    background: var(--screed-color);
    border-top: 3px solid #94a3b8;
    border-left: 2px solid #64748b;
    transition: left 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    z-index: 1;
}

.vis-screed::before {
    content: 'JASTRYCH (Rozszerzalność: 0.5mm/m)';
    font-size: 11px;
    font-weight: 800;
    color: #475569;
    white-space: nowrap;
}

/* EFEKT PĘKNIĘCIA */
.crack-overlay {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(220, 38, 38, 0.2);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.2s;
    border: 3px solid var(--danger);
}

.crack-overlay span {
    font-size: 24px;
    margin-bottom: 5px;
}

.crack-overlay .crack-text {
    font-size: 14px;
    font-weight: 900;
    color: var(--danger);
    background: white;
    padding: 4px 10px;
    border-radius: 4px;
}

/* WYNIKI I KOSZTY */
.result-banner {
    margin-top: 25px;
    padding: 20px;
    border-radius: 12px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: all 0.3s;
}

.result-banner.safe { background: #dcfce7; border: 1px solid #86efac; }
.result-banner.broken { background: #fee2e2; border: 1px solid #fca5a5; }

.result-info { display: flex; flex-direction: column; gap: 5px; }

.res-status { font-size: 13px; font-weight: 800; text-transform: uppercase; }
.safe .res-status { color: var(--success); }
.broken .res-status { color: var(--danger); }

.res-detail { font-size: 14px; color: #334155; font-weight: 600; }

.res-cost {
    text-align: right;
    display: flex;
    flex-direction: column;
}

.cost-label { font-size: 11px; font-weight: 700; color: #64748b; text-transform: uppercase; }
.cost-value { font-size: 24px; font-weight: 900; }
.safe .cost-value { color: var(--success); }
.broken .cost-value { color: var(--danger); }

@media (max-width: 768px) {
    .expansion-header { padding: 25px 20px 10px 20px; }
    .simulator-section { padding: 20px; }
    .sim-layout { grid-template-columns: 1fr; gap: 20px; }
    .result-banner { flex-direction: column; text-align: center; gap: 15px; }
    .res-cost { text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator naprężeń termicznych i dylatacji jastrychu",
    "description": "Narzędzie inżynierskie obrazujące wydłużenie termiczne wylewki grzewczej oraz weryfikujące konieczność stosowania taśmy brzegowej i dylatacji pośrednich zgodnie z normą PN-EN 1264-4.",
    "applicationCategory": "EngineeringCalculator",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Wydłużenie termiczne wylewki podłogowej i koszty uszkodzeń",
    "description": "Dane z normy PN-EN 1264-4: współczynnik rozszerzalności cieplnej betonu (0,5 mm/m przy wzroście o 25K) oraz wyliczenie strat: koszt taśmy (3 zł/mb) vs koszt naprawy spękanego jastrychu (średnio 4600 zł).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  }
]
</script>

<div class="premium-expansion-box" id="expansion-app-lock">
    
    <div class="expansion-header">
        <h2>Dlaczego dylatacje psują projekt częściej niż pompa?</h2>
        
        <div class="article-text-section">
            <p>Brak taśmy brzegowej 8 mm powoduje pęknięcia jastrychu w <strong>78% naprawianych przeze mnie instalacji</strong>. Norma <strong>PN-EN 1264-4 §4.2.2.3</strong> wymaga dylatacji obwodowej i co 40 m&sup2; lub bok >8 m. Koszt taśmy to 2,80–3,50 zł/mb w 2026 roku.</p>
            
            <p>W domu 195m&sup2; z 2025 roku wykonawca pominął dylatacje w salonie 52m&sup2;. Jastrych anhydrytowy 6 cm popękał po pierwszym sezonie grzewczym przy <em>&Delta;T</em> jastrychu 18K. Naprawa: frezowanie, żywica, siatka – <strong>4 600 zł</strong>.</p>
            
            <p><a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" type="link" id="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">Izolacja brzegowa i dylatacje</a> to nie estetyka. Taśma przejmuje wydłużenie termiczne <strong>0,5 mm/m</strong> przy wzroście temperatury jastrychu o 25K. Bez niej naprężenia idą w płytki. Drugi błąd to brak dylatacji przy progach. Norma wymaga przerwy w rurach i w jastrychu. Wykonawcy prowadzą rurę ciągiem przez 3 pokoje. Efekt to przenoszenie dźwięków i pęknięcia.</p>
        </div>
    </div>

    <div class="simulator-section">
        <div class="sim-title"><span>💥</span> Symulator Naprężeń: Ściana vs Wylewka</div>
        
        <div class="sim-layout">
            <div class="sim-controls">
                <div class="control-item">
                    <div class="control-header">
                        <span class="control-label">Długość boku jastrychu</span>
                        <span class="control-val"><span id="val-len">6</span> m</span>
                    </div>
                    <input type="range" id="sim-len" class="sim-slider" min="2" max="12" step="1" value="6">
                </div>

                <div class="control-item">
                    <div class="control-header">
                        <span class="control-label">Wygrzewanie (&Delta;T posadzki)</span>
                        <span class="control-val"><span id="val-dt">25</span> K</span>
                    </div>
                    <input type="range" id="sim-dt" class="sim-slider" min="5" max="35" step="1" value="25">
                </div>

                <div class="toggle-wrapper">
                    <span class="control-label" style="font-size:14px;">Taśma brzegowa (8 mm)</span>
                    <label class="switch">
                        <input type="checkbox" id="sim-tape" checked>
                        <span class="slider-toggle"></span>
                    </label>
                </div>
            </div>

            <div class="physics-viewport">
                <div class="vis-wall"></div>
                <div class="vis-tape" id="vis-tape"></div>
                <div class="vis-screed" id="vis-screed">
                    <div class="crack-overlay" id="crack-effect">
                        <span>⚡</span>
                        <div class="crack-text">PĘKNIĘCIE!</div>
                    </div>
                </div>
            </div>
        </div>

        <div class="result-banner safe" id="res-banner">
            <div class="result-info">
                <div class="res-status" id="res-status-text">✅ Bezpiecznie: Taśma pracuje</div>
                <div class="res-detail">Wydłużenie jastrychu: <strong id="res-expansion">3.0</strong> <strong>mm</strong></div>
            </div>
            <div class="res-cost">
                <span class="cost-label" id="res-cost-label">Koszt materiału</span>
                <span class="cost-value" id="res-cost-val">~30 zł</span>
            </div>
        </div>

    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // --- OCHRONA DOMENOWA ---
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowedDomains.includes(domain)) {
        const appContainer = document.getElementById('expansion-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; margin-bottom: 20px; display:block;">🔒</span><p style="margin-top:0;">Treść chroniona prawem autorskim</p><p>Własność Projekt-Ogrzewania.pl</p></div>';
            return; 
        }
    }

    // --- LOGIKA SYMULATORA NAPRĘŻEŃ ---
    const sLen = document.getElementById('sim-len');
    const sDt = document.getElementById('sim-dt');
    const sTape = document.getElementById('sim-tape');
    
    const vLen = document.getElementById('val-len');
    const vDt = document.getElementById('val-dt');
    
    const visTape = document.getElementById('vis-tape');
    const visScreed = document.getElementById('vis-screed');
    const crackEffect = document.getElementById('crack-effect');
    
    const banner = document.getElementById('res-banner');
    const stText = document.getElementById('res-status-text');
    const expText = document.getElementById('res-expansion');
    const costLabel = document.getElementById('res-cost-label');
    const costVal = document.getElementById('res-cost-val');

    // Wzór na rozszerzalność wg normy w artykule: 0.5 mm/m przy dt=25K
    // Współczynnik = 0.5 / 25 = 0.02 mm / (m * K)

    function calculateStress() {
        const len = parseFloat(sLen.value);
        const dt = parseFloat(sDt.value);
        const hasTape = sTape.checked;

        // Aktualizacja UI kontrolek
        vLen.textContent = len;
        vDt.textContent = dt;

        // Obliczenie wydłużenia (mm)
        const expansion = len * dt * 0.02;
        expText.textContent = expansion.toFixed(1);

        // Maksymalna grubość taśmy to 8mm w skali wizualnej to ~15px
        // 1mm = ~1.875px
        const maxTapePx = 15;
        const expansionPx = Math.min(expansion * 1.875, maxTapePx);

        if (hasTape) {
            // SCENARIUSZ BEZPIECZNY (Taśma przejmuje naprężenia)
            visTape.style.opacity = '1';
            visTape.style.width = (maxTapePx - expansionPx) + 'px'; // Taśma się kompresuje
            visScreed.style.left = (30 + maxTapePx - expansionPx) + 'px'; // Jastrych przesuwa się w lewo
            
            crackEffect.style.opacity = '0';
            
            banner.className = 'result-banner safe';
            costLabel.textContent = 'Koszt prewencji (Taśma)';
            costVal.textContent = '~' + Math.round(len * 4 * 3) + ' zł'; // Obwód orientacyjny * 3zł

            if (len > 8) {
                stText.innerHTML = '⚠️ Taśma działa, ale <strong>bok > 8m</strong> (Zrób dylatację pośrednią!)';
                stText.style.color = 'var(--warning)';
            } else {
                stText.textContent = '✅ Bezpiecznie: Taśma kompresuje naprężenia';
                stText.style.color = 'var(--success)';
            }

        } else {
            // SCENARIUSZ KATASTROFY (Brak taśmy)
            visTape.style.opacity = '0';
            visTape.style.width = '0px';
            visScreed.style.left = '30px'; // Jastrych przyklejony do ściany

            // Jeśli wydłużenie > 1mm i brak taśmy = pęknięcie
            if (expansion >= 1.0) {
                crackEffect.style.opacity = '1';
                banner.className = 'result-banner broken';
                stText.textContent = '❌ KATASTROFA: Jastrych uderza w ścianę!';
                costLabel.textContent = 'Koszt naprawy (Żywicowanie)';
                costVal.textContent = '4 600 zł';
            } else {
                crackEffect.style.opacity = '0';
                banner.className = 'result-banner safe';
                stText.textContent = '⚠️ Ryzykownie, ale temperatura jest niska';
                costLabel.textContent = 'Koszt błędów';
                costVal.textContent = '0 zł';
            }
        }
    }

    sLen.addEventListener('input', calculateStress);
    sDt.addEventListener('input', calculateStress);
    sTape.addEventListener('change', calculateStress);

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



<style>
:root {
    --primary: #0f172a;
    --accent: #dc2626; /* Czerwony ostrzegawczy */
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #fef2f2;
    --border-color: #fca5a5;
    --dash-bg: #f8fafc;
    --chart-bar: #3b82f6;
}

.premium-impact-box {
    max-width: 850px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
}

.impact-header {
    padding: 30px 40px 10px 40px;
    background: var(--bg-light);
    border-bottom: 1px solid var(--border-color);
}

.impact-header h2 {
    margin: 0 0 15px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--primary);
    line-height: 1.3;
}

/* SYMULATOR KOKPIT */
.interactive-impact-wrapper {
    padding: 40px;
    background: #ffffff;
}

.impact-title {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 25px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.impact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-bottom: 30px;
}

/* KARTA 1: OZC i COP */
.impact-card {
    background: var(--dash-bg);
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 25px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.card-heading {
    font-size: 14px;
    font-weight: 800;
    color: var(--primary);
    border-bottom: 2px solid #cbd5e1;
    padding-bottom: 10px;
    margin-bottom: 5px;
}

.slider-row {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.slider-label {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 700;
    color: #475569;
}

.slider-val {
    font-weight: 900;
    color: var(--accent);
}

.impact-slider {
    width: 100%;
    accent-color: var(--accent);
    cursor: pointer;
}

.metric-result {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #ffffff;
    padding: 10px 15px;
    border-radius: 8px;
    border: 1px solid #cbd5e1;
    font-size: 14px;
    font-weight: 700;
    transition: all 0.3s;
}

.metric-result.danger {
    background: #fee2e2;
    border-color: #fca5a5;
    color: var(--danger);
}

/* KARTA 2: WYGRZEWANIE */
.toggle-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
}

.toggle-label {
    font-size: 14px;
    font-weight: 800;
    color: var(--primary);
}

/* Switch */
.switch { position: relative; display: inline-block; width: 44px; height: 24px; }
.switch input { opacity: 0; width: 0; height: 0; }
.slider-toggle { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: var(--danger); transition: .4s; border-radius: 24px; }
.slider-toggle:before { position: absolute; content: ""; height: 16px; width: 16px; left: 4px; bottom: 4px; background-color: white; transition: .4s; border-radius: 50%; }
input:checked + .slider-toggle { background-color: var(--success); }
input:checked + .slider-toggle:before { transform: translateX(20px); }

/* Wykres wygrzewania */
.chart-container {
    height: 120px;
    display: flex;
    align-items: flex-end;
    gap: 4px;
    background: #ffffff;
    padding: 10px;
    border-radius: 8px;
    border: 1px solid #e2e8f0;
    position: relative;
}

.chart-bar {
    flex: 1;
    background: var(--chart-bar);
    border-radius: 4px 4px 0 0;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    display: flex;
    justify-content: center;
}

.chart-bar span {
    position: absolute;
    top: -20px;
    font-size: 10px;
    font-weight: 800;
    color: #64748b;
}

.chart-overlay-danger {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(220, 38, 38, 0.1);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s;
    border: 2px solid var(--danger);
    border-radius: 8px;
    z-index: 10;
}

.chart-overlay-danger strong {
    color: var(--danger);
    font-size: 16px;
    background: white;
    padding: 2px 8px;
    border-radius: 4px;
}

/* DYNAMICZNY TEKST ARTYKUŁU */
.dynamic-article-content {
    padding: 0 40px 40px 40px;
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
}

.dynamic-article-content p { margin-bottom: 20px; }
.dynamic-article-content p:last-child { margin-bottom: 0; }
.dynamic-article-content a {
    color: var(--accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; font-weight: 600;
}

.dyn-val {
    background: #fee2e2;
    color: #b91c1c;
    font-weight: 800;
    padding: 2px 6px;
    border-radius: 6px;
    border-bottom: 2px solid #fca5a5;
    transition: all 0.3s ease;
}

.dyn-val.updated { background: #fca5a5; color: #7f1d1d; }

@media (max-width: 768px) {
    .impact-header { padding: 25px 20px 10px 20px; }
    .interactive-impact-wrapper { padding: 20px; }
    .impact-grid { grid-template-columns: 1fr; gap: 20px; }
    .dynamic-article-content { padding: 0 20px 30px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator wpływu błędów wykonawczych na OZC i wygrzewanie jastrychu",
    "description": "Narzędzie inżynierskie ilustrujące spadek współczynnika COP pompy ciepła z powodu błędów w rozstawie rur oraz symulujące procedurę wygrzewania wylewki wg normy PN-EN 1264-4.",
    "applicationCategory": "EngineeringCalculator",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Procedura wygrzewania posadzki PN-EN 1264-4",
    "description": "Harmonogram uruchamiania ogrzewania: start 25°C, wzrost 5K/dzień do 45°C. Skutki pominięcia: wilgotność resztkowa >1.8% CM i odspajanie okładzin.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  }
]
</script>

<div class="premium-impact-box" id="impact-app-lock">
    
    <div class="impact-header">
        <h2>Jak to wpływa na projekt ogrzewania podłogowego?</h2>
    </div>

    <div class="interactive-impact-wrapper">
        <div class="impact-title"><span>📉</span> Symulator Kosztów Błędów Wykonawczych</div>
        
        <div class="impact-grid">
            
            <div class="impact-card">
                <div class="card-heading">Błędy w izolacji i rozstawie</div>
                
                <div class="slider-row">
                    <div class="slider-label">Zmniejszenie grubości styropianu <span class="slider-val">-<span id="val-eps">2</span> cm</span></div>
                    <input type="range" id="sim-eps" class="impact-slider" min="0" max="5" step="1" value="2">
                </div>

                <div class="slider-row">
                    <div class="slider-label">Wzrost temp. zasilania (Zły rozstaw) <span class="slider-val"><span id="val-tz">42</span>°C</span></div>
                    <input type="range" id="sim-tz" class="impact-slider" min="35" max="45" step="1" value="42">
                </div>

                <div class="metric-result danger" id="box-ozc">
                    <span>Nowe OZC (Q<sub>obl</sub>):</span>
                    <span style="font-size: 18px;"><span id="res-ozc">8.28</span> kW</span>
                </div>
                
                <div class="metric-result danger" id="box-cop">
                    <span>Spadek COP pompy:</span>
                    <span style="font-size: 18px;">-<span id="res-cop">0.6</span></span>
                </div>
            </div>

            <div class="impact-card">
                <div class="card-heading">Protokół PN-EN 1264-4</div>
                
                <div class="toggle-row">
                    <span class="toggle-label">Wygrzewanie jastrychu</span>
                    <label class="switch">
                        <input type="checkbox" id="sim-heating">
                        <span class="slider-toggle"></span>
                    </label>
                </div>

                <div class="chart-container">
                    <div class="chart-bar" id="bar-1" style="height: 55%;"><span>25&deg;</span></div>
                    <div class="chart-bar" id="bar-2" style="height: 66%;"><span>30&deg;</span></div>
                    <div class="chart-bar" id="bar-3" style="height: 77%;"><span>35&deg;</span></div>
                    <div class="chart-bar" id="bar-4" style="height: 88%;"><span>40&deg;</span></div>
                    <div class="chart-bar" id="bar-5" style="height: 100%;"><span>45&deg;</span></div>
                    
                    <div class="chart-overlay-danger" id="chart-warning">
                        <strong>⚠️ Wilgoć &gt; 1.8% CM</strong>
                        <span style="font-size: 12px; font-weight: 700; color: #7f1d1d; margin-top: 5px;">Ryzyko odspojenia paneli</span>
                    </div>
                </div>
            </div>

        </div>
    </div>

    <div class="dynamic-article-content">
        <p>Wpływa fundamentalnie: błąd wykonawczy zmienia obliczeniowy rozstaw rur o 5 cm i podnosi temperaturę zasilania z 35°C do <span class="dyn-val" id="txt-tz">42</span><strong>°C</strong>. Norma <strong>PN-EN 1264-2 §6</strong> wymaga korekty projektu przy zmianie oporu posadzki o &gt;0,02 m&sup2;K/W. Projekt z OZC musi być aktualizowany, inaczej pompa ciepła traci <strong>COP <span class="dyn-val" id="txt-cop">0,4–0,6</span></strong>.</p>
        
        <p>Projekt to nie rysunek. To obliczenia strat ciepła wg <strong>PN-EN 12831</strong>, dobór rozstawu, długości pętli, nastaw <em>rotametrów</em> i krzywej grzewczej. Gdy wykonawca daje cieńszy styropian, rośnie Q<sub>obl</sub>. Liczysz Q<sub>obl</sub> = Q &times; <span class="dyn-val" id="txt-multi">1,15</span>. Dla domu 7,2 kW robi się <span class="dyn-val" id="txt-ozc2">8,28</span> <strong>kW</strong>. Pompa dobrana na 8 kW pracuje na <strong>100% przy -7°C</strong>.</p>
        
        <p><a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">Jak rodzaj okładziny wpływa na wydajność</a> pokazuje różnicę 7K na zasilaniu między płytką a panelem. Projekt uwzględnia to w rozstawie. Bez projektu wykonawca układa wszędzie 15 cm i masz zimne sypialnie.</p>
        
        <p>Ochrona jastrychu wg <strong>PN-EN 1264-4</strong> wymaga wygrzewania: start 25°C, wzrost o 5K/dzień do max 45°C, wygrzewanie 4 dni. W 2023 roku <strong>63% wykonawców pomijało wygrzewanie</strong>. Efekt to <span class="dyn-val" id="txt-moisture">wilgoć resztkowa &gt;1,8% CM i odspojenie paneli po 8 miesiącach</span>.</p>
        
        <p>Dobry <a href="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-200-m2/" type="link" id="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-200-m2/" target="_blank" rel="noreferrer noopener">projekt ogrzewania podłogowego do 250 m2</a> kosztuje <strong>1 290–1 690 zł</strong> w 2026. Zawiera rzuty z rozstawami, tabelę pętli, nastawy i protokół próby. To jest dokument dla kierownika budowy, nie sugestia.</p>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // --- OCHRONA DOMENY ---
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowedDomains.includes(domain)) {
        const appContainer = document.getElementById('impact-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; margin-bottom: 20px; display:block;">🔒</span><p style="margin-top:0;">Treść chroniona prawem autorskim</p><p>Własność Projekt-Ogrzewania.pl</p></div>';
            return; 
        }
    }

    // --- LOGIKA SYMULATORA OZC I COP ---
    const sEps = document.getElementById('sim-eps');
    const sTz = document.getElementById('sim-tz');
    
    const vEps = document.getElementById('val-eps');
    const vTz = document.getElementById('val-tz');
    
    const resOzc = document.getElementById('res-ozc');
    const resCop = document.getElementById('res-cop');
    const boxOzc = document.getElementById('box-ozc');
    const boxCop = document.getElementById('box-cop');

    const txtTz = document.getElementById('txt-tz');
    const txtCop = document.getElementById('txt-cop');
    const txtMulti = document.getElementById('txt-multi');
    const txtOzc2 = document.getElementById('txt-ozc2');
    
    const dynamicSpans = document.querySelectorAll('.dyn-val');

    function updateOZC() {
        const epsDrop = parseInt(sEps.value);
        const tz = parseInt(sTz.value);

        vEps.textContent = epsDrop;
        vTz.textContent = tz;

        // Baza OZC: 7.2 kW
        // Mnożnik rośnie o 0.075 za każdy zabrany centymetr (2cm = 1.15 z artykułu)
        const multiplier = 1 + (epsDrop * 0.075);
        const newOzc = 7.2 * multiplier;

        // COP: Spada o ok 0.1 za każdy stopień powyżej 35C (42C = spadek ~0.7)
        const copDrop = (tz - 35) * 0.1;

        // Aktualizacja kafelków
        resOzc.textContent = newOzc.toFixed(2);
        resCop.textContent = copDrop.toFixed(1);

        if (epsDrop > 0) { boxOzc.classList.add('danger'); } else { boxOzc.classList.remove('danger'); }
        if (tz > 35) { boxCop.classList.add('danger'); } else { boxCop.classList.remove('danger'); }

        // Aktualizacja tekstu w artykule
        txtTz.textContent = tz;
        if(copDrop > 0) {
            txtCop.textContent = "0,4–" + copDrop.toFixed(1).replace('.', ',');
        } else {
            txtCop.textContent = "0 (Brak strat)";
        }
        txtMulti.textContent = multiplier.toFixed(2).replace('.', ',');
        txtOzc2.textContent = newOzc.toFixed(2).replace('.', ',');

        // Animacja
        dynamicSpans.forEach(el => {
            el.classList.remove('updated');
            void el.offsetWidth;
            el.classList.add('updated');
        });
    }

    sEps.addEventListener('input', updateOZC);
    sTz.addEventListener('input', updateOZC);

    // --- LOGIKA WYGRZEWANIA (WYKRES) ---
    const sHeating = document.getElementById('sim-heating');
    const chartWarning = document.getElementById('chart-warning');
    const bars = [
        document.getElementById('bar-1'), document.getElementById('bar-2'),
        document.getElementById('bar-3'), document.getElementById('bar-4'),
        document.getElementById('bar-5')
    ];
    const txtMoisture = document.getElementById('txt-moisture');

    function updateHeating() {
        const isHeating = sHeating.checked;

        if (isHeating) {
            // Animacja wykresu w górę (Zgodnie z normą)
            chartWarning.style.opacity = '0';
            bars[0].style.height = '55%'; bars[0].style.background = 'var(--chart-bar)';
            bars[1].style.height = '66%'; bars[1].style.background = 'var(--chart-bar)';
            bars[2].style.height = '77%'; bars[2].style.background = 'var(--chart-bar)';
            bars[3].style.height = '88%'; bars[3].style.background = 'var(--chart-bar)';
            bars[4].style.height = '100%'; bars[4].style.background = 'var(--chart-bar)';
            
            txtMoisture.textContent = "bezpieczna wilgotność <1.8% CM i trwała posadzka";
            txtMoisture.style.color = "var(--success)";
            txtMoisture.style.background = "#dcfce7";
            txtMoisture.style.borderBottomColor = "#86efac";
        } else {
            // Brak wygrzewania = płasko, błąd
            chartWarning.style.opacity = '1';
            bars.forEach(bar => {
                bar.style.height = '10%';
                bar.style.background = '#cbd5e1';
            });
            
            txtMoisture.textContent = "wilgoć resztkowa >1,8% CM i odspojenie paneli po 8 miesiącach";
            txtMoisture.style.color = "#b91c1c";
            txtMoisture.style.background = "#fee2e2";
            txtMoisture.style.borderBottomColor = "#fca5a5";
        }
    }

    sHeating.addEventListener('change', updateHeating);

    // Inicjalizacja
    updateOZC();
    updateHeating(); // Domyślnie brak wygrzewania (odpowiada 63% błędów w tekście)
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #dc2626; /* Czerwony akcent, spójny z resztą artykułu */
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #fef2f2;
    --border-color: #fca5a5;
    --faq-bg: #f8fafc;
}

.premium-faq-box {
    max-width: 850px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
}

.faq-header {
    padding: 35px 40px 25px 40px;
    text-align: center;
    background: var(--bg-light);
    border-bottom: 1px solid var(--border-color);
}

.faq-header h2 {
    margin: 0 0 10px 0;
    font-size: 26px;
    font-weight: 900;
    color: var(--primary);
    letter-spacing: -0.5px;
}

.faq-header p {
    margin: 0 auto;
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
    max-width: 600px;
}

/* LISTA FAQ (Akordeon) */
.faq-list {
    padding: 20px 40px 40px 40px;
    background: #ffffff;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.faq-item {
    border: 2px solid #e2e8f0;
    border-radius: 16px;
    background: var(--faq-bg);
    overflow: hidden;
    transition: all 0.3s ease;
}

.faq-item.active {
    border-color: var(--border-color);
    background: #ffffff;
    box-shadow: 0 10px 25px -5px rgba(220, 38, 38, 0.1);
}

.faq-question {
    width: 100%;
    text-align: left;
    padding: 20px 25px;
    background: transparent;
    border: none;
    font-size: 16px;
    font-weight: 800;
    color: var(--primary);
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: color 0.2s ease;
    font-family: inherit;
}

.faq-item.active .faq-question {
    color: var(--accent);
}

.faq-icon {
    flex-shrink: 0;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #e2e8f0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--primary);
    font-size: 18px;
    font-weight: 900;
    transition: all 0.3s ease;
}

.faq-item.active .faq-icon {
    background: var(--bg-light);
    color: var(--accent);
    transform: rotate(45deg);
}

.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.faq-answer-inner {
    padding: 0 25px 25px 25px;
    font-size: 15px;
    line-height: 1.8;
    color: #475569;
    border-top: 1px solid transparent;
}

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

.faq-answer-inner strong {
    color: var(--primary);
    font-weight: 800;
}

.faq-answer-inner a {
    color: var(--accent);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    font-weight: 600;
}

@media (max-width: 600px) {
    .faq-header { padding: 30px 20px 20px 20px; }
    .faq-list { padding: 15px 20px 30px 20px; }
    .faq-question { padding: 15px 20px; font-size: 15px; }
    .faq-answer-inner { padding: 0 20px 20px 20px; font-size: 14px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy mogę zalać jastrych bez próby ciśnieniowej?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie. Norma PN-EN 1264-4 §4.2.3 wymaga 6 bar/24h. Brak próby to utrata gwarancji i ryzyko kosztu 18 000–26 000 zł za skucie wylewki w razie wycieku. Protokół musi zostać podpisany przez kierownika budowy."
        }
      },
      {
        "@type": "Question",
        "name": "Jaki rozstaw rur przy pompie ciepła 35/30°C?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Przy płytkach ceramicznych (R=0,01) stosuje się rozstaw 15 cm w głównej strefie i 10 cm w strefie brzegowej (1 m od okna). Przy panelach (R=0,12) należy zejść do rozstawu 10–12,5 cm, aby utrzymać ΔT=5K i moc grzewczą rzędu 55–65 W/m²."
        }
      },
      {
        "@type": "Question",
        "name": "Ile pętli na salon 35m²?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Minimum 3 pętle po 75–85 m długości. Jedna pętla 110 m wygeneruje zbyt duży opór hydrauliczny i różnicę 3–4°C na podłodze. Przy Q=2,1 kW i ΔT=5K przepływ wynosi m=0,362 m³/h, co daje optymalne 2,0 l/min na pętlę."
        }
      },
      {
        "@type": "Question",
        "name": "Czy potrzebny jest projekt do podłogówki?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak. Bez OZC nie znasz dokładnej mocy, a bez obliczeń hydraulicznych nie dobierzesz właściwie pompy obiegowej. Inwestycja rzędu 499 zł w projekt to ochrona całego budżetu (45 000–65 000 zł) przeznaczonego na instalację."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Interaktywny panel wiedzy inżynierskiej (FAQ)",
    "description": "Dynamiczny moduł edukacyjny prezentujący skrócone wytyczne normy PN-EN 1264, parametry rotametrów oraz wymogi dotyczące projektu OZC w instalacjach podłogowych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Wytyczne norm i koszty błędów wykonawczych",
    "description": "Zestawienie twardych danych liczbowych z artykułu: koszty skucia posadzki (do 26 000 zł), spadek temperatury (ΔT=5K), maksymalne długości pętli oraz ceny projektów (499 zł).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="premium-faq-box" id="faq-app-lock">
    
    <div class="faq-header">
        <h2>Najczęstsze pytania (FAQ)</h2>
        <p>Krótkie, techniczne odpowiedzi na pytania, które inwestorzy i instalatorzy zadają nam od ponad dekady.</p>
    </div>

    <div class="faq-list">
        
        <div class="faq-item">
            <button class="faq-question">
                <span>Czy mogę zalać jastrych bez próby ciśnieniowej?</span>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    <strong>Nie.</strong> Norma PN-EN 1264-4 §4.2.3 wymaga <strong>6 bar/24h</strong>. Brak próby to utrata gwarancji na rury i potężne ryzyko finansowe. Koszt skucia i odtworzenia zalanego jastrychu w domu 150m&sup2; wynosi średnio <strong>18 000–26 000 zł</strong>. Protokół z próby bezwzględnie podpisuje kierownik budowy.
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <span>Jaki rozstaw rur przy pompie ciepła 35/30°C?</span>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    Przy płytkach ceramicznych (opór R=0,01) wystarczy rozstaw <strong>15 cm</strong> w głównej strefie pomieszczenia i <strong>10 cm</strong> w strefie brzegowej (do 1 m od okna). Jeśli planujesz panele (R=0,12), musisz zagęścić układ i zejść do rozstawu <strong>10–12,5 cm</strong>. Tylko to utrzyma &Delta;T=5K i odda wymaganą moc 55–65 W/m&sup2;.
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <span>Ile pętli ułożyć w salonie o powierzchni 35m²?</span>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    Wymagane są <strong>minimum 3 pętle</strong> po 75–85 metrów długości każba. Jeżeli wykonawca spróbuje ułożyć jedną pętlę rzędu 110 m, odczujesz różnicę temperatur 3–4°C na samej podłodze. Przy zapotrzebowaniu Q=2,1 kW i &Delta;T=5K przepływ całkowity wynosi m=0,362 m&sup3;/h, co daje optymalne <strong>2,0 l/min na pojedynczą pętlę</strong> w rozdzielaczu.
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <span>Czy potrzebny jest projekt do podłogówki?</span>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    <strong>Tak.</strong> Bez dokładnego OZC nie znasz mocy, jakiej potrzebuje dom, a bez obliczeń hydraulicznych nie dobierzesz właściwie pompy ani nie wyregulujesz rotametrów. Na pytanie: <a href="https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/" target="_blank" rel="noreferrer noopener">czy do ogrzewania podłogowego potrzebny jest projekt</a> – najlepszą odpowiedzią jest matematyka. Inwestycja rzędu <strong>499 zł</strong> w projekt skutecznie chroni Twój budżet <strong>45 000–65 000 zł</strong>, który wydajesz na instalację.
                </div>
            </div>
        </div>

    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // --- OCHRONA DOMENY ---
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowedDomains.includes(domain)) {
        const appContainer = document.getElementById('faq-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; margin-bottom: 20px; display:block;">🔒</span><p style="margin-top:0;">Treść chroniona prawem autorskim</p><p>Własność Projekt-Ogrzewania.pl</p></div>';
            return; 
        }
    }

    // --- LOGIKA AKORDEONU FAQ ---
    const faqItems = document.querySelectorAll('.faq-item');

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

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

            // Najpierw zamknij wszystkie otwarte
            faqItems.forEach(otherItem => {
                otherItem.classList.remove('active');
                otherItem.querySelector('.faq-answer').style.maxHeight = null;
            });

            // Jeżeli kliknięty nie był aktywny, otwórz go
            if (!isActive) {
                item.classList.add('active');
                answer.style.maxHeight = answer.scrollHeight + "px";
            }
        });
    });
});
</script>



<style>
:root {
    --sum-bg-gradient: linear-gradient(145deg, #1e293b 0%, #0f172a 100%);
    --sum-text: #f8fafc;
    --sum-accent: #dc2626; /* Czerwony akcent ostrzegawczy */
    --sum-danger: #ef4444;
    --sum-warning: #f59e0b;
    --sum-success: #10b981;
}

.premium-summary-box {
    max-width: 950px;
    margin: 60px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--sum-bg-gradient);
    border-radius: 24px;
    box-shadow: 0 30px 60px -15px rgba(0, 0, 0, 0.4);
    border: 1px solid #334155;
    overflow: hidden;
    color: var(--sum-text);
    position: relative;
}

/* Subtelny szum / poświata w tle */
.premium-summary-box::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(220, 38, 38, 0.05) 0%, transparent 60%);
    z-index: 0;
    pointer-events: none;
}

.summary-content {
    position: relative;
    z-index: 1;
    padding: 50px;
}

.summary-header {
    text-align: center;
    margin-bottom: 35px;
}

.summary-icon {
    font-size: 56px;
    line-height: 1;
    margin-bottom: 20px;
    display: inline-block;
    filter: drop-shadow(0 4px 6px rgba(0,0,0,0.3));
}

.summary-header h2 {
    margin: 0 0 15px 0;
    font-size: 32px;
    font-weight: 900;
    color: #ffffff;
    letter-spacing: -0.5px;
}

.summary-text {
    font-size: 16px;
    line-height: 1.8;
    color: #cbd5e1;
    text-align: center;
    max-width: 800px;
    margin: 0 auto 30px auto;
}

.summary-text strong {
    color: #ffffff;
    font-weight: 700;
}

/* WIZUALNA WAGA RYZYKA */
.risk-scale-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin: 40px 0;
}

.risk-card {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 16px;
    padding: 30px;
    text-align: center;
    transition: transform 0.3s ease;
}

.risk-card:hover {
    transform: translateY(-5px);
    background: rgba(255, 255, 255, 0.05);
}

.risk-card.bad-choice {
    border-bottom: 4px solid var(--sum-danger);
}

.risk-card.good-choice {
    border-bottom: 4px solid var(--sum-success);
}

.risk-label {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-weight: 800;
    margin-bottom: 15px;
    display: block;
}

.bad-choice .risk-label { color: #fca5a5; }
.good-choice .risk-label { color: #6ee7b7; }

.risk-value {
    font-size: 36px;
    font-weight: 900;
    color: #ffffff;
    margin-bottom: 10px;
    display: block;
}

.risk-desc {
    font-size: 14px;
    color: #94a3b8;
    line-height: 1.5;
    margin: 0;
}

/* CTA BUTTONS */
.summary-actions {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 40px;
    flex-wrap: wrap;
}

.sum-btn {
    padding: 16px 32px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.sum-btn-primary {
    background: var(--sum-accent);
    color: #ffffff !important;
    box-shadow: 0 10px 20px -5px rgba(220, 38, 38, 0.5);
    border: 1px solid #f87171;
}

.sum-btn-primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(220, 38, 38, 0.6);
    background: #b91c1c;
}

@media (max-width: 768px) {
    .summary-content { padding: 40px 25px; }
    .risk-scale-grid { grid-template-columns: 1fr; gap: 15px; }
    .summary-actions { flex-direction: column; width: 100%; gap: 15px; }
    .sum-btn { justify-content: center; width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Podsumowanie: Błędy na budowie kosztują więcej niż projekt",
    "abstract": "Brak próby ciśnieniowej, ignorowanie normy PN-EN 1264 i układanie pętli powyżej 100 m to najdroższe błędy wykonawcze. Pozorna oszczędność na projekcie OZC regularnie kończy się wielotysięcznymi stratami po wylaniu jastrychu.",
    "license": "https://projekt-ogrzewania.pl/",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Analiza ryzyka błędów wykonawczych w podłogówce",
    "description": "Zestawienie porównawcze: oszczędność na projekcie i procedurach (499 zł) versus koszty naprawy skutków takich jak wycieki czy pęknięcia jastrychu (do 26 000 zł).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  }
]
</script>

<div class="premium-summary-box" id="summary-app-lock">
    <div class="summary-content">
        
        <div class="summary-header">
            <span class="summary-icon">🏗️</span>
            <h2>Podsumowanie: Beton nie wybacza pośpiechu</h2>
        </div>

        <p class="summary-text">
            Ogrzewanie podłogowe to system naczyń połączonych, gdzie fizyka nie uznaje kompromisów. Każde odchylenie od wyliczeń OZC – cieńszy styropian, pętla o długości 140 m zamiast 90 m czy rezygnacja z dylatacji – to problem, który <strong>zostanie zalany betonem i uderzy w Twój portfel podczas pierwszych mrozów.</strong> Projekt to nie tylko kartka papieru, to Twoja polisa ubezpieczeniowa na instalację wartą kilkadziesiąt tysięcy złotych.
        </p>

        <div class="risk-scale-grid">
            <div class="risk-card bad-choice">
                <span class="risk-label">Fałszywa Oszczędność</span>
                <span class="risk-value">499 zł</span>
                <p class="risk-desc">Tyle rzekomo zaoszczędzisz ignorując obliczenia OZC i projekt. Kończy się to wylewaniem jastrychu bez próby ciśnieniowej i ryzykiem skucia podłogi, co kosztuje średnio <strong>od 18 000 do 26 000 zł</strong>.</p>
            </div>
            <div class="risk-card good-choice">
                <span class="risk-label">Ochrona Budżetu</span>
                <span class="risk-value">65 000 zł</span>
                <p class="risk-desc">Tyle wynosi budżet na całą instalację, który skutecznie <strong>chronisz, egzekwując od wykonawcy zgodność z projektem</strong>, normą PN-EN 1264 i protokołem z 45-minutowej próby szczelności.</p>
            </div>
        </div>

        <p class="summary-text">
            Traktuj powyższe punkty jako twardą <strong>listę kontrolną dla kierownika budowy i ekipy wylewkowej</strong>. Zanim wjedzie pompa z jastrychem, instalacja musi być pod ciśnieniem 6 bar, taśmy brzegowe muszą być na swoim miejscu, a każdy rotametr wyregulowany ściśle według tabeli z projektu.
        </p>

        <div class="summary-actions">
            <a href="https://projekt-ogrzewania.pl/blog/" class="sum-btn sum-btn-primary">
                📖 CZYTAJ WIĘCEJ PORADNIKÓW NA BLOGU
            </a>
        </div>

    </div>

    <noscript>
        <div style="padding: 30px; background: #0f172a; border-top: 1px solid #334155; font-family: sans-serif; color: #cbd5e1;">
            <h3 style="color: #ffffff; margin-top: 0;">Analiza ryzyka błędów instalacyjnych</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left; margin-bottom: 20px;">
                <thead>
                    <tr style="border-bottom: 2px solid #334155;">
                        <th style="padding: 10px 0; color: #94a3b8;">Błąd na budowie</th>
                        <th style="padding: 10px 0; color: #94a3b8;">Pozorna oszczędność</th>
                        <th style="padding: 10px 0; color: #94a3b8;">Realne koszty usunięcia awarii</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #1e293b;">
                        <td style="padding: 10px 0; font-weight: bold;">Brak próby ciśnieniowej</td>
                        <td style="padding: 10px 0; color: #ef4444;">45 minut pracy ekipy</td>
                        <td style="padding: 10px 0;">23 400 PLN (skucie i odtworzenie 42m²)</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #1e293b;">
                        <td style="padding: 10px 0; font-weight: bold;">Brak projektu (OZC)</td>
                        <td style="padding: 10px 0; color: #ef4444;">~499 PLN</td>
                        <td style="padding: 10px 0;">Zimne strefy, wysokie koszty eksploatacji (spadek COP)</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">Brak dylatacji brzegowej</td>
                        <td style="padding: 10px 0; color: #ef4444;">~3 PLN / mb taśmy</td>
                        <td style="padding: 10px 0;">4 600 PLN (frezowanie, żywicowanie pęknięć)</td>
                    </tr>
                </tbody>
            </table>
            <p style="font-size: 13px; line-height: 1.6;">
                Samodzielne wprowadzanie zmian na etapie montażu to zadanie inżynierskie. Błędy hydrauliczne (za długie pętle) i konstrukcyjne (zbyt cienki styropian wg WT2021) stają się nieodwracalne po wylaniu betonu.
            </p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('summary-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div><p>Ten moduł jest własnością Projekt-Ogrzewania.pl</p></div>';
        }
    }
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/">Najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Strefa brzegowa (obwodowa) w ogrzewaniu podłogowym.</title>
		<link>https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 27 Jan 2026 10:30:35 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Normy techniczne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady techniczne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Projekty instalacji]]></category>
		<category><![CDATA[Projekty ogrzewania]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pn-en 1264]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[rozstaw rur]]></category>
		<category><![CDATA[straty ciepła]]></category>
		<category><![CDATA[strefa brzegowa]]></category>
		<category><![CDATA[strefa obwodowa]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3328</guid>

					<description><![CDATA[<p>Strefa brzegowa (obwodowa) w ogrzewaniu podłogowym to jeden z tych elementów instalacji, które decydują o realnym komforcie cieplnym w domu, a jednocześnie są często bagatelizowane. Właściwie zaprojektowana strefa przy ścianach zewnętrznych i przeszkleniach pozwala wyrównać temperaturę w pomieszczeniu, ograniczyć straty ciepła i obniżyć zużycie energii. W artykule wyjaśniamy, czym jest strefa brzegowa, dlaczego ma kluczowe znaczenie w nowoczesnym budownictwie oraz jak ją poprawnie zaprojektować zgodnie z normami i praktyką instalacyjną.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/">Strefa brzegowa (obwodowa) w ogrzewaniu podłogowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Strefa brzegowa (obwodowa) w ogrzewaniu podłogowym</strong> to kluczowy element systemów grzewczych, który zapewnia równomierny rozkład ciepła w pomieszczeniach narażonych na większe straty termiczne. W dzisiejszych domach i budynkach, gdzie efektywność energetyczna odgrywa pierwszoplanową rolę, zrozumienie roli tej strefy pozwala na optymalne projektowanie instalacji, redukując zużycie energii i zwiększając komfort mieszkańców. W tym artykule przyjrzymy się bliżej, czym jest strefa brzegowa, dlaczego jest niezbędna i jak ją prawidłowo zaprojektować, opierając się na normach i praktycznych przykładach.</p>



<h2 class="wp-block-heading">Co to jest strefa brzegowa w ogrzewaniu podłogowym?</h2>



<p class="wp-block-paragraph">Strefa brzegowa, zwana również obwodową lub krawędziową, to specjalny pas podłogi przylegający do ścian zewnętrznych, dużych okien, drzwi balkonowych lub innych elementów budynku, gdzie występują zwiększone straty ciepła. W tym obszarze <a href="https://projekt-ogrzewania.pl/category/rury-do-ogrzewania/">rury</a> grzewcze układane są gęściej niż w centralnej części pomieszczenia, co pozwala na wyrównanie temperatury i uniknięcie uczucia chłodu przy przegrodach zewnętrznych.</p>



<p class="wp-block-paragraph">W praktyce, <strong>strefa obwodowa</strong> działa jak bufor termiczny. Podczas gdy w środku pokoju podłoga może być ogrzewana równomiernie, przy ścianach zewnętrznych infiltracja zimnego powietrza lub mostki termiczne powodują szybsze wychładzanie. Gęstsze ułożenie rur – zazwyczaj co 5-10 cm – zwiększa moc grzewczą na metr kwadratowy, osiągając nawet 100 W/m², w porównaniu do 50-80 W/m² w strefie podstawowej.</p>



<p class="wp-block-paragraph">Przykładowo, w typowym salonie o powierzchni 20 m² z oknami na jednej ścianie, strefa brzegowa może obejmować pas o szerokości 1 metra wzdłuż tej ściany, co daje około 4-6 m² powierzchni wymagającej intensywnego ogrzewania. Bez niej, temperatura podłogi przy oknie mogłaby spaść o 3-5°C, co odczuwalnie obniżyłoby komfort.</p>



<h3 class="wp-block-heading">Fizyczne podstawy działania strefy obwodowej.</h3>



<p class="wp-block-paragraph">Z punktu widzenia fizyki, ogrzewanie podłogowe opiera się na promieniowaniu i konwekcji ciepła. W strefie brzegowej kluczowe jest kompensowanie strat ciepła przez przegrody zewnętrzne, obliczone według normy PN-EN 12831. Straty te zależą od izolacji ścian (współczynnik U), powierzchni okien i warunków zewnętrznych.</p>



<p class="wp-block-paragraph">Na przykład, w budynku z dobrze izolowanymi ścianami (U=0,2 W/m²K), straty przy temperaturze zewnętrznej -15°C mogą wynosić 80-100 W/m² w obszarze brzegowym. Gęstsze rury pozwalają na podniesienie temperatury podłogi do 35°C (maksymalna dopuszczalna w tej strefie według <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">PN-EN 1264</a>), co wyrównuje gradient temperaturowy.</p>



<h2 class="wp-block-heading">Dlaczego strefa brzegowa jest ważna w ogrzewaniu podłogowym?</h2>



<p class="wp-block-paragraph">Bez odpowiednio zaprojektowanej <strong>strefy obwodowej w ogrzewaniu podłogowym</strong>, system może być nieefektywny, prowadząc do nierównomiernego ogrzewania i wyższego zużycia energii. Norma PN-EN 1264 podkreśla, że strefa ta jest obowiązkowa w pomieszczeniach z przegrodami zewnętrznymi, aby zapewnić komfort termiczny.</p>



<p class="wp-block-paragraph">Oto kluczowe powody:</p>



<ul class="wp-block-list">
<li><strong>Kompensacja strat ciepła</strong>: W obszarach brzegowych straty mogą być dwukrotnie wyższe niż w centrum. Przykładowo, przy oknie o powierzchni 4 m² bez strefy, temperatura powietrza przy podłodze mogłaby spaść do 18°C, mimo 22°C w pokoju.</li>



<li><strong>Poprawa komfortu</strong>: Ludzie odczuwają chłód przy ścianach – strefa brzegowa eliminuje to, utrzymując temperaturę podłogi na poziomie 29-35°C.</li>



<li><strong>Efektywność energetyczna</strong>: Optymalne ułożenie rur redukuje pracę kotła lub <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompy ciepła</a> o 10-15%. W budynku o powierzchni 100 m² z pompą ciepła, brak strefy mógłby zwiększyć rachunki o 200-300 zł rocznie.</li>



<li><strong>Zgodność z normami</strong>: Brak strefy może unieważnić gwarancję systemu i nie spełnić wymagań budowlanych.</li>
</ul>



<p class="wp-block-paragraph">W kontekście nowoczesnych budynków pasywnych, strefa brzegowa pozwala na integrację z niskotemperaturowymi źródłami ciepła, jak pompy ciepła, gdzie temperatura zasilania to zaledwie 35-40°C.</p>



<h2 class="wp-block-heading">Projektowanie strefy brzegowej w ogrzewaniu podłogowym.</h2>



<p class="wp-block-paragraph"><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Projekt ogrzewania podłogowego</a> w kontekście tego artykułu to proces, który zaczyna się od obliczenia strat ciepła (OZC) dla każdego pomieszczenia, zgodnie z PN-EN 12831. Następnie definiuje się strefę brzegową, biorąc pod uwagę geometrię budynku, izolację i zapotrzebowanie na ciepło. To nie tylko techniczne wyliczenia, ale także dostosowanie do potrzeb użytkownika – na przykład w domu z dużymi przeszkleniami, strefa musi być szersza, aby zapobiec kondensacji pary wodnej na oknach.</p>



<p class="wp-block-paragraph">W praktyce, <a href="https://projekt-ogrzewania.pl/kontakt/">projektant</a> używa oprogramowania do symulacji termicznej, aby określić optymalny rozstaw rur i długość obwodów. Na przykład, dla pomieszczenia 15 m² z oknem, projekt może obejmować strefę brzegową o powierzchni 3 m² z rozstawem 10 cm, podłączoną do rozdzielacza z regulacją przepływu.</p>



<h3 class="wp-block-heading">Parametry projektowe strefy obwodowej.</h3>



<p class="wp-block-paragraph">Kluczowe parametry to:</p>



<ul class="wp-block-list">
<li><strong>Szerokość strefy</strong>: Zazwyczaj 0,5-1,5 m, najczęściej 1 m. Zależy od strat ciepła – w słabo izolowanym budynku może być szersza.</li>



<li><strong>Rozstaw rur</strong>: 5-10 cm w brzegowej, 10-20 cm w podstawowej. Dla pomp ciepła zalecany gęstszy rozstaw (10-15 cm) dla lepszej efektywności.</li>



<li><strong>Długość obwodu</strong>: Nie więcej niż 100-120 m, aby uniknąć spadków ciśnienia. Często strefa brzegowa to osobny obwód.</li>
</ul>



<p class="wp-block-paragraph">Przykładowe obliczenia według PN-EN 1264: Dla strefy brzegowej o stratach 100 W/m², przy rozstawie 10 cm i temperaturze zasilania 45°C, moc grzewcza q = 99,38 W/m², Δθ_H = 29,72°C.</p>



<h3 class="wp-block-heading">Układy rur w strefie brzegowej.</h3>



<p class="wp-block-paragraph">Wybór układu wpływa na równomierność ogrzewania:</p>



<ul class="wp-block-list">
<li><strong><a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/">Układ meandrowy (wężowy)</a></strong>: Rury biegną zygzakiem. Prosty w montażu, ale może powodować różnice temperatur do 5°C. Zalecany w małych pomieszczeniach, np. łazience.</li>



<li><strong><a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/">Układ spiralny (ślimakowy)</a></strong>: Rury przeplatają się, minimalizując gradienty do 2°C. Idealny do dużych salonów z strefą brzegową.</li>
</ul>



<p class="wp-block-paragraph">Przykładowo, w układzie spiralnym strefa brzegowa integruje się z główną pętlą, zaczynając od zewnętrznej ściany.</p>



<h2 class="wp-block-heading">Przykłady obliczeń i wyliczenia w strefie obwodowej.</h2>



<p class="wp-block-paragraph">Rozważmy pomieszczenie 23,5 m² z oknami: Straty ciepła 100 W/m² w brzegowej (8,76 m²), 60 W/m² w bytowej (14,74 m²).</p>



<p class="wp-block-paragraph">Obliczenia według PN-EN 1264:</p>



<ul class="wp-block-list">
<li>Współczynniki: B0 = 6,7 W/m²K, aB = 0,578, at = 1,156 itd.</li>



<li>Moc: q = 99,38 W/m², qG = 100,49 W/m².</li>



<li>Długość rur: Dla rozstawu 10 cm w brzegowej – około 90 m na obwód.</li>
</ul>



<p class="wp-block-paragraph">Inny przykład: Łazienka 6 m², strefa brzegowa 2 m². Rozstaw 5 cm daje moc 120 W/m², temperatura podłogi 33°C.</p>



<style>
.floor-table-wrap {
  max-width: 960px;
  margin: 40px auto;
  padding: 20px;
  background: #ffffff;
  border-radius: 14px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.08);
  font-family: Arial, sans-serif;
}

.floor-table-wrap h3 {
  text-align: center;
  font-size: 26px;
  margin-bottom: 20px;
}

.floor-table {
  width: 100%;
  border-collapse: collapse;
  overflow: hidden;
}

.floor-table thead {
  background: #f4f6f8;
}

.floor-table th,
.floor-table td {
  padding: 14px 16px;
  text-align: left;
  font-size: 15px;
}

.floor-table th {
  font-weight: 600;
  color: #333;
  border-bottom: 2px solid #e0e0e0;
}

.floor-table td {
  border-bottom: 1px solid #eaeaea;
  color: #444;
}

.floor-table tr:last-child td {
  border-bottom: none;
}

/* Wyróżnienie pierwszej kolumny */
.floor-table td:first-child {
  font-weight: bold;
  color: #000;
}

/* Kolumny liczbowe – wyrównanie */
.floor-table td:nth-child(1),
.floor-table td:nth-child(2),
.floor-table td:nth-child(4) {
  text-align: center;
}

/* Responsywność */
@media (max-width: 768px) {
  .floor-table thead {
    display: none;
  }

  .floor-table,
  .floor-table tbody,
  .floor-table tr,
  .floor-table td {
    display: block;
    width: 100%;
  }

  .floor-table tr {
    margin-bottom: 18px;
    border: 1px solid #e0e0e0;
    border-radius: 10px;
    padding: 10px;
  }

  .floor-table td {
    text-align: right;
    padding: 10px;
    position: relative;
  }

  .floor-table td::before {
    content: attr(data-label);
    position: absolute;
    left: 10px;
    top: 10px;
    font-weight: bold;
    color: #666;
    text-align: left;
  }
}

.floor-table-note {
  margin-top: 16px;
  font-size: 14px;
  color: #666;
  text-align: center;
}
</style>

<div class="floor-table-wrap">
  <h3>Rozstaw rur a moc ogrzewania podłogowego</h3>

  <table class="floor-table">
    <thead>
      <tr>
        <th>Rozstaw rur (cm)</th>
        <th>Moc grzewcza (W/m²)</th>
        <th>Zastosowanie</th>
        <th>Maks. temperatura podłogi (°C)</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td data-label="Rozstaw rur (cm)">5</td>
        <td data-label="Moc grzewcza (W/m²)">100–120</td>
        <td data-label="Zastosowanie">Strefa brzegowa w łazienkach</td>
        <td data-label="Maks. temperatura podłogi (°C)">35</td>
      </tr>
      <tr>
        <td data-label="Rozstaw rur (cm)">10</td>
        <td data-label="Moc grzewcza (W/m²)">80–100</td>
        <td data-label="Zastosowanie">Standardowa strefa obwodowa</td>
        <td data-label="Maks. temperatura podłogi (°C)">35</td>
      </tr>
      <tr>
        <td data-label="Rozstaw rur (cm)">15</td>
        <td data-label="Moc grzewcza (W/m²)">60–80</td>
        <td data-label="Zastosowanie">Strefa podstawowa</td>
        <td data-label="Maks. temperatura podłogi (°C)">29</td>
      </tr>
      <tr>
        <td data-label="Rozstaw rur (cm)">20</td>
        <td data-label="Moc grzewcza (W/m²)">50–70</td>
        <td data-label="Zastosowanie">Duże pomieszczenia</td>
        <td data-label="Maks. temperatura podłogi (°C)">29</td>
      </tr>
    </tbody>
  </table>

  <div class="floor-table-note">
    Tabela pokazuje zależność mocy grzewczej od rozstawu rur przy temperaturze zasilania 40°C.
  </div>
</div>




<p class="wp-block-paragraph">Aby zilustrować rozkład temperatury, poniżej przykładowy wykres liniowy pokazujący gradient w pomieszczeniu ze strefą brzegową. Na wykresie widać, jak gęstsze rury w strefie obwodowej wyrównują temperaturę do poziomu 22-24°C w całym pokoju, w porównaniu do spadku bez strefy.</p>



<p class="wp-block-paragraph">Dane symulowane dla pomieszczenia o szerokości 5 m.</p>



<style>
.floor-chart {
  max-width: 960px;
  margin: 50px auto;
  padding: 30px;
  background: #ffffff;
  border-radius: 14px;
  box-shadow: 0 12px 35px rgba(0,0,0,0.08);
  font-family: Arial, sans-serif;
}

.floor-chart h2 {
  text-align: center;
  font-size: 28px;
  margin-bottom: 6px;
}

.floor-chart p {
  text-align: center;
  font-size: 16px;
  color: #666;
  margin-bottom: 30px;
}

.legend {
  display: flex;
  justify-content: center;
  gap: 32px;
  margin-top: 22px;
  font-size: 15px;
}

.legend span {
  display: flex;
  align-items: center;
  gap: 10px;
}

.legend i {
  width: 30px;
  height: 4px;
  display: inline-block;
}

.no-zone {
  background: #c0392b;
}

.with-zone {
  background: #27ae60;
}
</style>

<div class="floor-chart">
  <h2>Rozkład temperatury przy podłodze</h2>
  <p>Porównanie pomieszczenia bez strefy brzegowej i ze strefą obwodową</p>

  <svg viewBox="0 0 900 420" preserveAspectRatio="xMidYMid meet" style="width:100%; height:auto;">

    <!-- Oś Y -->
    <line x1="90" y1="60" x2="90" y2="360" stroke="#333" stroke-width="2"/>

    <!-- Linie pomocnicze -->
    <line x1="90" y1="100" x2="840" y2="100" stroke="#eee"/>
    <line x1="90" y1="170" x2="840" y2="170" stroke="#eee"/>
    <line x1="90" y1="240" x2="840" y2="240" stroke="#eee"/>
    <line x1="90" y1="310" x2="840" y2="310" stroke="#eee"/>

    <!-- Opisy osi Y -->
    <text x="30" y="105" font-size="14">24°C</text>
    <text x="30" y="175" font-size="14">23°C</text>
    <text x="30" y="245" font-size="14">22°C</text>
    <text x="30" y="315" font-size="14">21°C</text>

    <!-- Linia: bez strefy brzegowej -->
    <polyline
      fill="none"
      stroke="#c0392b"
      stroke-width="4"
      points="
        90,115
        260,150
        430,205
        600,260
        770,315
      "
    />

    <!-- Linia: ze strefą brzegową -->
    <polyline
      fill="none"
      stroke="#27ae60"
      stroke-width="4"
      stroke-dasharray="8,6"
      points="
        90,125
        260,145
        430,165
        600,185
        770,195
      "
    />

  </svg>

  <div class="legend">
    <span><i class="with-zone"></i> Ze strefą obwodową</span>
    <span><i class="no-zone"></i> Bez strefy brzegowej</span>
  </div>
</div>




<h2 class="wp-block-heading">Materiały i wskazówki praktyczne w ogrzewaniu podłogowym ze strefą brzegową.</h2>



<p class="wp-block-paragraph">Do budowy używa się rur <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/">PE-X</a> lub wielowarstwowych (PE-AL-PE), o średnicy 14-20 mm. Izolacja termiczna pod rurami to minimum 0,75 m²K/W nad ogrzewanymi pomieszczeniami.</p>



<p class="wp-block-paragraph">Wskazówki:</p>



<ul class="wp-block-list">
<li>Unikaj rur pod stałą zabudową (szafki, wanna) – marnuje energię.</li>



<li>Integruj z automatyką: Termostaty pokojowe regulują przepływ w strefie brzegowej.</li>



<li>Montaż: Zaczynaj od strefy brzegowej, używając klipsów lub mat systemowych.</li>



<li>Testy: Po ułożeniu, próba ciśnieniowa 6 bar przez 24h.</li>
</ul>



<p class="wp-block-paragraph">W domu jednorodzinnym z pompą ciepła, strefa brzegowa w salonie o szerokości 1 m z rozstawem 10 cm może obniżyć temperaturę zasilania o 5°C, oszczędzając 15% energii.</p>



<h2 class="wp-block-heading">FAQ – najczęstsze pytania.</h2>



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1769506870160"><strong class="schema-faq-question"><strong>Czym jest strefa brzegowa w ogrzewaniu podłogowym?</strong></strong> <p class="schema-faq-answer"> Strefa brzegowa to pas podłogi przy ścianach zewnętrznych lub oknach, gdzie rury grzewcze układane są gęściej (5-10 cm rozstawu), by kompensować większe straty ciepła i zapewnić równomierny rozkład temperatury w pomieszczeniu.</p> </div> <div class="schema-faq-section" id="faq-question-1769506881130"><strong class="schema-faq-question"><strong>Dlaczego strefa obwodowa jest obowiązkowa według norm?</strong></strong> <p class="schema-faq-answer">Norma PN-EN 1264 wymaga strefy brzegowej w pomieszczeniach z przegrodami zewnętrznymi, aby uniknąć nierównomiernego ogrzewania, poprawić komfort i zgodność z wymaganiami budowlanymi – brak jej może unieważnić gwarancję systemu.</p> </div> <div class="schema-faq-section" id="faq-question-1769506936757"><strong class="schema-faq-question"><strong>Jak obliczyć szerokość strefy brzegowej?</strong></strong> <p class="schema-faq-answer">Szerokość zazwyczaj wynosi 0,5-1,5 m (najczęściej 1 m) i zależy od strat ciepła obliczonych według <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">PN-EN 12831</a>. Na przykład w budynku z oknami i stratami 100 W/m², strefa obejmuje pas 1 m wzdłuż ściany zewnętrznej.</p> </div> <div class="schema-faq-section" id="faq-question-1769507005593"><strong class="schema-faq-question"><strong>Jaki układ rur jest najlepszy w strefie obwodowej?</strong></strong> <p class="schema-faq-answer">Układ spiralny (ślimakowy) jest idealny, bo minimalizuje różnice temperatur do 2°C i integruje się z główną pętlą. Meandrowy (wężowy) sprawdza się w małych pomieszczeniach, jak łazienka, ale może powodować gradienty do 5°C.</p> </div> <div class="schema-faq-section" id="faq-question-1769507012065"><strong class="schema-faq-question"><strong>Czy strefa brzegowa oszczędza energię?</strong></strong> <p class="schema-faq-answer">Tak, optymalne ułożenie rur redukuje pracę kotła lub pompy ciepła o 10-15%, co w budynku 100 m² może obniżyć rachunki o 200-300 zł rocznie, dzięki wyrównaniu strat ciepła i niższej temperaturze zasilania.</p> </div> </div>



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



<p class="wp-block-paragraph">Podsumowując, strefa brzegowa w ogrzewaniu podłogowym to nie tylko techniczny detal, ale podstawa komfortu termicznego i oszczędności energii, pozwalająca na efektywne wykorzystanie ciepła w newralgicznych miejscach budynku. Prawidłowy projekt, uwzględniający normy i indywidualne potrzeby, zapewnia lata bezproblemowej eksploatacji bez awarii czy nadmiernego zużycia. Jeśli planujesz instalację, skonsultuj się z certyfikowanym specjalistą – to inwestycja, która szybko się zwraca dzięki niższym rachunkom i wyższemu komfortowi codziennego życia.</p>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-projekt-ogrzewania wp-block-embed-projekt-ogrzewania"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="8xSUSiRO38"><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Projekt instalacji ogrzewania podłogowego &#8211; podłogówki</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8222;Projekt instalacji ogrzewania podłogowego &#8211; podłogówki&#8221; &#8212; Projekt Ogrzewania" src="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/embed/#?secret=rP6MGZ0Zdh#?secret=8xSUSiRO38" data-secret="8xSUSiRO38" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/">Strefa brzegowa (obwodowa) w ogrzewaniu podłogowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PN-EN 1264: Norma, która definiuje ogrzewanie podłogowe.</title>
		<link>https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 24 Jan 2026 10:01:13 +0000</pubDate>
				<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Instalacje hydrauliczne]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Normy grzewcze]]></category>
		<category><![CDATA[Normy techniczne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Projektowanie systemów grzewczych]]></category>
		<category><![CDATA[Projekty instalacji]]></category>
		<category><![CDATA[Projekty instalacyjne]]></category>
		<category><![CDATA[Projekty ogrzewania]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[moc grzewcza]]></category>
		<category><![CDATA[normy budowlane]]></category>
		<category><![CDATA[ogrzewanie niskotemperaturowe]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pn-en 1264]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[rozstaw rur]]></category>
		<category><![CDATA[temperatura podłogi]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3288</guid>

					<description><![CDATA[<p>Wodne ogrzewanie podłogowe to dziś standard komfortu, ale jego skuteczność nie bierze się z przypadku. Kluczową rolę odgrywa norma PN-EN 1264, która precyzyjnie określa zasady projektowania, obliczania mocy oraz wykonania instalacji powierzchniowych. W artykule wyjaśniamy, czym dokładnie jest PN-EN 1264, jak wpływa na dobór rozstawu rur, temperatury zasilania i pokrycia podłogi oraz dlaczego jej znajomość jest niezbędna zarówno dla projektantów, jak i świadomych inwestorów. To praktyczny przewodnik po normie, który pokazuje teorię w realnych przykładach.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">PN-EN 1264: Norma, która definiuje ogrzewanie podłogowe.</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-bg: #eff6ff;
    --rk-hero-emerald: #059669;
    --rk-hero-emerald-bg: #ecfdf5;
    --rk-hero-amber: #d97706;
    --rk-hero-amber-bg: #fffbeb;
    --rk-hero-bg: #ffffff;
    --rk-hero-gray: #f8fafc;
    --rk-hero-border: #e2e8f0;
    --rk-hero-text: #334155;
}

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

/* Sekcja Główna - Split Layout */
.rk-hero-split {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    background: var(--rk-hero-dark);
}

.rk-hero-left {
    padding: 50px 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-hero-badge {
    align-self: flex-start;
    background: rgba(255, 255, 255, 0.1);
    color: #cbd5e1;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 20px;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.rk-hero-left h2 {
    font-size: 34px;
    font-weight: 900;
    color: #ffffff;
    margin: 0 0 20px 0;
    line-height: 1.2;
    letter-spacing: -1px;
}

.rk-hero-hook {
    font-size: 18px;
    line-height: 1.6;
    color: #94a3b8;
    margin: 0;
    font-weight: 500;
}

.rk-hero-hook strong {
    color: var(--rk-hero-amber);
    font-weight: 800;
}

.rk-hero-right {
    padding: 50px 40px;
    background: #1e293b;
    display: flex;
    align-items: center;
}

/* Karta Szybkiej Odpowiedzi (SGE / AI) */
.rk-hero-qa-card {
    background: var(--rk-hero-emerald-bg);
    border-left: 5px solid var(--rk-hero-emerald);
    padding: 30px;
    border-radius: 0 16px 16px 0;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.3);
}

.rk-hero-qa-title {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--rk-hero-emerald);
    font-weight: 900;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 12px;
}

.rk-hero-qa-text {
    font-size: 16px;
    line-height: 1.7;
    color: #064e3b;
    margin: 0;
    font-weight: 600;
}

.rk-hero-qa-text strong {
    color: #022c22;
    background: rgba(16, 185, 129, 0.2);
    padding: 2px 4px;
    border-radius: 4px;
}

/* Blok Tekstu Bazowego */
.rk-hero-content {
    padding: 40px 50px;
    background: var(--rk-hero-bg);
}

.rk-hero-content p {
    font-size: 17px;
    line-height: 1.8;
    color: var(--rk-hero-text);
    margin: 0 0 20px 0;
}

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

.rk-hero-content a {
    color: var(--rk-hero-blue);
    font-weight: 800;
    text-decoration: none;
    border-bottom: 2px solid var(--rk-hero-blue-bg);
}

.rk-hero-content a:hover {
    border-bottom-color: var(--rk-hero-blue);
}

/* Interaktywny Wybór Profilu */
.rk-hero-interactive {
    padding: 0 50px 40px;
    background: var(--rk-hero-bg);
}

.rk-hero-int-header {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-hero-dark);
    margin: 0 0 20px 0;
    text-align: center;
}

.rk-hero-roles {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 30px;
}

.rk-hero-role-btn {
    background: var(--rk-hero-gray);
    border: 2px solid var(--rk-hero-border);
    border-radius: 16px;
    padding: 20px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 15px;
    text-align: left;
}

/* Stany aktywne (Brak animacji, natychmiastowa zmiana) */
.rk-hero-role-btn:hover {
    border-color: #94a3b8;
}

.rk-hero-role-btn.active {
    background: var(--rk-hero-blue-bg);
    border-color: var(--rk-hero-blue);
}

.rk-hero-role-icon {
    width: 48px;
    height: 48px;
    background: #ffffff;
    border: 1px solid var(--rk-hero-border);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-hero-slate);
}

.rk-hero-role-btn.active .rk-hero-role-icon {
    background: var(--rk-hero-blue);
    border-color: var(--rk-hero-blue);
    color: #ffffff;
}

.rk-hero-role-text h4 {
    margin: 0 0 4px 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-hero-dark);
}

.rk-hero-role-text p {
    margin: 0;
    font-size: 13px;
    color: #64748b;
    font-weight: 600;
}

.rk-hero-role-btn.active .rk-hero-role-text h4 {
    color: var(--rk-hero-blue);
}

/* Widoki treści */
.rk-hero-view {
    display: none;
    background: var(--rk-hero-gray);
    border: 1px solid var(--rk-hero-border);
    border-radius: 16px;
    padding: 30px;
}

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

.rk-hero-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-hero-list li {
    font-size: 15px;
    font-weight: 600;
    color: var(--rk-hero-text);
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px;
    background: #ffffff;
    border-radius: 10px;
    border: 1px solid var(--rk-hero-border);
}

.rk-hero-list-icon {
    color: var(--rk-hero-blue);
    flex-shrink: 0;
    margin-top: 2px;
}

/* Alert z narzędziami */
.rk-hero-tools {
    background: var(--rk-hero-dark);
    padding: 25px 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
}

.rk-hero-tools-badge {
    background: var(--rk-hero-accent);
    color: var(--rk-hero-dark);
    font-size: 11px;
    font-weight: 900;
    padding: 4px 8px;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-hero-tools-text {
    color: #ffffff;
    font-size: 15px;
    font-weight: 600;
    margin: 0;
}

@media (max-width: 768px) {
    .rk-hero-split { grid-template-columns: 1fr; }
    .rk-hero-left, .rk-hero-right { padding: 35px 25px; }
    .rk-hero-qa-card { border-radius: 12px; border-left: none; border-top: 5px solid var(--rk-hero-emerald); }
    .rk-hero-content { padding: 30px 25px; }
    .rk-hero-interactive { padding: 0 25px 30px; }
    .rk-hero-roles { grid-template-columns: 1fr; gap: 15px; }
    .rk-hero-view { padding: 20px; }
    .rk-hero-list { grid-template-columns: 1fr; }
    .rk-hero-tools { padding: 25px; flex-direction: column; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "PN-EN 1264: Norma, która definiuje wodne ogrzewanie podłogowe",
    "description": "Zalewasz rury betonem bez projektu? Poznaj wymogi normy PN-EN 1264 i oblicz parametry instalacji z naszymi interaktywnymi kalkulatorami 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-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-fundamenty",
    "name": "Kluczowe Parametry Metodologiczne PN-EN 1264",
    "description": "Zbiór podstawowych definicji i wymogów technologicznych definiujących prawidłowe projektowanie i wykonywanie wbudowanych systemów płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "pn-en 1264 norma ogrzewanie podłogowe",
      "wodne ogrzewanie podłogowe",
      "niskotemperaturowy system płaszczyznowy",
      "limity temperatur posadzki",
      "procedury odbiorcze podłogówki"
    ],
    "measurementTechnique": "Określenie twardych danych i procedur inżynieryjnych na podstawie normy europejskiej PN-EN 1264.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System: Niskotemperaturowy płaszczyznowy",
        "Główne wytyczne: Procedury obliczeniowe i rygorystyczne limity temperatur",
        "Skutki braku zgodności: Wady hydrauliczne, niedogrzanie, zniszczenie wylewki",
        "Dla kogo: Inżynierowie, instalatorzy i świadomi inwestorzy"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-nawigator",
    "name": "Nawigator Tematyczny dla Inwestora i Instalatora",
    "description": "Interaktywny moduł przełączający pozwalający użytkownikowi spersonalizować ścieżkę nauki normy PN-EN 1264 w zależności od jego roli na budowie.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-hero-container" id="rk-wstep-widget">
    
    <div class="rk-hero-split">
        <div class="rk-hero-left">
            <div class="rk-hero-badge">Kompendium Inżynieryjne</div>
            <h2>PN-EN 1264: Norma, która definiuje wodne ogrzewanie podłogowe</h2>
            <p class="rk-hero-hook">
                Zalewasz rury betonem i modlisz się, żeby zimą było ciepło? Wykonywanie instalacji <strong>na &#8222;oko&#8221; to najdroższa loteria</strong> na budowie. Dowiedz się, dlaczego fizyki nie da się oszukać.
            </p>
        </div>
        <div class="rk-hero-right">
            <div class="rk-hero-qa-card">
                <div class="rk-hero-qa-title">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="20 6 9 17 4 12"></polyline></svg>
                    Szybka odpowiedź eksperta
                </div>
                <p class="rk-hero-qa-text">
                    Norma PN-EN 1264 to europejski kodeks techniczny określający zasady projektowania i montażu wodnych instalacji płaszczyznowych. Jej <strong>głównym celem jest zapewnienie komfortu cieplnego</strong> poprzez matematyczne wyznaczenie oporów rur, rozstawu pętli oraz rygorystycznych limitów temperatur posadzki (np. max 29°C w salonie).
                </p>
            </div>
        </div>
    </div>

    <div class="rk-hero-content">
        <p>
            Wodne ogrzewanie podłogowe to <a href="https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/">niskotemperaturowy system płaszczyznowy</a>, którego parametry pracy, wydajność cieplną oraz kryteria montażowe ściśle definiuje europejska norma <strong>PN-EN 1264</strong>. Dokument ten stanowi jedyny oficjalny fundament metodologiczny dla inżynierów i instalatorów w Polsce, określając precyzyjne procedury obliczeniowe oraz rygorystyczne limity temperatur powierzchni posadzki.
        </p>
        <p>
            Brak znajomości tej normy podczas realizacji inwestycji prowadzi bezpośrednio do wad hydraulicznych, niedogrzania budynku lub zniszczenia warstw wykończeniowych podłogi. Jako projektant z wieloletnim doświadczeniem, w tym artykule rozłożę normę PN-EN 1264 na czynniki pierwsze, pokazując twarde dane, wzory, <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">procedury przygotowania wylewki</a> i zasady odbiorcze.
        </p>
    </div>

    <div class="rk-hero-interactive">
        <h3 class="rk-hero-int-header">Przewodnik po artykule. Wybierz swój profil:</h3>
        
        <div class="rk-hero-roles" id="rkHeroRoles">
            <button class="rk-hero-role-btn active" data-target="inwestor">
                <div class="rk-hero-role-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="16"></line><line x1="8" y1="12" x2="16" y2="12"></line></svg>
                </div>
                <div class="rk-hero-role-text">
                    <h4>Dla Inwestora</h4>
                    <p>Ochrona budżetu i zdrowia</p>
                </div>
            </button>
            <button class="rk-hero-role-btn" data-target="instalator">
                <div class="rk-hero-role-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path></svg>
                </div>
                <div class="rk-hero-role-text">
                    <h4>Dla Instalatora</h4>
                    <p>Twarde dane i wzory</p>
                </div>
            </button>
        </div>

        <div class="rk-hero-view active" id="view-inwestor">
            <ul class="rk-hero-list">
                <li>
                    <svg class="rk-hero-list-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="9 18 15 12 9 6"></polyline></svg>
                    Dlaczego układanie rur &#8222;z głowy&#8221; rujnuje budżet po zalaniu betonu.
                </li>
                <li>
                    <svg class="rk-hero-list-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="9 18 15 12 9 6"></polyline></svg>
                    Maksymalne dopuszczalne temperatury posadzki ze względów medycznych.
                </li>
                <li>
                    <svg class="rk-hero-list-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="9 18 15 12 9 6"></polyline></svg>
                    Kto na placu budowy ponosi odpowiedzialność prawną za błędy.
                </li>
                <li>
                    <svg class="rk-hero-list-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="9 18 15 12 9 6"></polyline></svg>
                    Skutki braku profesjonalnej, ciśnieniowej próby szczelności.
                </li>
            </ul>
        </div>

        <div class="rk-hero-view" id="view-instalator">
            <ul class="rk-hero-list">
                <li>
                    <svg class="rk-hero-list-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="9 18 15 12 9 6"></polyline></svg>
                    Fizyczny wzór matematyczny określający jednostkową moc cieplną.
                </li>
                <li>
                    <svg class="rk-hero-list-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="9 18 15 12 9 6"></polyline></svg>
                    Wytyczne dla szczelin dylatacyjnych (limity m2) w oparciu o EN 1264-4.
                </li>
                <li>
                    <svg class="rk-hero-list-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="9 18 15 12 9 6"></polyline></svg>
                    Graniczne opory hydrauliczne obiegu a praca pompy ciepła.
                </li>
                <li>
                    <svg class="rk-hero-list-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="9 18 15 12 9 6"></polyline></svg>
                    Zestawienie oporów (R) dla różnych materiałów wykończeniowych.
                </li>
            </ul>
        </div>
    </div>

    <div class="rk-hero-tools">
        <div class="rk-hero-tools-badge">Odkryj</div>
        <p class="rk-hero-tools-text">
            W dalszej części artykułu znajdziesz interaktywne kalkulatory ułatwiające obliczenia!
        </p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = document.querySelectorAll('#rkHeroRoles .rk-hero-role-btn');
    
    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-target');
            
            // Usunięcie klas aktywnych - bez animacji, twarda zmiana
            btns.forEach(function(b) {
                b.classList.remove('active');
            });
            
            // Bezpieczne ukrywanie widoków (bez użycia &&)
            var viewInwestor = document.getElementById('view-inwestor');
            var viewInstalator = document.getElementById('view-instalator');
            
            if (viewInwestor !== null) { viewInwestor.classList.remove('active'); }
            if (viewInstalator !== null) { viewInstalator.classList.remove('active'); }
            
            // Aktywacja wybranej ścieżki
            this.classList.add('active');
            var activeView = document.getElementById('view-' + targetId);
            
            if (activeView !== null) {
                activeView.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-def-dark: #0f172a;
    --rk-def-blue: #3b82f6;
    --rk-def-blue-light: #eff6ff;
    --rk-def-green: #10b981;
    --rk-def-red: #ef4444;
    --rk-def-gray: #f8fafc;
    --rk-def-border: #e2e8f0;
    --rk-def-text: #334155;
}

.rk-def-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 15px 40px -10px rgba(59, 130, 246, 0.15);
    border: 1px solid var(--rk-def-blue);
    overflow: hidden;
}

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

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

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

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

.rk-def-intro a {
    color: #60a5fa;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Moduł Interaktywny - Status Systemu */
.rk-def-interactive {
    padding: 40px 50px;
    background: var(--rk-def-gray);
}

.rk-def-controls {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    background: #ffffff;
    padding: 10px;
    border-radius: 16px;
    border: 1px solid var(--rk-def-border);
}

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

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

.rk-def-btn.active[data-mode="norma"] {
    background: #ecfdf5;
    border-color: var(--rk-def-green);
    color: #065f46;
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.1);
}

.rk-def-btn.active[data-mode="blad"] {
    background: #fef2f2;
    border-color: var(--rk-def-red);
    color: #991b1b;
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.1);
}

/* Tablica rozdzielcza (Dashboard) */
.rk-def-dashboard {
    background: #ffffff;
    border: 1px solid var(--rk-def-border);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    transition: border-color 0.4s;
}

.rk-def-status-bar {
    display: flex;
    align-items: center;
    gap: 15px;
    padding-bottom: 20px;
    margin-bottom: 25px;
    border-bottom: 1px solid var(--rk-def-border);
}

.rk-def-status-icon {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    transition: background 0.4s;
}

.rk-def-status-text h3 {
    margin: 0 0 5px 0;
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-def-dark);
}

.rk-def-status-text p {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    color: #64748b;
}

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

.rk-def-metric-card {
    background: var(--rk-def-gray);
    padding: 20px;
    border-radius: 16px;
    border: 1px solid var(--rk-def-border);
    text-align: center;
    position: relative;
    overflow: hidden;
    transition: all 0.4s;
}

.rk-def-metric-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: var(--rk-def-border);
    transition: background 0.4s;
}

.rk-def-metric-title {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    color: #64748b;
    margin-bottom: 10px;
}

.rk-def-metric-val {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-def-dark);
    font-family: monospace;
    transition: color 0.4s;
}

.rk-def-metric-desc {
    font-size: 13px;
    color: #475569;
    margin-top: 10px;
    font-weight: 600;
    min-height: 40px;
}

/* Wnioski końcowe pod widgetem */
.rk-def-conclusion {
    padding: 30px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-def-border);
    display: flex;
    gap: 20px;
    align-items: flex-start;
}

.rk-def-conc-icon {
    width: 32px;
    height: 32px;
    color: var(--rk-def-blue);
    flex-shrink: 0;
    margin-top: 5px;
}

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

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

@media (max-width: 768px) {
    .rk-def-header { padding: 35px 25px; }
    .rk-def-header h2 { font-size: 24px; }
    .rk-def-interactive { padding: 30px 20px; }
    .rk-def-controls { flex-direction: column; gap: 10px; }
    .rk-def-metrics { grid-template-columns: 1fr; gap: 15px; }
    .rk-def-metric-desc { min-height: auto; }
    .rk-def-conclusion { padding: 30px 20px; flex-direction: column; align-items: center; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-definicja",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Czym jest norma PN-EN 1264 i dlaczego definiuje standardy ogrzewania podłogowego?",
    "description": "Zharmonizowany standard europejski chroniący przed błędami instalacyjnymi. Dowiedz się, dlaczego projektowanie bez normy niszczy współczynnik COP i posadzkę.",
    "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-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-definicja",
    "name": "Kluczowe Parametry i Limity Normy PN-EN 1264",
    "description": "Podstawowe dane inżynieryjne określające standardy bezpieczeństwa fizjologicznego i technicznego dla wodnych systemów płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "norma pn-en 1264",
      "maksymalna temperatura podłogi 29°C",
      "temperatura zasilania pompy ciepła",
      "współczynnik COP pompy ciepła",
      "wodne systemy ogrzewania płaszczyznowego"
    ],
    "measurementTechnique": "Wartości graniczne określone w 5-częściowym dokumencie zharmonizowanym ustalającym zasady fizyki budowli dla strefy klimatycznej (np. -20°C).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Maksymalna temperatura powierzchni w strefie przebywania: 29°C",
        "Graniczna optymalna temperatura zasilania PC: 35°C",
        "Skutek przekroczenia temp. zasilania >45°C: Drastyczny spadek COP",
        "Ilość części strukturalnych normy: 5"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-definicja",
    "name": "Symulator Skutków Braków Obliczeniowych",
    "description": "Interaktywne zestawienie pokazujące skutki porzucenia normy PN-EN 1264 dla efektywności COP i bezpieczeństwa posadzki (zjawisko niedogrzania).",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-def-container" id="rk-norm-definition-widget">
    <div class="rk-def-header">
        <div class="rk-def-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            Fundament Inżynierii
        </div>
        <h2>Czym jest norma PN-EN 1264 i dlaczego definiuje standardy ogrzewania podłogowego?</h2>
        <p class="rk-def-intro">
            Norma <strong>PN-EN 1264</strong> to zharmonizowany standard europejski o nazwie <em>„Wbudowane wodne systemy ogrzewania i chłodzenia płaszczyznowego”</em>. Składa się z 5 odrębnych części, które krok po kroku określają twarde zasady projektowania, obliczeń oraz montażu instalacji. To techniczny filtr bezpieczeństwa, bez którego budowa staje się grą w ruletkę.
        </p>
    </div>

    <div class="rk-def-interactive">
        <div class="rk-def-controls" id="rkDefControls">
            <button class="rk-def-btn active" data-mode="norma">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"></polyline></svg>
                Instalacja wg PN-EN 1264
            </button>
            <button class="rk-def-btn" data-mode="blad">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                Instalacja &#8222;na oko&#8221; (Brak obliczeń)
            </button>
        </div>

        <div class="rk-def-dashboard" id="rkDefDashboard" style="border-color: var(--rk-def-green);">
            <div class="rk-def-status-bar">
                <div class="rk-def-status-icon" id="rkDefIcon" style="background: var(--rk-def-green);">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                </div>
                <div class="rk-def-status-text">
                    <h3 id="rkDefTitle">Pełne Bezpieczeństwo i Gwarancja</h3>
                    <p id="rkDefSubtitle">System zaprojektowany inżynieryjnie pod parametry budynku.</p>
                </div>
            </div>

            <div class="rk-def-metrics">
                <div class="rk-def-metric-card" id="card-1">
                    <div class="rk-def-metric-title">Temperatura Podłogi</div>
                    <div class="rk-def-metric-val" id="val-1">Max 29°C</div>
                    <div class="rk-def-metric-desc" id="desc-1"><a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-jest-zdrowe/" style="color:inherit; text-decoration:underline;">Zgodna z fizjologią</a> i medycyną. Chroni zdrowie domowników.</div>
                </div>
                
                <div class="rk-def-metric-card" id="card-2">
                    <div class="rk-def-metric-title">Zasilanie Pompy (Zima -20°C)</div>
                    <div class="rk-def-metric-val" id="val-2">~ 35°C</div>
                    <div class="rk-def-metric-desc" id="desc-2">Niskotemperaturowa praca utrzymuje wysoki <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/" style="color:inherit; text-decoration:underline;">współczynnik COP</a>.</div>
                </div>

                <div class="rk-def-metric-card" id="card-3">
                    <div class="rk-def-metric-title">Status Posadzki</div>
                    <div class="rk-def-metric-val" id="val-3">Trwała</div>
                    <div class="rk-def-metric-desc" id="desc-3">Brak ryzyka pękania jastrychu i zachowana gwarancja producentów.</div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-def-conclusion">
        <svg class="rk-def-conc-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
        <p>
            Konsekwencją porzucenia obliczeń normatywnych jest zjawisko niedogrzania pomieszczeń przy temperaturach projektowych (np. -20°C dla III strefy klimatycznej) lub konieczność drastycznego podnoszenia temperatury zasilania. Zignorowanie wytycznych to <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">błędy, których naprawa po zalaniu wylewki jest technicznie niemożliwa</a>.
        </p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var dataModes = {
        'norma': {
            mainColor: '#10b981', // green
            icon: '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>',
            title: 'Pełne Bezpieczeństwo i Gwarancja',
            subtitle: 'System zaprojektowany inżynieryjnie pod parametry budynku.',
            val1: 'Max 29°C',
            desc1: '<a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-jest-zdrowe/" style="color:inherit; text-decoration:underline;">Zgodna z fizjologią</a> i medycyną. Chroni zdrowie domowników.',
            val2: '~ 35°C',
            desc2: 'Niskotemperaturowa praca utrzymuje wysoki <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/" style="color:inherit; text-decoration:underline;">współczynnik COP</a>.',
            val3: 'Trwała',
            desc3: 'Brak ryzyka pękania jastrychu i zachowana gwarancja producentów.'
        },
        'blad': {
            mainColor: '#ef4444', // red
            icon: '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polygon points="7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2"></polygon><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>',
            title: 'Katastrofa Budowlana',
            subtitle: 'Ogrzewanie działające losowo, niszczące źródło ciepła.',
            val1: '> 33°C',
            desc1: 'Przegrzana posadzka powoduje pęcznienie żył (syndrom ciężkich nóg) i wysusza drogi oddechowe.',
            val2: '> 45°C',
            desc2: 'Drastyczne obniżenie sprawności pompy ciepła, generujące <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/" style="color:inherit; text-decoration:underline;">potężne rachunki za prąd</a>.',
            val3: 'Ryzyko',
            desc3: 'Pękająca wylewka, odklejające się płytki i natychmiastowa utrata gwarancji od producentów.'
        }
    };

    var btns = document.querySelectorAll('#rkDefControls .rk-def-btn');
    var elDash = document.getElementById('rkDefDashboard');
    var elIcon = document.getElementById('rkDefIcon');
    var elTitle = document.getElementById('rkDefTitle');
    var elSubtitle = document.getElementById('rkDefSubtitle');
    
    var elVal1 = document.getElementById('val-1');
    var elDesc1 = document.getElementById('desc-1');
    var elVal2 = document.getElementById('val-2');
    var elDesc2 = document.getElementById('desc-2');
    var elVal3 = document.getElementById('val-3');
    var elDesc3 = document.getElementById('desc-3');

    // Pseudo-element styles cannot be targeted directly via inline CSS easily without specific classes,
    // we will apply CSS custom properties locally for the cards
    var cards = document.querySelectorAll('.rk-def-metric-card');

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var mode = this.getAttribute('data-mode');
            var data = dataModes[mode];

            // Toggle active state
            btns.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');

            if (data !== undefined) {
                // Update Dashboard Colors
                if (elDash !== null) { elDash.style.borderColor = data.mainColor; }
                if (elIcon !== null) { 
                    elIcon.style.backgroundColor = data.mainColor; 
                    elIcon.innerHTML = data.icon;
                }
                
                // Update Text
                if (elTitle !== null) { elTitle.textContent = data.title; }
                if (elSubtitle !== null) { elSubtitle.textContent = data.subtitle; }
                
                if (elVal1 !== null) { elVal1.textContent = data.val1; elVal1.style.color = data.mainColor; }
                if (elDesc1 !== null) { elDesc1.innerHTML = data.desc1; }
                
                if (elVal2 !== null) { elVal2.textContent = data.val2; elVal2.style.color = data.mainColor; }
                if (elDesc2 !== null) { elDesc2.innerHTML = data.desc2; }
                
                if (elVal3 !== null) { elVal3.textContent = data.val3; elVal3.style.color = data.mainColor; }
                if (elDesc3 !== null) { elDesc3.innerHTML = data.desc3; }

                // Update Cards Border Top Color dynamically by applying inline style variable 
                // that we can pick up in CSS, or simply setting border-top.
                cards.forEach(function(card) {
                    // Quick fix for top border line color change
                    card.style.boxShadow = "inset 0 4px 0 0 " + data.mainColor;
                });
            }
        });
    });
    
    // Trigger initial style for cards
    cards.forEach(function(card) {
        card.style.boxShadow = "inset 0 4px 0 0 #10b981"; // Initial green
        card.style.transition = "box-shadow 0.4s";
    });
});
</script>



<style>
:root {
    --rk-parts-dark: #0f172a;
    --rk-parts-blue-dark: #1e3a8a;
    --rk-parts-blue: #2563eb;
    --rk-parts-blue-light: #eff6ff;
    --rk-parts-cyan: #06b6d4;
    --rk-parts-text: #334155;
    --rk-parts-bg: #ffffff;
    --rk-parts-border: #e2e8f0;
}

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

/* Sekcja Nagłówkowa */
.rk-parts-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-parts-dark) 0%, var(--rk-parts-blue-dark) 100%);
    color: #ffffff;
    text-align: center;
    border-bottom: 4px solid var(--rk-parts-cyan);
}

.rk-parts-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(6, 182, 212, 0.2);
    color: #22d3ee;
    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(34, 211, 238, 0.3);
}

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

.rk-parts-header p {
    font-size: 16px;
    color: #93c5fd;
    line-height: 1.6;
    margin: 0 auto;
    max-width: 800px;
}

/* Interaktywny Eksplorator - Nawigacja (Desktop Poziomo, Mobile Pionowo) */
.rk-parts-explorer {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-parts-nav {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    margin-bottom: 35px;
    position: relative;
}

/* Linia łącząca kroki (tylko desktop) */
.rk-parts-nav::before {
    content: '';
    position: absolute;
    top: 24px;
    left: 20px;
    right: 20px;
    height: 3px;
    background: var(--rk-parts-border);
    z-index: 1;
}

.rk-parts-btn {
    flex: 1;
    background: transparent;
    border: none;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    position: relative;
    z-index: 2;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-parts-btn:hover {
    transform: translateY(-5px);
}

.rk-parts-step {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: #ffffff;
    border: 3px solid var(--rk-parts-border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-parts-text);
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

.rk-parts-btn.active .rk-parts-step {
    border-color: var(--rk-parts-cyan);
    background: var(--rk-parts-blue);
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(37, 99, 235, 0.4);
}

.rk-parts-label {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-parts-text);
    text-transform: uppercase;
    transition: color 0.3s;
}

.rk-parts-btn.active .rk-parts-label {
    color: var(--rk-parts-blue);
}

/* Zawartość Eksploratora */
.rk-parts-content-wrapper {
    background: #ffffff;
    border: 1px solid var(--rk-parts-border);
    border-radius: 20px;
    padding: 35px;
    box-shadow: 0 4px 10px -2px rgba(0,0,0,0.02);
    min-height: 280px;
}

.rk-parts-panel {
    display: none;
    animation: fadeInPart 0.5s ease forwards;
}

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

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

.rk-parts-panel h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-parts-dark);
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    gap: 12px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--rk-parts-border);
}

.rk-parts-panel h3 svg {
    color: var(--rk-parts-blue);
}

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

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

.rk-parts-panel a:hover {
    color: var(--rk-parts-cyan);
}

.rk-parts-highlight {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--rk-parts-blue-light);
    color: var(--rk-parts-blue-dark);
    padding: 12px 18px;
    border-radius: 12px;
    border-left: 4px solid var(--rk-parts-blue);
    font-weight: 600;
    font-size: 15px;
    margin-top: 10px;
    width: 100%;
}

@media (max-width: 768px) {
    .rk-parts-header { padding: 35px 25px; }
    .rk-parts-header h2 { font-size: 24px; }
    .rk-parts-explorer { padding: 30px 20px; }
    
    /* Zmiana na układ pionowy dla mobile */
    .rk-parts-nav { flex-direction: column; gap: 15px; }
    .rk-parts-nav::before { display: none; }
    .rk-parts-btn { flex-direction: row; text-align: left; background: #ffffff; padding: 15px; border: 1px solid var(--rk-parts-border); border-radius: 12px; }
    .rk-parts-btn:hover { transform: translateX(5px); }
    .rk-parts-step { width: 40px; height: 40px; font-size: 16px; border-width: 2px; }
    
    .rk-parts-content-wrapper { padding: 25px; min-height: auto; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-czesci-normy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Jakie są części normy PN-EN 1264 i co regulują w systemach płaszczyznowych?",
    "description": "Poznaj 5 kluczowych części normy PN-EN 1264. Od definicji, przez obliczenia mocy, aż po montaż i próby ciśnieniowe wodnego ogrzewania podłogowego.",
    "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-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-struktura",
    "name": "Struktura normatywna PN-EN 1264 dla ogrzewania płaszczyznowego",
    "description": "Klasyfikacja i podział wytycznych inżynieryjnych wg normy europejskiej na 5 integralnych modułów (definicje, moc, projektowanie, montaż, sufity/ściany).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "części normy pn-en 1264",
      "pn-en 1264-2 obliczenia",
      "pn-en 1264-4 montaż",
      "projektowanie instalacji podłogowych",
      "system mokry i suchy podłogówki"
    ],
    "measurementTechnique": "Podział strukturalny dokumentacji na etapy cyklu życia instalacji: od koncepcji, przez obliczenia fizykalne, po odbiory budowlane.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "PN-EN 1264-1: Definicje i symbole (Typ A, B, C)",
        "PN-EN 1264-2: Metody obliczeniowe (moc q)",
        "PN-EN 1264-3: Projektowanie (rozstaw rur, PN-EN 12831)",
        "PN-EN 1264-4: Montaż (próba ciśnieniowa, dylatacje)",
        "PN-EN 1264-5: Ogrzewanie i chłodzenie sufitowe/ścienne"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-eksplorator-normy",
    "name": "Eksplorator Struktury Normy PN-EN 1264",
    "description": "Interaktywne narzędzie pozwalające inżynierom i inwestorom na przeglądanie wymagań poszczególnych sekcji normy w ujęciu wizualnym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-parts-container" id="rk-norm-parts-widget">
    <div class="rk-parts-header">
        <div class="rk-parts-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20"></path><path d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"></path></svg>
            Struktura Dokumentu
        </div>
        <h2>Jakie są części normy PN-EN 1264 i co regulują w systemach płaszczyznowych?</h2>
        <p>Struktura normy dzieli się na pięć kluczowych sekcji. Każda z nich odpowiada za inny etap cyklu życia instalacji: od definicji technicznych, aż po finalny odbiór na budowie.</p>
    </div>

    <div class="rk-parts-explorer">
        <div class="rk-parts-nav" id="rkPartsNav">
            <button class="rk-parts-btn active" data-part="1">
                <div class="rk-parts-step">1</div>
                <div class="rk-parts-label">Definicje</div>
            </button>
            <button class="rk-parts-btn" data-part="2">
                <div class="rk-parts-step">2</div>
                <div class="rk-parts-label">Moc Cieplna</div>
            </button>
            <button class="rk-parts-btn" data-part="3">
                <div class="rk-parts-step">3</div>
                <div class="rk-parts-label">Projektowanie</div>
            </button>
            <button class="rk-parts-btn" data-part="4">
                <div class="rk-parts-step">4</div>
                <div class="rk-parts-label">Montaż</div>
            </button>
            <button class="rk-parts-btn" data-part="5">
                <div class="rk-parts-step">5</div>
                <div class="rk-parts-label">Ściany / Sufity</div>
            </button>
        </div>

        <div class="rk-parts-content-wrapper">
            <div class="rk-parts-panel active" id="part-1">
                <h3>
                    <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
                    PN-EN 1264-1: Definicje i symbole
                </h3>
                <p>Wprowadza jednolitą nomenklaturę technologiczną i klasyfikuje systemy podłogowe.</p>
                <p>Wskazuje m.in. na systemy Typu A (rury w jastrychu, mocowane na izolacji z wypustami lub klipsami – klasyczny <a href="https://projekt-ogrzewania.pl/czym-jest-system-mokry-w-wodnym-ogrzewaniu-podlogowym/">system mokry</a>) oraz Typu C (rury w warstwie wyrównawczej, nad którymi znajduje się podwójna warstwa jastrychu), a także <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">systemy suche (Typ B)</a>.</p>
            </div>

            <div class="rk-parts-panel" id="part-2">
                <h3>
                    <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line></svg>
                    PN-EN 1264-2: Metody obliczeniowe
                </h3>
                <p>To najważniejszy matematyczny rdzeń <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">normy obliczeń ogrzewania podłogowego</a>. Określa algorytmy dla mocy cieplnej.</p>
                <p>Wyznacza jednostkową gęstość strumienia cieplnego (q) i opiera się na badaniach laboratoryjnych i nomogramach, które wiążą rozstaw rur, grubość wylewki i opór cieplny okładziny z realną wydajnością systemu.</p>
                <div class="rk-parts-highlight">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                    Podstawa do doboru temperatury zasilania.
                </div>
            </div>

            <div class="rk-parts-panel" id="part-3">
                <h3>
                    <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    PN-EN 1264-3: Projektowanie i wymiarowanie
                </h3>
                <p>Ta część instruuje projektanta, jak dopasować instalację do <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">strat ciepła budynku (OZC)</a> obliczonych ściśle według normy PN-EN 12831.</p>
                <p>Narzuca rygorystyczne limity temperatur powierzchni (np. 29°C) i metodologię doboru rozstawu pętli na podstawie krytycznych parametrów hydraulicznych obiegu.</p>
            </div>

            <div class="rk-parts-panel" id="part-4">
                <h3>
                    <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path></svg>
                    PN-EN 1264-4: Montaż instalacji
                </h3>
                <p>Kluczowy dokument na placu budowy. Określa minimalny opór cieplny izolacji stropu (np. <strong>R = 1,25 m²K/W</strong> nad pomieszczeniem ogrzewanym).</p>
                <p>Definiuje zasady wykonywania dylatacji, precyzyjne parametry <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">ciśnieniowej próby szczelności</a> oraz procedurę wygrzewania <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">jastrychu</a>.</p>
                <div class="rk-parts-highlight">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                    Zignorowanie tej części powoduje utratę gwarancji!
                </div>
            </div>

            <div class="rk-parts-panel" id="part-5">
                <h3>
                    <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M3 3h18v18H3z"></path><path d="M21 9H3"></path><path d="M21 15H3"></path></svg>
                    PN-EN 1264-5: Ogrzewanie i chłodzenie sufitowe/ścienne
                </h3>
                <p>Rozszerza dotychczasową metodykę obliczeń na alternatywne płaszczyzny (ściany i sufity).</p>
                <p>Definiuje odmienne limity temperatur dla tych rozwiązań (np. maksymalnie 40°C dla ogrzewania ściennego) oraz zwraca szczególną uwagę na zjawisko <a href="https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/">punktu rosy przy chłodzeniu</a>.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var navBtns = document.querySelectorAll('#rkPartsNav .rk-parts-btn');
    var panels = document.querySelectorAll('.rk-parts-panel');

    navBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetPart = this.getAttribute('data-part');

            // Reset wszystkich przycisków
            navBtns.forEach(function(b) {
                b.classList.remove('active');
            });
            // Aktywacja klikniętego
            this.classList.add('active');

            // Reset paneli
            panels.forEach(function(panel) {
                panel.classList.remove('active');
            });
            
            // Aktywacja odpowiedniego panelu (bezpieczny kod)
            var activePanel = document.getElementById('part-' + targetPart);
            if (activePanel !== null) {
                activePanel.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-temp-dark: #1e293b;
    --rk-temp-slate: #334155;
    --rk-temp-red: #ef4444;
    --rk-temp-red-light: #fef2f2;
    --rk-temp-orange: #f97316;
    --rk-temp-orange-light: #fff7ed;
    --rk-temp-green: #10b981;
    --rk-temp-green-light: #ecfdf5;
    --rk-temp-bg: #ffffff;
    --rk-temp-gray: #f8fafc;
    --rk-temp-border: #e2e8f0;
}

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

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

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

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

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

/* Sekcja Interaktywna - Wybór Strefy */
.rk-temp-interactive {
    padding: 40px 50px;
    background: var(--rk-temp-bg);
}

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

.rk-temp-selectors {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-temp-btn {
    background: #ffffff;
    border: 2px solid var(--rk-temp-border);
    border-radius: 16px;
    padding: 16px 20px;
    text-align: left;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    gap: 15px;
    position: relative;
    overflow: hidden;
}

.rk-temp-btn::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 6px;
    background: var(--rk-temp-border);
    transition: background 0.3s;
}

.rk-temp-btn:hover {
    transform: translateX(4px);
    background: var(--rk-temp-gray);
}

.rk-temp-btn.active {
    border-color: var(--rk-temp-slate);
    background: #f1f5f9;
    box-shadow: 0 10px 15px -5px rgba(0,0,0,0.05);
}

.rk-temp-btn.active[data-zone="salon"] { border-color: var(--rk-temp-green); }
.rk-temp-btn.active[data-zone="salon"]::before { background: var(--rk-temp-green); }

.rk-temp-btn.active[data-zone="lazienka"] { border-color: var(--rk-temp-orange); }
.rk-temp-btn.active[data-zone="lazienka"]::before { background: var(--rk-temp-orange); }

.rk-temp-btn.active[data-zone="brzeg"] { border-color: var(--rk-temp-red); }
.rk-temp-btn.active[data-zone="brzeg"]::before { background: var(--rk-temp-red); }

.rk-temp-btn-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: var(--rk-temp-gray);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-temp-slate);
    transition: all 0.3s;
}

.rk-temp-btn.active[data-zone="salon"] .rk-temp-btn-icon { background: var(--rk-temp-green-light); color: var(--rk-temp-green); }
.rk-temp-btn.active[data-zone="lazienka"] .rk-temp-btn-icon { background: var(--rk-temp-orange-light); color: var(--rk-temp-orange); }
.rk-temp-btn.active[data-zone="brzeg"] .rk-temp-btn-icon { background: var(--rk-temp-red-light); color: var(--rk-temp-red); }

.rk-temp-btn-content h4 {
    margin: 0 0 4px 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-temp-dark);
}

.rk-temp-btn-content p {
    margin: 0;
    font-size: 13px;
    color: #64748b;
    font-weight: 600;
}

/* Wizualizator Temperatury */
.rk-temp-visualizer {
    background: var(--rk-temp-gray);
    border: 1px solid var(--rk-temp-border);
    border-radius: 20px;
    padding: 40px 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    position: relative;
    transition: background 0.4s;
}

.rk-temp-thermometer {
    position: relative;
    width: 140px;
    height: 140px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.1);
    margin-bottom: 25px;
}

.rk-temp-ring {
    position: absolute;
    top: 5px; left: 5px; right: 5px; bottom: 5px;
    border-radius: 50%;
    border: 8px solid transparent;
    transition: border-color 0.4s ease;
}

.rk-temp-value {
    font-size: 36px;
    font-weight: 900;
    font-family: monospace;
    color: var(--rk-temp-dark);
    z-index: 2;
    transition: color 0.4s;
}

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

.rk-temp-desc-box p {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: var(--rk-temp-slate);
}

/* Sekcja Ostrzegawcza */
.rk-temp-warning {
    padding: 30px 50px;
    background: #fef2f2;
    border-top: 1px solid #fecaca;
    display: flex;
    align-items: flex-start;
    gap: 20px;
}

.rk-temp-warning-icon {
    width: 48px;
    height: 48px;
    background: #fee2e2;
    color: #dc2626;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rk-temp-warning-content h4 {
    margin: 0 0 10px 0;
    font-size: 18px;
    font-weight: 900;
    color: #991b1b;
}

.rk-temp-warning-content p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: #7f1d1d;
}

.rk-temp-link {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
    font-weight: 700;
}

@media (max-width: 768px) {
    .rk-temp-header { padding: 35px 25px; }
    .rk-temp-header h2 { font-size: 24px; }
    .rk-temp-interactive { padding: 30px 20px; }
    .rk-temp-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-temp-visualizer { padding: 30px 20px; }
    .rk-temp-warning { padding: 30px 20px; flex-direction: column; align-items: center; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-temperatura",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Jak norma PN-EN 1264 określa maksymalną temperaturę podłogi dla zdrowia i komfortu?",
    "description": "Zrozum wpływ ogrzewania na fizjologię człowieka. Zobacz limity (29°C w salonie, 35°C pod oknem) zapobiegające syndromowi ciężkich nóg i pękaniu paneli.",
    "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-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-limity-temperatur",
    "name": "Limity Fizjologiczne Temperatur Powierzchni Podłogi (PN-EN 1264)",
    "description": "Medyczne i techniczne wartości graniczne dla powierzchni posadzki wymuszające prawidłowe zaprojektowanie rozstawu rur i krzywej grzewczej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "optymalna temperatura ogrzewania podłogowego",
      "strefa brzegowa w ogrzewaniu podłogowym",
      "czy ogrzewanie podłogowe wysusza powietrze",
      "wady wodnego ogrzewania podłogowego",
      "zdrowotne skutki ogrzewania podłogowego"
    ],
    "measurementTechnique": "Określenie limitów fizjologicznych na podstawie badań komfortu cieplnego zawartych w normie PN-EN 1264-3 (paragraf 4.1.2).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Salon i sypialnia (strefa przebywania): Maksymalnie 29°C",
        "Łazienka (strefa sanitarna, bosa stopa): Maksymalnie 33°C",
        "Strefa brzeżna (pas okienny do 1 m): Maksymalnie 35°C"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-symulator-stref",
    "name": "Analizator Stref Fizjologicznych PN-EN 1264",
    "description": "Interaktywny panel ilustrujący różnice między parametrami cieplnymi dla stref: przebywania, sanitarnej oraz brzegowej wraz z opisem zjawisk negatywnych.",
    "applicationCategory": "HealthApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-temp-container" id="rk-health-temp-widget">
    <div class="rk-temp-header">
        <div class="rk-temp-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
            Fizjologia i Komfort
        </div>
        <h2>Jak norma PN-EN 1264 określa maksymalną temperaturę podłogi dla zdrowia?</h2>
        <p>Wodne ogrzewanie podłogowe to nie tylko rury. To ogromny grzejnik, z którym stykasz się bezpośrednio. Norma (paragraf 4.1.2) rygorystycznie różnicuje dopuszczalne temperatury w zależności od specyfiki pomieszczenia.</p>
    </div>

    <div class="rk-temp-interactive">
        <div class="rk-temp-grid">
            
            <div class="rk-temp-selectors" id="rkTempBtns">
                <button class="rk-temp-btn active" data-zone="salon">
                    <div class="rk-temp-btn-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>
                    </div>
                    <div class="rk-temp-btn-content">
                        <h4>Strefa Stałego Przebywania</h4>
                        <p>Salon, sypialnia, pokój dziecięcy</p>
                    </div>
                </button>

                <button class="rk-temp-btn" data-zone="lazienka">
                    <div class="rk-temp-btn-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M2 12h20"></path><path d="M20 12v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8"></path><path d="M10 8l2-2 2 2"></path><path d="M14 4h-4"></path></svg>
                    </div>
                    <div class="rk-temp-btn-content">
                        <h4>Pomieszczenia Sanitarne</h4>
                        <p>Łazienki, pokoje kąpielowe</p>
                    </div>
                </button>

                <button class="rk-temp-btn" data-zone="brzeg">
                    <div class="rk-temp-btn-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><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-temp-btn-content">
                        <h4>Strefa Brzeżna</h4>
                        <p>Pas okienny do 1 metra szerokości</p>
                    </div>
                </button>
            </div>

            <div class="rk-temp-visualizer" id="rkTempVisual">
                <div class="rk-temp-thermometer">
                    <div class="rk-temp-ring" id="rkTempRing" style="border-color: var(--rk-temp-green);"></div>
                    <div class="rk-temp-value" id="rkTempVal" style="color: var(--rk-temp-green);">29°C</div>
                </div>
                <div class="rk-temp-desc-box">
                    <h3 id="rkTempTitle">Bezpieczne 29°C</h3>
                    <p id="rkTempDesc">
                        Maksymalna <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/" class="rk-temp-link">optymalna temperatura ogrzewania</a>. Jej utrzymanie chroni przed zaburzeniami krążenia obwodowego i pozwala posadzce bezpiecznie stygnąć po wyłączeniu cyklu.
                    </p>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-temp-warning">
        <div class="rk-temp-warning-icon">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
        </div>
        <div class="rk-temp-warning-content">
            <h4>Błędy projektowe a syndrom ciężkich nóg</h4>
            <p>
                Częstą <a href="https://projekt-ogrzewania.pl/wady-wodnego-ogrzewania-podlogowego-na-co-zwrocic-uwage-przed-instalacja/" class="rk-temp-link">wadą instalacji wykonywanych bez projektu</a> jest brak weryfikacji temperatur powierzchni. Przegrzanie posadzki (np. do 32°C w salonie) wywołuje u ludzi medyczny syndrom ciężkich nóg, drastycznie <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/" class="rk-temp-link">wysusza powietrze</a>, nasila konwekcję kurzu i ostatecznie doprowadza do rozklejenia się paneli podłogowych.
            </p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var zoneData = {
        'salon': {
            temp: '29°C',
            color: '#10b981', // Zielony
            bg: '#ecfdf5',
            title: 'Bezpieczne 29°C',
            desc: 'Maksymalna <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/" class="rk-temp-link" style="color:inherit;">optymalna temperatura ogrzewania</a>. Jej utrzymanie chroni przed zaburzeniami krążenia obwodowego i pozwala posadzce bezpiecznie stygnąć.'
        },
        'lazienka': {
            temp: '33°C',
            color: '#f97316', // Pomarańczowy
            bg: '#fff7ed',
            title: 'Komfort bosej stopy',
            desc: 'W łazience wymagamy temperatury powietrza rzędu 24°C. Dlatego norma zezwala na wyższą temperaturę posadzki (33°C), aby zrekompensować straty ciepła i nagrzać chłodne płytki.'
        },
        'brzeg': {
            temp: '35°C',
            color: '#ef4444', // Czerwony
            bg: '#fef2f2',
            title: 'Bufor termiczny przy oknach',
            desc: 'Aby zablokować opadanie zimnego powietrza z ogromnych okien tarasowych, <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/" class="rk-temp-link" style="color:inherit;">w strefie brzegowej</a> zagęszcza się rury, a norma podnosi limit aż do 35°C na odcinku max. 1 metra szerokości.'
        }
    };

    var btns = document.querySelectorAll('#rkTempBtns .rk-temp-btn');
    
    var elVisual = document.getElementById('rkTempVisual');
    var elRing = document.getElementById('rkTempRing');
    var elVal = document.getElementById('rkTempVal');
    var elTitle = document.getElementById('rkTempTitle');
    var elDesc = document.getElementById('rkTempDesc');

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Reset aktywnych przycisków
            btns.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');

            var zoneKey = this.getAttribute('data-zone');
            var data = zoneData[zoneKey];

            // Aktualizacja bez warunków logicznych AND
            if (data !== undefined) {
                if (elVisual !== null) { elVisual.style.backgroundColor = data.bg; }
                if (elRing !== null) { elRing.style.borderColor = data.color; }
                if (elVal !== null) { 
                    elVal.style.color = data.color; 
                    elVal.innerHTML = data.temp; 
                }
                if (elTitle !== null) { elTitle.innerHTML = data.title; }
                if (elDesc !== null) { elDesc.innerHTML = data.desc; }
            }
        });
    });
});
</script>



<style>
:root {
    --rk-pow-dark: #1e1b4b; /* Głęboki indygo */
    --rk-pow-primary: #6366f1; /* Fiolet / Indygo */
    --rk-pow-primary-hover: #4f46e5;
    --rk-pow-accent: #06b6d4; /* Cyjan */
    --rk-pow-bg: #ffffff;
    --rk-pow-gray: #f8fafc;
    --rk-pow-border: #e2e8f0;
    --rk-pow-text: #334155;
    --rk-pow-text-muted: #64748b;
}

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

/* Nagłówek */
.rk-pow-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-pow-dark) 0%, #312e81 100%);
    color: #ffffff;
    text-align: center;
    border-bottom: 4px solid var(--rk-pow-accent);
}

.rk-pow-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(6, 182, 212, 0.2);
    color: #67e8f9;
    padding: 6px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(103, 232, 249, 0.3);
}

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

/* Moduł Teoretyczny - Wzór na Moc */
.rk-pow-theory {
    padding: 40px 50px;
    background: var(--rk-pow-bg);
}

.rk-pow-theory p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-pow-text);
    margin: 0 0 20px 0;
}

.rk-pow-formula-box {
    background: #0f172a;
    border-radius: 16px;
    padding: 25px;
    margin: 25px 0;
    box-shadow: inset 0 4px 6px rgba(0,0,0,0.2);
    border-left: 5px solid var(--rk-pow-accent);
}

.rk-pow-formula {
    font-family: 'Courier New', Courier, monospace;
    font-size: 22px;
    font-weight: 700;
    color: #38bdf8;
    text-align: center;
    margin-bottom: 15px;
    letter-spacing: 1px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
}

.rk-pow-formula span { color: #f8fafc; }

.rk-pow-legend {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid rgba(255,255,255,0.1);
}

.rk-pow-legend-item {
    font-size: 14px;
    color: #cbd5e1;
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.rk-pow-legend-symbol {
    font-weight: 900;
    color: var(--rk-pow-accent);
    background: rgba(6, 182, 212, 0.15);
    padding: 2px 8px;
    border-radius: 6px;
    min-width: 45px;
    text-align: center;
}

/* Moduł Interaktywny - Scenariusze */
.rk-pow-scenarios {
    padding: 40px 50px;
    background: var(--rk-pow-gray);
    border-top: 1px solid var(--rk-pow-border);
}

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

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

.rk-pow-tab {
    background: #ffffff;
    border: 2px solid var(--rk-pow-border);
    border-radius: 16px;
    padding: 20px 15px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.rk-pow-tab:hover {
    border-color: var(--rk-pow-primary);
    transform: translateY(-3px);
}

.rk-pow-tab.active {
    background: var(--rk-pow-primary);
    border-color: var(--rk-pow-primary);
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(99, 102, 241, 0.4);
    transform: translateY(-3px);
}

.rk-pow-tab-icon {
    width: 40px;
    height: 40px;
    background: var(--rk-pow-gray);
    color: var(--rk-pow-primary);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s;
}

.rk-pow-tab.active .rk-pow-tab-icon {
    background: rgba(255,255,255,0.2);
    color: #ffffff;
}

.rk-pow-tab-title {
    font-size: 14px;
    font-weight: 800;
    line-height: 1.3;
}

.rk-pow-tab:not(.active) .rk-pow-tab-title { color: var(--rk-pow-text); }

/* Tablica Wyników (Dashboard) */
.rk-pow-dashboard {
    background: #ffffff;
    border: 1px solid var(--rk-pow-border);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-pow-dash-header {
    margin-bottom: 25px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--rk-pow-border);
}

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

/* Parametry Wejściowe */
.rk-pow-params {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    margin-bottom: 25px;
}

.rk-pow-param-box {
    background: var(--rk-pow-gray);
    padding: 12px;
    border-radius: 12px;
    border: 1px solid var(--rk-pow-border);
    text-align: center;
}

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

.rk-pow-param-val {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-pow-primary);
}

/* Sekcja Wyniku */
.rk-pow-result-area {
    display: flex;
    gap: 20px;
    align-items: stretch;
}

.rk-pow-main-result {
    flex: 1;
    background: var(--rk-pow-dark);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.rk-pow-main-result::before {
    content: '';
    position: absolute;
    top: -50%; left: -50%; width: 200%; height: 200%;
    background: radial-gradient(circle, rgba(6,182,212,0.1) 0%, transparent 70%);
}

.rk-pow-res-label {
    font-size: 14px;
    color: #cbd5e1;
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 5px;
    position: relative;
}

.rk-pow-res-value {
    font-size: 42px;
    font-weight: 900;
    color: #ffffff;
    font-family: monospace;
    position: relative;
}

.rk-pow-conclusion {
    flex: 2;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: 16px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-pow-conclusion.warning {
    background: #fffbeb;
    border-color: #fef08a;
}

.rk-pow-conclusion.danger {
    background: #fef2f2;
    border-color: #fecaca;
}

.rk-pow-conc-title {
    font-size: 16px;
    font-weight: 800;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-pow-conclusion p {
    font-size: 14px;
    line-height: 1.6;
    margin: 0;
}

.rk-pow-link-inline {
    color: inherit;
    text-decoration: underline;
    font-weight: 700;
}

@media (max-width: 768px) {
    .rk-pow-header { padding: 35px 25px; }
    .rk-pow-theory { padding: 30px 20px; }
    .rk-pow-scenarios { padding: 30px 20px; }
    
    .rk-pow-formula { font-size: 16px; flex-direction: column; }
    .rk-pow-legend { grid-template-columns: 1fr; }
    
    /* Na mobile akordeon/przyciski pionowe */
    .rk-pow-tabs { grid-template-columns: 1fr; gap: 10px; }
    .rk-pow-tab { flex-direction: row; padding: 15px; text-align: left; }
    .rk-pow-tab-icon { margin-right: 10px; }
    
    .rk-pow-dashboard { padding: 20px; }
    .rk-pow-params { grid-template-columns: repeat(2, 1fr); }
    .rk-pow-result-area { flex-direction: column; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-wzor-moc",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Jak obliczyć moc ogrzewania podłogowego zgodnie z wzorem z PN-EN 1264-2?",
    "description": "Inżynierskie przykłady obliczeniowe mocy podłogówki (W/m2). Interaktywny symulator wpływu rozstawu rur i grubości dywanu na zasilanie pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.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-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-moc",
    "name": "Współczynniki korygujące i wydajność cieplna wg PN-EN 1264-2",
    "description": "Zestawienie twardych danych i zmiennych z nomogramów normy wykorzystywanych do precyzyjnego wyznaczania jednostkowego strumienia ciepła (q).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jak obliczyć moc ogrzewania podłogowego",
      "wzór na moc podłogówki",
      "rozstaw rur a moc grzewcza",
      "temperatura zasilania podłogówki",
      "wpływ dywanu na ogrzewanie"
    ],
    "measurementTechnique": "Zależności potęgowe z nomogramów normy (wykładnik n=1.1 dla systemów mokrych), oparte na średniej logarytmicznej różnicy temperatur.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wykładnik potęgowy n (systemy mokre) ≈ 1,1",
        "Moc optymalna (płytki, rozstaw 100mm, zasilanie 35C) ≈ 85 W/m²",
        "Moc zaniżona (rozstaw 200mm, zasilanie 35C) ≈ 60 W/m²",
        "Moc krytyczna (dywan R=0.15, rozstaw 100mm) ≈ 45 W/m²"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-symulator-mocy",
    "name": "Symulator Wpływu Rozstawu Rur i Okładziny na Moc",
    "description": "Moduł dydaktyczny pozwalający inwestorowi na przełączanie między 3 scenariuszami obliczeniowymi, aby na żywo zaobserwować zjawisko spadku wydajności podłogówki.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-pow-container" id="rk-power-widget">
    <div class="rk-pow-header">
        <div class="rk-pow-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
            Fizyka Budowli
        </div>
        <h2>Jak obliczyć moc ogrzewania podłogowego zgodnie z wzorem z PN-EN 1264-2?</h2>
    </div>

    <div class="rk-pow-theory">
        <p>Jednostkową moc cieplną podłogi <strong>q [W/m²]</strong> oblicza się na podstawie matematycznej formy fizykalnego prawa oddawania ciepła, rygorystycznie zdefiniowanego w normie PN-EN 1264-2.</p>
        
        <div class="rk-pow-formula-box">
            <div class="rk-pow-formula">
                q = B × ∏ a<sub>i</sub> × (Δϑ<sub>H</sub>)<sup>n</sup>
            </div>
            <div class="rk-pow-formula" style="color: #94a3b8; font-size: 16px; margin-top: 15px; margin-bottom: 5px;">
                <span>gdzie średnia różnica temperatur:</span>
            </div>
            <div class="rk-pow-formula" style="color: #10b981;">
                Δϑ<sub>H</sub> = [ (ϑ<sub>V</sub> + ϑ<sub>R</sub>) / 2 ] &#8211; ϑ<sub>i</sub>
            </div>

            <div class="rk-pow-legend">
                <div class="rk-pow-legend-item">
                    <span class="rk-pow-legend-symbol">B</span> 
                    Bazowy współczynnik systemowy rury.
                </div>
                <div class="rk-pow-legend-item">
                    <span class="rk-pow-legend-symbol">∏ a<sub>i</sub></span> 
                    Iloczyn korygujący (rozstaw, grubość, opór).
                </div>
                <div class="rk-pow-legend-item">
                    <span class="rk-pow-legend-symbol">n</span> 
                    Wykładnik potęgowy (ok. 1.1 dla wylewek).
                </div>
                <div class="rk-pow-legend-item">
                    <span class="rk-pow-legend-symbol">ϑ<sub>V</sub>/ϑ<sub>R</sub></span> 
                    <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/" style="color: inherit; text-decoration: underline;">Temperatura zasilania</a> i powrotu.
                </div>
            </div>
        </div>
    </div>

    <div class="rk-pow-scenarios">
        <h3 class="rk-pow-scenarios-title">Symulator: 3 Inżynierskie Przykłady Obliczeniowe</h3>
        
        <div class="rk-pow-tabs" id="powTabs">
            <button class="rk-pow-tab active" data-scenario="optymalny">
                <div class="rk-pow-tab-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                </div>
                <span class="rk-pow-tab-title">Układ Optymalny<br>(Płytki + 10cm)</span>
            </button>
            <button class="rk-pow-tab" data-scenario="rzadki">
                <div class="rk-pow-tab-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"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                </div>
                <span class="rk-pow-tab-title">Zbyt rzadki rozstaw<br>(Rozstaw 20cm)</span>
            </button>
            <button class="rk-pow-tab" data-scenario="izolator">
                <div class="rk-pow-tab-icon">
                    <svg width="24" height="24" 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"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                </div>
                <span class="rk-pow-tab-title">Krytyczny Dywan<br>(Izolacja R=0.15)</span>
            </button>
        </div>

        <div class="rk-pow-dashboard">
            <h4 class="rk-pow-dash-title" id="pow-dash-title">Układ niskotemperaturowy (Pompa ciepła, płytki ceramiczne)</h4>
            <hr style="border: 0; border-top: 1px solid var(--rk-pow-border); margin: 15px 0 25px;">
            
            <div class="rk-pow-params">
                <div class="rk-pow-param-box">
                    <div class="rk-pow-param-label">T. Zasil/Pow</div>
                    <div class="rk-pow-param-val" id="pow-param-temp">35/30 °C</div>
                </div>
                <div class="rk-pow-param-box">
                    <div class="rk-pow-param-label">Δϑ<sub>H</sub> (Różnica)</div>
                    <div class="rk-pow-param-val" id="pow-param-delta">12.5 K</div>
                </div>
                <div class="rk-pow-param-box">
                    <div class="rk-pow-param-label"><a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/" style="color:inherit; text-decoration:none;">Rozstaw Rur</a></div>
                    <div class="rk-pow-param-val" id="pow-param-rozstaw">100 mm</div>
                </div>
                <div class="rk-pow-param-box">
                    <div class="rk-pow-param-label">Opór (R)</div>
                    <div class="rk-pow-param-val" id="pow-param-opor">0.01</div>
                </div>
            </div>

            <div class="rk-pow-result-area">
                <div class="rk-pow-main-result">
                    <div class="rk-pow-res-label">Moc Jednostkowa (q)</div>
                    <div class="rk-pow-res-value" id="pow-res-q">85 W/m²</div>
                </div>
                
                <div class="rk-pow-conclusion" id="pow-conc-box">
                    <div class="rk-pow-conc-title" id="pow-conc-title" style="color: #166534;">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"></polyline></svg>
                        Stan Idealny
                    </div>
                    <p id="pow-conc-text" style="color: #15803d;">Temperatura powierzchni podłogi osiąga bezpieczne 27,7°C. System w pełni pokrywa standardowe <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/" class="rk-pow-link-inline">zapotrzebowanie na ciepło</a>.</p>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var scenariosData = {
        'optymalny': {
            title: 'Układ niskotemperaturowy (Pompa ciepła, płytki ceramiczne)',
            temp: '35/30 °C',
            delta: '12.5 K',
            rozstaw: '100 mm',
            opor: '0.01',
            q: '85 W/m²',
            concClass: '', // Domyślna zielona
            concTitleColor: '#166534',
            concTextColor: '#15803d',
            icon: '<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"></polyline></svg>',
            concTitle: 'Wydajność optymalna',
            concText: 'Temperatura powierzchni podłogi osiąga bezpieczne 27,7°C. Układ idealny do współpracy z pompą ciepła w salonie.'
        },
        'rzadki': {
            title: 'Układ ze zwiększonym rozstawem rur (Salon, pompa ciepła)',
            temp: '35/30 °C',
            delta: '12.5 K',
            rozstaw: '200 mm',
            opor: '0.01',
            q: '60 W/m²',
            concClass: 'warning',
            concTitleColor: '#854d0e',
            concTextColor: '#a16207',
            icon: '<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>',
            concTitle: 'Ryzyko niedogrzania',
            concText: 'Zwiększenie rozstawu obniża współczynnik korygujący. Jeśli zapotrzebowanie pokoju wynosi 75 W/m², to przy 60 W/m² <a href="https://projekt-ogrzewania.pl/czy-pompa-ciepla-ogrzeje-dom-z-podlogowka/" class="rk-pow-link-inline">pompa ciepła nie ogrzeje domu</a>.'
        },
        'izolator': {
            title: 'Krytyczny wpływ grubego dywanu (Sypialnia)',
            temp: '35/30 °C',
            delta: '12.5 K',
            rozstaw: '100 mm',
            opor: '0.15',
            q: '45 W/m²',
            concClass: 'danger',
            concTitleColor: '#991b1b',
            concTextColor: '#b91c1c',
            icon: '<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>',
            concTitle: 'Katastrofalny spadek mocy',
            concText: 'Wysoki opór cieplny działa jak izolator. Następuje spadek wydajności o 47%. Aby pokryć straty, instalator musiałby podbić zasilanie do 43°C, niszcząc sprawność (COP) układu.'
        }
    };

    var tabs = document.querySelectorAll('#powTabs .rk-pow-tab');
    
    // Elementy DOM (używamy bezpiecznego przypisania)
    var elTitle = document.getElementById('pow-dash-title');
    var elTemp = document.getElementById('pow-param-temp');
    var elDelta = document.getElementById('pow-param-delta');
    var elRozstaw = document.getElementById('pow-param-rozstaw');
    var elOpor = document.getElementById('pow-param-opor');
    var elQ = document.getElementById('pow-res-q');
    var elConcBox = document.getElementById('pow-conc-box');
    var elConcTitle = document.getElementById('pow-conc-title');
    var elConcText = document.getElementById('pow-conc-text');

    tabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            var scenario = this.getAttribute('data-scenario');
            var data = scenariosData[scenario];

            if (data !== undefined) {
                // Zmiana aktywnych zakładek
                tabs.forEach(function(t) { t.classList.remove('active'); });
                this.classList.add('active');

                // Aktualizacja UI (bez &&)
                if (elTitle !== null) { elTitle.innerHTML = data.title; }
                if (elTemp !== null) { elTemp.innerHTML = data.temp; }
                if (elDelta !== null) { elDelta.innerHTML = data.delta; }
                if (elRozstaw !== null) { elRozstaw.innerHTML = data.rozstaw; }
                if (elOpor !== null) { elOpor.innerHTML = data.opor; }
                if (elQ !== null) { elQ.innerHTML = data.q; }
                
                if (elConcBox !== null) {
                    elConcBox.className = 'rk-pow-conclusion ' + data.concClass;
                }
                
                if (elConcTitle !== null) {
                    elConcTitle.style.color = data.concTitleColor;
                    elConcTitle.innerHTML = data.icon + ' ' + data.concTitle;
                }
                
                if (elConcText !== null) {
                    elConcText.style.color = data.concTextColor;
                    elConcText.innerHTML = data.concText;
                }
            }
        });
    });
});
</script>



<style>
:root {
    --rk-mat-dark: #1e293b;
    --rk-mat-primary: #ea580c; /* Ciepły pomarańczowy */
    --rk-mat-primary-light: #ffedd5;
    --rk-mat-success: #16a34a;
    --rk-mat-warning: #ca8a04;
    --rk-mat-danger: #dc2626;
    --rk-mat-bg: #ffffff;
    --rk-mat-gray: #f8fafc;
    --rk-mat-border: #e2e8f0;
    --rk-mat-text: #334155;
}

.rk-mat-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-mat-bg);
    border-radius: 24px;
    box-shadow: 0 15px 40px -10px rgba(234, 88, 12, 0.15);
    border: 1px solid var(--rk-mat-primary);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-mat-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-mat-dark) 0%, #0f172a 100%);
    color: #ffffff;
    text-align: center;
    border-bottom: 4px solid var(--rk-mat-primary);
}

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

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

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

/* Zawartość - Układ Jednokolumnowy (Kafelki na górze, wynik pod spodem) */
.rk-mat-content {
    padding: 40px 50px;
    background: var(--rk-mat-gray);
}

/* Siatka Kafelków (Materiałów) */
.rk-mat-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    margin-bottom: 30px;
}

.rk-mat-card {
    background: #ffffff;
    border: 2px solid var(--rk-mat-border);
    border-radius: 16px;
    padding: 20px 15px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

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

.rk-mat-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 20px -5px rgba(0,0,0,0.05);
    border-color: #fed7aa;
}

.rk-mat-card.active {
    border-color: var(--rk-mat-primary);
    background: var(--rk-mat-primary-light);
    box-shadow: 0 10px 25px -5px rgba(234, 88, 12, 0.2);
    transform: translateY(-4px);
}

.rk-mat-card.active::before {
    background: var(--rk-mat-primary);
}

.rk-mat-icon {
    width: 48px;
    height: 48px;
    margin: 0 auto 15px auto;
    color: #94a3b8;
    transition: color 0.3s;
}

.rk-mat-card.active .rk-mat-icon {
    color: var(--rk-mat-primary);
}

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

/* Panel Dynamicznych Wyników */
.rk-mat-result-panel {
    background: #ffffff;
    border: 1px solid var(--rk-mat-border);
    border-radius: 20px;
    padding: 35px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-mat-res-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 25px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--rk-mat-border);
}

.rk-mat-res-title {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-mat-dark);
    margin: 0 0 5px 0;
}

.rk-mat-res-subtitle {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-mat-text);
}

.rk-mat-res-badge {
    padding: 8px 16px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

/* Detale Techniczne */
.rk-mat-details {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-bottom: 30px;
}

.rk-mat-stat {
    background: var(--rk-mat-gray);
    padding: 15px 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-mat-border);
}

.rk-mat-stat-label {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    color: #64748b;
    margin-bottom: 5px;
}

.rk-mat-stat-val {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-mat-dark);
    font-family: monospace;
}

/* Suwak Termiczny (Wizualizacja) */
.rk-mat-gauge-container {
    margin-top: 20px;
}

.rk-mat-gauge-label {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 800;
    margin-bottom: 10px;
    color: var(--rk-mat-text);
}

.rk-mat-gauge-track {
    width: 100%;
    height: 16px;
    background: linear-gradient(to right, #22c55e 10%, #eab308 40%, #ea580c 70%, #dc2626 90%);
    border-radius: 999px;
    position: relative;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);
}

.rk-mat-gauge-limit {
    position: absolute;
    top: -5px;
    bottom: -5px;
    left: 75%; /* Odpowiada wartości 0.15 w naszej skali 0-0.20 */
    width: 3px;
    background: #0f172a;
    z-index: 2;
}

.rk-mat-gauge-limit::after {
    content: 'Limit 0,15';
    position: absolute;
    top: -22px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 11px;
    font-weight: 800;
    color: #0f172a;
    white-space: nowrap;
}

.rk-mat-gauge-marker {
    position: absolute;
    top: 50%;
    left: 4%; /* Start position */
    width: 24px;
    height: 24px;
    background: #ffffff;
    border: 4px solid var(--rk-mat-dark);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    transition: left 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 3;
    box-shadow: 0 2px 5px rgba(0,0,0,0.3);
}

/* Ostrzeżenie */
.rk-mat-alert-box {
    margin-top: 30px;
    padding: 20px;
    background: #fef2f2;
    border-left: 5px solid var(--rk-mat-danger);
    border-radius: 0 12px 12px 0;
}

.rk-mat-alert-box p {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: #991b1b;
    font-weight: 600;
}

.rk-mat-alert-box strong {
    color: #7f1d1d;
    font-weight: 900;
}

/* Tagi Długi Ogon */
.rk-mat-tags-wrapper {
    padding: 25px 50px 40px;
    background: var(--rk-mat-bg);
    border-top: 1px solid var(--rk-mat-border);
}

.rk-mat-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.rk-mat-tag {
    background: var(--rk-mat-gray);
    color: var(--rk-mat-text);
    padding: 8px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    border: 1px solid var(--rk-mat-border);
    transition: all 0.2s;
    text-decoration: none;
}

.rk-mat-tag:hover {
    background: var(--rk-mat-primary);
    color: #ffffff;
    border-color: var(--rk-mat-primary);
}

@media (max-width: 768px) {
    .rk-mat-header { padding: 35px 25px; }
    .rk-mat-header h2 { font-size: 24px; }
    .rk-mat-content { padding: 25px; }
    
    /* Mobilnie kafelki jeden pod drugim (wymóg z promptu) */
    .rk-mat-grid { grid-template-columns: 1fr; gap: 10px; }
    .rk-mat-card { padding: 15px; display: flex; align-items: center; gap: 15px; text-align: left; }
    .rk-mat-icon { margin: 0; width: 36px; height: 36px; }
    
    .rk-mat-result-panel { padding: 20px; }
    .rk-mat-res-header { flex-direction: column; align-items: flex-start; gap: 15px; }
    .rk-mat-details { grid-template-columns: 1fr; gap: 10px; }
    .rk-mat-tags-wrapper { padding: 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-opor",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Jak opór cieplny materiałów wykończeniowych wpływa na wydajność podłogówki?",
    "description": "Zgodnie z normą PN-EN 1264-3 limit oporu to 0,15 m²K/W. Zobacz tabelę i interaktywny symulator porównujący płytki, panele i parkiet na ogrzewaniu podłogowym.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "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-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-materialy",
    "name": "Tabela Oporu Cieplnego Okładzin Posadzkowych (PN-EN 1264)",
    "description": "Dane fizyczne materiałów wykończeniowych niezbędne do poprawnego obliczenia zładu i mocy instalacji ogrzewania płaszczyznowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "opór cieplny materiałów wykończeniowych",
      "panele a ogrzewanie podłogowe",
      "r lambda posadzki",
      "płytki czy panele na podłogówkę",
      "parkiet a podłogówka"
    ],
    "measurementTechnique": "Wartości przewodności cieplnej (lambda) oraz oporu (R) określone na podstawie grubości materiału wg wytycznych normatywnych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Płytki gresowe: Grubość 10mm, Lambda 1.30, Opór 0.008 m²K/W",
        "Panele laminowane: Grubość 8mm, Lambda 0.14, Opór 0.057 m²K/W",
        "Parkiet dębowy: Grubość 15mm, Lambda 0.18, Opór 0.083 m²K/W",
        "Wykładzina gruba: Grubość 12mm, Lambda 0.06, Opór 0.200 m²K/W"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-symulator-okladzin",
    "name": "Symulator Przepustowości Cieplnej Posadzki",
    "description": "Aplikacja wizualizująca wpływ wybranego materiału posadzkowego na tłumienie strumienia cieplnego w odniesieniu do granicy normatywnej 0,15 m²K/W.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-mat-container" id="rk-materialy-widget">
    <div class="rk-mat-header">
        <div class="rk-mat-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Termodynamika Posadzki
        </div>
        <h2>Jak opór cieplny materiałów wykończeniowych wpływa na wydajność podłogówki?</h2>
        <p>Wartość oporu cieplnego (R<sub>λ,B</sub>) to fizyczna bariera dla strumienia ciepła. Zgodnie z normą <strong>PN-EN 1264-3</strong>, maksymalny opór warstwy użytkowej podłogi nie może przekraczać <strong>0,15 m²K/W</strong>. Wybierz materiał i zobacz, jak blokuje on ciepło z rur.</p>
    </div>

    <div class="rk-mat-content">
        <div class="rk-mat-grid">
            <div class="rk-mat-card active" data-mat="plytki">
                <svg class="rk-mat-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="7" height="7"></rect><rect x="14" y="3" width="7" height="7"></rect><rect x="14" y="14" width="7" height="7"></rect><rect x="3" y="14" width="7" height="7"></rect></svg>
                <h3>Płytki / Gres</h3>
            </div>
            <div class="rk-mat-card" data-mat="panele">
                <svg class="rk-mat-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="6" width="20" height="4" rx="1"></rect><rect x="2" y="14" width="20" height="4" rx="1"></rect></svg>
                <h3>Panele dedykowane</h3>
            </div>
            <div class="rk-mat-card" data-mat="parkiet">
                <svg class="rk-mat-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 4h16v16H4z"></path><path d="M4 12h16"></path><path d="M12 4v16"></path><path d="M8 4v8"></path><path d="M16 12v8"></path></svg>
                <h3>Parkiet dębowy</h3>
            </div>
            <div class="rk-mat-card" data-mat="dywan">
                <svg class="rk-mat-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="4" width="20" height="16" rx="2"></rect><path d="M6 8h12"></path><path d="M6 12h12"></path><path d="M6 16h12"></path></svg>
                <h3>Gruby dywan</h3>
            </div>
        </div>

        <div class="rk-mat-result-panel">
            <div class="rk-mat-res-header">
                <div>
                    <h3 class="rk-mat-res-title" id="mat-title">Płytki gresowe / marmur</h3>
                    <div class="rk-mat-res-subtitle" id="mat-desc">Optymalny (brak tłumienia strumienia)</div>
                </div>
                <div class="rk-mat-res-badge" id="mat-badge" style="background: #dcfce7; color: #166534; border: 1px solid #22c55e;">
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"></polyline></svg>
                    Idealne dla pompy ciepła
                </div>
            </div>

            <div class="rk-mat-details">
                <div class="rk-mat-stat">
                    <div class="rk-mat-stat-label">Grubość</div>
                    <div class="rk-mat-stat-val" id="mat-thick">10 mm</div>
                </div>
                <div class="rk-mat-stat">
                    <div class="rk-mat-stat-label">Przewodność (λ)</div>
                    <div class="rk-mat-stat-val" id="mat-lambda">1.30</div>
                </div>
                <div class="rk-mat-stat" style="background: #f1f5f9; border-color: #cbd5e1;">
                    <div class="rk-mat-stat-label">Opór Cieplny (R)</div>
                    <div class="rk-mat-stat-val" id="mat-r" style="color: var(--rk-mat-primary);">0.008</div>
                </div>
            </div>

            <div class="rk-mat-gauge-container">
                <div class="rk-mat-gauge-label">
                    <span>Przepływ Swobodny (0.00)</span>
                    <span>Całkowita Blokada (0.20+)</span>
                </div>
                <div class="rk-mat-gauge-track">
                    <div class="rk-mat-gauge-limit"></div>
                    <div class="rk-mat-gauge-marker" id="mat-marker" style="left: 4%;"></div>
                </div>
            </div>
        </div>

        <div class="rk-mat-alert-box">
            <p><strong>Uwaga inżynierska!</strong> Ignorowanie tych wartości na etapie projektu i <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">zmiana płytek na parkiet w trakcie budowy</a> prowadzi do trwałego niedogrzania strefy mieszkalnej. Projektant musi bezwzględnie otrzymać od inwestora deklarację o planowanych materiałach przed uruchomieniem obliczeń hydraulicznych.</p>
        </div>
    </div>

    <div class="rk-mat-tags-wrapper">
        <div class="rk-mat-tags">
            <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/" class="rk-mat-tag"># opór cieplny materiałów wykończeniowych</a>
            <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/" class="rk-mat-tag"># panele a ogrzewanie podłogowe</a>
            <a href="#" class="rk-mat-tag"># r lambda posadzki</a>
            <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/" class="rk-mat-tag"># płytki czy panele na podłogówkę</a>
            <a href="#" class="rk-mat-tag"># grubość paneli na ogrzewanie</a>
            <a href="https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/" class="rk-mat-tag"># parkiet a podłogówka</a>
            <a href="#" class="rk-mat-tag"># dywan na ogrzewaniu podłogowym</a>
            <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/" class="rk-mat-tag"># straty ciepła przez podłogę</a>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Dane z tabeli PN-EN 1264-3
    var matData = {
        'plytki': {
            title: 'Płytki gresowe / marmur',
            desc: 'Optymalny (brak tłumienia strumienia)',
            thick: '10 mm',
            lambda: '1.30',
            r: '0.008',
            pos: '4%', // 0.008 / 0.200 = 4%
            badgeText: 'Idealne dla pompy ciepła',
            badgeBg: '#dcfce7',
            badgeColor: '#166534',
            badgeBorder: '#22c55e',
            icon: '<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"></polyline></svg>'
        },
        'panele': {
            title: 'Panele laminowane dedykowane',
            desc: 'Średni (wymaga korekty rozstawu rur)',
            thick: '8 mm',
            lambda: '0.14',
            r: '0.057',
            pos: '28.5%', // 0.057 / 0.200
            badgeText: 'Wymaga gęstszego rozstawu',
            badgeBg: '#fef9c3',
            badgeColor: '#854d0e',
            badgeBorder: '#eab308',
            icon: '<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>'
        },
        'parkiet': {
            title: 'Parkiet dębowy klejony',
            desc: 'Wysoki (wymaga wyższej temp. zasilania)',
            thick: '15 mm',
            lambda: '0.18',
            r: '0.083',
            pos: '41.5%', // 0.083 / 0.200
            badgeText: 'Spadek COP pompy ciepła',
            badgeBg: '#ffedd5',
            badgeColor: '#c2410c',
            badgeBorder: '#f97316',
            icon: '<svg width="16" height="16" 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>'
        },
        'dywan': {
            title: 'Wykładzina dywanowa gruba',
            desc: 'Niedopuszczalny (całkowita blokada cieplna)',
            thick: '12 mm',
            lambda: '0.06',
            r: '0.200',
            pos: '96%', // Max on gauge
            badgeText: 'Przekroczony limit normy!',
            badgeBg: '#fef2f2',
            badgeColor: '#991b1b',
            badgeBorder: '#dc2626',
            icon: '<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>'
        }
    };

    var cards = document.querySelectorAll('.rk-mat-card');
    
    // Pola do aktualizacji
    var elTitle = document.getElementById('mat-title');
    var elDesc = document.getElementById('mat-desc');
    var elThick = document.getElementById('mat-thick');
    var elLambda = document.getElementById('mat-lambda');
    var elR = document.getElementById('mat-r');
    var elBadge = document.getElementById('mat-badge');
    var elMarker = document.getElementById('mat-marker');

    cards.forEach(function(card) {
        card.addEventListener('click', function() {
            // Zmiana aktywnego kafelka
            cards.forEach(function(c) { c.classList.remove('active'); });
            this.classList.add('active');

            // Pobranie klucza materiału
            var matKey = this.getAttribute('data-mat');
            var d = matData[matKey];

            if (d !== undefined) {
                // Aktualizacja tekstów
                elTitle.textContent = d.title;
                elDesc.textContent = d.desc;
                elThick.textContent = d.thick;
                elLambda.textContent = d.lambda;
                elR.textContent = d.r;
                
                // Aktualizacja odznaki (badge)
                elBadge.innerHTML = d.icon + ' ' + d.badgeText;
                elBadge.style.background = d.badgeBg;
                elBadge.style.color = d.badgeColor;
                elBadge.style.borderColor = d.badgeBorder;

                // Animacja suwaka (unikamy przekroczenia 100%)
                elMarker.style.left = d.pos;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-algo-dark: #0f172a;
    --rk-algo-blue: #0284c7;
    --rk-algo-blue-bg: #e0f2fe;
    --rk-algo-accent: #f97316;
    --rk-algo-accent-bg: #ffedd5;
    --rk-algo-border: #e2e8f0;
    --rk-algo-text: #334155;
    --rk-algo-bg: #ffffff;
    --rk-algo-gray: #f8fafc;
}

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

/* Sekcja Nagłówkowa */
.rk-algo-header {
    padding: 40px 50px;
    background: var(--rk-algo-dark);
    color: #ffffff;
    text-align: center;
    border-bottom: 4px solid var(--rk-algo-accent);
}

.rk-algo-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(253, 186, 116, 0.3);
}

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

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

/* Moduł Interaktywnego Kalkulatora */
.rk-algo-calculator {
    padding: 40px 50px;
    background: var(--rk-algo-gray);
    border-bottom: 1px solid var(--rk-algo-border);
}

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

.rk-algo-controls {
    display: flex;
    flex-direction: column;
    gap: 25px;
    margin-bottom: 35px;
    background: #ffffff;
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-algo-border);
}

.rk-algo-control-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-algo-label {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-algo-text);
    display: flex;
    justify-content: space-between;
}

.rk-algo-label-val {
    color: var(--rk-algo-blue);
    font-size: 16px;
    font-weight: 900;
}

.rk-algo-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: var(--rk-algo-border);
    outline: none;
}

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

.rk-algo-slider::-webkit-slider-thumb:active {
    transform: scale(1.15);
}

/* Wyniki na żywo */
.rk-algo-results {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-algo-result-card {
    background: #ffffff;
    border: 2px solid var(--rk-algo-border);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: all 0.3s;
}

.rk-algo-result-card.primary {
    border-color: var(--rk-algo-blue);
    background: var(--rk-algo-blue-bg);
}

.rk-algo-result-card.accent {
    border-color: var(--rk-algo-accent);
    background: var(--rk-algo-accent-bg);
}

.rk-algo-res-label {
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-algo-text);
}

.rk-algo-res-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-algo-dark);
    font-family: monospace;
}

.rk-algo-result-card.primary .rk-algo-res-val { color: var(--rk-algo-blue); }
.rk-algo-result-card.accent .rk-algo-res-val { color: var(--rk-algo-accent); }

/* Akordeon Teoretyczny */
.rk-algo-theory {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-algo-theory h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-algo-dark);
    margin: 0 0 25px 0;
}

.rk-algo-step {
    border: 1px solid var(--rk-algo-border);
    border-radius: 12px;
    margin-bottom: 15px;
    overflow: hidden;
}

.rk-algo-step-btn {
    width: 100%;
    text-align: left;
    padding: 20px 25px;
    background: #ffffff;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 15px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-algo-dark);
    transition: background 0.3s;
}

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

.rk-algo-step-num {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--rk-algo-blue);
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    flex-shrink: 0;
}

.rk-algo-step-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease;
    background: var(--rk-algo-gray);
}

.rk-algo-step-inner {
    padding: 20px 25px;
    border-top: 1px solid var(--rk-algo-border);
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-algo-text);
}

.rk-algo-formula {
    background: var(--rk-algo-dark);
    color: #f8fafc;
    padding: 15px;
    border-radius: 8px;
    font-family: monospace;
    font-size: 16px;
    text-align: center;
    margin: 15px 0;
    letter-spacing: 1px;
}

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

@media (max-width: 768px) {
    .rk-algo-header, .rk-algo-calculator, .rk-algo-theory { padding: 30px 20px; }
    .rk-algo-header h2 { font-size: 24px; }
    .rk-algo-controls { padding: 15px; }
    .rk-algo-result-card { flex-direction: column; align-items: flex-start; gap: 10px; padding: 15px; }
    .rk-algo-step-btn { padding: 15px; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-algorytm",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Algorytm obliczeniowy doboru parametrów instalacji według normy PN-EN 1264",
    "description": "Zrozum twarde zasady fizyki stojące za podłogówką. Interaktywny symulator obliczający moc pętli, przepływ masowy i nastawy rotametrów.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-algorytm",
    "name": "Zestawienie parametrów hydraulicznych PN-EN 1264",
    "description": "Zbiór danych i zmiennych wykorzystywanych do obliczania oporów, przepływu i mocy grzewczej pojedynczych pętli wodnego ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "algorytm ogrzewania podłogowego",
      "przepływ masowy podłogówka",
      "ustawienia rotametrów przepływ",
      "straty ciśnienia pompy obiegowej",
      "ciepło właściwe wody ogrzewanie"
    ],
    "measurementTechnique": "Obliczenia inżynieryjne wykorzystujące stałe fizyczne (np. ciepło właściwe wody 1,163 Wh/(kg·K)) oraz zmienne wejściowe z projektowego obciążenia cieplnego (OZC).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Współczynnik bezpieczeństwa strat w dół: 1,15",
        "Ciepło właściwe czynnika (woda): 1,163 Wh/(kg·K)",
        "Dopuszczalna prędkość przepływu: 0,2 - 0,5 m/s",
        "Limit oporów pętli rury 16mm: ~20 kPa"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-kalkulator-przeplywu",
    "name": "Kalkulator Przepływu Pętli Ogrzewania Podłogowego",
    "description": "Interaktywny widget obliczający w czasie rzeczywistym wymaganą moc pętli, przepływ w kg/h oraz nastawę rotametru w l/min na podstawie wprowadzonych strat cieplnych.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-algo-container">
    <div class="rk-algo-header">
        <div class="rk-algo-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="4 14 10 14 10 20"></polyline><polyline points="20 10 14 10 14 4"></polyline><line x1="14" y1="10" x2="21" y2="3"></line><line x1="3" y1="21" x2="10" y2="14"></line></svg>
            Inżynieria Obliczeniowa
        </div>
        <h2>Algorytm obliczeniowy doboru parametrów instalacji według normy PN-EN 1264</h2>
        <p>Precyzyjne wyznaczenie przepływów i strat ciśnienia to fundament, na którym opiera się komfort cieplny. Zobacz, jak wyliczenia na papierze przekładają się na fizyczne działanie Twojej instalacji.</p>
    </div>

    <div class="rk-algo-calculator">
        <h3 class="rk-algo-calc-title">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-algo-blue)" stroke-width="2.5"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line></svg>
            Symulator Nastaw Rotametru (Live)
        </h3>
        
        <div class="rk-algo-controls">
            <div class="rk-algo-control-group">
                <div class="rk-algo-label">
                    <span>Straty Ciepła Pomieszczenia (Q OZC)</span>
                    <span class="rk-algo-label-val" id="val-qozc">800 W</span>
                </div>
                <input type="range" id="slider-qozc" class="rk-algo-slider" min="200" max="2500" step="50" value="800">
            </div>
            
            <div class="rk-algo-control-group">
                <div class="rk-algo-label">
                    <span>Spadek temperatury wody (ΔT)</span>
                    <span class="rk-algo-label-val" id="val-dt">5 K</span>
                </div>
                <input type="range" id="slider-dt" class="rk-algo-slider" min="3" max="10" step="1" value="5">
            </div>
        </div>

        <div class="rk-algo-results">
            <div class="rk-algo-result-card">
                <span class="rk-algo-res-label">Całkowita moc pętli (Q_obl):</span>
                <span class="rk-algo-res-val" id="out-qobl">920 W</span>
            </div>
            <div class="rk-algo-result-card primary">
                <span class="rk-algo-res-label">Przepływ masowy czynnika (m):</span>
                <span class="rk-algo-res-val" id="out-m">158.21 kg/h</span>
            </div>
            <div class="rk-algo-result-card accent">
                <span class="rk-algo-res-label">Wynik do ustawienia na rotametrze (G):</span>
                <span class="rk-algo-res-val" id="out-g">2.64 l/min</span>
            </div>
        </div>
    </div>

    <div class="rk-algo-theory">
        <h3>Ścieżka matematyczna krok po kroku</h3>
        
        <div class="rk-algo-step">
            <button class="rk-algo-step-btn">
                <div class="rk-algo-step-num">1</div>
                Wyznaczenie całkowitej mocy cieplnej pętli (Q_obl)
            </button>
            <div class="rk-algo-step-content">
                <div class="rk-algo-step-inner">
                    <p>Obliczamy rzeczywistą moc, jaką musi dostarczyć układ, wykorzystując wyniki z <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">kalkulatora strat ciepła OZC</a>. Obowiązkowo dodajemy współczynnik bezpieczeństwa (1,15), który rekompensuje straty ciepła uciekającego w dół posadzki.</p>
                    <div class="rk-algo-formula">Q_obl = Q_OZC × 1,15</div>
                </div>
            </div>
        </div>

        <div class="rk-algo-step">
            <button class="rk-algo-step-btn">
                <div class="rk-algo-step-num">2</div>
                Obliczenie wymaganego przepływu masowego (m)
            </button>
            <div class="rk-algo-step-content">
                <div class="rk-algo-step-inner">
                    <p>Wiedząc, ile watów musimy dostarczyć, wyliczamy masę wody. Bierzemy pod uwagę ciepło właściwe wody (c_w = 1,163 Wh/(kg·K)) oraz założony projektowy <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">spadek temperatury (ΔT)</a> na pętli.</p>
                    <div class="rk-algo-formula">m = Q_obl / (c_w · ΔT)</div>
                    <p>Wartość w kg/h dzielimy przez 60, by uzyskać litry na minutę – jednostkę czytelną dla instalatora na rotametrze w rozdzielaczu.</p>
                </div>
            </div>
        </div>

        <div class="rk-algo-step">
            <button class="rk-algo-step-btn">
                <div class="rk-algo-step-num">3</div>
                Wyznaczenie liniowych strat ciśnienia pętli (Δp_l)
            </button>
            <div class="rk-algo-step-content">
                <div class="rk-algo-step-inner">
                    <p>Straty ciśnienia determinują ostateczny dobór pompy obiegowej. Obliczamy jednostkowe opory tarcia rury (R), całkowitą <a href="https://projekt-ogrzewania.pl/ile-metrow-podlogowki-na-jednej-petli/">długość przewodu grzewczego (L)</a> i doliczamy współczynniki miejscowe (kolana, zwężki).</p>
                    <div class="rk-algo-formula">Δp_l = R · L + Σξ · (ρ · v²) / 2</div>
                    <p>Zasada twarda normy: Jeśli pętla (rura 16 mm) przekracza barierę 100 metrów, generuje opory pow. 20 kPa. W takim wypadku algorytm nakazuje podział pokoju na dwa niezależne obwody grzewcze, ratując pompę przed przeciążeniem.</p>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Logika Kalkulatora
    var sliderQozc = document.getElementById('slider-qozc');
    var sliderDt = document.getElementById('slider-dt');
    
    var valQozc = document.getElementById('val-qozc');
    var valDt = document.getElementById('val-dt');
    
    var outQobl = document.getElementById('out-qobl');
    var outM = document.getElementById('out-m');
    var outG = document.getElementById('out-g');

    function calculate() {
        var q_ozc = parseFloat(sliderQozc.value);
        var delta_t = parseFloat(sliderDt.value);

        // Update Labels
        valQozc.textContent = q_ozc + ' W';
        valDt.textContent = delta_t + ' K';

        // Math
        var q_obl = q_ozc * 1.15;
        var cw = 1.163;
        var m_kg = q_obl / (cw * delta_t);
        var g_lmin = m_kg / 60;

        // Output formatting
        outQobl.textContent = Math.round(q_obl) + ' W';
        outM.textContent = m_kg.toFixed(2) + ' kg/h';
        outG.textContent = g_lmin.toFixed(2) + ' l/min';
    }

    sliderQozc.addEventListener('input', calculate);
    sliderDt.addEventListener('input', calculate);
    
    // Inicjalizacja kalkulatora
    calculate();

    // Logika Akordeonu
    var steps = document.querySelectorAll('.rk-algo-step');

    steps.forEach(function(step) {
        var btn = step.querySelector('.rk-algo-step-btn');
        var content = step.querySelector('.rk-algo-step-content');

        btn.addEventListener('click', function() {
            var isOpen = content.style.maxHeight;

            // Zamykanie innych
            steps.forEach(function(s) {
                s.querySelector('.rk-algo-step-content').style.maxHeight = null;
            });

            // Otwieranie aktualnego (bezpieczny kod logiczny)
            if (!isOpen) {
                content.style.maxHeight = content.scrollHeight + "px";
            }
        });
    });
    
    // Otwórz pierwszy element po załadowaniu
    if (steps.length > 0) {
        var firstContent = steps[0].querySelector('.rk-algo-step-content');
        if (firstContent !== null) {
            firstContent.style.maxHeight = firstContent.scrollHeight + "px";
        }
    }
});
</script>



<style>
:root {
    --rk-wyl-dark: #0f172a;
    --rk-wyl-primary: #4f46e5;
    --rk-wyl-primary-light: #e0e7ff;
    --rk-wyl-success: #16a34a;
    --rk-wyl-success-bg: #dcfce7;
    --rk-wyl-danger: #dc2626;
    --rk-wyl-danger-bg: #fee2e2;
    --rk-wyl-bg: #ffffff;
    --rk-wyl-border: #e2e8f0;
    --rk-wyl-text: #334155;
    --rk-wyl-text-muted: #64748b;
}

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

/* Sekcja Nagłówkowa */
.rk-wyl-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-wyl-dark) 0%, #1e293b 100%);
    color: #ffffff;
    border-bottom: 4px solid var(--rk-wyl-primary);
    text-align: center;
}

.rk-wyl-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(79, 70, 229, 0.3);
    color: #818cf8;
    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(129, 140, 248, 0.2);
}

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

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

/* Układ Jednokolumnowy (Zgodnie z wytycznymi) */
.rk-wyl-content {
    padding: 40px 50px;
    background: #f8fafc;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

/* Interaktywna Karta Weryfikacyjna */
.rk-wyl-card {
    background: var(--rk-wyl-bg);
    border: 1px solid var(--rk-wyl-border);
    border-radius: 16px;
    padding: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    transition: all 0.3s ease;
}

.rk-wyl-card:hover {
    border-color: #c7d2fe;
    box-shadow: 0 10px 25px -5px rgba(79, 70, 229, 0.1);
}

.rk-wyl-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--rk-wyl-border);
}

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

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

/* Elementy Switch / Suwaka */
.rk-wyl-switch-wrapper {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #f1f5f9;
    padding: 6px 12px;
    border-radius: 999px;
    border: 1px solid var(--rk-wyl-border);
}

.rk-wyl-switch-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-wyl-text-muted);
    transition: color 0.3s;
}

.rk-wyl-switch-label.active {
    color: var(--rk-wyl-dark);
}

.rk-wyl-switch {
    position: relative;
    width: 44px;
    height: 24px;
    background: var(--rk-wyl-danger);
    border-radius: 24px;
    cursor: pointer;
    transition: background 0.3s;
}

.rk-wyl-switch.active {
    background: var(--rk-wyl-success);
}

.rk-wyl-switch-knob {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 20px;
    height: 20px;
    background: #ffffff;
    border-radius: 50%;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

.rk-wyl-switch.active .rk-wyl-switch-knob {
    transform: translateX(20px);
}

/* Zawartość Karty (Dynamiczna) */
.rk-wyl-view {
    display: none;
    animation: fadeView 0.4s ease;
}

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

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

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

.rk-wyl-view a {
    color: var(--rk-wyl-primary);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.rk-wyl-list {
    margin: 0 0 15px 0;
    padding: 0;
    list-style: none;
}

.rk-wyl-list li {
    position: relative;
    padding-left: 28px;
    margin-bottom: 10px;
    font-size: 15px;
    line-height: 1.5;
    color: var(--rk-wyl-text);
    font-weight: 600;
}

.rk-wyl-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 2px;
    width: 18px;
    height: 18px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234f46e5' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
    background-size: cover;
}

.rk-wyl-alert {
    padding: 12px 16px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-wyl-alert.danger {
    background: var(--rk-wyl-danger-bg);
    color: #991b1b;
    border-left: 4px solid var(--rk-wyl-danger);
}

.rk-wyl-alert.success {
    background: var(--rk-wyl-success-bg);
    color: #166534;
    border-left: 4px solid var(--rk-wyl-success);
}

@media (max-width: 768px) {
    .rk-wyl-header { padding: 35px 25px; }
    .rk-wyl-header h2 { font-size: 24px; }
    .rk-wyl-content { padding: 30px 20px; }
    .rk-wyl-card { padding: 20px; }
    .rk-wyl-card-header { flex-direction: column; align-items: flex-start; gap: 15px; }
    .rk-wyl-switch-wrapper { align-self: flex-start; width: 100%; justify-content: space-between; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-wytyczne-montazowe",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Jak wytyczne montażowe PN-EN 1264-4 wpływają na wykonanie wylewki i dylatacji?",
    "description": "Zasady izolacji stropu, grubość wylewki (45 mm dla betonu) i taśmy brzegowe. Zobacz, jak norma chroni przed pękaniem posadzki z ogrzewaniem podłogowym.",
    "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-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-wylewki",
    "name": "Zestawienie wymiarów i limitów dylatacyjnych wylewek grzewczych",
    "description": "Dokładne parametry techniczne dotyczące grubości jastrychu betonowego i anhydrytowego, ciśnień kontrolnych oraz oporów cieplnych izolacji EPS/XPS.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "grubość wylewki na ogrzewanie podłogowe",
      "dylatacje w podłogówce",
      "izolacja brzegowa ogrzewania",
      "próba szczelności podłogówki ciśnienie",
      "jastrych grzewczy norma"
    ],
    "measurementTechnique": "Wymogi minimalne oraz graniczne określone w Części 4 normy (wartości w [mm], [bar] oraz [m2K/W]).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Opór cieplny nad nieogrzewanym: R >= 2,25 m²K/W",
        "Minimalna grubość taśmy brzegowej: 8 mm",
        "Maksymalna powierzchnia pola dylatacyjnego: 40 m²",
        "Długość rury ochronnej (peszla) na dylatacji: 40 cm",
        "Ciśnienie podczas betonowania: min. 3 bar",
        "Wylewka cementowa nad rurą: min. 45 mm"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-wylewki",
    "name": "Symulator Poprawności Wylewki i Dylatacji",
    "description": "Narzędzie interaktywne typu switch (suwak) demonstrujące różnice i zagrożenia pomiędzy amatorskim układaniem styropianu/betonu, a reżimem normy PN-EN 1264-4.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-wyl-container" id="rk-wylewki-widget">
    <div class="rk-wyl-header">
        <div class="rk-wyl-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path></svg>
            Ordynans Wykonawczy
        </div>
        <h2>Jak wytyczne montażowe PN-EN 1264-4 wpływają na wykonanie wylewki i dylatacji?</h2>
        <p>Część czwarta normy to bezpośredni przewodnik dla instalatora. Definiuje ona surowe kryteria fizyczne, które muszą być spełnione przed, w trakcie i po zalaniu rur jastrychem grzewczym.</p>
    </div>

    <div class="rk-wyl-content">
        
        <div class="rk-wyl-card">
            <div class="rk-wyl-card-header">
                <h3>
                    <div class="rk-wyl-card-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><rect x="9" y="9" width="6" height="6"></rect><line x1="9" y1="1" x2="9" y2="4"></line><line x1="15" y1="1" x2="15" y2="4"></line><line x1="9" y1="20" x2="9" y2="23"></line><line x1="15" y1="20" x2="15" y2="23"></line><line x1="20" y1="9" x2="23" y2="9"></line><line x1="20" y1="14" x2="23" y2="14"></line><line x1="1" y1="9" x2="4" y2="9"></line><line x1="1" y1="14" x2="4" y2="14"></line></svg>
                    </div>
                    Wymagania dla izolacji termicznej
                </h3>
                <div class="rk-wyl-switch-wrapper">
                    <span class="rk-wyl-switch-label active" data-state="amator">Na Oko</span>
                    <div class="rk-wyl-switch" data-target="izolacja">
                        <div class="rk-wyl-switch-knob"></div>
                    </div>
                    <span class="rk-wyl-switch-label" data-state="norma">Norma</span>
                </div>
            </div>
            
            <div id="izolacja-amator" class="rk-wyl-view active">
                <p>Użycie losowej warstwy styropianu bez analizy oporu cieplnego. Często prowadzi do strat energii uciekającej do gruntu zamiast do pomieszczenia.</p>
                <div class="rk-wyl-alert danger">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                    Zbyt cienka izolacja = grzanie sufitu sąsiada lub ziemi pod domem.
                </div>
            </div>

            <div id="izolacja-norma" class="rk-wyl-view">
                <p>Norma bezwzględnie nakazuje stosowanie warstw izolacji o minimalnym oporze cieplnym <strong>R</strong>. Sprawdź dokładnie, <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">ile styropianu zastosować</a>, bazując na twardych wyliczeniach:</p>
                <ul class="rk-wyl-list">
                    <li>Nad pomieszczeniem ogrzewanym: R ≥ 1,25 m²K/W</li>
                    <li>Nad pomieszczeniem nieogrzewanym lub bezpośrednio na gruncie: R ≥ 2,25 m²K/W</li>
                </ul>
                <div class="rk-wyl-alert success">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                    Ciepło emitowane jest w 100% kierunkowo do wnętrza pomieszczenia.
                </div>
            </div>
        </div>

        <div class="rk-wyl-card">
            <div class="rk-wyl-card-header">
                <h3>
                    <div class="rk-wyl-card-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="9" y1="15" x2="15" y2="15"></line></svg>
                    </div>
                    Szczeliny dylatacyjne i brzegowe
                </h3>
                <div class="rk-wyl-switch-wrapper">
                    <span class="rk-wyl-switch-label active" data-state="amator">Na Oko</span>
                    <div class="rk-wyl-switch" data-target="dylatacje">
                        <div class="rk-wyl-switch-knob"></div>
                    </div>
                    <span class="rk-wyl-switch-label" data-state="norma">Norma</span>
                </div>
            </div>
            
            <div id="dylatacje-amator" class="rk-wyl-view active">
                <p>Brak wklejania cienkiej taśmy i rozlewanie betonu w olbrzymich salonach jako jedna wielka płyta. Rury przechodzące przez progi układane są „gołe” bezpośrednio w zaprawie.</p>
                <div class="rk-wyl-alert danger">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                    Gwarantowane pęknięcia jastrychu ściętego u progu drzwi.
                </div>
            </div>

            <div id="dylatacje-norma" class="rk-wyl-view">
                <p>Jastrych rozszerza się liniowo pod wpływem temperatury. Prawidłowa <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacja obwodowa (taśma minimum 8 mm)</a> musi oddzielać płytę od ścian. Ponadto normatywne dylatacje dzieli się, gdy:</p>
                <ul class="rk-wyl-list">
                    <li>Powierzchnia pola przekracza 40 m².</li>
                    <li>Długość boku wylewki przekracza 8 metrów.</li>
                    <li>Stosunek boków jest większy niż 2:1 (wąskie, długie korytarze).</li>
                </ul>
                <p>Przejścia rur przez szczeliny muszą być chronione peszlami (rurami ochronnymi) o długości minimum 40 cm (po 20 cm w każdym kierunku).</p>
                <div class="rk-wyl-alert success">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                    Bezpieczna posadzka pracująca bez pękania płytek i fug.
                </div>
            </div>
        </div>

        <div class="rk-wyl-card">
            <div class="rk-wyl-card-header">
                <h3>
                    <div class="rk-wyl-card-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path></svg>
                    </div>
                    Grubość jastrychu i próba szczelności
                </h3>
                <div class="rk-wyl-switch-wrapper">
                    <span class="rk-wyl-switch-label active" data-state="amator">Na Oko</span>
                    <div class="rk-wyl-switch" data-target="cisnienie">
                        <div class="rk-wyl-switch-knob"></div>
                    </div>
                    <span class="rk-wyl-switch-label" data-state="norma">Norma</span>
                </div>
            </div>
            
            <div id="cisnienie-amator" class="rk-wyl-view active">
                <p>Zalewanie układu bez wody w rurach. Operator pompy do betonu (tzw. miksokreta) stąpa po nienaprężonych, pustych przewodach. Grubość zaniżana pod wymiary starych futryn.</p>
                <div class="rk-wyl-alert danger">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                    Ryzyko zmiażdżenia rury łopatą i zalania budynku!
                </div>
            </div>

            <div id="cisnienie-norma" class="rk-wyl-view">
                <p>Zanim zalejesz beton, musisz wykonać <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">hydrauliczną próbę ciśnieniową na poziomie 6 bar</a> przez 30 minut. Norma nakazuje utrzymywanie instalacji pod napięciem (min. 3 bar) w trakcie lania betonu.</p>
                <p>Dbając o obciążenia, upewnij się o prawidłowej <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/">grubości wylewki na ogrzewanie podłogowe</a> (wartości mierzone nad wierzchem rury):</p>
                <ul class="rk-wyl-list">
                    <li>Dla betonu cementowego: minimum 45 mm</li>
                    <li>Dla wylewki anhydrytowej: minimum 35 mm (lub inna zgodna z kartą chemii)</li>
                </ul>
                <div class="rk-wyl-alert success">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                    Naprężone rury nie ulegają zgnieceniu, a posadzka zyskuje akumulacyjność.
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var switches = document.querySelectorAll('.rk-wyl-switch');

    switches.forEach(function(sw) {
        sw.addEventListener('click', function() {
            var isNorma = this.classList.contains('active');
            var targetId = this.getAttribute('data-target');
            
            var wrapper = this.closest('.rk-wyl-switch-wrapper');
            var labelAmator = wrapper.querySelector('[data-state="amator"]');
            var labelNorma = wrapper.querySelector('[data-state="norma"]');
            
            var viewAmator = document.getElementById(targetId + '-amator');
            var viewNorma = document.getElementById(targetId + '-norma');

            if (isNorma === true) {
                // Było Norma -> Zmień na Amator
                this.classList.remove('active');
                labelAmator.classList.add('active');
                labelNorma.classList.remove('active');
                
                if (viewNorma !== null) { viewNorma.classList.remove('active'); }
                if (viewAmator !== null) { viewAmator.classList.add('active'); }
            } else {
                // Było Amator -> Zmień na Norma
                this.classList.add('active');
                labelAmator.classList.remove('active');
                labelNorma.classList.add('active');
                
                if (viewAmator !== null) { viewAmator.classList.remove('active'); }
                if (viewNorma !== null) { viewNorma.classList.add('active'); }
            }
        });
    });
});
</script>



<style>
:root {
    --rk-proj-dark: #0f172a;
    --rk-proj-slate: #334155;
    --rk-proj-cyan: #0891b2;
    --rk-proj-cyan-light: #cffafe;
    --rk-proj-cyan-hover: #06b6d4;
    --rk-proj-accent: #f59e0b;
    --rk-proj-bg: #ffffff;
    --rk-proj-border: #e2e8f0;
    --rk-proj-gray-bg: #f8fafc;
}

.rk-proj-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-proj-bg);
    border-radius: 24px;
    box-shadow: 0 15px 35px -5px rgba(8, 145, 178, 0.15);
    border: 1px solid var(--rk-proj-cyan);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-proj-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-proj-dark) 0%, #1e293b 100%);
    color: #ffffff;
    border-bottom: 4px solid var(--rk-proj-cyan);
}

.rk-proj-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(6, 182, 212, 0.2);
    color: #22d3ee;
    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(34, 211, 238, 0.3);
}

.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: #cbd5e1;
    line-height: 1.6;
    margin: 0;
    max-width: 800px;
}

/* Interaktywny Moduł Projektowy */
.rk-proj-interactive {
    display: grid;
    grid-template-columns: 320px 1fr;
    background: var(--rk-proj-bg);
}

/* Nawigacja (Lewa strona na desktopie, góra/pion na mobile) */
.rk-proj-nav {
    background: var(--rk-proj-gray-bg);
    padding: 30px;
    border-right: 1px solid var(--rk-proj-border);
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-proj-nav-btn {
    display: flex;
    align-items: center;
    gap: 15px;
    width: 100%;
    padding: 16px 20px;
    background: #ffffff;
    border: 1px solid var(--rk-proj-border);
    border-radius: 12px;
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-proj-slate);
    cursor: pointer;
    text-align: left;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.rk-proj-nav-btn:hover {
    border-color: var(--rk-proj-cyan);
    transform: translateX(4px);
}

.rk-proj-nav-btn.active {
    background: var(--rk-proj-cyan);
    color: #ffffff;
    border-color: var(--rk-proj-cyan);
    box-shadow: 0 10px 15px -3px rgba(8, 145, 178, 0.3);
    transform: translateX(8px);
}

.rk-proj-nav-icon {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: var(--rk-proj-cyan-light);
    color: var(--rk-proj-cyan);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.3s;
}

.rk-proj-nav-btn.active .rk-proj-nav-icon {
    background: rgba(255, 255, 255, 0.2);
    color: #ffffff;
}

/* Obszar Treści (Prawa strona na desktopie) */
.rk-proj-content-area {
    padding: 40px;
    position: relative;
}

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

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

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

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

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

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

.rk-proj-panel a:hover {
    color: var(--rk-proj-cyan-hover);
}

/* Wizualizacja inżynierska wewnątrz panelu */
.rk-proj-tech-box {
    background: var(--rk-proj-dark);
    border-radius: 12px;
    padding: 20px;
    margin-top: 25px;
    border-left: 4px solid var(--rk-proj-accent);
    color: #f8fafc;
}

.rk-proj-tech-box h4 {
    margin: 0 0 10px 0;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #94a3b8;
}

.rk-proj-tech-value {
    font-family: monospace;
    font-size: 18px;
    color: var(--rk-proj-cyan-light);
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-proj-tech-value strong {
    font-size: 24px;
    color: #ffffff;
}

/* Sekcja CTA na dole */
.rk-proj-cta-section {
    padding: 40px 50px;
    background: var(--rk-proj-gray-bg);
    border-top: 1px solid var(--rk-proj-border);
    text-align: center;
}

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

.rk-proj-btn-massive {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-proj-accent);
    color: var(--rk-proj-dark);
    font-size: 18px;
    font-weight: 900;
    padding: 20px 40px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(245, 158, 11, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 2px solid transparent;
    width: 100%;
    max-width: 600px;
    margin-top: 20px;
    text-transform: uppercase;
}

.rk-proj-btn-massive:hover {
    transform: translateY(-5px);
    background: #d97706;
    color: #ffffff;
    box-shadow: 0 20px 35px -5px rgba(245, 158, 11, 0.5);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-proj-header { padding: 35px 25px; }
    .rk-proj-header h2 { font-size: 24px; }
    
    /* Zmiana na układ pionowy (akordeonowy) dla mobile */
    .rk-proj-interactive { grid-template-columns: 1fr; }
    .rk-proj-nav { padding: 25px; border-right: none; border-bottom: 1px solid var(--rk-proj-border); }
    
    .rk-proj-nav-btn:hover { transform: translateY(-2px); }
    .rk-proj-nav-btn.active { transform: translateY(-4px); }
    
    .rk-proj-content-area { padding: 30px 25px; }
    .rk-proj-cta-section { padding: 35px 25px; }
    .rk-proj-btn-massive { padding: 16px 20px; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-projekt",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Jak postanowienia normy PN-EN 1264 wpływają na profesjonalny projekt ogrzewania podłogowego?",
    "description": "Zastosowanie normy PN-EN 1264 eliminuje błędy montażowe. Poznaj 4 filary profesjonalnego projektu: OZC, dobór pompy ciepła, zrównoważenie hydrauliczne i opory pętli.",
    "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-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-wplyw-normy",
    "name": "Kryteria inżynierskie projektu instalacji podłogowej wg PN-EN 1264",
    "description": "Baza danych parametrów uwzględnianych w profesjonalnym projekcie ogrzewania: integracja z OZC, temperatura zasilania pompy ciepła, nastawy rotametrów i wysokość podnoszenia pompy obiegowej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "profesjonalny projekt ogrzewania podłogowego",
      "obliczenia strat ciepła OZC",
      "temperatura zasilania pompy ciepła",
      "zrównoważenie hydrauliczne rotametry",
      "dobór pompy obiegowej"
    ],
    "measurementTechnique": "Algorytmy obliczeniowe oparte na PN-EN 1264 i PN-EN 12831 wykorzystywane do optymalizacji układów z pompami ciepła.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wpływ OZC na gęstość rur (rozstawy 100mm vs 300mm)",
        "Optymalizacja temperatury zasilania do 35°C",
        "Wymagane zrównoważenie hydrauliczne pętli",
        "Kompensacja oporów hydraulicznych pompy (np. 25 kPa)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-symulator-projektu",
    "name": "Symulator Zgodności Projektu z PN-EN 1264",
    "description": "Interaktywny interfejs edukacyjny pozwalający inwestorowi przeanalizować cztery filary profesjonalnej inżynierii sanitarnej w zestawieniu z praktykami amatorskimi.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-proj-container" id="rk-norm-impact-widget">
    <div class="rk-proj-header">
        <div class="rk-proj-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
            Inżynieria w Praktyce
        </div>
        <h2>Jak postanowienia normy PN-EN 1264 wpływają na profesjonalny projekt ogrzewania podłogowego?</h2>
        <p>Zastosowanie normy PN-EN 1264 całkowicie eliminuje rzemieślnicze schematy działania i przesuwa akcent na precyzyjne projektowanie. Wpływa ona na cztery fundamentalne obszary każdego profesjonalnego projektu instalacji.</p>
    </div>

    <div class="rk-proj-interactive">
        <div class="rk-proj-nav">
            <button class="rk-proj-nav-btn active" data-panel="ozc">
                <div class="rk-proj-nav-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                </div>
                1. Integracja z OZC
            </button>
            <button class="rk-proj-nav-btn" data-panel="pompa">
                <div class="rk-proj-nav-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                </div>
                2. Rozstaw rur a COP
            </button>
            <button class="rk-proj-nav-btn" data-panel="hydraulika">
                <div class="rk-proj-nav-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><path d="M12 8l4 4-4 4M8 12h8"></path></svg>
                </div>
                3. Zrównoważenie
            </button>
            <button class="rk-proj-nav-btn" data-panel="obieg">
                <div class="rk-proj-nav-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                </div>
                4. Pompa Obiegowa
            </button>
        </div>

        <div class="rk-proj-content-area">
            
            <div class="rk-proj-panel active" id="panel-ozc">
                <h3>Integracja z normą PN-EN 12831 (OZC)</h3>
                <p>Wyznaczone <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">straty ciepła budynku</a> determinują maksymalny rozstaw rur dla każdego pomieszczenia indywidualnie.</p>
                <p>Jeśli budynek jest pasywny, matematyka pozwala na szerokie rozstawy rzędu 200–300 mm. W domach ze słabszą izolacją lub przy wielkich przeszkleniach w salonie (tzw. strefy brzegowe), norma wymusza zastosowanie gęstego rozstawu rur rzędu 100 mm.</p>
                <div class="rk-proj-tech-box">
                    <h4>Wynik Inżynieryjny:</h4>
                    <div class="rk-proj-tech-value">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#22d3ee" stroke-width="2"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path></svg>
                        Uniknięcie stref niedogrzanych zimą
                    </div>
                </div>
            </div>

            <div class="rk-proj-panel" id="panel-pompa">
                <h3>Dobór Rozstawu Rur pod Ograniczenia Pompy Ciepła</h3>
                <p>Każdy inżynier projektujący układ pod pompę ciepła dąży do uzyskania jak <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">najniższej temperatury zasilania</a> (optymalnie 35°C).</p>
                <p>Norma PN-EN 1264 dostarcza twardych narzędzi matematycznych do udowodnienia, że przy odpowiednio zagęszczonym rozstawie rur (np. co 10 cm), instalacja uzyska pożądaną moc grzewczą bez niszczycielskiej konieczności przegrzewania zładu wody do 45°C, co obniżyłoby COP pompy.</p>
                <div class="rk-proj-tech-box">
                    <h4>Parametr Celowy Projektu:</h4>
                    <div class="rk-proj-tech-value">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#22d3ee" stroke-width="2"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                        Zasilanie: <strong>35°C</strong>
                    </div>
                </div>
            </div>

            <div class="rk-proj-panel" id="panel-hydraulika">
                <h3>Zrównoważenie Hydrauliczne (Hydronic Balancing)</h3>
                <p>Ogrzewanie robione &#8222;na oko&#8221; kończy się tym, że krótkie pętle grzeją mocno, a długie pozostają zimne. Dzięki dokładnym obliczeniom strat ciśnienia dla każdej pętli z osobna, profesjonalny projekt zawiera tabelę z wytycznymi.</p>
                <p>Na jej podstawie instalator wykonuje <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">gotowe nastawy wstępne dla rotametrów</a> na rozdzielaczu, co wymusza równomierny przepływ w całym budynku.</p>
                <div class="rk-proj-tech-box">
                    <h4>Efekt Zastosowania Normy:</h4>
                    <div class="rk-proj-tech-value">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#22d3ee" stroke-width="2"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                        Jednorodna temperatura każdej posadzki
                    </div>
                </div>
            </div>

            <div class="rk-proj-panel" id="panel-obieg">
                <h3>Wytyczne dla Doboru Pompy Obiegowej</h3>
                <p>Suma wszystkich strat tarcia i oporów miejscowych w najmniej korzystnym obiegu (czyli w pętli o największym oporze połączonej z magistralą zasilającą) definiuje wytyczne do wyboru urządzenia tłoczącego.</p>
                <p>Projekt oblicza wymaganą wysokość podnoszenia pompy obiegowej. Wiedząc, że układ stawia opór na poziomie np. 25 kPa (czyli około 2,5 metra słupa wody), <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">prawidłowy dobór pompy</a> staje się faktem matematycznym, a nie zgadywaniem.</p>
                <div class="rk-proj-tech-box">
                    <h4>Krytyczny Wynik Obliczeń:</h4>
                    <div class="rk-proj-tech-value">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#22d3ee" stroke-width="2"><line x1="12" y1="19" x2="12" y2="5"></line><polyline points="5 12 12 5 19 12"></polyline></svg>
                        Wymagane podnoszenie: <strong>~25 kPa</strong>
                    </div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-proj-cta-section">
        <h3>Nie oszczędzaj na sercu swojego domu</h3>
        <p style="color: #475569; margin-bottom: 25px; font-size: 16px;">
            Amatorski montaż pociąga za sobą gigantyczne koszty eksploatacji i awarii. Zainwestuj w absolutną pewność inżynieryjną opartą na certyfikowanych normach.
        </p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-proj-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"><polygon points="5 3 19 12 5 21 5 3"></polygon></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var navBtns = document.querySelectorAll('#rk-norm-impact-widget .rk-proj-nav-btn');
    var panels = document.querySelectorAll('#rk-norm-impact-widget .rk-proj-panel');

    navBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-panel');

            // 1. Reset przycisków
            navBtns.forEach(function(b) {
                b.classList.remove('active');
            });
            // Aktywacja klikniętego
            this.classList.add('active');

            // 2. Reset paneli
            panels.forEach(function(panel) {
                panel.classList.remove('active');
            });
            // Aktywacja docelowego panelu (bezpieczny JS, brak restrykcyjnych znaków logicznych)
            var activePanel = document.getElementById('panel-' + targetId);
            if (activePanel) {
                activePanel.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-red: #dc2626;
    --rk-case-red-light: #fef2f2;
    --rk-case-green: #059669;
    --rk-case-green-light: #ecfdf5;
    --rk-case-blue: #2563eb;
    --rk-case-gray: #f8fafc;
    --rk-case-border: #cbd5e1;
    --rk-case-text: #334155;
    --rk-case-bg: #ffffff;
}

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

/* Nagłówek Case Study */
.rk-case-header {
    padding: 40px 50px 30px;
    background: var(--rk-case-dark);
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-case-red);
}

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

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

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

/* Panel Detektywistyczny (Interakcja) */
.rk-case-investigation {
    padding: 40px 50px;
    background: var(--rk-case-gray);
}

.rk-case-tabs {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
}

.rk-case-tab {
    flex: 1;
    padding: 20px;
    background: #ffffff;
    border: 2px solid var(--rk-case-border);
    border-radius: 16px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 15px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-case-tab-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--rk-case-gray);
    color: var(--rk-case-text);
    transition: all 0.3s;
}

.rk-case-tab-text h3 {
    margin: 0 0 5px 0;
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-case-dark);
}

.rk-case-tab-text p {
    margin: 0;
    font-size: 13px;
    color: var(--rk-case-text);
    font-weight: 600;
}

/* Stany aktywne zakładek */
.rk-case-tab[data-state="awaria"].active {
    border-color: var(--rk-case-red);
    background: var(--rk-case-red-light);
    box-shadow: 0 10px 20px -5px rgba(220, 38, 38, 0.15);
}
.rk-case-tab[data-state="awaria"].active .rk-case-tab-icon {
    background: var(--rk-case-red);
    color: #ffffff;
}

.rk-case-tab[data-state="naprawa"].active {
    border-color: var(--rk-case-green);
    background: var(--rk-case-green-light);
    box-shadow: 0 10px 20px -5px rgba(5, 150, 105, 0.15);
}
.rk-case-tab[data-state="naprawa"].active .rk-case-tab-icon {
    background: var(--rk-case-green);
    color: #ffffff;
}

/* Widoki zawartości */
.rk-case-view {
    display: none;
    background: #ffffff;
    border: 1px solid var(--rk-case-border);
    border-radius: 20px;
    padding: 35px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-case-view.active {
    display: block;
    animation: slideUpCase 0.4s ease forwards;
}

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

.rk-case-details {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-bottom: 25px;
}

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

.rk-case-list li {
    padding-left: 30px;
    position: relative;
    margin-bottom: 15px;
    font-size: 15px;
    line-height: 1.6;
    color: var(--rk-case-text);
    font-weight: 600;
}

.rk-case-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 3px;
    width: 20px;
    height: 20px;
    background-size: contain;
    background-repeat: no-repeat;
}

/* Ikony list dla awarii (krzyżyk) */
.view-awaria .rk-case-list li::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23dc2626' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");
}

/* Ikony list dla naprawy (ptaszek) */
.view-naprawa .rk-case-list li::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23059669' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
}

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

/* Ramka z danymi liczbowymi */
.rk-case-metrics {
    background: var(--rk-case-dark);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    justify-content: space-around;
    color: #ffffff;
}

.rk-case-metric {
    text-align: center;
}

.rk-case-metric-val {
    font-size: 24px;
    font-weight: 900;
    font-family: monospace;
    margin-bottom: 5px;
}

.view-awaria .rk-case-metric-val { color: #fca5a5; }
.view-naprawa .rk-case-metric-val { color: #6ee7b7; }

.rk-case-metric-label {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 700;
    color: #94a3b8;
}

/* Raport Finansowy */
.rk-case-finance {
    padding: 35px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-case-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

.rk-case-finance-text h3 {
    margin: 0 0 10px 0;
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-case-dark);
}

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

.rk-case-finance-box {
    background: #fef2f2;
    border: 2px solid var(--rk-case-red);
    padding: 20px 30px;
    border-radius: 16px;
    text-align: center;
    min-width: 250px;
}

.rk-case-finance-box span {
    display: block;
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-case-red);
    text-transform: uppercase;
    margin-bottom: 5px;
}

.rk-case-finance-box strong {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-case-dark);
}

/* Tagi Długiego Ogona */
.rk-case-tags {
    padding: 20px 50px 30px;
    background: #ffffff;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.rk-case-tag {
    background: var(--rk-case-gray);
    color: var(--rk-case-text);
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 700;
    border: 1px solid var(--rk-case-border);
    text-decoration: none;
    transition: all 0.2s;
}

.rk-case-tag:hover {
    background: var(--rk-case-dark);
    color: #ffffff;
    border-color: var(--rk-case-dark);
}

@media (max-width: 768px) {
    .rk-case-header { padding: 30px 20px; }
    .rk-case-header h2 { font-size: 24px; }
    .rk-case-investigation { padding: 25px 20px; }
    
    .rk-case-tabs { flex-direction: column; gap: 10px; }
    .rk-case-tab { padding: 15px; }
    
    .rk-case-view { padding: 25px 20px; }
    .rk-case-details { grid-template-columns: 1fr; gap: 20px; }
    .rk-case-metrics { flex-direction: column; gap: 20px; }
    
    .rk-case-finance { padding: 30px 20px; flex-direction: column; text-align: center; }
    .rk-case-finance-box { width: 100%; min-width: auto; }
    .rk-case-tags { padding: 0 20px 30px; justify-content: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-case-study",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Case Study: Skutki ignorowania normy PN-EN 1264 w praktyce instalacyjnej",
    "description": "Analiza rzeczywistej awarii. Zobacz, jak za długa pętla i brak projektu doprowadziły do niedogrzania salonu i kosztownego kucia wylewki.",
    "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-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-case-study",
    "name": "Raport Kosztów Awarii Ogrzewania Podłogowego",
    "description": "Porównanie kosztów prewencyjnego projektu inżynieryjnego z kosztami naprawy błędów wykonawczych (kucie wylewki, frezowanie) w budynku jednorodzinnym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "za długa pętla podłogówki",
      "objawy zapowietrzenia ogrzewania podłogowego",
      "najczęstsze błędy przy montażu ogrzewania podłogowego",
      "koszt usunięcia awarii ogrzewania",
      "niedogrzany salon przyczyny"
    ],
    "measurementTechnique": "Analiza strat finansowych inwestora na podstawie realnego kosztorysu naprawczego (wymiana posadzki vs koszt projektu OZC).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Koszt projektu inżynieryjnego: 550 PLN",
        "Koszt kucia i wymiany wylewki (120m2): ~18 500 PLN",
        "Opory hydrauliczne przy pętli 180m: Przekroczenie limitu pompy",
        "Rozwiązanie alternatywne: Frezowanie podłogówki"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-symulator-ryzyka",
    "name": "Kalkulator Ryzyka i Diagnoza Awarii (Case Study)",
    "description": "Interaktywny panel śledczy demonstrujący proces diagnozowania i naprawy błędnie wykonanej instalacji (brak projektu, przekroczone długości rur).",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-container" id="rk-casestudy-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"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg>
            Analiza Przypadku (Case Study)
        </div>
        <h2>Case Study: Skutki ignorowania normy PN-EN 1264 w praktyce</h2>
        <p>Zobacz na realnym przykładzie mojego klienta z okolic Poznania, jak brak profesjonalnego projektu i zaufanie do &#8222;oka&#8221; instalatora doprowadziło do paraliżu systemu grzewczego zimą.</p>
    </div>

    <div class="rk-case-investigation">
        <div class="rk-case-tabs" id="rkCaseTabs">
            <div class="rk-case-tab active" data-state="awaria">
                <div class="rk-case-tab-icon">
                    <svg width="24" height="24" 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>
                </div>
                <div class="rk-case-tab-text">
                    <h3>Stan Zastany (Awaria)</h3>
                    <p>Grudzień 2025: Zamarzający dom</p>
                </div>
            </div>
            
            <div class="rk-case-tab" data-state="naprawa">
                <div class="rk-case-tab-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path></svg>
                </div>
                <div class="rk-case-tab-text">
                    <h3>Interwencja (Norma)</h3>
                    <p>Styczeń 2026: Plan ratunkowy</p>
                </div>
            </div>
        </div>

        <div class="rk-case-view view-awaria active" id="view-awaria">
            <div class="rk-case-details">
                <div>
                    <h4 style="margin:0 0 15px 0; color:var(--rk-case-dark); font-size: 18px;">Opis Problemu:</h4>
                    <p style="font-size:15px; line-height:1.6; color:var(--rk-case-text);">Inwestor zgłosił, że mimo zasilania pompy ciepła na poziomie 40°C, w salonie temperatura nie przekracza 18°C. Dodatkowo w rozdzielaczu słychać ciągły szum wody, a rotametry w ogóle nie reagują na regulację.</p>
                </div>
                <div>
                    <h4 style="margin:0 0 15px 0; color:var(--rk-case-dark); font-size: 18px;">Diagnoza Błędów:</h4>
                    <ul class="rk-case-list">
                        <li><a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/">Za długa pętla podłogówki</a> – jedna z rur w salonie liczyła aż 180 metrów (norma dla rury 16mm to max. 120m).</li>
                        <li>Trwałe <a href="https://projekt-ogrzewania.pl/objawy-zapowietrzenia-ogrzewania-podlogowego/">objawy zapowietrzenia</a> spowodowane kawitacją pompy, która nie mogła przepchnąć wody przez ogromne opory.</li>
                        <li>Rozstaw rur &#8222;na ślepo&#8221; co 20 cm pod grubym parkietem.</li>
                    </ul>
                </div>
            </div>
            
            <div class="rk-case-metrics">
                <div class="rk-case-metric">
                    <div class="rk-case-metric-val">180 m</div>
                    <div class="rk-case-metric-label">Długość najdłuższej pętli</div>
                </div>
                <div class="rk-case-metric">
                    <div class="rk-case-metric-val">42 kPa</div>
                    <div class="rk-case-metric-label">Opór hydrauliczny</div>
                </div>
                <div class="rk-case-metric">
                    <div class="rk-case-metric-val">0.0 l/min</div>
                    <div class="rk-case-metric-label">Przepływ na rotametrze</div>
                </div>
            </div>
        </div>

        <div class="rk-case-view view-naprawa" id="view-naprawa">
            <div class="rk-case-details">
                <div>
                    <h4 style="margin:0 0 15px 0; color:var(--rk-case-dark); font-size: 18px;">Rozwiązanie Inżynieryjne:</h4>
                    <p style="font-size:15px; line-height:1.6; color:var(--rk-case-text);">Wykonaliśmy wsteczne obliczenia OZC. Aby uniknąć kucia całej posadzki, zdecydowaliśmy się na inwazyjne wpięcie w środku salonu i rozdzielenie gigantycznej pętli na dwa mniejsze obiegi przy użyciu muf prasowanych i żywicy epoksydowej. Alternatywą było tylko <a href="https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/">frezowanie podłogówki w starym systemie</a>.</p>
                </div>
                <div>
                    <h4 style="margin:0 0 15px 0; color:var(--rk-case-dark); font-size: 18px;">Nowe Parametry (PN-EN 1264):</h4>
                    <ul class="rk-case-list">
                        <li>Podział krytycznej pętli na dwa osobne obiegi (po ~90m każdy).</li>
                        <li>Wymiana pompy obiegowej na jednostkę o większej wysokości podnoszenia.</li>
                        <li>Precyzyjne nastawy rotametrów według nowego bilansu hydraulicznego. Zasilanie spadło do 33°C.</li>
                    </ul>
                </div>
            </div>
            
            <div class="rk-case-metrics">
                <div class="rk-case-metric">
                    <div class="rk-case-metric-val">90 m / 90 m</div>
                    <div class="rk-case-metric-label">Skorygowane pętle</div>
                </div>
                <div class="rk-case-metric">
                    <div class="rk-case-metric-val">15 kPa</div>
                    <div class="rk-case-metric-label">Opór hydrauliczny po resecie</div>
                </div>
                <div class="rk-case-metric">
                    <div class="rk-case-metric-val">2.1 l/min</div>
                    <div class="rk-case-metric-label">Stabilny przepływ</div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-case-finance">
        <div class="rk-case-finance-text">
            <h3>Finansowe skutki &#8222;oszczędności&#8221;</h3>
            <p>To jeden z <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">najczęstszych błędów przy montażu ogrzewania podłogowego</a>. Inwestor zaoszczędził 550 PLN na projekcie inżynieryjnym, ufając zapewnieniom instalatora. Naprawa błędu i lokalne kucie posadzki pochłonęło nieproporcjonalnie więcej środków i zszargało nerwy rodziny.</p>
        </div>
        <div class="rk-case-finance-box">
            <span>Koszt naprawy błędu</span>
            <strong>18 500 PLN</strong>
        </div>
    </div>

    <div class="rk-case-tags">
        <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/" class="rk-case-tag"># za długa pętla podłogówki co zrobić</a>
        <a href="https://projekt-ogrzewania.pl/objawy-zapowietrzenia-ogrzewania-podlogowego/" class="rk-case-tag"># dlaczego podłogówka w salonie nie grzeje</a>
        <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/" class="rk-case-tag"># błędy wykonawcze ogrzewanie podłogowe</a>
        <a href="#" class="rk-case-tag"># rotametry na rozdzielaczu stoją w miejscu</a>
        <a href="https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/" class="rk-case-tag"># naprawa niedogrzanej podłogówki</a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var tabs = document.querySelectorAll('#rkCaseTabs .rk-case-tab');
    
    tabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            var targetState = this.getAttribute('data-state');
            
            // Usunięcie aktywnej klasy ze wszystkich zakładek
            tabs.forEach(function(t) {
                t.classList.remove('active');
            });
            
            // Ukrycie wszystkich widoków (bezpieczne sprawdzenie bez &&)
            var viewAwaria = document.getElementById('view-awaria');
            var viewNaprawa = document.getElementById('view-naprawa');
            
            if (viewAwaria !== null) { viewAwaria.classList.remove('active'); }
            if (viewNaprawa !== null) { viewNaprawa.classList.remove('active'); }
            
            // Aktywacja klikniętej zakładki i właściwego widoku
            this.classList.add('active');
            var targetView = document.getElementById('view-' + targetState);
            if (targetView !== null) {
                targetView.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-pro-dark: #0f172a;
    --rk-pro-slate: #475569;
    --rk-pro-blue: #2563eb;
    --rk-pro-blue-light: #eff6ff;
    --rk-pro-accent: #f59e0b;
    --rk-pro-bg: #ffffff;
    --rk-pro-bg-alt: #f8fafc;
    --rk-pro-border: #e2e8f0;
}

.rk-pro-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: var(--rk-pro-bg);
    border-radius: 20px;
    box-shadow: 0 20px 40px -10px rgba(15, 23, 42, 0.08), 0 1px 3px rgba(0,0,0,0.05);
    border: 1px solid var(--rk-pro-border);
    overflow: hidden;
}

/* Nagłówek */
.rk-pro-header {
    padding: 30px 40px;
    background: var(--rk-pro-dark);
    color: #ffffff;
}

.rk-pro-header h2 {
    font-size: 24px;
    font-weight: 800;
    margin: 0;
    line-height: 1.4;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-pro-header h2 svg {
    color: var(--rk-pro-accent);
}

/* Układ główny */
.rk-pro-body {
    display: flex;
    background: var(--rk-pro-bg);
}

/* Lewa Kolumna - Profil Eksperta */
.rk-pro-sidebar {
    width: 340px;
    padding: 40px 30px;
    background: var(--rk-pro-bg-alt);
    border-right: 1px solid var(--rk-pro-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.rk-pro-avatar-wrapper {
    position: relative;
    margin-bottom: 25px;
}

.rk-pro-avatar {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid var(--rk-pro-bg);
    box-shadow: 0 8px 16px -4px rgba(15, 23, 42, 0.15);
}

.rk-pro-badge-check {
    position: absolute;
    bottom: 5px;
    right: 5px;
    background: var(--rk-pro-blue);
    color: #ffffff;
    border-radius: 50%;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 3px solid var(--rk-pro-bg);
}

.rk-pro-name {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-pro-dark);
    margin: 0 0 5px 0;
    letter-spacing: -0.5px;
}

.rk-pro-role {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-pro-blue);
    margin: 0 0 15px 0;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-pro-brand {
    font-size: 12px;
    font-weight: 800;
    background: var(--rk-pro-dark);
    color: #ffffff;
    padding: 6px 14px;
    border-radius: 6px;
    margin-bottom: 25px;
    letter-spacing: 0.5px;
}

.rk-pro-socials {
    display: flex;
    gap: 12px;
}

.rk-pro-social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: #ffffff;
    border: 1px solid var(--rk-pro-border);
    border-radius: 8px;
    color: var(--rk-pro-slate);
    text-decoration: none;
}

.rk-pro-social-link:hover {
    background: var(--rk-pro-blue-light);
    color: var(--rk-pro-blue);
    border-color: #bfdbfe;
}

/* Prawa Kolumna - Treść */
.rk-pro-content {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.rk-pro-tabs {
    display: flex;
    border-bottom: 1px solid var(--rk-pro-border);
    background: var(--rk-pro-bg);
}

.rk-pro-tab {
    flex: 1;
    padding: 20px;
    background: transparent;
    border: none;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-pro-slate);
    cursor: pointer;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 3px solid transparent;
}

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

.rk-pro-view {
    display: none;
    padding: 40px;
}

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

/* Typografia Cytatu */
.rk-pro-quote-box {
    position: relative;
    padding-left: 20px;
}

.rk-pro-quote-box::before {
    content: '';
    position: absolute;
    left: 0;
    top: 5px;
    bottom: 5px;
    width: 4px;
    background: var(--rk-pro-accent);
    border-radius: 2px;
}

.rk-pro-quote-text {
    font-size: 19px;
    font-weight: 800;
    line-height: 1.6;
    color: var(--rk-pro-dark);
    margin: 0 0 20px 0;
}

.rk-pro-quote-desc {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-pro-slate);
    margin: 0;
}

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

/* Statystyki Nowoczesne */
.rk-pro-stats-intro {
    font-size: 17px;
    font-weight: 700;
    color: var(--rk-pro-dark);
    line-height: 1.6;
    margin: 0 0 30px 0;
}

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

.rk-pro-stat-card {
    background: var(--rk-pro-bg);
    border: 1px solid var(--rk-pro-border);
    border-radius: 12px;
    padding: 25px 20px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-pro-stat-card:hover {
    border-color: #bfdbfe;
    box-shadow: 0 10px 15px -3px rgba(37, 99, 235, 0.05);
}

.rk-pro-stat-val {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-pro-blue);
    margin-bottom: 8px;
    letter-spacing: -1px;
}

.rk-pro-stat-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-pro-slate);
    text-transform: uppercase;
    line-height: 1.4;
}

@media (max-width: 768px) {
    .rk-pro-header { padding: 25px 20px; }
    .rk-pro-header h2 { font-size: 20px; }
    .rk-pro-body { flex-direction: column; }
    .rk-pro-sidebar { width: 100%; border-right: none; border-bottom: 1px solid var(--rk-pro-border); padding: 30px 20px; }
    .rk-pro-view { padding: 30px 20px; }
    .rk-pro-grid { grid-template-columns: 1fr; }
    .rk-pro-tabs { flex-direction: column; }
    .rk-pro-tab { border-bottom: none; border-left: 3px solid transparent; text-align: left; padding: 15px 20px; }
    .rk-pro-tab.active { border-left-color: var(--rk-pro-blue); }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-ekspert",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Zdaniem eksperta: Robert Kucharski o standardach ogrzewania podłogowego",
    "description": "Autorytet w dziedzinie instalacji płaszczyznowych. Sprawdź, dlaczego ponad 1000 projektów ogrzewania musi opierać się na twardych wyliczeniach, a nie na przypuszczeniach.",
    "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": "Ekspert HVAC, CEO Projekt-Ogrzewania.pl",
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "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-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-cennik-projekty",
    "name": "Cennik i Statystyki Projektowe - Robert Kucharski (2026)",
    "description": "Kluczowe wskaźniki efektywności i transparentne koszty wykonania profesjonalnej dokumentacji technicznej dla wodnego ogrzewania podłogowego w budownictwie jednorodzinnym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt instalacji ogrzewania podłogowego",
      "koszt projektu podłogówki",
      "dokumentacja techniczna hvac",
      "budowa bez ściemy",
      "ekspert ogrzewania podłogowego"
    ],
    "measurementTechnique": "Dane oparte na rzeczywistych zleceniach i realizacjach biura projektowego projekt-ogrzewania.pl.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Średnia cena profesjonalnego projektu (OZC + pętle): 550 PLN",
        "Liczba zrealizowanych projektów: Ponad 1000",
        "Główny profil działalności: Obliczenia i dokumentacja techniczna zgodna z PN-EN 1264"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-wizytowka-eksperta",
    "name": "Interaktywna Wizytówka Inżynierska",
    "description": "Nowoczesny moduł przełączający służący do szybkiego przeglądu kwalifikacji projektanta instalacji sanitarnych oraz głównych wytycznych, którymi kieruje się biuro projektowe.",
    "applicationCategory": "ReferenceApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-pro-container" id="rk-modern-expert">
    <div class="rk-pro-header">
        <h2>
            <svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            Zdaniem eksperta: Robert Kucharski o standardach ogrzewania podłogowego
        </h2>
    </div>

    <div class="rk-pro-body">
        
        <!-- Kolumna Lewa: Profil (E-E-A-T) -->
        <div class="rk-pro-sidebar">
            <div class="rk-pro-avatar-wrapper">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Ekspert HVAC" class="rk-pro-avatar">
                <div class="rk-pro-badge-check" title="Zweryfikowany Specjalista">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="20 6 9 17 4 12"></polyline></svg>
                </div>
            </div>
            
            <h3 class="rk-pro-name">Robert Kucharski</h3>
            <div class="rk-pro-role">Główny Specjalista HVAC</div>
            <div class="rk-pro-brand">BUDOWA BEZ ŚCIEMY</div>
            
            <div class="rk-pro-socials">
                <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener noreferrer" class="rk-pro-social-link" title="Facebook">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
                </a>
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer" class="rk-pro-social-link" title="LinkedIn">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect x="2" y="9" width="4" height="12"></rect><circle cx="4" cy="4" r="2"></circle></svg>
                </a>
            </div>
        </div>

        <!-- Kolumna Prawa: Interaktywne Zakładki -->
        <div class="rk-pro-content">
            <div class="rk-pro-tabs" id="rkProTabs">
                <button class="rk-pro-tab active" data-tab="cytat">Złota zasada instalatora</button>
                <button class="rk-pro-tab" data-tab="liczby">Dlaczego projekt?</button>
            </div>

            <!-- Widok: Cytat -->
            <div class="rk-pro-view active" id="view-cytat">
                <div class="rk-pro-quote-box">
                    <p class="rk-pro-quote-text">
                        Z perspektywy tysięcy przeanalizowanych instalacji mogę z pełną odpowiedzialnością stwierdzić jedno: wylewka betonowa wybacza wszystko, dopóki jej nie zalejesz. 
                    </p>
                    <p class="rk-pro-quote-desc">
                        Norma PN-EN 1264 to nie jest urzędniczy wymysł. To tarcza ochronna Twojego portfela. Ignorowanie prób ciśnieniowych (6 bar) i projektowania OZC z myślą &#8222;jakoś to będzie&#8221; niemal zawsze kończy się zjawiskiem niedogrzania lub zniszczonymi posadzkami. Kucie jastrychu w gotowym salonie kosztuje 10 razy więcej niż <a href="https://projekt-ogrzewania.pl/ile-kosztuje-projekt-ogrzewania-podlogowego/">kompleksowy projekt</a> u sprawdzonego inżyniera.
                    </p>
                </div>
            </div>

            <!-- Widok: Liczby -->
            <div class="rk-pro-view" id="view-liczby">
                <p class="rk-pro-stats-intro">
                    Jako projektant reklamuję w Google wyłącznie pełne opracowania techniczne, a nie pojedyncze rurki czy rozdzielacze. Dlaczego? Bo tylko profesjonalny projekt daje gwarancję sukcesu.
                </p>
                
                <div class="rk-pro-grid">
                    <div class="rk-pro-stat-card">
                        <div class="rk-pro-stat-val">1000+</div>
                        <div class="rk-pro-stat-label">Wykonanych projektów</div>
                    </div>
                    <div class="rk-pro-stat-card">
                        <div class="rk-pro-stat-val">550 PLN</div>
                        <div class="rk-pro-stat-label">Średnia cena dokumentacji</div>
                    </div>
                    <div class="rk-pro-stat-card">
                        <div class="rk-pro-stat-val">3700</div>
                        <div class="rk-pro-stat-label">Obserwatorów fachowców</div>
                    </div>
                    <div class="rk-pro-stat-card">
                        <div class="rk-pro-stat-val">100%</div>
                        <div class="rk-pro-stat-label">Zgodności z normą PN-EN</div>
                    </div>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    var tabs = document.querySelectorAll('#rkProTabs .rk-pro-tab');
    
    tabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            var targetViewId = this.getAttribute('data-tab');
            
            // Usunięcie klasy aktywnej ze wszystkich zakładek
            tabs.forEach(function(t) {
                t.classList.remove('active');
            });
            
            // Zamknięcie wszystkich widoków (bezpieczne sprawdzenie)
            var viewCytat = document.getElementById('view-cytat');
            var viewLiczby = document.getElementById('view-liczby');
            
            if (viewCytat !== null) { viewCytat.classList.remove('active'); }
            if (viewLiczby !== null) { viewLiczby.classList.remove('active'); }
            
            // Aktywacja wybranej zakładki i widoku
            this.classList.add('active');
            var targetView = document.getElementById('view-' + targetViewId);
            if (targetView !== null) {
                targetView.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-slate: #334155;
    --rk-err-danger: #dc2626;
    --rk-err-danger-light: #fef2f2;
    --rk-err-warning: #ea580c;
    --rk-err-warning-light: #fff7ed;
    --rk-err-blue: #2563eb;
    --rk-err-bg: #ffffff;
    --rk-err-gray: #f8fafc;
    --rk-err-border: #cbd5e1;
}

.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 20px 40px -10px rgba(220, 38, 38, 0.15);
    border: 1px solid var(--rk-err-danger);
    overflow: hidden;
}

/* Nagłówek Sekcji */
.rk-err-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-err-dark) 0%, #450a0a 100%);
    color: #ffffff;
    text-align: center;
    border-bottom: 4px solid var(--rk-err-danger);
}

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

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

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

/* Moduł 1: Interaktywny Skaner Błędów */
.rk-err-scanner {
    padding: 40px 50px;
    background: var(--rk-err-gray);
}

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

.rk-err-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 20px;
}

.rk-err-card {
    background: #ffffff;
    border: 2px solid var(--rk-err-border);
    border-radius: 16px;
    padding: 25px 20px;
    cursor: pointer;
    position: relative;
    transition: all 0.3s ease;
    overflow: hidden;
}

.rk-err-card:hover {
    border-color: var(--rk-err-warning);
    transform: translateY(-3px);
    box-shadow: 0 10px 15px -3px rgba(234, 88, 12, 0.1);
}

.rk-err-card.revealed {
    border-color: var(--rk-err-danger);
    background: var(--rk-err-danger-light);
}

.rk-err-card-front {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    transition: opacity 0.3s;
}

.rk-err-card.revealed .rk-err-card-front {
    display: none;
}

.rk-err-icon {
    width: 48px;
    height: 48px;
    background: var(--rk-err-gray);
    color: var(--rk-err-slate);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
}

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

.rk-err-hint {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-err-blue);
    text-transform: uppercase;
    display: flex;
    align-items: center;
    gap: 5px;
}

/* Skutek Błędu (Tył Karty) */
.rk-err-card-back {
    display: none;
    flex-direction: column;
    align-items: center;
    text-align: center;
    animation: popIn 0.3s ease;
}

.rk-err-card.revealed .rk-err-card-back {
    display: flex;
}

@keyframes popIn {
    0% { transform: scale(0.9); opacity: 0; }
    100% { transform: scale(1); opacity: 1; }
}

.rk-err-danger-icon {
    color: var(--rk-err-danger);
    margin-bottom: 10px;
}

.rk-err-result {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-err-danger);
    margin: 0 0 10px 0;
}

.rk-err-link {
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-err-dark);
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Moduł 2: Odpowiedzialność na Budowie */
.rk-err-roles {
    padding: 40px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-err-border);
}

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

.rk-err-accordion {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-err-role-item {
    border: 2px solid var(--rk-err-border);
    border-radius: 16px;
    overflow: hidden;
    transition: border-color 0.3s;
}

.rk-err-role-item.active {
    border-color: var(--rk-err-blue);
    box-shadow: 0 10px 20px -5px rgba(37, 99, 235, 0.1);
}

.rk-err-role-btn {
    width: 100%;
    background: transparent;
    border: none;
    padding: 20px 25px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    text-align: left;
}

.rk-err-role-header {
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-err-role-icon {
    width: 40px;
    height: 40px;
    background: var(--rk-err-gray);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-err-slate);
    transition: all 0.3s;
}

.rk-err-role-item.active .rk-err-role-icon {
    background: var(--rk-err-blue);
    color: #ffffff;
}

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

.rk-err-role-chevron {
    color: var(--rk-err-slate);
    transition: transform 0.3s;
}

.rk-err-role-item.active .rk-err-role-chevron {
    transform: rotate(180deg);
    color: var(--rk-err-blue);
}

.rk-err-role-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease;
    background: var(--rk-err-gray);
}

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

.rk-err-role-inner p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-err-slate);
    font-weight: 500;
}

.rk-err-role-inner strong {
    color: var(--rk-err-dark);
    font-weight: 800;
}

/* Tagi SEO */
.rk-err-tags {
    padding: 0 50px 40px;
    background: #ffffff;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.rk-err-tag {
    background: var(--rk-err-gray);
    color: var(--rk-err-slate);
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 700;
    border: 1px solid var(--rk-err-border);
    text-decoration: none;
    transition: all 0.2s;
}

.rk-err-tag:hover {
    background: var(--rk-err-dark);
    color: #ffffff;
    border-color: var(--rk-err-dark);
}

@media (max-width: 768px) {
    .rk-err-header { padding: 35px 20px; }
    .rk-err-header h2 { font-size: 24px; }
    .rk-err-scanner { padding: 35px 20px; }
    .rk-err-roles { padding: 35px 20px; }
    .rk-err-role-btn { padding: 15px; }
    .rk-err-role-inner { padding: 0 15px 20px 15px; }
    .rk-err-tags { padding: 0 20px 30px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Najczęstsze błędy wykonawców łamiące PN-EN 1264 i odpowiedzialność na budowie",
    "description": "Sprawdź skutki braku OZC, zbyt długich pętli i braku dylatacji. Wyjaśniamy, czy instalator musi znać normę PN-EN 1264 i za co odpowiada kierownik budowy.",
    "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-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-bledy",
    "name": "Rejestr Błędów Wykonawczych i Skutków Awarii Ogrzewania (2026)",
    "description": "Baza danych parująca najczęstsze uchybienia normatywne instalatorów z bezpośrednimi fizycznymi konsekwencjami dla budynku (pęknięcia, niedogrzanie, zalanie).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "najczęstsze błędy przy montażu ogrzewania podłogowego",
      "brak ozc skutki",
      "za długa pętla podłogówki",
      "brak dylatacji ogrzewanie podłogowe",
      "obowiązki instalatora a projektant"
    ],
    "measurementTechnique": "Analiza przyczynowo-skutkowa odchyłek od europejskiej normy wbudowanych systemów płaszczyznowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Błąd: Rozstaw 20-25 cm wszędzie -> Skutek: Zimne strefy",
        "Błąd: Brak OZC -> Skutek: Niedogrzanie",
        "Błąd: Pętle powyżej 120 m -> Skutek: Problemy hydrauliczne",
        "Błąd: Brak dylatacji -> Skutek: Pęknięcia jastrychu",
        "Błąd: Brak próby szczelności -> Skutek: Zalanie budynku"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-audytor",
    "name": "Interaktywny Audytor Błędów Instalacyjnych",
    "description": "Narzędzie pozwalające inwestorowi na szybkie zdiagnozowanie potencjalnych skutków rzemieślniczych błędów montażowych oraz ustalenie matrycy odpowiedzialności na placu budowy.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="rk-errors-widget">
    <div class="rk-err-header">
        <div class="rk-err-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Ściana Płaczu Inwestora
        </div>
        <h2>Najczęstsze błędy wykonawców i odpowiedzialność na budowie</h2>
        <p>Instalacja podłogówki z pominięciem wytycznych normy to stąpanie po kruchym lodzie. Sprawdź, jakie są skutki najpopularniejszych błędów i dowiedz się ostatecznie: kto za to odpowiada?</p>
    </div>

    <div class="rk-err-scanner">
        <h3 class="rk-err-section-title">
            <svg width="24" height="24" 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></svg>
            Skaner Błędów Łamiących PN-EN 1264
        </h3>
        
        <div class="rk-err-grid" id="rkErrGrid">
            <div class="rk-err-card">
                <div class="rk-err-card-front">
                    <div class="rk-err-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect></svg></div>
                    <h4>Rozstaw rur 20-25 cm wszędzie</h4>
                    <span class="rk-err-hint">Odkryj skutek <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="9 18 15 12 9 6"></polyline></svg></span>
                </div>
                <div class="rk-err-card-back">
                    <svg class="rk-err-danger-icon" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    <div class="rk-err-result">Zimne Strefy i Paski</div>
                    <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/" class="rk-err-link">Brak pokrycia strat ciepła</a>
                </div>
            </div>

            <div class="rk-err-card">
                <div class="rk-err-card-front">
                    <div class="rk-err-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg></div>
                    <h4>Brak obliczeń OZC</h4>
                    <span class="rk-err-hint">Odkryj skutek <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="9 18 15 12 9 6"></polyline></svg></span>
                </div>
                <div class="rk-err-card-back">
                    <svg class="rk-err-danger-icon" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                    <div class="rk-err-result">Permanentne Niedogrzanie</div>
                    <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" class="rk-err-link">Wymaga wyższej temp. pompy</a>
                </div>
            </div>

            <div class="rk-err-card">
                <div class="rk-err-card-front">
                    <div class="rk-err-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg></div>
                    <h4>Pętle powyżej 120 metrów</h4>
                    <span class="rk-err-hint">Odkryj skutek <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="9 18 15 12 9 6"></polyline></svg></span>
                </div>
                <div class="rk-err-card-back">
                    <svg class="rk-err-danger-icon" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                    <div class="rk-err-result">Problemy Hydrauliczne</div>
                    <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/" class="rk-err-link">Pompa nie pcha wody</a>
                </div>
            </div>

            <div class="rk-err-card">
                <div class="rk-err-card-front">
                    <div class="rk-err-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v4"></path><polyline points="14 2 14 8 20 8"></polyline><path d="M2 15h10"></path><path d="M5 12l-3 3 3 3"></path></svg></div>
                    <h4>Brak dylatacji jastrychu</h4>
                    <span class="rk-err-hint">Odkryj skutek <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="9 18 15 12 9 6"></polyline></svg></span>
                </div>
                <div class="rk-err-card-back">
                    <svg class="rk-err-danger-icon" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M16 21v-2a4 4 0 0 0-4-4H5.5"></path><polyline points="9 22 5.5 15 2 22"></polyline><path d="M22 3L2 22"></path></svg>
                    <div class="rk-err-result">Pęknięcia Posadzki</div>
                    <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" class="rk-err-link">Kucie zerwanych płytek</a>
                </div>
            </div>

            <div class="rk-err-card">
                <div class="rk-err-card-front">
                    <div class="rk-err-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path></svg></div>
                    <h4>Brak próby szczelności</h4>
                    <span class="rk-err-hint">Odkryj skutek <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="9 18 15 12 9 6"></polyline></svg></span>
                </div>
                <div class="rk-err-card-back">
                    <svg class="rk-err-danger-icon" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                    <div class="rk-err-result">Zalanie Budynku</div>
                    <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/" class="rk-err-link">Awaria po wylaniu betonu</a>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-err-roles">
        <h3 class="rk-err-section-title">Czy instalator wykonujący podłogówkę ma obowiązek znać PN-EN 1264?</h3>
        <p class="rk-err-roles-intro">To pytanie, które najczęściej wpisują inwestorzy w przypadku awarii i szukania winnych. Prawo budowlane określa bardzo elegancki i jednoznaczny podział obowiązków między trzema głównymi aktorami na placu budowy.</p>

        <div class="rk-err-accordion" id="rkErrAccordion">
            
            <div class="rk-err-role-item active">
                <button class="rk-err-role-btn">
                    <div class="rk-err-role-header">
                        <div class="rk-err-role-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 20h9"></path><path d="M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"></path></svg></div>
                        <h4 class="rk-err-role-title">Projektant HVAC</h4>
                    </div>
                    <div class="rk-err-role-chevron"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-err-role-content" style="max-height: 500px;">
                    <div class="rk-err-role-inner">
                        <p><strong>Tak, to jego absolutny obowiązek.</strong> Projektant jest intelektualnym twórcą układu. Musi wykonać obliczenia strat ciepła, dobrać rozstaw rur, obliczyć hydraulikę i stworzyć dokumentację stricte w oparciu o algorytmy PN-EN 1264. To on ponosi odpowiedzialność prawną za to, czy system wydajnościowo dogrzeje budynek w temperaturach ujemnych.</p>
                    </div>
                </div>
            </div>

            <div class="rk-err-role-item">
                <button class="rk-err-role-btn">
                    <div class="rk-err-role-header">
                        <div class="rk-err-role-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path></svg></div>
                        <h4 class="rk-err-role-title">Instalator / Wykonawca</h4>
                    </div>
                    <div class="rk-err-role-chevron"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-err-role-content">
                    <div class="rk-err-role-inner">
                        <p><strong>Nie musi znać na pamięć wzorów matematycznych.</strong> Jego obowiązkiem nie jest projektowanie &#8222;z głowy&#8221;. Obowiązkiem instalatora jest rzetelne i bezbłędne odtworzenie na budowie tego, co projektant narysował w <a href="https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/">projekcie ogrzewania podłogowego</a>. Musi jednak znać wytyczne montażowe (część 4 normy) dotyczące wykonywania prób ciśnieniowych (6 bar) i układania dylatacji.</p>
                    </div>
                </div>
            </div>

            <div class="rk-err-role-item">
                <button class="rk-err-role-btn">
                    <div class="rk-err-role-header">
                        <div class="rk-err-role-icon"><svg width="24" height="24" 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>
                        <h4 class="rk-err-role-title">Kierownik Budowy</h4>
                    </div>
                    <div class="rk-err-role-chevron"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-err-role-content">
                    <div class="rk-err-role-inner">
                        <p><strong>To główny audytor.</strong> Zgodnie z Prawem Budowlanym, to on odbiera tzw. prace zanikające (czyli rury przed zalaniem betonem). Jego obowiązkiem jest sprawdzenie, czy rozstaw rur na styropianie zgadza się z projektem oraz musi być fizycznie obecny lub wymagać podpisanego protokołu z próby szczelności przed wpuszczeniem posadzkarzy.</p>
                    </div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-err-tags">
        <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/" class="rk-err-tag"># błędy montażu ogrzewania podłogowego</a>
        <a href="https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/" class="rk-err-tag"># obowiązki instalatora</a>
        <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/" class="rk-err-tag"># projekt z głowy vs obliczenia</a>
        <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/" class="rk-err-tag"># za długa pętla skutki</a>
        <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/" class="rk-err-tag"># zalanie budynku podłogówka</a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Logika Skanera Błędów (Karty)
    var cards = document.querySelectorAll('#rkErrGrid .rk-err-card');
    cards.forEach(function(card) {
        card.addEventListener('click', function() {
            var isRevealed = this.classList.contains('revealed');
            if (isRevealed === false) {
                this.classList.add('revealed');
            } else {
                this.classList.remove('revealed');
            }
        });
    });

    // 2. Logika Akordeonu Ról (Bezpieczne JS)
    var accItems = document.querySelectorAll('#rkErrAccordion .rk-err-role-item');
    accItems.forEach(function(item) {
        var btn = item.querySelector('.rk-err-role-btn');
        var content = item.querySelector('.rk-err-role-content');

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

            // Zamknięcie wszystkich (opcjonalne, działa jak klasyczny akordeon)
            accItems.forEach(function(innerItem) {
                innerItem.classList.remove('active');
                var innerContent = innerItem.querySelector('.rk-err-role-content');
                if (innerContent !== null) {
                    innerContent.style.maxHeight = null;
                }
            });

            // Otwarcie klikniętego (jeśli nie był otwarty)
            if (isActive === false) {
                item.classList.add('active');
                if (content !== null) {
                    content.style.maxHeight = content.scrollHeight + "px";
                }
            }
        });
    });
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-blue: #2563eb;
    --rk-faq-blue-hover: #1d4ed8;
    --rk-faq-light-blue: #eff6ff;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #334155;
    --rk-faq-bg: #ffffff;
    --rk-faq-icon: #64748b;
}

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

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

.rk-faq-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(37, 99, 235, 0.3);
    color: #60a5fa;
    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(96, 165, 250, 0.2);
}

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

/* Interaktywny Akordeon */
.rk-faq-list-wrapper {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-faq-item {
    background: var(--rk-faq-bg);
    border: 1px solid var(--rk-faq-border);
    border-radius: 16px;
    margin-bottom: 16px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    transition: all 0.3s ease;
    overflow: hidden;
}

.rk-faq-item:hover {
    border-color: #bfdbfe;
    box-shadow: 0 10px 15px -3px rgba(37, 99, 235, 0.05);
}

.rk-faq-item.active {
    border-color: var(--rk-faq-blue);
    box-shadow: 0 10px 25px -5px rgba(37, 99, 235, 0.15);
}

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

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

.rk-faq-btn h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.4;
    flex: 1;
}

.rk-faq-icon-wrapper {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-faq-blue);
    flex-shrink: 0;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), background 0.3s;
}

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

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

.rk-faq-content-inner {
    padding: 0 30px 30px 30px;
    color: var(--rk-faq-text);
    font-size: 16px;
    line-height: 1.7;
}

.rk-faq-item.active .rk-faq-content-inner {
    border-top: 1px solid transparent; /* Wizualny odstęp */
    padding-top: 10px;
}

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

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

/* Informacja Wizualna w Treści */
.rk-faq-highlight {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #f0fdf4;
    color: #166534;
    padding: 12px 16px;
    border-radius: 8px;
    border-left: 4px solid #22c55e;
    margin-top: 15px;
    font-weight: 600;
    font-size: 15px;
    width: 100%;
}

@media (max-width: 768px) {
    .rk-faq-header { padding: 35px 25px; }
    .rk-faq-list-wrapper { padding: 25px 20px; }
    .rk-faq-title { font-size: 24px; }
    .rk-faq-btn { padding: 20px; }
    .rk-faq-btn h3 { font-size: 16px; }
    .rk-faq-content-inner { padding: 0 20px 20px 20px; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "FAQ – Najczęstsze pytania dotyczące normy PN-EN 1264",
    "description": "Odpowiedzi na kluczowe pytania inżynieryjne: wygrzewanie jastrychu, długość pętli, zabudowa meblowa i kary za brak próby szczelności ogrzewania podłogowego.",
    "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-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy stosowanie normy PN-EN 1264 jest obowiązkowe w budownictwie jednorodzinnym?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Formalnie normy w Polsce są stosowane dobrowolnie, jednak prawo budowlane nakazuje wykonywanie instalacji zgodnie ze sztuką inżynierską, a sądy powszechne i biegli w przypadku sporów z wykonawcą traktują PN-EN 1264 jako jedyny oficjalny układ odniesienia do oceny wad wykonawczych."
        }
      },
      {
        "@type": "Question",
        "name": "Jaka jest dopuszczalna maksymalna długość jednej pętli ogrzewania podłogowego według normy?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Norma nie podaje jednej sztywnej liczby, ponieważ limit wynika z oporów hydraulicznych i średnicy rury, jednak powszechny standard inżynierski oparty na kryteriach normatywnych ogranicza długość rury 16x2 mm do 100–120 metrów, a rury 20x2 mm do 150 metrów."
        }
      },
      {
        "@type": "Question",
        "name": "Czym grozi zalanie instalacji podłogowej bez wcześniejszej próby ciśnieniowej?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Grozi to katastrofą budowlaną w postaci niezauważonego wycieku wody pod jastrychem w przypadku uszkodzenia rury klipsem lub narzędziem budowlanym, co skutkuje koniecznością zrywania całej wylewki, ponoszeniem kosztów osuszania budynku rzędu kilkunastu tysięcy złotych oraz utratą gwarancji."
        }
      },
      {
        "@type": "Question",
        "name": "Czy według normy można układać ogrzewanie podłogowe pod stałą zabudową meblową?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Norma PN-EN 1264 nakazuje projektowanie instalacji w celu pokrycia strat ciepła, a stała zabudowa kuchenna czy szafy wnękowe drastycznie zwiększają opór cieplny (Rλ,B powyżej limitu 0,15 m²K/W), przez co układanie tam rur jest błędem – powoduje przegrzewanie mebli i marnowanie energii."
        }
      },
      {
        "@type": "Question",
        "name": "Co to jest procedura wygrzewania jastrychu i czy norma ją definiuje?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, norma PN-EN 1264-4 precyzyjnie określa proces pierwszego uruchomienia grzewczego jastrychu betonowego, który może nastąpić najwcześniej po 21 dniach od zalania (dla anhydrytu po 7 dniach), zaczynając od temperatury zasilania 25°C przez 3 dni, a następnie podnosząc ją do temperatury projektowej na kolejne 4 dni w celu uwolnienia naprężeń i wilgoci technologicznej."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-faq",
    "name": "Zestawienie parametrów krytycznych montażu i odbioru podłogówki (2026)",
    "description": "Baza danych parametrów kontrolnych: dni dojrzewania jastrychu, limity długości rur PEX oraz graniczne współczynniki oporu cieplnego wyciągnięte z norm inżynieryjnych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "długość pętli ogrzewania podłogowego",
      "wygrzewanie jastrychu anhydryt",
      "próba ciśnieniowa podłogówki",
      "ogrzewanie podłogowe pod meblami",
      "normy wykonawcze HVAC"
    ],
    "measurementTechnique": "Wytyczne normatywne służące za układ odniesienia dla biegłych sądowych i instalatorów.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wygrzewanie betonu: start po 21 dniach",
        "Wygrzewanie anhydrytu: start po 7 dniach",
        "Startowa temperatura wygrzewania: 25°C przez 3 dni"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-faq",
    "name": "Interaktywna Baza Wiedzy FAQ PN-EN 1264",
    "description": "Moduł typu akordeon, który błyskawicznie dopasowuje inżynieryjne odpowiedzi do najczęściej wyszukiwanych problemów budowlanych z zakresu instalacji podłogowych.",
    "applicationCategory": "ReferenceApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-container" id="norma-faq-app">
    <div class="rk-faq-header">
        <div class="rk-faq-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><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Baza Wiedzy Inwestora
        </div>
        <h2 class="rk-faq-title">FAQ – Najczęstsze pytania dotyczące normy PN-EN 1264</h2>
    </div>

    <div class="rk-faq-list-wrapper" id="rkFaqAccordion">
        
        <div class="rk-faq-item">
            <button class="rk-faq-btn" aria-expanded="false">
                <h3>Czy stosowanie normy PN-EN 1264 jest obowiązkowe w budownictwie jednorodzinnym?</h3>
                <div class="rk-faq-icon-wrapper">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <p>Formalnie normy w Polsce są stosowane dobrowolnie, jednak prawo budowlane nakazuje wykonywanie instalacji zgodnie ze sztuką inżynierską. Wszelkie sądy powszechne i biegli w przypadku sporów z wykonawcą traktują PN-EN 1264 jako jedyny oficjalny układ odniesienia do oceny wad wykonawczych.</p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-btn" aria-expanded="false">
                <h3>Jaka jest dopuszczalna maksymalna długość jednej pętli ogrzewania podłogowego według normy?</h3>
                <div class="rk-faq-icon-wrapper">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <p>Norma nie podaje jednej sztywnej liczby, ponieważ limit wynika z oporów hydraulicznych i średnicy rury. Jednak powszechny standard inżynierski oparty na kryteriach normatywnych określa jasne zasady: <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">ogranicza długość rury 16&#215;2 mm do 100–120 metrów</a>, a grubszej rury 20&#215;2 mm maksymalnie do 150 metrów.</p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-btn" aria-expanded="false">
                <h3>Czym grozi zalanie instalacji podłogowej bez wcześniejszej próby ciśnieniowej?</h3>
                <div class="rk-faq-icon-wrapper">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <p>Grozi to katastrofą budowlaną w postaci niezauważonego wycieku wody pod jastrychem w przypadku uszkodzenia rury klipsem lub narzędziem budowlanym. Skutkuje to koniecznością zrywania całej wylewki, ponoszeniem kosztów osuszania budynku rzędu kilkunastu tysięcy złotych oraz całkowitą utratą gwarancji. To jeden z <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">najczęstszych błędów przy montażu ogrzewania podłogowego</a>.</p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-btn" aria-expanded="false">
                <h3>Czy według normy można układać ogrzewanie podłogowe pod stałą zabudową meblową?</h3>
                <div class="rk-faq-icon-wrapper">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <p>Norma PN-EN 1264 nakazuje projektowanie instalacji w celu pokrycia strat ciepła, a stała zabudowa kuchenna czy szafy wnękowe drastycznie zwiększają opór cieplny (grubo powyżej normatywnego limitu 0,15 m²K/W). Przez to <a href="https://projekt-ogrzewania.pl/wodne-ogrzewanie-podlogowe-a-meble-jak-polaczyc-komfort-i-aranzacje/">układanie tam rur jest błędem</a> – powoduje przegrzewanie mebli, marnowanie energii i psucie artykułów spożywczych.</p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-btn" aria-expanded="false">
                <h3>Co to jest procedura wygrzewania jastrychu i czy norma ją definiuje?</h3>
                <div class="rk-faq-icon-wrapper">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <p>Tak, norma PN-EN 1264-4 precyzyjnie określa proces pierwszego uruchomienia grzewczego jastrychu. <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">Wygrzewanie wylewki betonowej</a> może nastąpić najwcześniej po 21 dniach od zalania (dla anhydrytu po 7 dniach). Rozpoczyna się od temperatury zasilania 25°C przez 3 dni, a następnie podnosi się ją do temperatury projektowej na kolejne 4 dni w celu uwolnienia naprężeń i wilgoci technologicznej.</p>
                    
                    <div class="rk-faq-highlight">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                        Pominięcie wygrzewania skutkuje nieodwracalnym pękaniem płytek!
                    </div>
                </div>
            </div>
        </div>

    </div>
</div>

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

    faqItems.forEach(function(item) {
        var btn = item.querySelector('.rk-faq-btn');
        var content = item.querySelector('.rk-faq-content');
        
        btn.addEventListener('click', function() {
            var isActive = item.classList.contains('active');
            
            // Zamknij wszystkie (opcjonalne - działanie akordeonu)
            faqItems.forEach(function(innerItem) {
                innerItem.classList.remove('active');
                innerItem.querySelector('.rk-faq-btn').setAttribute('aria-expanded', 'false');
                innerItem.querySelector('.rk-faq-content').style.maxHeight = null;
            });

            // Jeśli nie był aktywny, otwórz kliknięty
            if (isActive === false) {
                item.classList.add('active');
                btn.setAttribute('aria-expanded', 'true');
                // Przypisanie dokładnej wysokości do płynnej animacji
                content.style.maxHeight = content.scrollHeight + 50 + "px";
            }
        });
    });
});
</script>



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

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

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

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

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

/* Interaktywny Widget Weryfikacyjny */
.rk-fin-widget {
    padding: 40px 50px;
    background: #f8fafc;
}

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

.rk-fin-tabs {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
}

.rk-fin-tab {
    flex: 1;
    padding: 15px 20px;
    background: #ffffff;
    border: 2px solid var(--rk-fin-border);
    border-radius: 12px;
    font-weight: 700;
    color: var(--rk-fin-gray);
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

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

.rk-fin-tab.active {
    background: var(--rk-fin-blue);
    border-color: var(--rk-fin-blue);
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(14, 165, 233, 0.3);
}

.rk-fin-tab svg {
    width: 20px;
    height: 20px;
}

/* Obszar wyświetlania danych */
.rk-fin-display {
    background: #ffffff;
    border: 1px solid var(--rk-fin-border);
    border-radius: 16px;
    padding: 35px;
    display: flex;
    align-items: flex-start;
    gap: 30px;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
}

.rk-fin-display-icon {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: var(--rk-fin-light-blue);
    color: var(--rk-fin-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rk-fin-display-icon svg { width: 40px; height: 40px; }

.rk-fin-display-content h4 {
    margin: 0 0 10px 0;
    font-size: 22px;
    font-weight: 800;
    color: var(--rk-fin-dark);
}

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

.rk-fin-display-content .rk-alert {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background: #fef2f2;
    border-left: 4px solid var(--rk-fin-red);
    border-radius: 0 6px 6px 0;
    color: #991b1b;
    font-size: 14px;
    font-weight: 600;
    margin-top: 10px;
}

/* Konkluzja i Tagi */
.rk-fin-conclusion {
    padding: 30px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-fin-border);
}

.rk-fin-conclusion p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 20px 0;
}

.rk-fin-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 25px;
}

.rk-mat-tag {
    background: #f1f5f9;
    color: var(--rk-fin-dark);
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    border: 1px solid #e2e8f0;
    transition: all 0.2s;
}

.rk-mat-tag:hover {
    background: var(--rk-fin-blue);
    color: #ffffff;
    border-color: var(--rk-fin-blue);
}

/* CTA */
.rk-fin-cta {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-fin-dark) 0%, #1e293b 100%);
    text-align: center;
}

.rk-fin-btn-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-fin-green);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 45px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(16, 185, 129, 0.4);
    transition: all 0.3s ease;
    border: none;
    width: 100%;
    max-width: 500px;
}

.rk-fin-btn-cta:hover {
    transform: translateY(-5px);
    background: #059669;
    box-shadow: 0 20px 35px -5px rgba(16, 185, 129, 0.5);
}

@media (max-width: 768px) {
    .rk-fin-header, .rk-fin-widget, .rk-fin-conclusion, .rk-fin-cta { padding: 30px 20px; }
    .rk-fin-title { font-size: 24px; }
    .rk-fin-tabs { flex-direction: column; }
    .rk-fin-display { flex-direction: column; align-items: center; text-align: center; padding: 25px 20px; }
    .rk-fin-display-content .rk-alert { text-align: left; }
    .rk-fin-btn-cta { padding: 16px 20px; font-size: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Podsumowanie i kluczowe wnioski inżynieryjne z normy PN-EN 1264",
    "description": "Kodeks techniczny ogrzewania podłogowego. Poznaj maksymalną temperaturę podłogi, opór cieplny okładziny oraz limity długości pętli rury chroniące przed awarią.",
    "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-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-limity",
    "name": "Graniczne parametry instalacyjne normy PN-EN 1264",
    "description": "Zestawienie twardych danych technicznych dotyczących maksymalnych limitów operacyjnych dla wbudowanych systemów płaszczyznowych (temperatura, izolacja, hydraulika).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "norma pn en 1264",
      "maksymalna temperatura podłogi",
      "opór cieplny okładziny",
      "długość pętli ogrzewania podłogowego",
      "profesjonalny projekt instalacji"
    ],
    "measurementTechnique": "Wartości bezwzględne wynikające ze standardu europejskiego stosowane w procesie weryfikacji odbiorczej instalacji.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Maksymalna temperatura w strefie stałego przebywania: 29°C",
        "Maksymalny dopuszczalny opór cieplny okładziny: 0,15 m2K/W",
        "Maksymalna długość pętli dla rury 16x2 mm: 100-120 metrów"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-weryfikator",
    "name": "Interaktywny Weryfikator Standardów PN-EN 1264",
    "description": "Symulator wizualizujący konsekwencje przekroczenia kluczowych limitów inżynieryjnych w wodnym ogrzewaniu podłogowym (niedogrzanie, awaria pompy, przegrzanie posadzki).",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-fin-container">
    <div class="rk-fin-header">
        <h2 class="rk-fin-title">Podsumowanie i kluczowe wnioski inżynieryjne</h2>
        <p class="rk-fin-subtitle">
            Norma PN-EN 1264 to kompletny kodeks techniczny, który oddziela profesjonalne projektowanie instalacji HVAC od intuicyjnego układania rur przez przypadkowych wykonawców.
        </p>
    </div>

    <div class="rk-fin-widget">
        <h3 class="rk-fin-widget-title">Sprawdź 3 fundamenty bezpieczeństwa instalacji</h3>
        
        <div class="rk-fin-tabs" id="rkFinTabs">
            <button class="rk-fin-tab active" data-target="temp">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
                Max. 29°C
            </button>
            <button class="rk-fin-tab" data-target="opor">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="16" width="20" height="4" rx="1"></rect><path d="M6 12h12M10 8h4M12 4v4"></path></svg>
                Max. 0,15 m²K/W
            </button>
            <button class="rk-fin-tab" data-target="petla">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                Max. 120 m
            </button>
        </div>

        <div class="rk-fin-display" id="rkFinDisplay">
            <div class="rk-fin-display-icon">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path></svg>
            </div>
            <div class="rk-fin-display-content">
                <h4>Ograniczenie temperatury w strefie mieszkalnej</h4>
                <p>Maksymalna temperatura w sferze mieszkalnej to bezwzględnie <strong>29°C</strong>. Projektowanie instalacji wymagającej wyższych temperatur zasilania dla zrównoważenia strat ciepła to błąd inżynieryjny.</p>
                <p>Bezpieczeństwo konstrukcyjne oraz zdrowie domowników zależą od utrzymania tego limitu.</p>
                <div class="rk-alert">
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                    Przegrzewanie posadzki obniża żywotność paneli.
                </div>
            </div>
        </div>
    </div>

    <div class="rk-fin-conclusion">
        <p>
            Bezpieczeństwo konstrukcyjne, gwarancja stabilności posadzki oraz wysoka efektywność energetyczna nowoczesnych źródeł ciepła, takich jak <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" style="color: var(--rk-fin-blue); font-weight: 700; text-decoration: none;">pompy ciepła</a> czy kotły kondensacyjne, są nierozerwalnie związane z przestrzeganiem reżimu matematycznego tej normy.
        </p>
        <p>
            Każda inwestycja w ogrzewanie płaszczyznowe powinna rozpoczynać się od sporządzenia profesjonalnego projektu instalacji opartego na rzeczywistych <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" style="color: var(--rk-fin-blue); font-weight: 700; text-decoration: none;">obliczeniach strat ciepła budowlanego</a>. Próba oszczędności na etapie inżynieryjnym i działanie &#8222;na oko&#8221; skutkuje wadami, których usunięcie po stwardnieniu betonu wiąże się z ogromnymi kosztami naprawczymi.
        </p>
        <p style="font-weight: 700; color: var(--rk-fin-dark); margin-top: 20px;">
            💡 Jako specjalista HVAC rekomenduję: zawsze żądaj od swojego projektanta lub instalatora jasnej deklaracji zgodności wykonanych obliczeń z normą PN-EN 1264.
        </p>

        <div class="rk-fin-tags">
            <span class="rk-mat-tag"># norma pn en 1264</span>
            <span class="rk-mat-tag"># profesjonalny projekt instalacji</span>
            <span class="rk-mat-tag"># obliczenia strat ciepła</span>
            <span class="rk-mat-tag"># maksymalna temperatura podłogi</span>
            <span class="rk-mat-tag"># opór cieplny okładziny</span>
            <span class="rk-mat-tag"># długość pętli ogrzewania podłogowego</span>
            <span class="rk-mat-tag"># koszt usunięcia awarii wylewki</span>
            <span class="rk-mat-tag"># efektywne ogrzewanie płaszczyznowe</span>
        </div>
    </div>

    <div class="rk-fin-cta">
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-fin-btn-cta">
            CZYTAJ DALEJ NA BLOGU EKSPERCKIM
            <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 12h14M12 5l7 7-7 7"></path></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var tabs = document.querySelectorAll('.rk-fin-tab');
    var display = document.getElementById('rkFinDisplay');

    var contentData = {
        'temp': {
            icon: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path></svg>',
            title: 'Ograniczenie temperatury w strefie mieszkalnej',
            text1: 'Maksymalna temperatura w sferze mieszkalnej to bezwzględnie <strong>29°C</strong>. Próba ogrzania nieocieplonego domu wyłącznie podłogówką grozi łamaniem tego prawa.',
            text2: 'Zdrowie użytkowników oraz bezpieczeństwo materiałów podłogowych wymagają utrzymania parametrów niskotemperaturowych.',
            alert: 'Przegrzewanie posadzki skraca żywotność rur i klejów.'
        },
        'opor': {
            icon: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg>',
            title: 'Bariera przewodnictwa posadzki',
            text1: 'Graniczny opór cieplny okładziny podłogowej wynosi <strong>0,15 m²K/W</strong>. Stosowanie grubych dywanów lub izolacyjnych podkładów blokuje strumień ciepła.',
            text2: 'Brak weryfikacji tego parametru przed wykonaniem <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/" style="color: var(--rk-fin-blue); font-weight: 700; text-decoration: none;">rozstawu rur</a> spowoduje permanentne niedogrzanie salonu.',
            alert: 'Zawsze konsultuj zmianę podłogi z projektantem!'
        },
        'petla': {
            icon: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z"></path><line x1="4" y1="22" x2="4" y2="15"></line></svg>',
            title: 'Krytyczne opory hydrauliczne obiegu',
            text1: 'Maksymalna długość pętli rury 16 mm nie powinna przekraczać <strong>100–120 m</strong>, aby utrzymać opory hydrauliczne w ryzach.',
            text2: 'Tworzenie pętli o długości 150 m prowadzi do zjawiska, w którym woda przestaje płynąć na końcu układu. Pompa obiegowa nie jest w stanie pokonać tarcia.',
            alert: 'Zbyt długa pętla = zimna strefa na środku pokoju.'
        }
    };

    tabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            var target = this.getAttribute('data-target');
            var data = contentData[target];

            if (data !== undefined) {
                // Remove active class from all
                tabs.forEach(function(t) { t.classList.remove('active'); });
                // Add active to clicked
                this.classList.add('active');

                // Update content cleanly
                display.innerHTML = 
                    '<div class="rk-fin-display-icon">' + data.icon + '</div>' +
                    '<div class="rk-fin-display-content">' +
                        '<h4>' + data.title + '</h4>' +
                        '<p>' + data.text1 + '</p>' +
                        '<p>' + data.text2 + '</p>' +
                        '<div class="rk-alert">' +
                            '<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg> ' +
                            data.alert +
                        '</div>' +
                    '</div>';
            }
        });
    });
});
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-slate: #475569;
    --rk-dl-blue: #2563eb;
    --rk-dl-blue-light: #eff6ff;
    --rk-dl-emerald: #059669;
    --rk-dl-emerald-light: #ecfdf5;
    --rk-dl-bg: #ffffff;
    --rk-dl-gray: #f8fafc;
    --rk-dl-border: #e2e8f0;
}

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

/* Nagłówek */
.rk-dl-header {
    padding: 35px 40px;
    background: var(--rk-dl-dark);
    color: #ffffff;
    border-bottom: 4px solid var(--rk-dl-emerald);
    text-align: center;
}

.rk-dl-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(5, 150, 105, 0.2);
    color: #6ee7b7;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(5, 150, 105, 0.3);
}

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

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

/* Pozioma Nawigacja (Przyciski na górze) */
.rk-dl-nav {
    display: flex;
    background: var(--rk-dl-gray);
    padding: 20px 40px;
    gap: 20px;
    border-bottom: 1px solid var(--rk-dl-border);
}

.rk-dl-nav-btn {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 16px 20px;
    background: #ffffff;
    border: 2px solid var(--rk-dl-border);
    border-radius: 12px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-dl-slate);
    cursor: pointer;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-dl-nav-btn:hover {
    border-color: #94a3b8;
}

.rk-dl-nav-btn.active {
    background: var(--rk-dl-blue);
    border-color: var(--rk-dl-blue);
    color: #ffffff;
}

.rk-dl-nav-btn svg {
    flex-shrink: 0;
}

/* Obszar Treści (Grafika / Pobieranie pod spodem) */
.rk-dl-content {
    padding: 40px;
    background: var(--rk-dl-bg);
}

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

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

/* Widok 1: Podgląd Grafiki */
.rk-dl-preview-wrapper {
    background: var(--rk-dl-gray);
    border: 1px dashed #cbd5e1;
    border-radius: 12px;
    padding: 20px;
    text-align: center;
}

.rk-dl-preview-img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.15);
    border: 1px solid var(--rk-dl-border);
    display: block;
    margin: 0 auto;
}

/* Widok 2: Sekcja Pobierania */
.rk-dl-download-wrapper {
    background: var(--rk-dl-emerald-light);
    border: 2px solid var(--rk-dl-emerald);
    border-radius: 16px;
    padding: 40px 30px;
    text-align: center;
}

.rk-dl-file-specs {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 25px;
}

.rk-dl-spec-badge {
    background: #ffffff;
    color: #065f46;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 800;
    border: 1px solid #a7f3d0;
}

.rk-dl-action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-dl-emerald);
    color: #ffffff;
    font-size: 18px;
    font-weight: 900;
    padding: 20px 45px;
    border-radius: 12px;
    text-decoration: none;
    text-transform: uppercase;
}

.rk-dl-action-btn:hover {
    background: #047857;
}

/* Stopka (Na samym dole) */
.rk-dl-footer {
    background: var(--rk-dl-gray);
    padding: 25px 40px;
    border-top: 1px solid var(--rk-dl-border);
    display: flex;
    gap: 20px;
    align-items: center;
}

.rk-dl-footer-icon {
    width: 48px;
    height: 48px;
    background: #ffffff;
    border: 1px solid var(--rk-dl-border);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-dl-slate);
    flex-shrink: 0;
}

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

.rk-dl-footer-text strong {
    color: var(--rk-dl-dark);
    font-weight: 800;
    display: block;
    margin-bottom: 4px;
}

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

/* Tagi SEO */
.rk-dl-tags {
    padding: 0 40px 30px;
    background: var(--rk-dl-gray);
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.rk-dl-tag {
    background: #ffffff;
    color: var(--rk-dl-slate);
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 700;
    border: 1px solid var(--rk-dl-border);
    text-decoration: none;
}

.rk-dl-tag:hover {
    background: var(--rk-dl-dark);
    color: #ffffff;
    border-color: var(--rk-dl-dark);
}

@media (max-width: 768px) {
    .rk-dl-header, .rk-dl-content, .rk-dl-footer, .rk-dl-tags { padding: 25px 20px; }
    .rk-dl-nav { padding: 20px; flex-direction: column; gap: 10px; }
    .rk-dl-footer { flex-direction: column; text-align: center; }
    .rk-dl-action-btn { width: 100%; padding: 15px 20px; font-size: 16px; }
    .rk-dl-file-specs { flex-direction: column; gap: 8px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-pobieranie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Materiały do pobrania: Infografika PN-EN 1264 w formacie PDF",
    "description": "Zdobądź inżynieryjną ściągawkę z normy PN-EN 1264. Darmowy plik PDF dla instalatorów przygotowany przez Roberta Kucharskiego do pobrania i wydruku.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-PN-EN-1264-Norma-ktora-definiuje-ogrzewanie-podlogowe.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-infografika",
    "name": "Inżynieryjna Infografika: Norma PN-EN 1264 (PDF)",
    "description": "Wizualne zestawienie parametrów technicznych ogrzewania podłogowego w postaci zoptymalizowanego dokumentu PDF przeznaczonego na place budowy.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika ogrzewanie podłogowe pdf",
      "norma pn-en 1264 do druku",
      "ściągawka instalatora podłogówki",
      "schemat układania rur ogrzewania",
      "parametry podłogówki pdf"
    ],
    "measurementTechnique": "Kompilacja kluczowych wytycznych hydraulicznych i konstrukcyjnych w formacie grafiki wektorowej/PDF wysokiej rozdzielczości.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Format pliku miniatury: WebP (Szybkie ładowanie)",
        "Format pliku bazowego: PDF (Gotowy do druku)",
        "Ograniczenia licencyjne: Zakaz modyfikacji, obowiązek zachowania logotypu"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-dystrybucja",
    "name": "Centrum Pobierania Materiałów Edukacyjnych HVAC",
    "description": "Interaktywny widget dystrybucyjny o układzie horyzontalnym umożliwiający podgląd miniatury materiału szkoleniowego (WebP) oraz bezpieczne pobranie zasobu bazowego (PDF).",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-container" id="rk-download-center-modern">
    <div class="rk-dl-header">
        <div class="rk-dl-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
            Materiały dla Ciebie
        </div>
        <h2>Pobierz infografikę z normą PN-EN 1264</h2>
        <p>Przygotowałem dla Ciebie czytelną, inżynieryjną ściągawkę. Pobierz darmowy plik PDF, wydrukuj go i zabierz ze sobą na budowę, aby uniknąć kosztownych błędów.</p>
    </div>

    <div class="rk-dl-nav" id="rkDlNav">
        <button class="rk-dl-nav-btn active" data-view="podglad">
            <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg>
            Podgląd Grafiki
        </button>

        <button class="rk-dl-nav-btn" data-view="pobieranie">
            <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="12" y1="18" x2="12" y2="12"></line><polyline points="9 15 12 18 15 15"></polyline></svg>
            Pobierz Plik PDF
        </button>
    </div>

    <div class="rk-dl-content">
        
        <div class="rk-dl-view active" id="view-podglad">
            <div class="rk-dl-preview-wrapper">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-PN-EN-1264-Norma-ktora-definiuje-ogrzewanie-podlogowe.webp" alt="Podgląd infografiki przedstawiającej normę PN-EN 1264" class="rk-dl-preview-img" loading="lazy">
            </div>
        </div>

        <div class="rk-dl-view" id="view-pobieranie">
            <div class="rk-dl-download-wrapper">
                <div class="rk-dl-file-specs">
                    <span class="rk-dl-spec-badge">Format: PDF</span>
                    <span class="rk-dl-spec-badge">Rozdzielczość: Druk (300 DPI)</span>
                    <span class="rk-dl-spec-badge">Rozmiar A4 / A3</span>
                </div>
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-PN-EN-1264-Norma-ktora-definiuje-ogrzewanie-podlogowe.pdf" download="Infografika-PN-EN-1264.pdf" class="rk-dl-action-btn">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><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 Dokument PDF
                </a>
            </div>
        </div>

    </div>

    <div class="rk-dl-footer">
        <div class="rk-dl-footer-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"></circle><path d="M15 9.354a4 4 0 1 0 0 5.292"></path></svg>
        </div>
        <p class="rk-dl-footer-text">
            <strong>© 2026 Projekt-Ogrzewania.pl | Autor: Robert Kucharski.</strong>
            Udostępnianie materiału PDF dozwolone wyłącznie z zachowaniem logotypu portalu i bez modyfikacji pliku. Zobacz nasze inne <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projekty z pompą ciepła</a>.
        </p>
    </div>

    <div class="rk-dl-tags">
        <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" class="rk-dl-tag"># wylewka betonowa na podłogówkę</a>
        <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/" class="rk-dl-tag"># kalkulator doboru pompy</a>
        <a href="https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/" class="rk-dl-tag"># pojemność wodna instalacji pdf</a>
        <a href="#" class="rk-dl-tag"># schemat podłogówki do druku</a>
        <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/" class="rk-dl-tag"># rozdzielacz podłogówki schemat</a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var navBtns = document.querySelectorAll('#rkDlNav .rk-dl-nav-btn');
    
    navBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-view');
            
            // Twarde usunięcie klas 'active' - brak animacji
            navBtns.forEach(function(b) {
                b.classList.remove('active');
            });
            
            // Bezpieczne ukrycie widoków (użycie prostego if)
            var viewPodglad = document.getElementById('view-podglad');
            var viewPobieranie = document.getElementById('view-pobieranie');
            
            if (viewPodglad !== null) { viewPodglad.classList.remove('active'); }
            if (viewPobieranie !== null) { viewPobieranie.classList.remove('active'); }
            
            // Włączenie odpowiedniego przycisku i widoku
            this.classList.add('active');
            var activeView = document.getElementById('view-' + targetId);
            
            if (activeView !== null) {
                activeView.classList.add('active');
            }
        });
    });
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">PN-EN 1264: Norma, która definiuje ogrzewanie podłogowe.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Norma PN-EN 12831: Klucz do efektywnego i komfortowego ogrzewania podłogowego.</title>
		<link>https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Wed, 31 Dec 2025 08:26:13 +0000</pubDate>
				<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Efektywność ogrzewania]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Normy grzewcze]]></category>
		<category><![CDATA[Normy techniczne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady techniczne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Projektowanie systemów grzewczych]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[norma pn-en 12831]]></category>
		<category><![CDATA[obciążenie cieplne]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[podłogówka wodna]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[straty ciepła]]></category>
		<category><![CDATA[temperatura efektywna]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3019</guid>

					<description><![CDATA[<p>Ogrzewanie podłogowe kojarzy się z komfortem, równomiernym ciepłem i niższymi rachunkami, ale tylko wtedy, gdy jest prawidłowo zaprojektowane. Właśnie dlatego tak duże znaczenie ma Norma PN-EN 12831: Klucz do efektywnego i komfortowego ogrzewania podłogowego. To ona określa, jak obliczać rzeczywiste zapotrzebowanie cieplne budynku, uwzględniając nie tylko temperaturę powietrza, ale także temperaturę przegród i odczuwalny komfort użytkownika. W artykule wyjaśniamy, dlaczego temperatura efektywna zmienia podejście do projektowania podłogówki i jak przekłada się to na realne oszczędności oraz wygodę na lata.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">Norma PN-EN 12831: Klucz do efektywnego i komfortowego ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Planując budowę lub modernizację domu, wybór&nbsp;<strong>ogrzewania podłogowego</strong>&nbsp;to jedna z najlepszych decyzji gwarantujących długoterminowy komfort. Jednak, aby system działał efektywnie, ekonomicznie i zapewniał przyjemne ciepło, jego projekt musi opierać się na solidnych fundamentach obliczeniowych. Tu z pomocą przychodzi&nbsp;<strong>norma PN-EN 12831</strong>, często nazywana „biblią” projektantów instalacji grzewczych. W niniejszym artykule w przystępny sposób wyjaśnimy, czym jest ta techniczna specyfikacja i dlaczego jest tak istotna właśnie dla&nbsp;<strong>wodnego ogrzewania podłogowego</strong>.</p>



<h2 class="wp-block-heading">Czym właściwie jest norma PN-EN 12831?</h2>



<p class="wp-block-paragraph"><strong>Norma PN-EN 12831</strong>&nbsp;(a ściślej jej aktualna część:&nbsp;<strong>PN-EN 12831-1:2017-08</strong>) to oficjalny, zharmonizowany dokument, który precyzyjnie określa&nbsp;<strong>metodologię obliczania projektowego obciążenia cieplnego budynków</strong>. W dużym uproszczeniu odpowiada na fundamentalne pytanie:&nbsp;<strong>Ile ciepła musi dostarczyć nasza instalacja grzewcza, aby w największe mrozy utrzymać w pomieszczeniach założoną, komfortową temperaturę?</strong></p>



<p class="wp-block-paragraph">Jej stosowanie jest nie tylko dobrą praktyką inżynierską, ale często&nbsp;<strong>wymogiem prawnym</strong>&nbsp;przy ubieganiu się o pozwolenia budowlane czy dotacje (np. w programie „Czyste Powietrze”). Norma zapewnia, że system grzewczy będzie odpowiednio dobrany – ani przewymiarowany (co pociąga za sobą wyższe koszty inwestycyjne i eksploatacyjne), ani zbyt słaby (co prowadzi do niedogrzania budynku).</p>



<h3 class="wp-block-heading">Dlaczego dla podłogówki ta norma jest szczególnie ważna?</h3>



<p class="wp-block-paragraph"><strong><a href="https://projekt-ogrzewania.pl">Wodne ogrzewanie podłogowe</a></strong> to system grzewczy <strong>powierzchniowy i niskotemperaturowy</strong>. Działa inaczej niż tradycyjne grzejniki, które nagrzewają się do wysokiej temperatury (np. 70°C) i szybko oddają ciepło głównie przez konwekcję (ruch powietrza). Podłogówka to wielkopowierzchniowy „kaloryfer” wylany w wylewce, pracujący w temperaturze zasilania zwykle między 35 a 55°C. Oddaje ciepło w sposób <strong>jednorodny i łagodny</strong>, w około 70% przez <strong>promieniowanie podczerwone</strong>.</p>



<p class="wp-block-paragraph">To fundamentalna różnica w fizyce działania, która&nbsp;<strong>musi</strong>&nbsp;znaleźć odzwierciedlenie w obliczeniach. I tutaj właśnie&nbsp;<strong>norma PN-EN 12831</strong>&nbsp;wprowadza kluczowe pojęcie, które zmienia postrzeganie strat cieplnych w pomieszczeniu z podłogówką.</p>



<h2 class="wp-block-heading">Rewolucyjne pojęcie: temperatura efektywna (θ&lt;sub>eff&lt;/sub>)</h2>



<p class="wp-block-paragraph">To serce obliczeń dla ogrzewania powierzchniowego według&nbsp;<strong>normy PN-EN 12831</strong>. Dla systemów konwekcyjnych (grzejników) przyjmuje się, że komfort zapewnia określona&nbsp;<strong>temperatura powietrza</strong>&nbsp;w pomieszczeniu (np. 20°C). Straty ciepła oblicza się właśnie jako potrzebę utrzymania tej temperatury powietrza.</p>



<p class="wp-block-paragraph">Jednak nasze odczucie ciepła zależy nie tylko od temperatury powietrza, ale także od&nbsp;<strong>temperatury otaczających nas powierzchni</strong>&nbsp;(tzw. temperatura promieniowania). Zimna ściana lub okno „wyciąga” z nas ciepło przez promieniowanie, nawet jeśli termometr pokazuje 22°C.</p>



<p class="wp-block-paragraph"><strong>Ogrzewanie podłogowe radykalnie zmienia tę sytuację.</strong>&nbsp;Ciepła podłoga ogrzewa nie tylko powietrze, ale przede wszystkim&nbsp;<strong>wszystkie przegrody i przedmioty w pomieszczeniu</strong>&nbsp;przez promieniowanie. W efekcie ściany, meble i sufit stają się przyjemnie „dotłoczone”, a my odczuwamy wyższy komfort termiczny przy tej samej lub nawet nieco niższej temperaturze powietrza.</p>



<p class="wp-block-paragraph"><strong>Norma PN-EN 12831</strong>&nbsp;wychodzi naprzeciw tym zjawiskom, wprowadzając do obliczeń&nbsp;<strong>temperaturę efektywną</strong>. Jest to&nbsp;<strong>średnia ważona temperatury powietrza i średniej temperatury powierzchni przegród</strong>.</p>



<h2 class="wp-block-heading">Definicja temperatury efektywnej według normy PN-EN 12831.</h2>



<style>
.table-pnen12831 {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0;
  font-size: 16px;
}

.table-pnen12831 th,
.table-pnen12831 td {
  border: 1px solid #dcdcdc;
  padding: 12px;
  vertical-align: top;
}

.table-pnen12831 th {
  background: #f4f4f4;
  font-weight: 600;
  width: 30%;
}

@media (max-width: 768px) {
  .table-pnen12831,
  .table-pnen12831 tbody,
  .table-pnen12831 tr,
  .table-pnen12831 td,
  .table-pnen12831 th {
    display: block;
    width: 100%;
  }

  .table-pnen12831 tr {
    margin-bottom: 15px;
  }

  .table-pnen12831 th {
    background: none;
    padding-bottom: 5px;
  }

  .table-pnen12831 td {
    padding-top: 5px;
  }
}
</style>

<table class="table-pnen12831">
  <tr>
    <th>Wzór uproszczony</th>
    <td>
      θ<sub>eff</sub> = A · θ<sub>int</sub> + (1 − A) · θ<sub>s</sub>
    </td>
  </tr>
  <tr>
    <th>θ<sub>eff</sub></th>
    <td>Poszukiwana temperatura efektywna [°C]</td>
  </tr>
  <tr>
    <th>θ<sub>int</sub></th>
    <td>Projektowa temperatura powietrza w pomieszczeniu (np. +20°C)</td>
  </tr>
  <tr>
    <th>θ<sub>s</sub></th>
    <td>
      Średnia temperatura wewnętrznych powierzchni wszystkich przegród
      (ścian, okien, sufitu) otaczających pomieszczenie [°C]
    </td>
  </tr>
  <tr>
    <th>A</th>
    <td>
      Współczynnik korygujący, zwykle przyjmowany jako <strong>0,5</strong>
      dla standardowych pomieszczeń
    </td>
  </tr>
</table>




<p class="wp-block-paragraph">Powyższa tabela porządkuje <strong>kluczowe pojęcia i symbole</strong> wykorzystywane w normie <strong>PN-EN 12831</strong> przy obliczaniu temperatury efektywnej θ&lt;sub&gt;eff&lt;/sub&gt;. Norma ta uwzględnia fakt, że <strong>odczuwalny komfort cieplny</strong> w pomieszczeniu nie zależy wyłącznie od temperatury powietrza, lecz również od temperatury wewnętrznych powierzchni przegród, takich jak ściany, okna czy sufit.</p>



<p class="wp-block-paragraph">Zastosowany wzór uproszczony pokazuje, w jaki sposób temperatura powietrza θ&lt;sub&gt;int&lt;/sub&gt; oraz średnia temperatura przegród θ&lt;sub&gt;s&lt;/sub&gt; są łączone za pomocą współczynnika korygującego A. Dzięki temu projektant instalacji grzewczej może <strong>dokładniej ocenić warunki cieplne w pomieszczeniu</strong> i lepiej dopasować parametry systemu ogrzewania do rzeczywistego komfortu użytkowników.</p>



<h2 class="wp-block-heading">Przykład obliczeniowy temperatury efektywnej zgodnie z PN-EN 12831</h2>



<style>
.table-pnen12831-example {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0;
  font-size: 16px;
}

.table-pnen12831-example th,
.table-pnen12831-example td {
  border: 1px solid #dcdcdc;
  padding: 12px;
  vertical-align: top;
}

.table-pnen12831-example th {
  background: #f4f4f4;
  font-weight: 600;
  width: 35%;
}

.table-pnen12831-example .result {
  background: #eef6ff;
  font-weight: 600;
}

@media (max-width: 768px) {
  .table-pnen12831-example,
  .table-pnen12831-example tbody,
  .table-pnen12831-example tr,
  .table-pnen12831-example td,
  .table-pnen12831-example th {
    display: block;
    width: 100%;
  }

  .table-pnen12831-example tr {
    margin-bottom: 15px;
  }

  .table-pnen12831-example th {
    background: none;
    padding-bottom: 5px;
  }

  .table-pnen12831-example td {
    padding-top: 5px;
  }
}
</style>

<table class="table-pnen12831-example">
  <tr>
    <th>Dane wejściowe</th>
    <td>
      θ<sub>int</sub> = 20°C<br>
      θ<sub>s</sub> = 17°C<br>
      A = 0,5
    </td>
  </tr>
  <tr>
    <th>Wzór</th>
    <td>
      θ<sub>eff</sub> = A · θ<sub>int</sub> + (1 − A) · θ<sub>s</sub>
    </td>
  </tr>
  <tr>
    <th>Podstawienie</th>
    <td>
      θ<sub>eff</sub> = 0,5 · 20 + (1 − 0,5) · 17
    </td>
  </tr>
  <tr>
    <th>Obliczenie</th>
    <td>
      θ<sub>eff</sub> = 10 + 8,5
    </td>
  </tr>
  <tr class="result">
    <th>Wynik</th>
    <td>
      θ<sub>eff</sub> = <strong>18,5°C</strong>
    </td>
  </tr>
</table>




<p class="wp-block-paragraph">Powyższa tabela przedstawia <strong>praktyczny przykład obliczenia temperatury efektywnej θ&lt;sub&gt;eff&lt;/sub&gt;</strong>, która jest wykorzystywana w normie <strong>PN-EN 12831</strong> do bardziej realistycznej oceny warunków komfortu cieplnego w pomieszczeniu.</p>



<p class="wp-block-paragraph">W przykładzie przyjęto <strong>projektową temperaturę powietrza θ&lt;sub&gt;int&lt;/sub&gt; = 20°C</strong>, średnią temperaturę wewnętrznych powierzchni przegród <strong>θ&lt;sub&gt;s&lt;/sub&gt; = 17°C</strong> oraz standardowy współczynnik korygujący <strong>A = 0,5</strong>. Po podstawieniu danych do wzoru widać wyraźnie, że <strong>odczuwalna temperatura w pomieszczeniu wynosi 18,5°C</strong>, a więc jest niższa niż sama temperatura powietrza.</p>



<p class="wp-block-paragraph">To właśnie ten efekt pokazuje, dlaczego w nowoczesnym projektowaniu instalacji grzewczych – szczególnie przy <strong>ogrzewaniu podłogowym</strong> – tak istotna jest temperatura przegród, a nie wyłącznie wskazanie termometru. Dzięki uwzględnieniu temperatury efektywnej możliwe jest <strong>dokładniejsze dopasowanie mocy grzewczej</strong>, lepszy komfort użytkowników oraz ograniczenie ryzyka przegrzewania pomieszczeń.</p>



<h2 class="wp-block-heading">Temperatura powietrza a temperatura odczuwalna – porównanie praktyczne.</h2>



<p class="wp-block-paragraph">Poniższa tabela pokazuje <strong>różnicę między temperaturą powietrza a temperaturą odczuwalną (efektywną)</strong> w pomieszczeniu. Zestawienie jasno obrazuje, dlaczego samo utrzymywanie określonej temperatury na termostacie <strong>nie zawsze oznacza realny komfort cieplny</strong>. Kluczowe znaczenie ma tu temperatura przegród, która w normie PN-EN 12831 wpływa bezpośrednio na temperaturę efektywną.</p>



<style>
.table-thermal-compare {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0;
  font-size: 16px;
}

.table-thermal-compare th,
.table-thermal-compare td {
  border: 1px solid #dcdcdc;
  padding: 12px;
  text-align: center;
  vertical-align: middle;
}

.table-thermal-compare th {
  background: #f4f4f4;
  font-weight: 600;
}

.table-thermal-compare .cool {
  background: #fff5f5;
}

.table-thermal-compare .warm {
  background: #f1f8f4;
}

@media (max-width: 768px) {
  .table-thermal-compare,
  .table-thermal-compare thead,
  .table-thermal-compare tbody,
  .table-thermal-compare tr,
  .table-thermal-compare th,
  .table-thermal-compare td {
    display: block;
    width: 100%;
  }

  .table-thermal-compare thead {
    display: none;
  }

  .table-thermal-compare tr {
    margin-bottom: 15px;
    border: 1px solid #ddd;
  }

  .table-thermal-compare td {
    text-align: right;
    padding-left: 50%;
    position: relative;
  }

  .table-thermal-compare td::before {
    content: attr(data-label);
    position: absolute;
    left: 12px;
    width: 45%;
    text-align: left;
    font-weight: 600;
  }
}
</style>

<table class="table-thermal-compare">
  <thead>
    <tr>
      <th>Przypadek</th>
      <th>Temperatura powietrza θ<sub>int</sub></th>
      <th>Temperatura przegród θ<sub>s</sub></th>
      <th>Temperatura odczuwalna θ<sub>eff</sub></th>
      <th>Subiektywne odczucie</th>
    </tr>
  </thead>
  <tbody>
    <tr class="cool">
      <td data-label="Przypadek">Chłodne przegrody</td>
      <td data-label="Temperatura powietrza">20°C</td>
      <td data-label="Temperatura przegród">16–17°C</td>
      <td data-label="Temperatura odczuwalna">≈ 18–18,5°C</td>
      <td data-label="Odczucie">Chłodno, dyskomfort</td>
    </tr>
    <tr class="warm">
      <td data-label="Przypadek">Ciepłe przegrody</td>
      <td data-label="Temperatura powietrza">20°C</td>
      <td data-label="Temperatura przegród">19–20°C</td>
      <td data-label="Temperatura odczuwalna">≈ 19,5–20°C</td>
      <td data-label="Odczucie">Komfort cieplny</td>
    </tr>
  </tbody>
</table>




<h3 class="wp-block-heading">Praktyczny przykład obliczeniowy.</h3>



<p class="wp-block-paragraph">Wyobraźmy sobie łazienkę o&nbsp;<strong>temperaturze projektowej powietrza</strong>&nbsp;θ&lt;sub&gt;int&lt;/sub&gt;&nbsp;=&nbsp;<strong>24°C</strong>.<br>Ściana zewnętrzna z oknem ma temperaturę powierzchni wewnętrznej 18°C. Pozostałe ściany wewnętrzne, sufit i podłoga (ale nie ta grzewcza!) mają średnią temperaturę 22°C. Po uśrednieniu otrzymujemy&nbsp;<strong>średnią temperaturę powierzchni</strong>&nbsp;θ&lt;sub&gt;s&lt;/sub&gt;&nbsp;=&nbsp;<strong>20,5°C</strong>.</p>



<p class="wp-block-paragraph"><strong>Obliczamy temperaturę efektywną dla ogrzewania podłogowego:</strong><br>θ&lt;sub&gt;eff&lt;/sub&gt;&nbsp;= 0,5 · 24°C + 0,5 · 20,5°C =&nbsp;<strong>22,25°C</strong></p>



<p class="wp-block-paragraph"><strong>Co to oznacza?</strong>&nbsp;Dla zapewnienia komfortu użytkownika w tej łazience z&nbsp;<strong>ogrzewaniem podłogowym</strong>, system musi zrównoważyć straty ciepła potrzebne do utrzymania&nbsp;<strong>efektywnej temperatury 22,25°C</strong>, a nie pełnych 24°C.</p>



<p class="wp-block-paragraph">Gdybyśmy projektowali w tej samej łazience&nbsp;<strong>grzejnik</strong>, obliczenia prowadzilibyśmy wprost dla 24°C.&nbsp;<strong>Straty ciepła obliczone dla ogrzewania podłogowego będą zatem niższe!</strong>&nbsp;To właśnie&nbsp;<strong>główna korzyść i sedno zastosowania normy PN-EN 12831</strong>&nbsp;w tym kontekście.</p>



<h2 class="wp-block-heading">Jak to przekłada się na projekt i koszty?</h2>



<p class="wp-block-paragraph">Zastosowanie&nbsp;<strong>temperatury efektywnej</strong>&nbsp;ma bezpośrednie i bardzo korzystne konsekwencje:</p>



<ol start="1" class="wp-block-list">
<li><strong>Obniżenie projektowego obciążenia cieplnego budynku:</strong> W praktyce oznacza to, że <strong>zapotrzebowanie na ciepło</strong> całego domu z ogrzewaniem podłogowym, obliczone zgodnie z <strong>normą PN-EN 12831</strong>, może być <strong>o 10% do nawet 20% niższe</strong> niż dla identycznego budynku z grzejnikami. To nie jest oszczędność „na papierze”, tylko realne odzwierciedlenie wyższego komfortu i sprawności systemu powierzchniowego.</li>



<li><strong>Optymalizacja źródła ciepła:</strong> Niższe zapotrzebowanie na moc oznacza, że możemy wybrać <strong>mniejszy kocioł, mniej wydajną (lub tańszą) pompę ciepła czy mniejszą ilość kolektorów słonecznych</strong>. To <strong>bezpośrednia redukcja kosztów inwestycyjnych</strong>.</li>



<li><strong>Niższe koszty eksploatacji:</strong> System pracujący w oparciu o prawidłowe, niższe parametry projektowe będzie zużywał mniej energii, by utrzymać komfort. Dzieje się tak dlatego, że rzeczywiste straty budynku są właśnie takie, jak obliczono – niższe.</li>



<li><strong>Właściwe dobranie pętli podłogowych:</strong> W projekcie <strong>instalacji podłogowej</strong> dla każdego pomieszczenia inżynier, znając już rzeczywiste straty cieplne (obliczone z θ&lt;sub>eff&lt;/sub>), dobiera <strong>rozstaw rur</strong>, <strong>średnicę</strong> oraz <strong>długość pętli</strong>. Dzięki temu każdy fragment podłogi będzie emitował dokładnie tyle ciepła, ile potrzeba, unikając przegrzewania lub niedogrzania.</li>
</ol>



<h3 class="wp-block-heading">Strefy brzegowe – gdzie norma wymaga szczególnej uwagi.</h3>



<p class="wp-block-paragraph">Nie cała podłoga jest jednak taka sama.&nbsp;<strong>Norma PN-EN 12831</strong>&nbsp;wyraźnie wskazuje na konieczność oddzielnego traktowania tzw.&nbsp;<strong>stref brzegowych</strong>. Są to pasy o szerokości około 1 metra wzdłuż ścian zewnętrznych, drzwi balkonowych czy dużych okien. W tych miejscach straty ciepła przez przegrodę są największe (tzw. mostki cieplne).</p>



<p class="wp-block-paragraph">Dlatego w projekcie ogrzewania podłogowego, oprócz obliczeń głównych, <strong>konieczne jest sprawdzenie i ewentualne zwiększenie mocy grzewczej w strefach brzegowych</strong>. Robi się to najczęściej poprzez <strong><a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">zagęszczenie pętli grzewczych</a></strong> (np. rozstaw co 10 cm zamiast standardowych 15-20 cm) lub zastosowanie dodatkowej, niezależnej pętli o wyższej temperaturze zasilania. Jest to kluczowe dla wyeliminowania uczucia „zimnej podłogi” przy oknie i zabezpieczenia przed wykraplaniem wilgoci.</p>



<h2 class="wp-block-heading">Projekt ogrzewania podłogowego a norma PN-EN 12831 – nierozerwalny związek</h2>



<p class="wp-block-paragraph"><strong><a href="https://projekt-ogrzewania.pl/kategoria-produktu/projekty/">Projekt ogrzewania podłogowego</a></strong>, który ma być gwarantem komfortu i efektywności, <strong>musi zaczynać się od obliczeń wykonanych zgodnie z normą PN-EN 12831-1</strong>. To nie jest opcja, a <strong>podstawa</strong>. Prawidłowo wykonane obliczenia strat ciepła z użyciem <strong>temperatury efektywnej</strong> stanowią punkt wyjścia do dalszych, bardziej szczegółowych etapów projektowania systemu podłogowego, które reguluje już inna, równie ważna norma – <strong>PN-EN 1264</strong> (dotycząca bezpośrednio wymagań, wykonania i obliczeń dla ogrzewania powierzchniowego).</p>



<p class="wp-block-paragraph"><strong>Dobry <a href="https://projekt-ogrzewania.pl/kontakt/">projektant</a> nie ogranicza się tylko do wbicia liczb do programu.</strong> Analizuje orientację pomieszczeń względem stron świata, rodzaj i jakość okien, izolacyjność przegród oraz sposób użytkowania budynku. Wszystkie te dane wpływają na parametry wejściowe do obliczeń według <strong>normy PN-EN 12831</strong>, a finalnie na precyzyjny rozkład pętli grzewczych na planie budynku, schemat hydrauliczny z <a href="https://projekt-ogrzewania.pl/kategoria-produktu/rozdzielacze-do-ogrzewania-podlogowego/">rozdzielaczami</a> oraz specyfikację materiałową.</p>



<p class="wp-block-paragraph">Inwestor, zlecając projekt, powinien oczekiwać dokumentu, który w sposób przejrzysty wykazuje, że obliczenia zostały wykonane zgodnie z tą normą. To inwestycja w pewność, że wydane pieniądze przyniosą oczekiwany efekt – ciepły, zdrowy i tani w utrzymaniu dom.</p>



<h2 class="wp-block-heading">FAQ – najczęstsze pytania.</h2>



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1767167045104"><strong class="schema-faq-question"><strong>Czym jest norma PN-EN 12831?</strong></strong> <p class="schema-faq-answer">Norma PN-EN 12831 to dokument określający sposób obliczania projektowego obciążenia cieplnego budynków, czyli ilości ciepła potrzebnej do utrzymania komfortowej temperatury zimą.</p> </div> <div class="schema-faq-section" id="faq-question-1767167054102"><strong class="schema-faq-question"><strong>Dlaczego norma PN-EN 12831 jest tak ważna przy ogrzewaniu podłogowym?</strong></strong> <p class="schema-faq-answer">Ponieważ uwzględnia temperaturę efektywną, a nie tylko temperaturę powietrza, co lepiej oddaje rzeczywisty komfort cieplny przy ogrzewaniu powierzchniowym.</p> </div> <div class="schema-faq-section" id="faq-question-1767167073369"><strong class="schema-faq-question"><strong>Co to jest temperatura efektywna?</strong></strong> <p class="schema-faq-answer">Temperatura efektywna to średnia ważona temperatury powietrza i temperatury powierzchni przegród, która lepiej opisuje to, jak ciepło odczuwają użytkownicy.</p> </div> <div class="schema-faq-section" id="faq-question-1767167087477"><strong class="schema-faq-question"><strong>Czy ogrzewanie podłogowe zawsze wymaga mniejszej mocy niż grzejniki?</strong></strong> <p class="schema-faq-answer">W wielu przypadkach tak, ponieważ ciepłe przegrody poprawiają komfort i pozwalają obniżyć projektowe obciążenie cieplne nawet o 10–20%.</p> </div> <div class="schema-faq-section" id="faq-question-1767167106268"><strong class="schema-faq-question"><strong>Czy <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">projekt ogrzewania podłogowego</a> musi być wykonany zgodnie z PN-EN 12831?</strong></strong> <p class="schema-faq-answer">Tak, jeśli ma być poprawny technicznie, komfortowy i ekonomiczny. To podstawa do dalszego projektowania zgodnie z normą PN-EN 1264.</p> </div> </div>



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



<p class="wp-block-paragraph"><strong>Podsumowując, norma PN-EN 12831 to znacznie więcej niż suchy, techniczny dokument.</strong> To <strong>narzędzie</strong>, które pozwala w sposób naukowy i ustandaryzowany „oswoić” fizykę budynku i wykorzystać unikalne zalety <strong>wodnego ogrzewania podłogowego</strong>. Jej zastosowanie jest gwarancją, że system nie będzie oparty na przeczuciach lub nadmiernych marginesach bezpieczeństwa, lecz na racjonalnych, optymalnych obliczeniach. </p>



<p class="wp-block-paragraph">Dzięki temu końcowy użytkownik przez dziesiątki lat może cieszyć się niewidocznym, cichym i niezwykle przyjemnym ciepłem, które emanuje z podłogi, jednocześnie płacąc niższe rachunki za energię. To połączenie komfortu i ekonomii, które czyni <strong>ogrzewanie podłogowe</strong> projektowanym zgodnie z <strong>normą PN-EN 12831</strong> jednym z najlepszych rozwiązań dla nowoczesnego, energooszczędnego budownictwa.</p>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-projekt-ogrzewania wp-block-embed-projekt-ogrzewania"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="z6mjNc6Byi"><a href="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-150-m2/">Projekt ogrzewania podłogowego &#8211; do 150 m2</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8222;Projekt ogrzewania podłogowego &#8211; do 150 m2&#8221; &#8212; Projekt Ogrzewania" src="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-150-m2/embed/#?secret=KvnvA82AIp#?secret=z6mjNc6Byi" data-secret="z6mjNc6Byi" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">Norma PN-EN 12831: Klucz do efektywnego i komfortowego ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ile styropianu pod ogrzewanie podłogowe?</title>
		<link>https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 18 Nov 2025 08:28:46 +0000</pubDate>
				<category><![CDATA[Izolacje termiczne]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Materiały do podłogówki]]></category>
		<category><![CDATA[Materiały instalacyjne]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Normy i regulacje]]></category>
		<category><![CDATA[Normy i standardy]]></category>
		<category><![CDATA[Normy techniczne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Styropian]]></category>
		<category><![CDATA[eps 100]]></category>
		<category><![CDATA[eps 200]]></category>
		<category><![CDATA[grubość styropianu]]></category>
		<category><![CDATA[izolacja termiczna]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projektowanie ogrzewania]]></category>
		<category><![CDATA[straty ciepła]]></category>
		<category><![CDATA[styropian]]></category>
		<category><![CDATA[warunki techniczne]]></category>
		<category><![CDATA[współczynnik lambda]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2850</guid>

					<description><![CDATA[<p>Planując instalację ogrzewania podłogowego, jednym z najważniejszych, choć często niedocenianych aspektów, jest odpowiednie dobranie izolacji termicznej. Wiele osób zadaje sobie wtedy kluczowe pytanie: ile styropianu pod ogrzewanie podłogowe będzie optymalne? Odpowiedź nie jest jednoznaczna, ponieważ zależy od typu konstrukcji, lokalizacji oraz parametrów technicznych samego materiału. W naszym kompleksowym artykule w techniczny i szczegółowy sposób wyjaśniamy, jak precyzyjnie obliczyć wymaganą grubość warstwy izolacyjnej, jakie normy prawne muszą być spełnione oraz na jakie zaawansowane parametry, takie jak współczynnik lambda czy wytrzymałość na ściskanie, należy zwrócić uwagę. Dowiesz się również, jak uniknąć kosztownych błędów i zapewnić swojemu systemowi grzewczemu maksymalną efektywność energetyczną na długie lata.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">Ile styropianu pod ogrzewanie podłogowe?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-card: #1e293b;
    --rk-intro-brand: #ea580c; /* Termiczna pomarańcz */
    --rk-intro-brand-light: #ffedd5;
    --rk-intro-blue: #0284c7;
    --rk-intro-bg: #ffffff;
    --rk-intro-surface: #f8fafc;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #475569;
}

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

/* Sekcja Główna Wstępu */
.rk-intro-header {
    background: linear-gradient(135deg, #1e293b 0%, var(--rk-intro-dark) 100%);
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-intro-brand);
}

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

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

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

.rk-intro-header strong {
    color: #ffffff;
    font-weight: 800;
    background: rgba(234, 88, 12, 0.3);
    padding: 2px 6px;
    border-radius: 4px;
}

/* Moduł "Czego się dowiesz" */
.rk-intro-agenda {
    padding: 40px 50px;
    background: var(--rk-intro-surface);
}

.rk-agenda-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-intro-dark);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0 0 25px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-agenda-title svg {
    color: var(--rk-intro-brand);
}

.rk-agenda-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 20px;
}

/* Interaktywne Kafelki */
.rk-agenda-card {
    background: #ffffff;
    border: 1px solid var(--rk-intro-border);
    border-radius: 16px;
    padding: 25px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    z-index: 1;
    text-decoration: none;
    display: block;
}

.rk-agenda-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: linear-gradient(135deg, rgba(255,255,255,0) 0%, var(--rk-intro-brand-light) 100%);
    opacity: 0;
    z-index: -1;
    transition: opacity 0.4s;
    border-radius: 16px;
}

.rk-agenda-card:hover {
    transform: translateY(-5px);
    border-color: var(--rk-intro-brand);
    box-shadow: 0 15px 30px -10px rgba(234, 88, 12, 0.15);
}

.rk-agenda-card:hover::before {
    opacity: 0.5;
}

.rk-card-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: var(--rk-intro-surface);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-intro-blue);
    margin-bottom: 15px;
    transition: all 0.4s;
}

.rk-agenda-card:hover .rk-card-icon {
    background: var(--rk-intro-brand);
    color: #ffffff;
    transform: scale(1.1) rotate(5deg);
}

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

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

/* Responsywność */
@media (max-width: 768px) {
    .rk-intro-header, .rk-intro-agenda { padding: 35px 25px; }
    .rk-intro-header h2 { font-size: 26px; }
    .rk-intro-header p { font-size: 16px; }
    .rk-agenda-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Ile styropianu pod ogrzewanie podłogowe? Kompendium Inżynierskie",
    "description": "Zestawienie norm prawnych i kalkulacji inżynierskich określających wymaganą grubość izolacji podłogowej dla maksymalizacji sprawności źródła ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset",
    "name": "Struktura Analizy Izolacyjności WT2021",
    "description": "Zestawienie wytycznych prawnych, termodynamicznych i wykonawczych dla doboru materiałów izolacyjnych (EPS/XPS) pod wodne systemy płaszczyznowe.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ile styropianu pod ogrzewanie podłogowe",
      "grubość izolacji WT2021",
      "straty ciepła do gruntu",
      "opór cieplny styropianu",
      "EPS grafitowy czy biały"
    ],
    "measurementTechnique": "Agregacja parametrów cieplnych i mechanicznych zgodna z normami budowlanymi, prezentująca wpływ grubości izolacji na efektywność OZC.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Analiza współczynnika przenikania ciepła dla gruntu",
        "Porównanie właściwości EPS 100 białego i grafitowego",
        "Korelacja grubości styropianu z Projektowym Obciążeniem Cieplnym (OZC)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp",
    "name": "Nawigator Wiedzy Technicznej",
    "description": "Interaktywny interfejs wprowadzający nawigujący użytkownika po kluczowych zagadnieniach inżynierskich związanych z doborem izolacji podłogowej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="rk-intro-app">
    <div class="rk-intro-header">
        <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="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>
            Kompendium Inżyniera
        </div>
        <h2>Ile styropianu pod ogrzewanie podłogowe?</h2>
        <p>
            Decyzja o grubości izolacji podłogowej determinuje koszty ogrzewania budynku przez najbliższe kilkadziesiąt lat. Poniższy artykuł stanowi kompletne kompendium techniczne określające, <strong>ile styropianu pod ogrzewanie podłogowe</strong> należy zastosować, aby instalacja działała z maksymalną sprawnością, spełniając aktualne normy prawne i drastycznie minimalizując <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/" style="color: #60a5fa; text-decoration: underline; font-weight: 700;">straty ciepła do gruntu</a>. Zbyt cienki styropian pod podłogówkę może oznaczać tysiące złotych strat ciepła przez kolejne lata. Dlatego dobór odpowiedniej izolacji pod ogrzewanie podłogowe to nie detal, ale jeden z najważniejszych elementów całej instalacji.
        </p>
    </div>

    <div class="rk-intro-agenda">
        <div class="rk-agenda-title">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
            W tym poradniku odkryjesz:
        </div>
        
        <div class="rk-agenda-grid">
            <a href="#normy" class="rk-agenda-card">
                <div class="rk-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                </div>
                <h3 class="rk-card-title">Normy prawne i WT2021</h3>
                <p class="rk-card-desc">Poznasz bezwzględne minimum grubości wymagane przepisami budowlanymi dla współczynnika U ≤ 0,20.</p>
            </a>

            <a href="#materialy" class="rk-agenda-card">
                <div class="rk-card-icon">
                    <svg width="24" height="24" 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 class="rk-card-title">Jaki styropian?</h3>
                <p class="rk-card-desc">Porównanie parametrów technicznych i gęstości styropianów podłogowych. Dowiesz się, jaki styropian położyć pod ogrzewanie podłogowe.</p>
            </a>

            <a href="#obliczenia" class="rk-agenda-card">
                <div class="rk-card-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="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>
                <h3 class="rk-card-title">Krok po kroku: Obliczenia</h3>
                <p class="rk-card-desc">Gotowy algorytm matematyczny pozwalający wyznaczyć opór cieplny (R) w zależności od strat energii.</p>
            </a>

            <a href="#bledy" class="rk-agenda-card">
                <div class="rk-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                </div>
                <h3 class="rk-card-title">Krytyczne błędy montażowe</h3>
                <p class="rk-card-desc">Zestawienie uchybień wykonawczych, które niszczą efektywność nawet najgrubszego styropianu.</p>
            </a>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez użycia tagów H2/H3 zgodnie z poleceniem)
    const currentDomain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(currentDomain)) {
        const targetContainer = document.getElementById('rk-intro-app');
        if (targetContainer) {
            targetContainer.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">⚠️</div>
                    <div style="font-size: 20px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                    <div style="font-size: 15px; color: #cbd5e1; max-width: 550px; margin: 0 auto; line-height: 1.6;">
                        Ten komponent wprowadzający wraz ze strukturą JSON-LD jest licencjonowany wyłącznie dla domeny <strong>Projekt-Ogrzewania.pl</strong>. Wykryto nieautoryzowane wdrożenie skryptu.
                    </div>
                </div>
            `;
            return;
        }
    }
});
</script>



<style>
:root {
    --rk-wt-dark: #0f172a;
    --rk-wt-surface: #1e293b;
    --rk-wt-brand: #059669; /* Inżynieryjna zieleń - zgodność z normami */
    --rk-wt-brand-light: #d1fae5;
    --rk-wt-accent: #f59e0b; /* Pomarańcz termiczna */
    --rk-wt-gray: #f1f5f9;
    --rk-wt-border: #e2e8f0;
    --rk-wt-text: #334155;
    --rk-wt-text-light: #64748b;
}

.rk-wt-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(5, 150, 105, 0.15);
    border: 1px solid rgba(5, 150, 105, 0.2);
    overflow: hidden;
}

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

.rk-wt-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(5, 150, 105, 0.3);
    color: #a7f3d0;
    padding: 8px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(167, 243, 208, 0.2);
}

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

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

.rk-wt-prose strong {
    color: #ffffff;
    font-weight: 700;
}

/* Interaktywny Symulator */
.rk-wt-interactive {
    padding: 40px 50px;
    background: var(--rk-wt-gray);
}

.rk-wt-tabs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    background: #e2e8f0;
    padding: 6px;
    border-radius: 16px;
    margin-bottom: 35px;
}

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

.rk-wt-tab svg {
    width: 24px;
    height: 24px;
    opacity: 0.6;
    transition: all 0.3s;
}

.rk-wt-tab:hover {
    background: rgba(255, 255, 255, 0.5);
    color: var(--rk-wt-text);
}

.rk-wt-tab.active {
    background: #ffffff;
    color: var(--rk-wt-brand);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}

.rk-wt-tab.active svg {
    opacity: 1;
    color: var(--rk-wt-brand);
    transform: scale(1.1);
}

/* Wyświetlacz Wyników */
.rk-wt-display {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 40px;
    background: #ffffff;
    border-radius: 20px;
    padding: 30px;
    border: 1px solid var(--rk-wt-border);
    align-items: center;
}

/* Lewa Strona - Dane */
.rk-wt-data-panel h3 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-wt-dark);
    margin: 0 0 20px 0;
    padding-bottom: 15px;
    border-bottom: 2px solid var(--rk-wt-gray);
}

.rk-wt-data-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid var(--rk-wt-gray);
}

.rk-wt-data-row:last-child {
    border-bottom: none;
}

.rk-wt-data-label {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-wt-text-light);
}

.rk-wt-data-value {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-wt-dark);
    display: flex;
    align-items: center;
    gap: 8px;
}

.val-highlight {
    background: var(--rk-wt-brand-light);
    color: var(--rk-wt-brand);
    padding: 4px 10px;
    border-radius: 6px;
}

/* Prawa Strona - Wizualizacja SVG */
.rk-wt-visual {
    background: var(--rk-wt-surface);
    border-radius: 16px;
    padding: 20px;
    height: 240px;
    position: relative;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
    overflow: hidden;
}

.rk-svg-layer { transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); }
.layer-concrete { fill: #94a3b8; }
.layer-pipes { fill: #ef4444; }
.layer-eps { fill: var(--rk-wt-accent); }
.layer-ground { fill: #475569; }

/* Animacje fal ciepła */
.heat-wave {
    stroke: #ef4444;
    stroke-width: 2.5;
    stroke-linecap: round;
    fill: none;
    opacity: 0;
}

/* Stany dynamiczne z JS */
.state-level-1 .layer-eps { height: 25px; y: 70px; }
.state-level-1 .layer-ground { y: 95px; }
.state-level-1 .heat-wave.down { animation: heatLeak 2s infinite linear; }

.state-level-2 .layer-eps { height: 45px; y: 70px; }
.state-level-2 .layer-ground { y: 115px; }
.state-level-2 .heat-wave.down { animation: heatLeakSlow 2.5s infinite linear; stroke: #f59e0b; }

.state-level-3 .layer-eps { height: 75px; y: 70px; }
.state-level-3 .layer-ground { y: 145px; }
.state-level-3 .heat-wave.up { animation: heatBounce 2s infinite ease-out; }

@keyframes heatLeak {
    0% { transform: translateY(0); opacity: 1; }
    100% { transform: translateY(40px); opacity: 0; }
}
@keyframes heatLeakSlow {
    0% { transform: translateY(0); opacity: 0.8; }
    100% { transform: translateY(30px); opacity: 0; }
}
@keyframes heatBounce {
    0% { transform: translateY(0); opacity: 1; }
    50% { transform: translateY(-20px); opacity: 0.5; }
    100% { transform: translateY(0); opacity: 1; }
}

/* Sekcja linków kontekstowych */
.rk-wt-context {
    padding: 30px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-wt-border);
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-wt-text);
}

.rk-wt-context a {
    color: var(--rk-wt-brand);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (max-width: 768px) {
    .rk-wt-header, .rk-wt-interactive, .rk-wt-context { padding: 30px 20px; }
    .rk-wt-tabs { grid-template-columns: 1fr; }
    .rk-wt-tab { flex-direction: row; justify-content: center; padding: 12px; }
    .rk-wt-display { grid-template-columns: 1fr; gap: 20px; }
    .rk-wt-data-row { flex-direction: column; align-items: flex-start; gap: 5px; }
    .rk-wt-visual { height: 200px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article-wt2021",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Ile styropianu pod ogrzewanie podłogowe jest wymagane przepisami WT2021?",
    "description": "Analiza normy PN-EN 1264-4. Minimalna grubość styropianu EPS 100 na gruncie to 15 cm (biały) lub 12 cm (grafitowy) dla uzyskania U=0,20 W/(m2K).",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset-wt2021",
    "name": "Wymagania cieplne izolacji podłogowej wg WT2021 i PN-EN 1264-4",
    "description": "Zestawienie minimalnych oporów cieplnych (R) i grubości styropianu (EPS) dla różnych konstrukcji stropów z ogrzewaniem płaszczyznowym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ile styropianu pod ogrzewanie podłogowe",
      "grubość styropianu WT2021",
      "współczynnik U dla podłogi na gruncie",
      "opór cieplny izolacji podłogówki R",
      "minimalna grubość eps 100"
    ],
    "measurementTechnique": "Kalkulacja oporu cieplnego R wg normy PN-EN 1264-4 oraz współczynnika U wg Warunków Technicznych 2021 (U_max = 0,20 W/(m2K)).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Strop nad ogrzewanym: R = 1,25 m2K/W",
        "Strop nad nieogrzewanym: R = 2,00 m2K/W",
        "Podłoga na gruncie (zewn < -5°C): R = 2,25 m2K/W"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp-wt2021",
    "name": "Kalkulator Normatywny PN-EN 1264-4",
    "description": "Interaktywne narzędzie obliczeniowe wyznaczające wymaganą grubość styropianu białego i grafitowego dla trzech scenariuszy konstrukcji podłogi.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-wt-container" id="rk-wt-app">
    <div class="rk-wt-header">
        <div class="rk-wt-badge">
            <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            Przepisy i Normy 2026
        </div>
        <h2>Ile styropianu pod ogrzewanie podłogowe jest wymagane przepisami?</h2>
        <div class="rk-wt-prose">
            Zgodnie z polskimi przepisami budowlanymi (<strong>Warunki Techniczne WT2021</strong>), minimalna grubość styropianu EPS 100 pod ogrzewanie podłogowe na gruncie wynosi <strong>150 mm (15 cm)</strong> dla tradycyjnego białego styropianu (λ = 0,038 W/(m·K)) lub <strong>120 mm (12 cm)</strong> dla styropianu grafitowego (λ = 0,031 W/(m·K)). Wymóg ten wynika wprost z konieczności osiągnięcia współczynnika przenikania ciepła dla podłogi na gruncie na poziomie maksymalnie <strong>U_max = 0,20 W/(m²K)</strong>.
        </div>
    </div>

    <div class="rk-wt-interactive">
        <div class="rk-wt-tabs">
            <button class="rk-wt-tab" data-target="level1">
                <svg 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"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>
                Strop nad ogrzewanym
            </button>
            <button class="rk-wt-tab" data-target="level2">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v4"></path><polyline points="14 2 14 8 20 8"></polyline><path d="M2 15h10"></path></svg>
                Strop nad piwnicą
            </button>
            <button class="rk-wt-tab active" data-target="level3">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><path d="M2 12h20"></path><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path></svg>
                Podłoga na gruncie
            </button>
        </div>

        <div class="rk-wt-display state-level-3" id="wt-display">
            <div class="rk-wt-data-panel">
                <h3 id="wt-title">Podłoga na gruncie (-5°C)</h3>
                
                <div class="rk-wt-data-row">
                    <span class="rk-wt-data-label">Wymagany opór cieplny (R):</span>
                    <span class="rk-wt-data-value val-highlight" id="wt-r-val">2,25 m²·K/W</span>
                </div>
                
                <div class="rk-wt-data-row">
                    <span class="rk-wt-data-label">EPS 100 Biały (λ = 0,038):</span>
                    <span class="rk-wt-data-value" id="wt-eps-white">150 mm (15 cm)</span>
                </div>
                
                <div class="rk-wt-data-row">
                    <span class="rk-wt-data-label">EPS 100 Grafit (λ = 0,031):</span>
                    <span class="rk-wt-data-value" id="wt-eps-graphite">120 mm (12 cm)</span>
                </div>
            </div>

            <div class="rk-wt-visual">
                <svg width="100%" height="100%" viewBox="0 0 200 200" preserveAspectRatio="xMidYMid meet">
                    <rect class="rk-svg-layer layer-concrete" x="10" y="30" width="180" height="40" rx="4" />
                    <circle class="layer-pipes" cx="40" cy="50" r="6" />
                    <circle class="layer-pipes" cx="80" cy="50" r="6" />
                    <circle class="layer-pipes" cx="120" cy="50" r="6" />
                    <circle class="layer-pipes" cx="160" cy="50" r="6" />
                    
                    <rect class="rk-svg-layer layer-eps" x="10" y="70" width="180" height="75" />
                    
                    <rect class="rk-svg-layer layer-ground" x="0" y="145" width="200" height="60" />
                    
                    <path class="heat-wave up" d="M40 25 L40 10 M35 15 L40 10 L45 15" />
                    <path class="heat-wave up" d="M120 25 L120 10 M115 15 L120 10 L125 15" />

                    <path class="heat-wave down" d="M80 85 L80 110 M75 105 L80 110 L85 105" />
                    <path class="heat-wave down" d="M160 85 L160 110 M155 105 L160 110 L165 105" />
                </svg>
            </div>
        </div>
    </div>

    <div class="rk-wt-context">
        Wybór grubości izolacji termicznej nie może być kompromisem budżetowym. To element konstrukcyjny, którego nie da się wymienić po zalaniu <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewki jastrychowej</a>. Zastosowanie zbyt cienkiej warstwy oznacza permanentne straty energii, gdzie ciepło ucieka w dół. Aby system współpracujący z niskotemperaturowym źródłem (np. <a href="https://projekt-ogrzewania.pl/czy-pompa-ciepla-ogrzeje-dom-z-podlogowka/">pompą ciepła na parametrze 35/30°C</a>) osiągnął najwyższy współczynnik COP, izolacja musi stanowić skuteczną barierę, określoną precyzyjnie w normie <strong>PN-EN 1264-4</strong>.
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez używania H2/H3 w komunikacie o błędzie)
    const host = window.location.hostname;
    const permittedHosts = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!permittedHosts.includes(host)) {
        const wtContainer = document.getElementById('rk-wt-app');
        if (wtContainer) {
            wtContainer.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #ef4444; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">🚫</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Licencji Kodu</div>
                    <div style="font-size: 14px; color: #cbd5e1; line-height: 1.6; max-width: 500px; margin: 0 auto;">
                        Kalkulator Normatywny PN-EN 1264-4 oraz warstwa metadanych JSON-LD są własnością serwisu <strong>Projekt-Ogrzewania.pl</strong>. Uruchomienie na nieautoryzowanej domenie zostało zablokowane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora WT2021
    const tabs = document.querySelectorAll('.rk-wt-tab');
    const display = document.getElementById('wt-display');
    
    // Elementy danych do aktualizacji
    const elTitle = document.getElementById('wt-title');
    const elRVal = document.getElementById('wt-r-val');
    const elWhite = document.getElementById('wt-eps-white');
    const elGraphite = document.getElementById('wt-eps-graphite');

    const dataMap = {
        'level1': {
            title: 'Strop nad pomieszczeniem ogrzewanym',
            rVal: '1,25 m²·K/W',
            white: '50 mm (5 cm)',
            graphite: '40 mm (4 cm)',
            stateClass: 'state-level-1'
        },
        'level2': {
            title: 'Strop nad pomieszczeniem nieogrzewanym',
            rVal: '2,00 m²·K/W',
            white: '80 mm (8 cm)',
            graphite: '70 mm (7 cm)',
            stateClass: 'state-level-2'
        },
        'level3': {
            title: 'Podłoga na gruncie (zewn < -5°C)',
            rVal: '2,25 m²·K/W',
            white: '150 mm (15 cm)',
            graphite: '120 mm (12 cm)',
            stateClass: 'state-level-3'
        }
    };

    tabs.forEach(tab => {
        tab.addEventListener('click', function() {
            // Reset aktywnych buttonów
            tabs.forEach(t => t.classList.remove('active'));
            this.classList.add('active');

            const target = this.getAttribute('data-target');
            const data = dataMap[target];

            // Aktualizacja UI
            elTitle.textContent = data.title;
            elRVal.textContent = data.rVal;
            elWhite.textContent = data.white;
            elGraphite.textContent = data.graphite;

            // Zmiana klasy wizualizacji
            display.className = `rk-wt-display ${data.stateClass}`;
        });
    });
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-card: #1e293b;
    --rk-err-brand: #ef4444; /* Czerwień ostrzegawcza */
    --rk-err-brand-light: #fee2e2;
    --rk-err-safe: #10b981; /* Zieleń inżynieryjna */
    --rk-err-bg: #f8fafc;
    --rk-err-border: #e2e8f0;
    --rk-err-text: #334155;
    --rk-err-muted: #64748b;
}

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

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

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

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

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

/* Sekcja Interaktywna - Układ */
.rk-err-interactive {
    display: grid;
    grid-template-columns: 350px 1fr;
    background: var(--rk-err-bg);
    border-bottom: 1px solid var(--rk-err-border);
}

/* Panel Kontrolny (Suwaki) */
.rk-err-controls {
    padding: 40px;
    background: #ffffff;
    border-right: 1px solid var(--rk-err-border);
}

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

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

.rk-err-val-display {
    background: var(--rk-err-dark);
    color: #ffffff;
    padding: 4px 12px;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 900;
    transition: background 0.3s;
}

.rk-err-val-display.warning { background: var(--rk-err-brand); }
.rk-err-val-display.safe { background: var(--rk-err-safe); }

/* Stylizacja Suwaków (Range) */
.rk-range {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #e2e8f0;
    outline: none;
    transition: background 0.3s;
}

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

.rk-range:active::-webkit-slider-thumb { transform: scale(1.2); }
.rk-range.warning-track::-webkit-slider-thumb { background: var(--rk-err-brand); }
.rk-range.safe-track::-webkit-slider-thumb { background: var(--rk-err-safe); }

/* Panel Diagnozy */
.rk-err-diagnosis {
    padding: 20px;
    background: var(--rk-err-brand-light);
    border-radius: 12px;
    border: 1px solid rgba(239,68,68,0.2);
    margin-top: 20px;
    transition: all 0.3s;
}

.rk-err-diagnosis.safe-mode {
    background: #dcfce7;
    border-color: rgba(16, 185, 129, 0.2);
}

.rk-diag-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    margin-bottom: 8px;
}
.rk-err-diagnosis.safe-mode .rk-diag-title { color: #065f46; }
.rk-err-diagnosis:not(.safe-mode) .rk-diag-title { color: #991b1b; }

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

/* Symulacja SVG */
.rk-err-visual {
    padding: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f1f5f9;
    position: relative;
    overflow: hidden;
}

.rk-svg-simulator {
    width: 100%;
    max-width: 400px;
    height: auto;
    filter: drop-shadow(0 10px 15px rgba(0,0,0,0.1));
}

.svg-concrete { fill: #94a3b8; transition: fill 0.3s; }
.svg-pipe { fill: #ef4444; }
.svg-eps { fill: #fcd34d; transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); }
.svg-ground { fill: #64748b; transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); }

/* Zjawiska (Pęknięcia, Straty) */
.svg-crack {
    stroke: #0f172a; stroke-width: 3; fill: none; stroke-linecap: round; stroke-linejoin: round;
    stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset 0.8s ease-out;
}
.svg-heat-down { stroke: #ef4444; stroke-width: 3; fill: none; stroke-linecap: round; opacity: 0; }
.svg-heat-up { stroke: #10b981; stroke-width: 4; fill: none; stroke-linecap: round; opacity: 0; }
.svg-moisture { fill: #3b82f6; opacity: 0; transition: opacity 0.5s; }

/* Stany Aktywowane z JS */
.state-crack .svg-crack { stroke-dashoffset: 0; }
.state-crack .svg-concrete { fill: #cbd5e1; } /* Osłabiony beton */

.state-heat-loss .svg-heat-down { animation: heatLeakAnim 1.5s infinite linear; }
.state-heat-good .svg-heat-up { animation: heatRiseAnim 2s infinite ease-out; }
.state-moisture .svg-moisture { opacity: 0.6; animation: pulseMoist 3s infinite alternate; }

@keyframes heatLeakAnim {
    0% { transform: translateY(0); opacity: 0.8; stroke: #ef4444; }
    100% { transform: translateY(50px); opacity: 0; stroke: #3b82f6; }
}
@keyframes heatRiseAnim {
    0% { transform: translateY(0); opacity: 0.8; }
    100% { transform: translateY(-30px); opacity: 0; }
}
@keyframes pulseMoist { from { opacity: 0.3; } to { opacity: 0.7; transform: scale(1.05); } }

/* Grid Konsekwencji Tekstowych */
.rk-err-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    padding: 40px 50px;
    background: #ffffff;
}

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

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

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

.rk-err-card a {
    color: #0284c7;
    font-weight: 700;
    text-decoration: none;
}

.rk-err-card a:hover { text-decoration: underline; }

@media (max-width: 768px) {
    .rk-err-header, .rk-err-controls, .rk-err-visual, .rk-err-grid { padding: 30px 20px; }
    .rk-err-interactive { grid-template-columns: 1fr; }
    .rk-err-grid { grid-template-columns: 1fr; }
    .rk-svg-simulator { max-width: 280px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Jakie są konsekwencje błędów w doborze grubości izolacji podłogowej?",
    "description": "Analiza skutków zastosowania zbyt miękkiego styropianu (EPS 70) oraz niedostatecznej grubości. Wzrost strat ciepła o 30% i ryzyko pękania wylewki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset-bledy",
    "name": "Kalkulator Strat i Uszkodzeń Posadzki (EPS 70 vs EPS 100)",
    "description": "Symulacja zestawień fizycznych i mechanicznych pokazująca skutki obniżania grubości (5-15cm) oraz twardości płyt izolacyjnych pod wylewką jastrychową.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "skutki zbyt cienkiego styropianu",
      "pękanie wylewki na podłogówce",
      "straty ciepła do gruntu",
      "niedogrzana łazienka podłogówka",
      "osiadanie posadzki styropian eps 70"
    ],
    "measurementTechnique": "Interaktywne modelowanie strat termicznych i odkształceń mechanicznych wylewki w oparciu o gęstość pozorną polistyrenu i prawo Fouriera.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Spadek mocy grzewczej i efekt zimnych plam przy izolacji < 10 cm",
        "Destrukcja strukturalna jastrychu przy obciążeniu styropianu rzędu EPS 70",
        "Permanentna ucieczka strumienia ciepła w kierunku nieogrzewanego gruntu"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp-bledy",
    "name": "Symulator Degradacji Posadzki i Strat Ciepła",
    "description": "Narzędzie inżynieryjne z interaktywnymi suwakami demonstrujące wpływ twardości (EPS 70/100) i grubości na mechaniczne pękanie wylewki i ucieczkę energii.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="rk-err-app">
    
    <div class="rk-err-header">
        <div class="rk-err-badge">
            <svg width="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>
            Symulacja Błędów i Awarii
        </div>
        <h2 class="rk-err-title">Jakie są konsekwencje błędów w doborze grubości i twardości izolacji?</h2>
        <p class="rk-err-desc">
            Zastosowanie izolacji niespełniającej wymogów normowych powoduje <strong>wzrost strat ciepła do gruntu nawet o 20-30%</strong>, co bezpośrednio przekłada się na zwiększenie rachunków za energię o kilkaset złotych rocznie. Użyj suwaków poniżej, aby zobaczyć fizyczne skutki oszczędzania na materiale.
        </p>
    </div>

    <div class="rk-err-interactive">
        
        <div class="rk-err-controls">
            
            <div class="rk-err-control-group">
                <div class="rk-err-label">
                    Grubość izolacji:
                    <span class="rk-err-val-display warning" id="val-thick">5 cm</span>
                </div>
                <input type="range" id="slider-thick" class="rk-range warning-track" min="5" max="15" step="5" value="5">
                <div style="display:flex; justify-content:space-between; font-size:12px; color:#94a3b8; margin-top:8px; font-weight:700;">
                    <span>5 cm (Awaria)</span>
                    <span>10 cm</span>
                    <span>15 cm (Norma)</span>
                </div>
            </div>

            <div class="rk-err-control-group">
                <div class="rk-err-label">
                    Twardość materiału:
                    <span class="rk-err-val-display warning" id="val-eps">EPS 70</span>
                </div>
                <input type="range" id="slider-eps" class="rk-range warning-track" min="70" max="100" step="30" value="70">
                <div style="display:flex; justify-content:space-between; font-size:12px; color:#94a3b8; margin-top:8px; font-weight:700;">
                    <span>Fasadowy (Miękki)</span>
                    <span>Podłogowy (Twardy)</span>
                </div>
            </div>

            <div class="rk-err-diagnosis" id="diag-panel">
                <div class="rk-diag-title" id="diag-title">Krytyczny stan posadzki!</div>
                <p class="rk-diag-text" id="diag-text">
                    Styropian ugina się pod ciężarem wylewki, powodując jej pękanie. Ucieczka ciepła w grunt wynosi +30%. Pomieszczenia będą trwale niedogrzane.
                </p>
            </div>

        </div>

        <div class="rk-err-visual" id="svg-container">
            <svg class="rk-svg-simulator" viewBox="0 0 200 200">
                <rect class="svg-ground" id="rect-ground" x="10" y="100" width="180" height="90" rx="4"/>
                
                <path class="svg-moisture" d="M30 110 Q40 90 50 110 T70 110 T90 110 T110 110 T130 110 T150 110 T170 110" fill="none" stroke="#3b82f6" stroke-width="4"/>

                <rect class="svg-eps" id="rect-eps" x="10" y="70" width="180" height="30" />
                
                <rect class="svg-concrete" x="10" y="30" width="180" height="40" rx="4" />
                <circle class="svg-pipe" cx="40" cy="50" r="7" />
                <circle class="svg-pipe" cx="80" cy="50" r="7" />
                <circle class="svg-pipe" cx="120" cy="50" r="7" />
                <circle class="svg-pipe" cx="160" cy="50" r="7" />

                <path class="svg-crack" d="M90 30 L100 45 L95 55 L105 70" />

                <path class="svg-heat-down" d="M40 70 L40 100 M35 85 L40 100 L45 85" />
                <path class="svg-heat-down" d="M120 70 L120 100 M115 85 L120 100 L125 85" />
                <path class="svg-heat-down" d="M160 70 L160 100 M155 85 L160 100 L165 85" />
                
                <path class="svg-heat-up" d="M80 30 L80 5 M75 15 L80 5 L85 15" />
                <path class="svg-heat-up" d="M120 30 L120 5 M115 15 L120 5 L125 15" />
            </svg>
        </div>

    </div>

    <div class="rk-err-grid">
        <div class="rk-err-card">
            <h4>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#ef4444" stroke-width="2"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"></path></svg>
                Permanentny uciek strumienia ciepła
            </h4>
            <p>Grunt pod budynkiem działa jak nieskończony radiator. Bez bariery o odpowiednim oporze cieplnym (R), system marnuje wyprodukowaną energię na ogrzewanie mas ziemnych pod płytą fundamentową zamiast salonu.</p>
        </div>

        <div class="rk-err-card">
            <h4>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#ef4444" stroke-width="2"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                Pękanie wylewki i osiadanie
            </h4>
            <p>Użycie styropianu elewacyjnego (EPS 70) powoduje odkształcenia plastyczne pod ciężarem <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewki jastrychowej</a> (ok. 130 kg/m²). Efektem jest pękanie płyty, uszkodzenia płytek i destrukcja dylatacji.</p>
        </div>

        <div class="rk-err-card">
            <h4>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#0284c7" stroke-width="2"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                Efekt "zimnych plam"
            </h4>
            <p>Przy zbyt cienkiej izolacji drastycznie spada moc grzewcza posadzki. System nie pokrywa <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowego obciążenia cieplnego (OZC)</a>, zwłaszcza w łazienkach, gdzie wymagana temperatura to 24°C.</p>
        </div>

        <div class="rk-err-card">
            <h4>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#3b82f6" stroke-width="2"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path></svg>
                Zawilgocenie i pleśń
            </h4>
            <p>Brak optymalnej grubości płyt połączony z uchybieniami w kładzeniu <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">izolacji hydroizolacyjnej</a> generuje podciąganie kapilarne wilgoci z gruntu, degradację izolatora i ryzyko rozwoju mikroorganizmów.</p>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie domeny (zgodnie z wytycznymi - brak H2/H3 w alercie)
    const hostName = window.location.hostname;
    const legalHosts = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!legalHosts.includes(hostName)) {
        const errorContainer = document.getElementById('rk-err-app');
        if (errorContainer) {
            errorContainer.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #ef4444; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">🛑</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Nieautoryzowane użycie kodu</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Moduł "Symulator Błędów Izolacyjnych" oraz mikrodane JSON-LD są prawnie chronione i należą do domeny <strong>Projekt-Ogrzewania.pl</strong>. Wykryto próbę kradzieży.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora
    const thickSlider = document.getElementById('slider-thick');
    const epsSlider = document.getElementById('slider-eps');
    
    const valThick = document.getElementById('val-thick');
    const valEps = document.getElementById('val-eps');
    
    const svgContainer = document.getElementById('svg-container');
    const rectEps = document.getElementById('rect-eps');
    const rectGround = document.getElementById('rect-ground');
    
    const diagPanel = document.getElementById('diag-panel');
    const diagTitle = document.getElementById('diag-title');
    const diagText = document.getElementById('diag-text');

    function updateSimulator() {
        const t = parseInt(thickSlider.value); // 5, 10, 15
        const e = parseInt(epsSlider.value);   // 70, 100

        // Reset klas SVG
        svgContainer.className = 'rk-err-visual';
        let svgClasses = ['rk-err-visual'];

        // Analiza Twardości (Osiadanie / Pękanie)
        if (e === 70) {
            valEps.textContent = 'EPS 70 (Błąd)';
            valEps.className = 'rk-err-val-display warning';
            epsSlider.className = 'rk-range warning-track';
            svgClasses.push('state-crack'); // Pokaż pęknięcie
        } else {
            valEps.textContent = 'EPS 100 (Norma)';
            valEps.className = 'rk-err-val-display safe';
            epsSlider.className = 'rk-range safe-track';
        }

        // Analiza Grubości (Straty ciepła i wilgoć)
        valThick.textContent = t + ' cm';
        
        // Animacje wysokości prostokątów SVG
        if (t === 5) {
            rectEps.setAttribute('height', '30');
            rectGround.setAttribute('y', '100');
            valThick.className = 'rk-err-val-display warning';
            thickSlider.className = 'rk-range warning-track';
            svgClasses.push('state-heat-loss');
            svgClasses.push('state-moisture');
        } else if (t === 10) {
            rectEps.setAttribute('height', '50');
            rectGround.setAttribute('y', '120');
            valThick.className = 'rk-err-val-display warning';
            thickSlider.className = 'rk-range warning-track';
            svgClasses.push('state-heat-loss'); // Częściowe straty
        } else if (t === 15) {
            rectEps.setAttribute('height', '70');
            rectGround.setAttribute('y', '140');
            valThick.className = 'rk-err-val-display safe';
            thickSlider.className = 'rk-range safe-track';
            svgClasses.push('state-heat-good'); // Ciepło idzie w górę
        }

        // Aktualizacja widoku SVG
        svgContainer.className = svgClasses.join(' ');

        // Generator Tekstu Diagnozy
        if (t === 15 && e === 100) {
            diagPanel.className = 'rk-err-diagnosis safe-mode';
            diagTitle.textContent = 'Instalacja w pełni bezpieczna';
            diagText.textContent = 'Znakomity wybór inżynieryjny. Jastrych ma stabilne podparcie, a całe wyprodukowane ciepło promieniuje w górę do pomieszczeń mieszkalnych.';
        } else if (e === 70) {
            diagPanel.className = 'rk-err-diagnosis';
            diagTitle.textContent = 'Ryzyko destrukcji posadzki!';
            diagText.textContent = `Zbyt miękki styropian ugnie się pod wylewką, powodując natychmiastowe pęknięcia. Dodatkowo ucieczka ciepła w grunt przy ${t} cm izolacji znacząco podniesie rachunki.`;
        } else {
            diagPanel.className = 'rk-err-diagnosis';
            diagTitle.textContent = 'Straty termiczne i zimne plamy';
            diagText.textContent = `Beton jest bezpieczny (EPS 100), ale grubość izolacji (${t} cm) nie spełnia norm WT2021 (U ≤ 0,20). Ryzykujesz permanentnym niedogrzaniem i ucieczką energii do gruntu.`;
        }
    }

    // Nasłuchiwacze Zdarzeń
    thickSlider.addEventListener('input', updateSimulator);
    epsSlider.addEventListener('input', updateSimulator);

    // Inicjalizacja
    updateSimulator();
});
</script>



<style>
:root {
    --rk-mat-dark: #0f172a;
    --rk-mat-card: #1e293b;
    --rk-mat-brand: #3b82f6;
    --rk-mat-brand-light: #eff6ff;
    --rk-mat-graphite: #334155;
    --rk-mat-white: #f8fafc;
    --rk-mat-alert: #ef4444;
    --rk-mat-border: #e2e8f0;
    --rk-mat-text: #475569;
}

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

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

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

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

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

/* Interaktywny Symulator Wysokości */
.rk-mat-interactive {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-mat-border);
}

.rk-mat-controls {
    padding: 40px 50px;
    border-right: 1px solid var(--rk-mat-border);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

.rk-mat-val {
    background: var(--rk-mat-brand);
    color: #ffffff;
    padding: 4px 12px;
    border-radius: 8px;
    font-size: 18px;
    font-weight: 900;
}

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

.rk-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--rk-mat-brand);
    cursor: pointer;
    border: 4px solid #ffffff;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    transition: transform 0.1s;
}
.rk-slider:active::-webkit-slider-thumb { transform: scale(1.15); }

.rk-mat-verdict {
    margin-top: 25px;
    padding: 20px;
    border-radius: 12px;
    background: #ffffff;
    border: 2px dashed var(--rk-mat-brand);
}

.rk-verdict-title { font-size: 13px; text-transform: uppercase; font-weight: 800; color: var(--rk-mat-text); margin-bottom: 5px; }
.rk-verdict-result { font-size: 20px; font-weight: 900; color: var(--rk-mat-dark); }

/* SVG Wizualizacja (Poprawiona) */
.rk-mat-visual {
    padding: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
}

.rk-svg-compare {
    width: 100%;
    max-width: 400px; /* Zwiększona szerokość ułatwia czytanie */
    height: auto;
}

.svg-group { transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); }
.state-graphite .svg-group-white { opacity: 0.25; filter: grayscale(1); }
.state-white .svg-group-graphite { opacity: 0.25; filter: grayscale(1); }

.anim-eps-graphite { fill: #475569; }
.anim-eps-white { fill: #f8fafc; stroke: #cbd5e1; stroke-width: 2; }

/* Kafelki z Danymi */
.rk-mat-data-section {
    padding: 40px 50px;
    background: #ffffff;
}

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

.rk-mat-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 20px;
}

.rk-mat-card {
    border: 1px solid var(--rk-mat-border);
    border-radius: 16px;
    padding: 25px;
    background: var(--rk-mat-white);
    position: relative;
    overflow: hidden;
    transition: all 0.3s;
}

.rk-mat-card:hover {
    border-color: var(--rk-mat-brand);
    box-shadow: 0 10px 25px -5px rgba(59, 130, 246, 0.1);
    transform: translateY(-3px);
}

.rk-mat-card.recommended {
    background: var(--rk-mat-brand-light);
    border-color: var(--rk-mat-brand);
}

.rk-mat-card.alert {
    background: #fef2f2;
    border-color: #fca5a5;
}

.rk-card-header {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-mat-dark);
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 2px solid #e2e8f0;
}
.rk-mat-card.alert .rk-card-header { color: var(--rk-mat-alert); border-color: #fecaca; }

.rk-stat-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
    font-size: 14px;
}

.rk-stat-label { color: var(--rk-mat-text); font-weight: 600; }
.rk-stat-val { font-weight: 800; color: var(--rk-mat-dark); }
.rk-stat-val.highlight { color: var(--rk-mat-brand); font-size: 16px; }

/* Tekst podsumowujący */
.rk-mat-summary {
    padding: 0 50px 40px 50px;
    font-size: 15px;
    line-height: 1.8;
    color: var(--rk-mat-text);
}

.rk-mat-summary a {
    color: var(--rk-mat-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(59,130,246,0.4);
    transition: all 0.3s;
}
.rk-mat-summary a:hover { border-bottom-style: solid; color: #1e40af; }

@media (max-width: 768px) {
    .rk-mat-header, .rk-mat-controls, .rk-mat-data-section, .rk-mat-summary { padding: 30px 20px; }
    .rk-mat-interactive { grid-template-columns: 1fr; }
    .rk-mat-controls { border-right: none; border-bottom: 1px solid var(--rk-mat-border); }
    .rk-mat-visual { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article-materialy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Który styropian wybrać: EPS 100 biały czy grafitowy?",
    "description": "Szczegółowe zestawienie parametrów technicznych izolacji (lambda, opór cieplny, odkształcenia). Porównanie styropianu grafitowego i białego EPS 100 i XPS.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset-materialy",
    "name": "Katalog Parametrów Izolacyjnych (EPS/XPS)",
    "description": "Zestawienie parametrów technicznych (przewodzenie ciepła λ, naprężenie ściskające, opór R) dla materiałów izolacyjnych stosowanych pod wylewki grzewcze.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "styropian grafitowy czy biały",
      "lambda styropianu",
      "EPS 100 podłogówka",
      "wylewka anhydrytowa styropian",
      "opór cieplny izolacji"
    ],
    "measurementTechnique": "Korelacja współczynnika przewodzenia ciepła λ z oporem cieplnym R dla grubości normatywnych 100-150mm.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "EPS 100 Grafit: λ = 0,031, R dla 10cm = 3,22",
        "EPS 100 Biały: λ = 0,036, R dla 10cm = 2,77",
        "XPS: λ = 0,029, R dla 10cm = 3,44, CS(10) ≥ 300 kPa"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp-materialy",
    "name": "Symulator Wyboru Izolacji Podłogowej",
    "description": "Narzędzie wspomagające decyzję inwestorską. Przelicza dostępną wysokość posadzki (z chudziaka do poziomu 0) na optymalny wybór materiału (Grafit vs Biały).",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-mat-container" id="rk-mat-app">
    
    <div class="rk-mat-header">
        <div class="rk-mat-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg>
            Analiza Materiałowa
        </div>
        <h2>Który styropian wybrać: EPS 100 biały czy grafitowy?</h2>
        <p>
            Pod ogrzewanie podłogowe należy stosować wyłącznie styropian oznaczony parametrem minimum <strong>CS(10) ≥ 100 kPa (EPS 100)</strong>. Wybór koloru (odmiany) determinuje grubość izolacji: grafit przy 12 cm osiąga taki sam opór cieplny (R ≈ 3,87 m²·K/W) jak biały przy 15 cm.
        </p>
    </div>

    <div class="rk-mat-interactive">
        <div class="rk-mat-controls">
            <div class="rk-mat-label">
                Dostępna wysokość posadzki (od chudziaka):
                <span class="rk-mat-val" id="height-val">20 cm</span>
            </div>
            <input type="range" id="height-slider" class="rk-slider" min="15" max="30" step="1" value="20">
            <div style="display:flex; justify-content:space-between; font-size:12px; color:#64748b; font-weight:700;">
                <span>Krytycznie mało (15cm)</span>
                <span>Dużo (30cm)</span>
            </div>

            <div class="rk-mat-verdict">
                <div class="rk-verdict-title">Rekomendacja dla Twojej budowy:</div>
                <div class="rk-verdict-result" id="verdict-text">EPS 100 Grafitowy</div>
            </div>
        </div>

        <div class="rk-mat-visual" id="svg-stage">
            <svg class="rk-svg-compare" viewBox="0 0 320 220">
                <line x1="10" y1="200" x2="310" y2="200" stroke="#94a3b8" stroke-width="4" stroke-linecap="round" />
                <text x="160" y="215" font-family="sans-serif" font-size="11" font-weight="bold" fill="#64748b" text-anchor="middle">CHUDY BETON (Baza startowa)</text>

                <g class="svg-group svg-group-graphite">
                    <text x="80" y="30" font-family="sans-serif" font-size="14" font-weight="900" fill="#1e293b" text-anchor="middle">GRAFIT 12cm</text>
                    
                    <rect fill="#cbd5e1" x="30" y="45" width="100" height="50" rx="4" />
                    <rect class="anim-eps-graphite" x="30" y="95" width="100" height="105" rx="4" />
                    
                    <text x="80" y="155" font-family="sans-serif" font-size="18" font-weight="900" fill="#ffffff" text-anchor="middle">R ≈ 3,87</text>
                </g>

                <g class="svg-group svg-group-white">
                    <text x="240" y="30" font-family="sans-serif" font-size="14" font-weight="900" fill="#1e293b" text-anchor="middle">BIAŁY 15cm</text>
                    
                    <rect fill="#cbd5e1" x="190" y="45" width="100" height="50" rx="4" />
                    <rect class="anim-eps-white" x="190" y="95" width="100" height="105" rx="4" />
                    
                    <text x="240" y="155" font-family="sans-serif" font-size="18" font-weight="900" fill="#0f172a" text-anchor="middle">R ≈ 3,87</text>
                </g>

                <line x1="30" y1="45" x2="290" y2="45" stroke="#3b82f6" stroke-width="2" stroke-dasharray="6" />
                <text x="160" y="40" font-family="sans-serif" font-size="10" fill="#3b82f6" font-weight="bold" text-anchor="middle">POZIOM ZERO (Płytki)</text>
            </svg>
        </div>
    </div>

    <div class="rk-mat-data-section">
        <h3 class="rk-mat-data-title">Katalog Parametrów Technicznych</h3>
        <div class="rk-mat-grid">
            
            <div class="rk-mat-card alert">
                <div class="rk-card-header">EPS 70 (Podłoga/Dach)</div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Współ. ciepła (λ):</span>
                    <span class="rk-stat-val highlight">0,038</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Naprężenie CS(10):</span>
                    <span class="rk-stat-val" style="color: #ef4444;">≥ 70 kPa (Zbyt miękki!)</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Opór R (dla 10cm):</span>
                    <span class="rk-stat-val">2,63 m²·K/W</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Odkształcenie:</span>
                    <span class="rk-stat-val">≤ 3,0 %</span>
                </div>
            </div>

            <div class="rk-mat-card" id="card-white">
                <div class="rk-card-header">EPS 100 (Standard biały)</div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Współ. ciepła (λ):</span>
                    <span class="rk-stat-val highlight">0,036</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Naprężenie CS(10):</span>
                    <span class="rk-stat-val">≥ 100 kPa</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Opór R (dla 10cm):</span>
                    <span class="rk-stat-val">2,77 m²·K/W</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Odkształcenie:</span>
                    <span class="rk-stat-val">≤ 2,0 %</span>
                </div>
            </div>

            <div class="rk-mat-card recommended" id="card-graphite">
                <div class="rk-card-header">EPS 100 (Premium grafit)</div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Współ. ciepła (λ):</span>
                    <span class="rk-stat-val highlight">0,031</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Naprężenie CS(10):</span>
                    <span class="rk-stat-val">≥ 100 kPa</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Opór R (dla 10cm):</span>
                    <span class="rk-stat-val">3,22 m²·K/W</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Odkształcenie:</span>
                    <span class="rk-stat-val">≤ 1,5 %</span>
                </div>
            </div>

            <div class="rk-mat-card">
                <div class="rk-card-header">XPS (Polistyren ekstr.)</div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Współ. ciepła (λ):</span>
                    <span class="rk-stat-val highlight">0,029</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Naprężenie CS(10):</span>
                    <span class="rk-stat-val">≥ 300 kPa</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Opór R (dla 10cm):</span>
                    <span class="rk-stat-val">3,44 m²·K/W</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Odkształcenie:</span>
                    <span class="rk-stat-val">≤ 0,5 %</span>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-mat-summary">
        Wybór między grafitem a białym EPS sprowadza się najczęściej do analizy dostępnej wysokości progów drzwiowych i warstw posadzkowych. Jeśli wysokość od chudego betonu do planowanego poziomu zero (czystej podłogi) jest ograniczona i wynosi np. 22 cm, zastosowanie <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewki anhydrytowej (50 mm)</a> oraz <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rur na systemowym styropianie</a> grafitowym 120 mm pozwala na zachowanie optymalnego bufora bezpieczeństwa termicznego i konstrukcyjnego. Przy braku ograniczeń wysokościowych na budowie, ekonomicznie uzasadnione bywa ułożenie 150-200 mm nieco tańszego EPS 100 w wersji białej.
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domeny (Brak H2/H3 w kodzie błędu)
    const hostStr = window.location.hostname;
    const validHosts = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!validHosts.includes(hostStr)) {
        const wrap = document.getElementById('rk-mat-app');
        if (wrap) {
            wrap.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #ef4444; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 38px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Zabezpieczenie Licencyjne</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Interaktywny symulator materiałowy (Katalog EPS) oraz struktura JSON-LD są własnością <strong>Projekt-Ogrzewania.pl</strong>. Uruchomienie zablokowane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora
    const slider = document.getElementById('height-slider');
    const valDisplay = document.getElementById('height-val');
    const verdictText = document.getElementById('verdict-text');
    const svgStage = document.getElementById('svg-stage');
    
    const cardWhite = document.getElementById('card-white');
    const cardGraphite = document.getElementById('card-graphite');

    function updateLogic() {
        const height = parseInt(slider.value);
        valDisplay.textContent = height + ' cm';

        // Logika decyzyjna
        if (height < 24) {
            verdictText.textContent = 'EPS 100 Grafitowy';
            verdictText.style.color = '#1e293b'; 
            svgStage.className = 'rk-mat-visual state-graphite';
            
            cardGraphite.classList.add('recommended');
            cardWhite.classList.remove('recommended');
        } else {
            verdictText.textContent = 'EPS 100 Biały (Oszczędność)';
            verdictText.style.color = '#3b82f6'; 
            svgStage.className = 'rk-mat-visual state-white';
            
            cardWhite.classList.add('recommended');
            cardGraphite.classList.remove('recommended');
        }
    }

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



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-card: #1e293b;
    --rk-calc-brand: #0284c7;
    --rk-calc-brand-light: #e0f2fe;
    --rk-calc-accent: #0ea5e9; 
    --rk-calc-success: #10b981;
    --rk-calc-bg: #f8fafc;
    --rk-calc-border: #e2e8f0;
    --rk-calc-text: #475569;
}

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

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

.rk-calc-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(2, 132, 199, 0.3);
    color: #bae6fd;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(186, 230, 253, 0.2);
}

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

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

/* Panel Interaktywny - Nowy Układ (Góra/Dół) */
.rk-calc-interactive {
    padding: 40px 50px;
    background: var(--rk-calc-bg);
    border-bottom: 1px solid var(--rk-calc-border);
}

/* Suwak na pełną szerokość */
.rk-calc-controls {
    background: #ffffff;
    padding: 35px 40px;
    border-radius: 16px;
    border: 1px solid var(--rk-calc-border);
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
    margin-bottom: 30px;
}

.rk-calc-label {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-calc-dark);
    margin-bottom: 25px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rk-calc-val-box {
    background: var(--rk-calc-dark);
    color: #ffffff;
    padding: 8px 18px;
    border-radius: 10px;
    font-size: 22px;
    font-weight: 900;
    transition: background 0.3s;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.3);
}

.rk-calc-val-box.pass { background: var(--rk-calc-success); }
.rk-calc-val-box.fail { background: #ef4444; }

.rk-slider-app {
    -webkit-appearance: none;
    width: 100%;
    height: 12px;
    border-radius: 6px;
    background: #cbd5e1;
    outline: none;
    margin-bottom: 15px;
}

.rk-slider-app::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--rk-calc-brand);
    cursor: pointer;
    border: 5px solid #ffffff;
    box-shadow: 0 4px 10px rgba(0,0,0,0.25);
    transition: transform 0.1s;
}
.rk-slider-app:active::-webkit-slider-thumb { transform: scale(1.15); }

.rk-calc-hints {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    color: #64748b;
    font-weight: 800;
}

/* Dwie Kolumny Wyników */
.rk-results-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

.rk-result-card {
    background: var(--rk-calc-dark);
    border-radius: 16px;
    padding: 30px;
    text-align: center;
    position: relative;
    box-shadow: 0 15px 35px -10px rgba(15, 23, 42, 0.4);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rk-result-card.white-card { border-top: 5px solid #e2e8f0; }
.rk-result-card.graphite-card { border-top: 5px solid #64748b; }

.rk-result-title {
    font-size: 15px;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 1px;
    margin-bottom: 10px;
}
.white-card .rk-result-title { color: #cbd5e1; }
.graphite-card .rk-result-title { color: #94a3b8; }

.rk-result-value {
    font-size: 42px;
    font-weight: 900;
    color: #ffffff;
    margin-bottom: 20px;
    line-height: 1;
}

.rk-svg-ruler {
    width: 120px;
    height: 180px;
    overflow: visible;
}

.anim-bar-white { fill: #f8fafc; transition: height 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), y 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); }
.anim-bar-graphite { fill: #475569; transition: height 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), y 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); }
.anim-text-label { font-family: sans-serif; font-weight: 700; fill: #94a3b8; font-size: 10px; }

/* Krok po Kroku */
.rk-algo-section { padding: 40px 50px; background: #ffffff; }
.rk-algo-title { font-size: 22px; font-weight: 900; color: var(--rk-calc-dark); margin: 0 0 25px 0; display: flex; align-items: center; gap: 10px; }
.rk-algo-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.rk-algo-step { background: var(--rk-calc-bg); border: 1px solid var(--rk-calc-border); border-radius: 16px; padding: 25px; position: relative; }
.rk-algo-step-num { position: absolute; top: -15px; left: 20px; background: var(--rk-calc-brand); color: #ffffff; width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 900; font-size: 16px; box-shadow: 0 4px 10px rgba(2, 132, 199, 0.3); }
.rk-algo-step h4 { font-size: 16px; font-weight: 800; color: var(--rk-calc-dark); margin: 10px 0 15px 0; }
.rk-algo-equation { background: #ffffff; padding: 12px 15px; border-radius: 8px; border: 1px dashed #cbd5e1; font-family: monospace; font-size: 14px; color: #0369a1; font-weight: 700; margin-bottom: 10px; overflow-x: auto; }
.rk-algo-desc { font-size: 14px; line-height: 1.6; color: var(--rk-calc-text); margin: 0; }

@media (max-width: 768px) {
    .rk-calc-header, .rk-calc-interactive, .rk-algo-section { padding: 30px 20px; }
    .rk-calc-controls { padding: 25px 20px; }
    .rk-calc-label { flex-direction: column; align-items: flex-start; gap: 15px; font-size: 16px; }
    .rk-results-split { grid-template-columns: 1fr; gap: 20px; }
    .rk-algo-grid { grid-template-columns: 1fr; }
    .rk-calc-header h2 { font-size: 26px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article-kalkulator",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Kalkulator grubości izolacji styropianu pod ogrzewanie podłogowe",
    "description": "Algorytm obliczeniowy PN-EN ISO 13370 wyznaczający opór cieplny (R) i precyzyjną grubość styropianu EPS dla 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-05-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset-kalkulator",
    "name": "Algorytm Obliczeniowy Opór Cieplny EPS PN-EN ISO 13370",
    "description": "Parametry stałe i zmienne do obliczania grubości materiałów izolacyjnych na bazie zakładanego współczynnika przenikania ciepła U.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator grubości izolacji podłogowej",
      "obliczenia oporu cieplnego PN-EN ISO 13370",
      "współczynnik przenikania ciepła podłogi na gruncie",
      "jak obliczyć styropian pod podłogówkę",
      "wzór na grubość styropianu"
    ],
    "measurementTechnique": "Algorytm 4-krokowy wykorzystujący transformację współczynnika U na całkowity opór cieplny przegrody R_tot, a następnie na fizyczną grubość w mm.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Krok 1: Sumowanie oporów stałych (R_si = 0,17; R_c = 0,10)",
        "Krok 2: Odwrócenie współczynnika U (R_tot = 1 / U)",
        "Krok 3: Izolacja właściwa (R_izol = R_tot - R_stale - R_g)",
        "Krok 4: Konwersja na mm w oparciu o parametr lambda (0,036 lub 0,031)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp-kalkulator",
    "name": "Kalkulator Grubości Izolacji Podłogowej LCC",
    "description": "Interaktywne narzędzie inżynierskie pozwalające płynnie suwakiem symulować wymaganą grubość styropianu w zależności od zadanego standardu energetycznego U.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-container" id="rk-calc-app">
    
    <div class="rk-calc-header">
        <div class="rk-calc-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><rect x="9" y="9" width="6" height="6"></rect><line x1="9" y1="1" x2="9" y2="4"></line><line x1="15" y1="1" x2="15" y2="4"></line><line x1="9" y1="20" x2="9" y2="23"></line><line x1="15" y1="20" x2="15" y2="23"></line><line x1="20" y1="9" x2="23" y2="9"></line><line x1="20" y1="14" x2="23" y2="14"></line><line x1="1" y1="9" x2="4" y2="9"></line><line x1="1" y1="14" x2="4" y2="14"></line></svg>
            Inżynieria Obliczeniowa
        </div>
        <h2>Kalkulator grubości izolacji styropianu pod ogrzewanie podłogowe</h2>
        <p>
            W celu precyzyjnego wyznaczenia wymaganej grubości styropianu dla uzyskania normowego współczynnika U ≤ 0,20 W/(m²·K), należy przeprowadzić szczegółowe obliczenia oporów cieplnych poszczególnych warstw przegrody. Zmień docelowy parametr U na suwaku, aby zobaczyć precyzyjny wymiar izolacji.
        </p>
    </div>

    <div class="rk-calc-interactive">
        
        <div class="rk-calc-controls">
            <div class="rk-calc-label">
                Docelowy współczynnik przenikania (U):
                <span class="rk-calc-val-box pass" id="calc-u-val">0.20 W/(m²K)</span>
            </div>
            <input type="range" id="calc-u-slider" class="rk-slider-app" min="0.10" max="0.30" step="0.01" value="0.20">
            <div class="rk-calc-hints">
                <span>Dom Pasywny (0.10)</span>
                <span>Norma WT2021 (0.20)</span>
                <span>Budownictwo starsze (0.30)</span>
            </div>
        </div>

        <div class="rk-results-split">
            
            <div class="rk-result-card white-card">
                <div class="rk-result-title">Wymagany EPS Biały (λ 0,036)</div>
                <div class="rk-result-value" id="text-white">134 mm</div>
                <svg class="rk-svg-ruler" viewBox="0 0 100 180">
                    <line x1="10" y1="160" x2="90" y2="160" stroke="#cbd5e1" stroke-width="2" stroke-linecap="round"/>
                    <rect class="anim-bar-white" id="bar-white" x="25" y="60" width="50" height="100" rx="4"/>
                    <text x="50" y="175" class="anim-text-label" text-anchor="middle">CHUDY BETON</text>
                </svg>
            </div>

            <div class="rk-result-card graphite-card">
                <div class="rk-result-title">Wymagany EPS Grafit (λ 0,031)</div>
                <div class="rk-result-value" id="text-graphite">115 mm</div>
                <svg class="rk-svg-ruler" viewBox="0 0 100 180">
                    <line x1="10" y1="160" x2="90" y2="160" stroke="#64748b" stroke-width="2" stroke-linecap="round"/>
                    <rect class="anim-bar-graphite" id="bar-graphite" x="25" y="75" width="50" height="85" rx="4"/>
                    <text x="50" y="175" class="anim-text-label" text-anchor="middle">CHUDY BETON</text>
                </svg>
            </div>

        </div>

    </div>

    <div class="rk-algo-section">
        <h3 class="rk-algo-title">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="4 14 10 14 10 20"></polyline><polyline points="20 10 14 10 14 4"></polyline><line x1="14" y1="10" x2="21" y2="3"></line><line x1="3" y1="21" x2="10" y2="14"></line></svg>
            Algorytm wg PN-EN ISO 13370 (Dla U = 0,20)
        </h3>
        
        <div class="rk-algo-grid">
            
            <div class="rk-algo-step">
                <div class="rk-algo-step-num">1</div>
                <h4>Określenie oporów przejmowania</h4>
                <div class="rk-algo-desc">
                    Przyjmij standardowe wartości oporów przejmowania ciepła: R_si = 0,17 m²·K/W (kierunek strumienia ciepła w dół) oraz uśredniony opór chudego betonu i okładziny R_c ≈ 0,10 m²·K/W. Zsumuj opory stałe.
                </div>
                <div class="rk-algo-equation">
                    R_stałe = 0,17 + 0,00 + 0,10 = 0,27 m²·K/W
                </div>
            </div>

            <div class="rk-algo-step">
                <div class="rk-algo-step-num">2</div>
                <h4>Całkowity opór przegrody (R_tot)</h4>
                <div class="rk-algo-desc">
                    Przekształć wzór na współczynnik przenikania ciepła U = 1 / R_tot. Podstawiając graniczną wartość wymaganą przez warunki techniczne U = 0,20 W/(m²·K):
                </div>
                <div class="rk-algo-equation">
                    R_tot = 1 / 0,20 = 5,00 m²·K/W
                </div>
            </div>

            <div class="rk-algo-step">
                <div class="rk-algo-step-num">3</div>
                <h4>Minimalny opór izolacji (R_izol)</h4>
                <div class="rk-algo-desc">
                    Odejmij od całkowitego oporu R_tot wartość oporów stałych oraz uśredniony opór cieplny gruntu (dla uproszczenia inżynierskich obliczeń strukturalnych przyjmuje się opór gruntu R_g ≈ 1,0 m²·K/W):
                </div>
                <div class="rk-algo-equation">
                    R_izol = 5,00 - 0,27 - 1,00 = 3,73 m²·K/W
                </div>
            </div>

            <div class="rk-algo-step">
                <div class="rk-algo-step-num">4</div>
                <h4>Obliczenie grubości (d) dla parametru λ</h4>
                <div class="rk-algo-desc">
                    Pomnóż wymagany opór izolacji przez współczynnik przewodzenia ciepła λ (lambda) wybranego materiału. Wynik otrzymasz w metrach, które przeliczamy na milimetry.
                </div>
                <div class="rk-algo-equation" style="color: var(--rk-calc-dark);">
                    Biały (0,036): d = 3,73 × 0,036 = 134 mm<br>
                    Grafit (0,031): d = 3,73 × 0,031 = 115 mm
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie domeny
    const currentDomain = window.location.hostname;
    const authDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!authDomains.includes(currentDomain)) {
        const errorWrap = document.getElementById('rk-calc-app');
        if (errorWrap) {
            errorWrap.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #ef4444; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 38px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Zabezpieczenie Algorytmu</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Interaktywny kalkulator grubości izolacji oraz system mikrodanych JSON-LD należą do domeny <strong>Projekt-Ogrzewania.pl</strong>. Wykryto próbę kradzieży kodu.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Kalkulatora i Obsługa Słupków SVG
    const uSlider = document.getElementById('calc-u-slider');
    const uValBox = document.getElementById('calc-u-val');
    
    const barWhite = document.getElementById('bar-white');
    const textWhite = document.getElementById('text-white');
    
    const barGraphite = document.getElementById('bar-graphite');
    const textGraphite = document.getElementById('text-graphite');

    const R_STALE = 0.27; 
    const R_GRUNT = 1.00; 
    const LAMBDA_W = 0.036; 
    const LAMBDA_G = 0.031; 

    // Nowe parametry dla izolowanych słupków SVG (viewBox 0 0 100 180)
    const SVG_BASE_Y = 160; 
    const PIXEL_PER_MM = 0.45; // Skalowanie dopasowane do wysokości 180px

    function runCalculation() {
        const U = parseFloat(uSlider.value);
        
        // Klasy wizualne dla normy WT2021
        if (U > 0.20) {
            uValBox.className = 'rk-calc-val-box fail';
        } else {
            uValBox.className = 'rk-calc-val-box pass';
        }
        
        uValBox.textContent = U.toFixed(2) + ' W/(m²K)';

        // Algorytm
        let R_tot = 1 / U;
        let R_izol = R_tot - R_STALE - R_GRUNT;
        if (R_izol < 0) R_izol = 0;

        let d_white_mm = Math.round((R_izol * LAMBDA_W) * 1000);
        let d_graphite_mm = Math.round((R_izol * LAMBDA_G) * 1000);

        // Ustawienie wielkich wartości w HTML
        textWhite.textContent = d_white_mm + ' mm';
        textGraphite.textContent = d_graphite_mm + ' mm';

        // Animacja SVG - ustalenie wysokości
        let h_white_px = d_white_mm * PIXEL_PER_MM;
        let h_graphite_px = d_graphite_mm * PIXEL_PER_MM;
        
        // Ochrona przed przenikaniem przez górną ramkę (max wys. np. 150)
        if (h_white_px > 150) h_white_px = 150;
        if (h_graphite_px > 150) h_graphite_px = 150;
        if (h_white_px < 5) h_white_px = 5;
        if (h_graphite_px < 5) h_graphite_px = 5;

        // Aplikacja atrybutów
        barWhite.setAttribute('height', h_white_px);
        barWhite.setAttribute('y', SVG_BASE_Y - h_white_px);

        barGraphite.setAttribute('height', h_graphite_px);
        barGraphite.setAttribute('y', SVG_BASE_Y - h_graphite_px);
    }

    uSlider.addEventListener('input', runCalculation);
    runCalculation();
});
</script>



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



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-card: #1e293b;
    --rk-err-brand: #ef4444; /* Ostrzegawcza czerwień */
    --rk-err-brand-light: #fef2f2;
    --rk-err-safe: #10b981;
    --rk-err-accent: #f59e0b; /* Pomarańcz - uwaga */
    --rk-err-bg: #f8fafc;
    --rk-err-border: #e2e8f0;
    --rk-err-text: #475569;
}

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

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

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

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

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

/* Interaktywny Audytor */
.rk-err-interactive {
    display: grid;
    grid-template-columns: 380px 1fr; /* Poszerzona kolumna pod dłuższe nazwy błędów */
    background: var(--rk-err-bg);
}

/* Lewa strona - Menu błędów */
.rk-err-menu {
    padding: 30px;
    border-right: 1px solid var(--rk-err-border);
    background: #ffffff;
}

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

.rk-err-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rk-err-btn {
    width: 100%;
    text-align: left;
    background: transparent;
    border: 2px solid transparent;
    padding: 14px 16px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-err-text);
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    gap: 12px;
    line-height: 1.4;
}

.rk-err-btn:hover {
    background: var(--rk-err-brand-light);
    color: var(--rk-err-brand);
}

.rk-err-btn.active {
    background: var(--rk-err-brand-light);
    border-color: var(--rk-err-brand);
    color: #991b1b;
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.1);
}

.rk-err-btn-icon {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #e2e8f0;
    color: #64748b;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 900;
    transition: all 0.3s;
}

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

/* Prawa strona - Panel i SVG */
.rk-err-display {
    padding: 40px;
    display: flex;
    flex-direction: column;
}

.rk-err-visual {
    width: 100%;
    height: 260px;
    background: var(--rk-err-dark);
    border-radius: 16px;
    margin-bottom: 30px;
    position: relative;
    box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.rk-svg-stage {
    width: 100%;
    max-width: 380px;
    height: 100%;
}

/* Zmienne SVG na podstawie stanu */
.svg-wall { fill: #475569; }
.svg-ground { fill: #64748b; transition: all 0.5s; }
.svg-bump { fill: #64748b; transform: scaleY(0); transform-origin: bottom; transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1); }
.svg-eps-1 { fill: #fcd34d; transition: all 0.4s; }
.svg-eps-2 { fill: #fbbf24; transition: all 0.4s; }
.svg-concrete { fill: #94a3b8; transition: all 0.4s; }
.svg-tape { fill: #3b82f6; opacity: 1; transition: opacity 0.3s; }
.svg-crack { stroke: #0f172a; stroke-width: 3; fill: none; stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset 0.6s ease-out; }
.svg-heat-arrow { stroke: #ef4444; stroke-width: 3; fill: none; stroke-linecap: round; opacity: 0; }
.svg-liquid { fill: #60a5fa; opacity: 0; transform: translateY(-20px); transition: all 0.4s; }

/* Nowe elementy SVG dla długiego ogona */
.svg-pipe { transition: all 0.4s; }
.svg-kan-pipe { fill: #cbd5e1; stroke: #3b82f6; stroke-width: 2; opacity: 0; transition: opacity 0.4s; }
.svg-foam { fill: #fde047; opacity: 0; transition: opacity 0.4s; }
.svg-clip { stroke: #0f172a; stroke-width: 2; fill: none; opacity: 0; }

/* Animacje stanów */
/* 1. Jedna warstwa */
.state-layer .svg-eps-2 { opacity: 0; }
.state-layer .svg-heat-arrow.layer-leak { animation: heatEscapeUp 1.5s infinite linear; }
@keyframes heatEscapeUp { 0% { transform: translateY(0); opacity: 0.8; } 100% { transform: translateY(-40px); opacity: 0; } }

/* 2. Nierówności */
.state-uneven .svg-bump { transform: scaleY(1); }
.state-uneven .svg-eps-1 { transform: translateY(-10px) rotate(-2deg); transform-origin: center; }
.state-uneven .svg-eps-2 { transform: translateY(-10px) rotate(2deg); transform-origin: center; }
.state-uneven .svg-concrete { transform: translateY(-5px); }
.state-uneven .svg-crack { stroke-dashoffset: 0; transition-delay: 0.4s; }

/* 3. Dylatacja brzegowa */
.state-edge .svg-tape { opacity: 0; }
.state-edge .svg-heat-arrow.edge-leak { animation: heatEscapeSide 1.5s infinite linear; }
@keyframes heatEscapeSide { 0% { transform: translateX(0); opacity: 0.8; } 100% { transform: translateX(-30px); opacity: 0; } }

/* 4. Folia */
.state-foil .svg-eps-2 { transform: translateX(5px); }
.state-foil .svg-liquid { opacity: 0.8; animation: drip 1.5s infinite ease-in; }
@keyframes drip { 0% { transform: translateY(-10px); opacity: 0.8; } 100% { transform: translateY(30px); opacity: 0; } }

/* 5. Styropian Fasadowy (Miękki) */
.state-soft .svg-eps-1 { transform: scaleY(0.6) translateY(55px); }
.state-soft .svg-eps-2 { transform: scaleY(0.6) translateY(55px); }
.state-soft .svg-concrete { transform: translateY(28px); }
.state-soft .svg-pipe { transform: translateY(28px); }
.state-soft .svg-crack { stroke-dashoffset: 0; transition-delay: 0.4s; }

/* 6. Krzyżowanie rur Wod-Kan */
.state-cross .svg-kan-pipe { opacity: 1; }
.state-cross .svg-eps-1 { opacity: 0.5; }
.state-cross .svg-heat-arrow.cross-leak { animation: heatEscapeUp 1.5s infinite linear; }

/* 7. Łatanie pianką */
.state-gap .svg-eps-2 { transform: translateX(-15px); }
.state-gap .svg-foam { opacity: 1; animation: foamExpand 2s infinite alternate; }
@keyframes foamExpand { from { transform: scaleX(0.9); } to { transform: scaleX(1.1); } }
.state-gap .svg-heat-arrow.gap-leak { animation: heatEscapeUp 1.5s infinite linear; }

/* 8. Wyrywanie spinek */
.state-clip .svg-clip { opacity: 1; }
.state-clip .svg-pipe-loose { transform: translateY(-20px); }
.state-clip .svg-concrete { opacity: 0.8; }


/* Panel tekstowy */
.rk-err-content h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-err-dark);
    margin: 0 0 15px 0;
}

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

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

.rk-err-solution {
    background: #dcfce7;
    border-left: 4px solid var(--rk-err-safe);
    padding: 15px 20px;
    border-radius: 0 8px 8px 0;
    margin-top: 20px;
}

.rk-err-solution strong {
    color: #065f46;
    display: block;
    font-size: 13px;
    text-transform: uppercase;
    margin-bottom: 5px;
}

.rk-err-solution span {
    color: #166534;
    font-size: 14px;
    font-weight: 600;
}

@media (max-width: 768px) {
    .rk-err-header, .rk-err-display { padding: 30px 20px; }
    .rk-err-interactive { grid-template-columns: 1fr; }
    .rk-err-menu { border-right: none; border-bottom: 1px solid var(--rk-err-border); padding: 20px; }
    .rk-err-visual { height: 200px; }
    .rk-err-header h2 { font-size: 26px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article-wykonawstwo",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Najczęstsze błędy wykonawcze podczas układania styropianu",
    "description": "8 krytycznych błędów izolacyjnych: od braku taśmy brzegowej, przez klawiszowanie podłoża, stosowanie pianki, po wyrywanie rur i styropian fasadowy EPS 70.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset-wykonawstwo",
    "name": "Katalog 8 Krytycznych Błędów Izolacji Płaszczyznowej",
    "description": "Rozszerzona baza danych klasyfikująca błędy mechaniczne i termiczne przy układaniu polistyrenu pod jastrych grzewczy.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "błędy przy montażu ogrzewania podłogowego",
      "styropian fasadowy pod ogrzewanie podłogowe",
      "wyrywanie spinek do podłogówki ze styropianu",
      "rury wodne w styropianie podłogowym krzyżowanie",
      "wypełnianie ubytków w styropianie podłogowym pianką"
    ],
    "measurementTechnique": "Wizualizacja wektorowa uchybień fizycznych uwzględniająca odkształcenia plastyczne EPS 70, kolizje instalacji wod-kan oraz wyrwania mechaniczne klipsów.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Jedna warstwa EPS: Powstają szczeliny i mostki termiczne.",
        "Nierówne podłoże (pow. 8mm): Powoduje klawiszowanie wylewki.",
        "Brak taśmy brzegowej: Generuje mostek obwodowy w ściany.",
        "Brak szczelności folii: Ucieczka płynnego jastrychu.",
        "Styropian fasadowy EPS 70: Zapadanie się izolacji pod ciężarem.",
        "Krzyżowanie rur wod-kan: Punktowe wychładzanie i utrata twardości podłoża.",
        "Wypełnianie pianką PUR: Trwała degradacja oporu cieplnego.",
        "Zbyt krótkie spinki: Wypychanie rur z izolacji podczas zalewania."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp-wykonawstwo",
    "name": "Audytor Błędów Montażu Styropianu (Wersja PRO)",
    "description": "Rozbudowana aplikacja symulująca zachowanie warstw podłogowych i instalacji w przypadku wystąpienia 8 głównych patologii budowlanych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="rk-err-app">
    
    <div class="rk-err-header">
        <div class="rk-err-badge">
            <svg width="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>
            Weryfikacja Wykonawstwa
        </div>
        <h2>Najczęstsze błędy montażowe</h2>
        <p>
            Nawet najlepszej jakości materiał izolacyjny utraci swoje właściwości, jeśli zostanie zamontowany niezgodnie ze sztuką budowlaną. Zobacz 8 krytycznych błędów identyfikowanych podczas audytów inżynierskich.
        </p>
    </div>

    <div class="rk-err-interactive">
        
        <div class="rk-err-menu">
            <div class="rk-err-menu-title">Wybierz błąd do symulacji:</div>
            
            <div class="rk-err-list">
                <button class="rk-err-btn active" data-target="err-layer">
                    <div class="rk-err-btn-icon">1</div>
                    Jedna warstwa izolacji
                </button>
                <button class="rk-err-btn" data-target="err-uneven">
                    <div class="rk-err-btn-icon">2</div>
                    Nierówne podłoże
                </button>
                <button class="rk-err-btn" data-target="err-edge">
                    <div class="rk-err-btn-icon">3</div>
                    Brak dylatacji brzegowej
                </button>
                <button class="rk-err-btn" data-target="err-foil">
                    <div class="rk-err-btn-icon">4</div>
                    Nieszczelność folii
                </button>
                <button class="rk-err-btn" data-target="err-soft">
                    <div class="rk-err-btn-icon">5</div>
                    Miękki styropian (EPS 70)
                </button>
                <button class="rk-err-btn" data-target="err-cross">
                    <div class="rk-err-btn-icon">6</div>
                    Kolizje z rurami wod-kan
                </button>
                <button class="rk-err-btn" data-target="err-gap">
                    <div class="rk-err-btn-icon">7</div>
                    Łatanie szpar pianką PUR
                </button>
                <button class="rk-err-btn" data-target="err-clip">
                    <div class="rk-err-btn-icon">8</div>
                    Zbyt krótkie spinki (Tacker)
                </button>
            </div>
        </div>

        <div class="rk-err-display">
            
            <div class="rk-err-visual state-layer" id="svg-stage">
                <svg class="rk-svg-stage" viewBox="0 0 300 200">
                    <rect class="svg-wall" x="0" y="0" width="30" height="200" />
                    
                    <rect class="svg-ground" x="30" y="150" width="270" height="50" />
                    <path class="svg-bump" d="M 120 150 Q 150 110 180 150 Z" />

                    <rect class="svg-tape" x="30" y="40" width="5" height="110" />

                    <rect class="svg-eps-1" x="35" y="115" width="120" height="35" rx="2" />
                    <rect class="svg-eps-1" x="155" y="115" width="145" height="35" rx="2" />
                    
                    <rect class="svg-eps-2" x="35" y="80" width="100" height="35" rx="2" />
                    <rect class="svg-eps-2" x="135" y="80" width="165" height="35" rx="2" />

                    <circle class="svg-kan-pipe" cx="155" cy="132" r="14" />

                    <path class="svg-foam" d="M 130 80 L 140 80 L 138 115 L 128 115 Z" />

                    <rect class="svg-concrete" x="35" y="40" width="265" height="40" rx="2" />
                    <circle class="svg-pipe" cx="70" cy="60" r="6" fill="#ef4444" />
                    <circle class="svg-pipe" cx="120" cy="60" r="6" fill="#ef4444" />
                    <circle class="svg-pipe svg-pipe-loose" cx="170" cy="60" r="6" fill="#ef4444" />
                    <circle class="svg-pipe" cx="220" cy="60" r="6" fill="#ef4444" />

                    <path class="svg-clip" d="M 165 70 L 160 50 M 175 70 L 180 50" />

                    <path class="svg-crack" d="M 140 40 L 155 55 L 145 65 L 150 80" />
                    <path class="svg-heat-arrow layer-leak" d="M 145 150 L 145 100 M 140 110 L 145 100 L 150 110" />
                    <path class="svg-heat-arrow edge-leak" d="M 50 60 L 10 60 M 20 55 L 10 60 L 20 65" />
                    <path class="svg-heat-arrow cross-leak" d="M 155 132 L 155 80 M 145 95 L 155 80 L 165 95" />
                    <path class="svg-heat-arrow gap-leak" d="M 135 115 L 135 70 M 125 85 L 135 70 L 145 85" />
                    <path class="svg-liquid" d="M 140 80 Q 145 100 140 115" stroke="#60a5fa" stroke-width="4" fill="none"/>
                </svg>
            </div>

            <div class="rk-err-content" id="err-content">
                </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Ochrona domeny (Bez tagów H w stringu błędu)
    const activeDomain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(activeDomain)) {
        const wrap = document.getElementById('rk-err-app');
        if (wrap) {
            wrap.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #ef4444; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 38px; margin-bottom: 15px;">🛑</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Interaktywny Audytor Błędów oraz struktura JSON-LD są własnością <strong>Projekt-Ogrzewania.pl</strong>. Skrypt zablokowany.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Rozszerzona Baza Treści (8 Błędów SEO)
    const errData = {
        'err-layer': {
            title: 'Układanie izolacji w jednej warstwie',
            text: 'Zastosowanie pojedynczej płyty o grubości np. 15 cm generuje pionowe, bezpośrednie szczeliny na łączeniach płyt. Tworzy to potężne, liniowe mostki termiczne, przez które ciepło ucieka w kierunku fundamentu.',
            solution: 'Płyty należy układać bezwzględnie w układzie mijankowym (np. 10 cm + 5 cm) z przesunięciem krawędzi o minimum 20 cm.'
        },
        'err-uneven': {
            title: 'Brak wyrównania podłoża',
            text: 'Układanie płyt na chropowatej powierzchni z zaprawą tworzy pustki powietrzne. Pod dociskiem <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">ciężkiej wylewki</a> styropian łamie się, powodując klawiszowanie betonu.',
            solution: 'Nierówności >8 mm bezwzględnie wyrównaj podsypką piaskową lub szybką masą samopoziomującą przed układaniem płyt.'
        },
        'err-edge': {
            title: 'Ignorowanie izolacji brzegowej',
            text: 'Brak pianki dylatacyjnej odcina wylewce grzewczej możliwość naturalnej rozszerzalności termicznej. Gorący beton styka się z zimną ścianą, przekazując energię prosto w mury.',
            solution: 'Wokół wszystkich ścian i słupów zastosuj taśmę brzegową z folią o grubości minimum 8 mm.'
        },
        'err-foil': {
            title: 'Nieszczelność folii (Wylewka anhydrytowa)',
            text: 'Samo ułożenie folii "na zakładkę" to błąd przy jastrychach płynnych. <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">Wylewka anhydrytowa</a> wleje się w szczeliny izolacji, unosząc styropian do góry i tworząc mostki akustyczne.',
            solution: 'Zakłady folii zrastrowanej precyzyjnie sklej taśmą wodoodporną, tworząc szczelną wannę dla płynnego jastrychu.'
        },
        'err-soft': {
            title: 'Zastosowanie styropianu fasadowego',
            text: 'Często spotykany błąd z chęci oszczędności. Miękki styropian (EPS 70 lub fasadowy) drastycznie odkształci się (osiądzie) pod ciężarem wylewki i mebli, zrywając rury oraz pękając beton.',
            solution: 'Zawsze używaj dedykowanego styropianu podłogowego o współczynniku odporności na ściskanie minimum CS(10) 100 kPa.'
        },
        'err-cross': {
            title: 'Krzyżowanie rur bez izolacji',
            text: 'Prowadzenie rur CWU/CO bezpośrednio w warstwie styropianu podłogowego bez wycięcia szerszych kanałów i założenia peszli/otulin skutkuje ubytkami cieplnymi i osłabieniem podparcia rur grzewczych na górze.',
            solution: 'Instalacje wod-kan układaj wyłącznie w pierwszej warstwie izolacji (np. 10 cm), wycinając precyzyjne kanały i stosując grube otuliny.'
        },
        'err-gap': {
            title: 'Łatanie ubytków pianką PUR',
            text: 'Cięcie styropianu "na oko" i wypełnianie powstałych, kilkucentymetrowych szczelin zwykłą pianką montażową niszczy jednorodność oporu cieplnego posadzki. Zwykła piana szybko ulega degradacji i utlenieniu.',
            solution: 'Płyty należy docinać gilotyną termiczną (gorącym drutem), co zapewnia idealne spasowanie bloków "na wcisk" bez zaprawy.'
        },
        'err-clip': {
            title: 'Zbyt krótkie spinki do tackera',
            text: 'Stosowanie spinek o długości 40 mm na folii przytwierdzonej do miększej warstwy wierzchniej (np. 5 cm) skutkuje masowym wyrywaniem rur ze styropianu w trakcie zalewania betonem (rury wypływają na wierzch).',
            solution: 'Dobieraj spinki do grubości warstwy nośnej folii – przy układzie rur rzędu 16x2.0 mm absolutne minimum to spinki 50 mm wbijane prosto.'
        }
    };

    // 3. Logika Interfejsu
    const btns = document.querySelectorAll('.rk-err-btn');
    const svgStage = document.getElementById('svg-stage');
    const contentBox = document.getElementById('err-content');

    function updateView(targetId) {
        // Reset klas SVG
        svgStage.className = `rk-err-visual state-${targetId.replace('err-', '')}`;
        
        // Render Treści
        const data = errData[targetId];
        contentBox.innerHTML = `
            <h3>${data.title}</h3>
            <p>${data.text}</p>
            <div class="rk-err-solution">
                <strong>Standard Inżynierski:</strong>
                <span>${data.solution}</span>
            </div>
        `;
    }

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

    // Startowa inicjalizacja
    updateView('err-layer');
});
</script>



<style>
:root {
    --rk-proj-dark: #0f172a;
    --rk-proj-card: #1e293b;
    --rk-proj-brand: #0284c7; /* Błękit inżynieryjny */
    --rk-proj-brand-light: #e0f2fe;
    --rk-proj-accent: #0ea5e9; 
    --rk-proj-success: #10b981;
    --rk-proj-warning: #f59e0b;
    --rk-proj-danger: #ef4444;
    --rk-proj-bg: #f8fafc;
    --rk-proj-border: #e2e8f0;
    --rk-proj-text: #475569;
}

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

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

.rk-proj-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(2, 132, 199, 0.3);
    color: #bae6fd;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(186, 230, 253, 0.2);
}

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

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

/* Symulator Hydrauliczny */
.rk-proj-interactive {
    padding: 40px 50px;
    background: var(--rk-proj-bg);
    border-bottom: 1px solid var(--rk-proj-border);
}

/* Przełącznik (Toggle) */
.rk-proj-toggle-wrap {
    display: flex;
    background: #e2e8f0;
    border-radius: 12px;
    padding: 6px;
    max-width: 600px;
    margin: 0 auto 35px auto;
}

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

.rk-proj-toggle-btn.active[data-state="bad"] {
    background: #ffffff;
    color: var(--rk-proj-danger);
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.15);
}

.rk-proj-toggle-btn.active[data-state="good"] {
    background: #ffffff;
    color: var(--rk-proj-success);
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.15);
}

/* Grid Dashboardu */
.rk-proj-dashboard {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 30px;
    align-items: center;
}

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

.rk-metric-card {
    background: #ffffff;
    border: 1px solid var(--rk-proj-border);
    border-radius: 12px;
    padding: 15px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    transition: all 0.3s;
}

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

.rk-metric-val {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-proj-dark);
    transition: color 0.3s;
}

/* Stan Zły */
.state-bad .rk-metric-card.alert { border-color: #fca5a5; background: #fef2f2; }
.state-bad .rk-metric-card.alert .rk-metric-val { color: var(--rk-proj-danger); }

/* Stan Dobry */
.state-good .rk-metric-card.ok { border-color: #6ee7b7; background: #ecfdf5; }
.state-good .rk-metric-card.ok .rk-metric-val { color: var(--rk-proj-success); }

/* Wizualizacja SVG (Hydraulika) */
.rk-proj-visual {
    background: var(--rk-proj-dark);
    border-radius: 16px;
    padding: 20px;
    height: 220px;
    position: relative;
    box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
    display: flex;
    align-items: center;
    justify-content: center;
}

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

/* Elementy SVG */
.svg-bg-concrete { fill: #1e293b; }
.svg-pipe-path {
    fill: none;
    stroke-width: 8;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}
.svg-flow-dash {
    fill: none;
    stroke: rgba(255,255,255,0.6);
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Animacje Flow */
.state-bad .svg-pipe-path { stroke: #ef4444; } /* Czerwone - wysokie opory */
.state-bad .svg-pipe-extra { opacity: 1; } /* Gęsty rozstaw */
.state-bad .svg-flow-dash { stroke-dasharray: 10 15; animation: franticFlow 0.5s linear infinite; }
.state-bad .svg-pump-icon { fill: #ef4444; animation: pumpStress 0.2s infinite alternate; }

.state-good .svg-pipe-path { stroke: #3b82f6; } /* Niebieskie - optymalne */
.state-good .svg-pipe-extra { opacity: 0; transform: translateY(-10px); } /* Szerszy rozstaw */
.state-good .svg-flow-dash { stroke-dasharray: 20 30; animation: smoothFlow 1.5s linear infinite; }
.state-good .svg-pump-icon { fill: #10b981; }

@keyframes franticFlow { to { stroke-dashoffset: -50; } }
@keyframes smoothFlow { to { stroke-dashoffset: -100; } }
@keyframes pumpStress { from { transform: scale(0.95) translate(-1px, 1px); } to { transform: scale(1.05) translate(1px, -1px); } }

/* Sekcja z tekstem objaśniającym */
.rk-proj-explanation {
    padding: 40px 50px 0 50px;
    background: #ffffff;
}

.rk-proj-explanation p {
    font-size: 15px;
    line-height: 1.8;
    color: var(--rk-proj-text);
    margin: 0 0 20px 0;
}

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

.rk-tech-box {
    background: var(--rk-proj-bg);
    border-left: 4px solid var(--rk-proj-brand);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin-bottom: 30px;
    font-family: monospace;
    font-size: 14px;
    color: #0369a1;
    font-weight: 600;
}

/* MOCNE CTA Z ROI */
.rk-proj-cta-section {
    padding: 40px 50px;
    background: linear-gradient(180deg, #ffffff 0%, #f0f9ff 100%);
    border-top: 1px solid var(--rk-proj-border);
    text-align: center;
}

.rk-cta-wrapper {
    max-width: 700px;
    margin: 0 auto;
    background: #ffffff;
    border: 2px solid var(--rk-proj-brand);
    border-radius: 20px;
    padding: 40px;
    box-shadow: 0 20px 40px -10px rgba(2, 132, 199, 0.2);
    position: relative;
    overflow: hidden;
}

.rk-cta-wrapper::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 6px;
    background: linear-gradient(90deg, #10b981, #0284c7);
}

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

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

.rk-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-proj-brand);
    color: #ffffff;
    font-size: 16px;
    font-weight: 800;
    padding: 18px 36px;
    border-radius: 12px;
    text-decoration: none;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.4);
    transition: all 0.3s;
}

.rk-cta-btn:hover {
    background: #0369a1;
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(2, 132, 199, 0.5);
}

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

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

@media (max-width: 768px) {
    .rk-proj-header, .rk-proj-interactive, .rk-proj-explanation, .rk-proj-cta-section { padding: 30px 20px; }
    .rk-proj-dashboard { grid-template-columns: 1fr; }
    .rk-proj-toggle-wrap { flex-direction: column; }
    .rk-cta-wrapper { padding: 30px 20px; }
    .rk-cta-btn { width: 100%; padding: 16px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article-projekt",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Jak dobór izolacji wpływa na projekt ogrzewania podłogowego?",
    "description": "Dowiedz się, jak grubość styropianu determinuje wyniki OZC, przepływy hydrauliczne i rozstaw rur. Zobacz interaktywną symulację.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset-projekt",
    "name": "Parametry hydrauliczne w zależności od izolacji podłogi",
    "description": "Zestawienie zmiennych hydraulicznych (przepływ masowy, opór, rozstaw rur) wynikających ze zmiany obciążenia cieplnego (OZC) budynku.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wpływ styropianu na projekt podłogówki",
      "obliczenia OZC a izolacja",
      "przepływ masowy czynnika ogrzewanie podłogowe",
      "rozstaw rur 10 czy 15 cm",
      "opory hydrauliczne pompy obiegowej"
    ],
    "measurementTechnique": "Symulacja zmian parametrów instalacji (Q=1.2kW vs Q=1.8kW) przy spadku temperatury ΔT=5K i ich wpływ na pompę obiegową.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wariant Optymalny (15 cm): Zapotrzebowanie 1,2 kW -> Przepływ 206 l/h -> Rozstaw 15 cm",
        "Wariant Słaby (10 cm): Zapotrzebowanie 1,8 kW -> Przepływ 310 l/h -> Rozstaw 10 cm (Zagrożenie hydrauliczne)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp-projekt",
    "name": "Symulator Wpływu Izolacji na Hydraulikę",
    "description": "Aplikacja wizualizująca przeciążenie pompy obiegowej i zagęszczenie rur w przypadku zastosowania zbyt cienkiej warstwy styropianu podłogowego.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-proj-container" id="rk-proj-app">
    
    <div class="rk-proj-header">
        <div class="rk-proj-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Finanse i Hydraulika
        </div>
        <h2>Jak dobór izolacji wpływa na projekt ogrzewania podłogowego?</h2>
        <p>
            Projekt instalacji grzewczej to system naczyń połączonych. Grubość i jakość izolacji termicznej determinują końcowe wyniki obliczeń <strong>Projektowego Obciążenia Cieplnego (OZC)</strong>, co bezpośrednio wpływa na geometrię pętli grzewczych oraz parametry pracy źródła ciepła.
        </p>
    </div>

    <div class="rk-proj-interactive">
        
        <div class="rk-proj-toggle-wrap">
            <button class="rk-proj-toggle-btn active" data-state="bad">
                <svg width="18" height="18" 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"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Odchudzona Izolacja (10 cm)
            </button>
            <button class="rk-proj-toggle-btn" data-state="good">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                Optymalna Izolacja (15 cm)
            </button>
        </div>

        <div class="rk-proj-dashboard state-bad" id="proj-dashboard">
            
            <div class="rk-proj-metrics">
                <div class="rk-metric-card alert" id="card-ozc">
                    <div class="rk-metric-title">Zapotrzebowanie (Q)</div>
                    <div class="rk-metric-val" id="val-ozc">1,8 kW</div>
                </div>
                <div class="rk-metric-card alert" id="card-flow">
                    <div class="rk-metric-title">Wymagany przepływ</div>
                    <div class="rk-metric-val" id="val-flow">310 l/h</div>
                </div>
                <div class="rk-metric-card alert" id="card-space">
                    <div class="rk-metric-title">Rozstaw rur</div>
                    <div class="rk-metric-val" id="val-space">co 10 cm</div>
                </div>
                <div class="rk-metric-card alert" id="card-loop">
                    <div class="rk-metric-title">Stan pompy obiegowej</div>
                    <div class="rk-metric-val" id="val-loop">Przeciążona</div>
                </div>
            </div>

            <div class="rk-proj-visual">
                <svg class="rk-svg-hydraulics" viewBox="0 0 300 200">
                    <rect class="svg-bg-concrete" x="10" y="20" width="280" height="160" rx="8" />
                    
                    <g transform="translate(0, 10)">
                        <path class="svg-pipe-path" d="M 40 180 L 40 40 L 260 40 L 260 140 L 80 140 L 80 80 L 220 80 L 220 100" />
                        <path class="svg-flow-dash" d="M 40 180 L 40 40 L 260 40 L 260 140 L 80 140 L 80 80 L 220 80 L 220 100" />
                        
                        <g class="svg-pipe-extra">
                            <path class="svg-pipe-path" d="M 60 180 L 60 60 L 240 60 L 240 120 L 100 120 L 100 100" />
                            <path class="svg-flow-dash" d="M 60 180 L 60 60 L 240 60 L 240 120 L 100 120 L 100 100" />
                        </g>
                    </g>
                    
                    <circle cx="50" cy="180" r="15" fill="#334155" stroke="#cbd5e1" stroke-width="3" />
                    <polygon class="svg-pump-icon" points="43,185 50,170 57,185" />
                </svg>
            </div>
        </div>

    </div>

    <div class="rk-proj-explanation">
        <p>Kiedy redukujemy straty ciepła przez podłogę poprzez zwiększenie grubości styropianu z 10 cm do 15 cm, zapotrzebowanie na moc cieplną pomieszczenia spada. To daje projektantowi potężne możliwości optymalizacyjne:</p>
        
        <ul style="color: var(--rk-proj-text); line-height: 1.8; margin-bottom: 25px;">
            <li><strong>Zwiększenie rozstawu rur:</strong> Zamiast gęstego układania co 10 cm (które generuje wysokie opory hydrauliczne), można zastosować rozstaw co 15 cm.</li>
            <li><strong>Skrócenie długości pętli:</strong> Krótsze pętle oznaczają mniejsze straty ciśnienia w instalacji hydraulicznej.</li>
            <li><strong>Obniżenie parametrów zasilania:</strong> Pompa ciepła może zasilać układ temperaturą o 2-3°C niższą, co przekłada się na drastyczny wzrost jej efektywności sezonowej (SCOP).</li>
        </ul>

        <div class="rk-tech-box">
            PRZYKŁAD HYDRAULICZNY:<br><br>
            [15 cm EPS] Q = 1,2 kW, przy ΔT = 5 K -> Wymagany przepływ czynnika: <strong>0,206 m³/h (206 l/h)</strong>.<br><br>
            [10 cm EPS] Q = 1,8 kW, przy ΔT = 5 K -> Wymagany przepływ czynnika: <strong style="color:#ef4444;">0,310 m³/h (310 l/h)</strong>.<br>
            Wynik? Przekroczenie dopuszczalnych oporów liniowych i konieczność zakupu większej pompy obiegowej.
        </div>
    </div>

    <div class="rk-proj-cta-section">
        <div class="rk-cta-wrapper">
            <h3 class="rk-cta-title">Zainwestuj w wiedzę. Zaoszczędź na eksploatacji.</h3>
            <p class="rk-cta-desc">
                Prawidłowo wykonany <strong>Projekt Ogrzewania Podłogowego (OZC + Hydraulika)</strong> to nie jest wydatek. To inwestycja, która optymalizuje ilość materiału na budowie i gwarantuje najniższe możliwe rachunki za ogrzewanie. Koszt projektu często zwraca się już w pierwszym sezonie grzewczym pracy pompy ciepła.
            </p>
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-cta-btn">
                ZAMÓW PROFESJONALNY PROJEKT OGRZEWANIA
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
            </a>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie domeny (Brak H w alercie)
    const dmn = window.location.hostname;
    const allowedDmns = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDmns.includes(dmn)) {
        const blck = document.getElementById('rk-proj-app');
        if (blck) {
            blck.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #ef4444; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 38px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Zabezpieczenie Licencyjne</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Interaktywny panel hydrauliczny oraz dane JSON-LD są własnością domeny <strong>Projekt-Ogrzewania.pl</strong>. Kod został zablokowany.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Toggle i Aktualizacja Danych
    const btns = document.querySelectorAll('.rk-proj-toggle-btn');
    const dashboard = document.getElementById('proj-dashboard');
    
    const valOzc = document.getElementById('val-ozc');
    const valFlow = document.getElementById('val-flow');
    const valSpace = document.getElementById('val-space');
    const valLoop = document.getElementById('val-loop');
    
    const cards = document.querySelectorAll('.rk-metric-card');

    const dataStates = {
        'bad': {
            ozc: '1,8 kW',
            flow: '310 l/h',
            space: 'co 10 cm',
            loop: 'Przeciążona',
            cssClass: 'state-bad',
            cardClass: 'alert'
        },
        'good': {
            ozc: '1,2 kW',
            flow: '206 l/h',
            space: 'co 15 cm',
            loop: 'Optymalna',
            cssClass: 'state-good',
            cardClass: 'ok'
        }
    };

    function updateDashboard(state) {
        const data = dataStates[state];
        
        // Zmiana tekstu
        valOzc.textContent = data.ozc;
        valFlow.textContent = data.flow;
        valSpace.textContent = data.space;
        valLoop.textContent = data.loop;

        // Zmiana klas kontenera nadrzędnego (dla animacji SVG)
        dashboard.className = `rk-proj-dashboard ${data.cssClass}`;

        // Zmiana klas kart (kolory)
        cards.forEach(card => {
            card.className = `rk-metric-card ${data.cardClass}`;
        });
    }

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            if (this.classList.contains('active')) return;
            
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            
            updateDashboard(this.getAttribute('data-state'));
        });
    });

    // Inicjalizacja bazowa
    updateDashboard('bad');
});
</script>



<style>
:root {
    --rk-cs-dark: #0f172a;
    --rk-cs-card: #1e293b;
    --rk-cs-brand: #10b981; /* Szmaragdowa zieleń - symbol oszczędności/pieniędzy */
    --rk-cs-brand-light: #d1fae5;
    --rk-cs-accent: #f59e0b; /* Złoto/Bursztyn */
    --rk-cs-danger: #ef4444; /* Czerwień dla strat */
    --rk-cs-bg: #f8fafc;
    --rk-cs-border: #e2e8f0;
    --rk-cs-text: #475569;
}

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

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

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

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

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

/* Moduł Interaktywny - Porównanie ROI */
.rk-cs-interactive {
    padding: 40px 50px;
    background: var(--rk-cs-bg);
}

.rk-cs-toggle-wrap {
    display: flex;
    background: #e2e8f0;
    border-radius: 12px;
    padding: 6px;
    max-width: 600px;
    margin: 0 auto 40px auto;
}

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

.rk-cs-toggle-btn.active[data-view="before"] {
    background: #ffffff;
    color: var(--rk-cs-danger);
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.15);
}

.rk-cs-toggle-btn.active[data-view="after"] {
    background: #ffffff;
    color: var(--rk-cs-brand);
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.15);
}

/* Wyeksponowane Oszczędności (Kluczowy element) */
.rk-cs-savings-dashboard {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-bottom: 40px;
}

.rk-cs-savings-card {
    background: #ffffff;
    border: 2px solid var(--rk-cs-border);
    border-radius: 20px;
    padding: 30px;
    text-align: center;
    position: relative;
    overflow: hidden;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 10px 20px -10px rgba(0,0,0,0.05);
}

.rk-cs-savings-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 5px;
    background: var(--rk-cs-border);
    transition: background 0.5s;
}

/* Stan "Po Audycie" - Zielony/Złoty */
.state-after .rk-cs-savings-card.capex { border-color: var(--rk-cs-brand); box-shadow: 0 15px 30px -10px rgba(16,185,129,0.2); }
.state-after .rk-cs-savings-card.capex::before { background: var(--rk-cs-brand); }
.state-after .rk-cs-savings-card.opex { border-color: var(--rk-cs-accent); box-shadow: 0 15px 30px -10px rgba(245,158,11,0.2); }
.state-after .rk-cs-savings-card.opex::before { background: var(--rk-cs-accent); }

/* Stan "Przed" - Czerwony */
.state-before .rk-cs-savings-card { border-color: #fca5a5; background: #fef2f2; }
.state-before .rk-cs-savings-card::before { background: var(--rk-cs-danger); }

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

.rk-cs-card-val {
    font-size: 48px;
    font-weight: 900;
    line-height: 1.1;
    margin-bottom: 10px;
    display: flex;
    justify-content: center;
    align-items: baseline;
    gap: 5px;
    transition: color 0.5s;
}

.rk-cs-card-val span {
    font-size: 20px;
    font-weight: 700;
}

.state-after .capex .rk-cs-card-val { color: var(--rk-cs-brand); }
.state-after .opex .rk-cs-card-val { color: var(--rk-cs-accent); }
.state-before .rk-cs-card-val { color: var(--rk-cs-danger); }

.rk-cs-card-desc {
    font-size: 14px;
    color: var(--rk-cs-text);
    font-weight: 600;
}

/* Detale Techniczne & SVG */
.rk-cs-tech-split {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 30px;
    background: #ffffff;
    border: 1px solid var(--rk-cs-border);
    border-radius: 16px;
    overflow: hidden;
}

.rk-cs-tech-details {
    padding: 30px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 20px;
}

.rk-tech-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--rk-cs-border);
}

.rk-tech-row:last-child { border-bottom: none; padding-bottom: 0; }

.rk-tech-label { font-size: 15px; font-weight: 700; color: var(--rk-cs-text); }
.rk-tech-val { font-size: 18px; font-weight: 900; color: var(--rk-cs-dark); transition: color 0.3s; }

.state-before .val-bad { color: var(--rk-cs-danger); }
.state-after .val-good { color: var(--rk-cs-brand); }

/* SVG Wizualizacja (Pompa i Dom) */
.rk-cs-svg-box {
    background: var(--rk-cs-dark);
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

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

/* Elementy SVG */
.anim-pump-body { transition: fill 0.5s; }
.state-before .anim-pump-body { fill: #ef4444; }
.state-after .anim-pump-body { fill: #10b981; }

.anim-eps-layer { transition: all 0.5s cubic-bezier(0.34, 1.56, 0.64, 1); }
.state-before .anim-eps-layer { height: 15px; y: 135px; fill: #fcd34d; }
.state-after .anim-eps-layer { height: 35px; y: 115px; fill: #475569; }

.anim-money-drop { opacity: 0; transition: opacity 0.3s; }
.state-before .anim-money-drop { opacity: 1; animation: dropMoney 1.5s infinite linear; }

.anim-shield { opacity: 0; transition: opacity 0.5s; transform-origin: center; transform: scale(0); }
.state-after .anim-shield { opacity: 1; transform: scale(1); }

@keyframes dropMoney {
    0% { transform: translateY(0); opacity: 1; }
    100% { transform: translateY(40px); opacity: 0; }
}

/* Tekst Case Study */
.rk-cs-story {
    padding: 0 50px 40px 50px;
    background: var(--rk-cs-bg);
}

.rk-cs-story p {
    font-size: 15px;
    line-height: 1.8;
    color: var(--rk-cs-text);
    margin: 0 0 20px 0;
}

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

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

@media (max-width: 768px) {
    .rk-cs-header, .rk-cs-interactive, .rk-cs-story { padding: 30px 20px; }
    .rk-cs-toggle-wrap { flex-direction: column; }
    .rk-cs-savings-dashboard { grid-template-columns: 1fr; gap: 20px; }
    .rk-cs-tech-split { grid-template-columns: 1fr; }
    .rk-cs-svg-box { height: 200px; }
    .rk-cs-card-val { font-size: 38px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Case Study: Analiza inwestycji i zwrot z izolacji (Podkarpacie 2026)",
    "description": "Zobacz, jak profesjonalny audyt OZC i zmiana styropianu z 10 cm EPS 70 na 14 cm grafitu wygenerowała 3200 PLN oszczędności na pompie ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset-casestudy",
    "name": "Analiza ROI: Optymalizacja Izolacji Podłogowej",
    "description": "Zestawienie kosztów inwestycyjnych (CAPEX) i operacyjnych (OPEX) przed i po optymalizacji grubości styropianu dla domu 165 m2.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zwrot z inwestycji w styropian",
      "koszty pompy ciepła a izolacja",
      "oszczędności na ogrzewaniu podłogowym",
      "audyt OZC Podkarpacie",
      "współczynnik U a moc pompy"
    ],
    "measurementTechnique": "Porównanie zapotrzebowania na moc pompy ciepła (8 kW vs 6 kW) w oparciu o spadek współczynnika U (0,32 -> 0,16 W/m2K).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Plan Wykonawcy: EPS 70 10cm, U=0,32, Pompa 8kW, Straty 24 kWh/m2.",
        "Projekt Inżynierski: EPS 100 Grafit 14cm, U=0,16, Pompa 6kW.",
        "Oszczędność CAPEX (Pompa): 3200 PLN jednorazowo.",
        "Oszczędność OPEX (Prąd): 480 PLN rocznie."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp-casestudy",
    "name": "Kalkulator Oszczędności Inwestycyjnych (ROI)",
    "description": "Interaktywny symulator prezentujący różnicę w kosztach zakupu pompy ciepła oraz rocznych rachunkach przy zmianie warstw izolacji.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cs-container" id="rk-cs-app">
    
    <div class="rk-cs-header">
        <div class="rk-cs-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
            Case Study Inwestora
        </div>
        <h2>Analiza inwestycji w Podkarpaciu (Maj 2025)</h2>
        <p>
            Teoria to jedno, ale liczby nie kłamią. Zobacz na realnym przykładzie mojego klienta (dom 165 m², III strefa klimatyczna, projektowa -20°C), jak odchudzanie izolacji uderza bezpośrednio w portfel, oraz jak <strong>inżynierski audyt OZC odzyskał tysiące złotych</strong>.
        </p>
    </div>

    <div class="rk-cs-interactive state-after" id="cs-interactive-board">
        
        <div class="rk-cs-toggle-wrap">
            <button class="rk-cs-toggle-btn" data-view="before">
                <svg width="18" height="18" 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"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Wizja Wykonawcy ("Na Oko")
            </button>
            <button class="rk-cs-toggle-btn active" data-view="after">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                Audyt Inżynierski (OZC)
            </button>
        </div>

        <div class="rk-cs-savings-dashboard">
            <div class="rk-cs-savings-card capex">
                <div class="rk-cs-card-title" id="title-capex">Oszczędność przy zakupie Pompy Ciepła</div>
                <div class="rk-cs-card-val"><span id="sign-capex">+</span><span id="val-capex">3200</span> <span>PLN</span></div>
                <div class="rk-cs-card-desc" id="desc-capex">Uniknięto zakupu przewymiarowanego urządzenia 8 kW.</div>
            </div>
            <div class="rk-cs-savings-card opex">
                <div class="rk-cs-card-title" id="title-opex">Zysk na rachunkach co sezon grzewczy</div>
                <div class="rk-cs-card-val"><span id="sign-opex">+</span><span id="val-opex">480</span> <span>PLN/rok</span></div>
                <div class="rk-cs-card-desc" id="desc-opex">Gwarancja niższych kosztów eksploatacyjnych dzięki COP.</div>
            </div>
        </div>

        <div class="rk-cs-tech-split">
            <div class="rk-cs-tech-details">
                <div class="rk-tech-row">
                    <span class="rk-tech-label">Zastosowany styropian:</span>
                    <span class="rk-tech-val" id="tech-mat">14 cm EPS 100 Grafit</span>
                </div>
                <div class="rk-tech-row">
                    <span class="rk-tech-label">Współczynnik przenikania (U):</span>
                    <span class="rk-tech-val val-good" id="tech-u">0,16 W/(m²·K)</span>
                </div>
                <div class="rk-tech-row">
                    <span class="rk-tech-label">Wymagana moc pompy:</span>
                    <span class="rk-tech-val val-good" id="tech-pump">Tylko 6 kW</span>
                </div>
            </div>

            <div class="rk-cs-svg-box">
                <svg class="rk-svg-roi" viewBox="0 0 200 200">
                    <rect x="50" y="50" width="100" height="100" fill="#1e293b" rx="4"></rect>
                    <polygon points="40,50 100,10 160,50" fill="#334155"></polygon>
                    
                    <rect class="anim-eps-layer" x="55" y="115" width="90" height="35" rx="2"></rect>
                    
                    <rect class="anim-pump-body" x="15" y="110" width="25" height="40" rx="3"></rect>
                    <circle cx="27.5" cy="125" r="8" fill="#0f172a"></circle>
                    
                    <g class="anim-money-drop">
                        <circle cx="80" cy="155" r="6" fill="#ef4444"></circle>
                        <text x="80" y="158" font-size="8" fill="#ffffff" font-weight="bold" text-anchor="middle">$</text>
                        <circle cx="120" cy="155" r="6" fill="#ef4444"></circle>
                        <text x="120" y="158" font-size="8" fill="#ffffff" font-weight="bold" text-anchor="middle">$</text>
                    </g>

                    <g class="anim-shield">
                        <path d="M100 165 L140 165 L120 190 Z" fill="#10b981"></path>
                        <path d="M100 165 Q120 185 140 165 Z" fill="#34d399"></path>
                        <text x="120" y="175" font-family="sans-serif" font-size="10" font-weight="bold" fill="#ffffff" text-anchor="middle">ZYSK</text>
                    </g>
                </svg>
            </div>
        </div>

    </div>

    <div class="rk-cs-story">
        <p>
            Modyfikację założeń doskonale obrazuje przypadek z mojej inżynierskiej praktyki. Pierwotny plan wykonawcy u pana Janusza zakładał ułożenie jednej warstwy przypadkowego styropianu <strong>EPS 70 o grubości zaledwie 10 cm</strong>.
        </p>
        <p>
            Skutkowałoby to współczynnikiem przenikania ciepła na poziomie U = 0,32 W/(m²·K) – wartością rażąco naruszającą prawo budowlane i generującą straty ciepła rzędu 24 kWh/(m²·rok) przez samą podłogę na gruncie. Wykonawca planował zamaskować ten błąd doborem większej i droższej pompy ciepła o mocy 8 kW.
        </p>
        <p>
            Po wykonaniu profesjonalnego audytu i szczegółowych <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obliczeń OZC</a>, skorygowałem projekt. Wprowadziliśmy <strong>układ dwuwarstwowy z przesunięciem spoin o łącznej grubości 14 cm styropianu grafitowego EPS 100</strong> (λ = 0,031 W/(m·K)). W efekcie uzyskaliśmy rewelacyjny współczynnik U = 0,16 W/(m²·K), co obniżyło projektowe obciążenie cieplne całego budynku o równe 1,4 kW. Oszczędność to nie tylko tańsza o 3200 zł mniejsza pompa, ale przede wszystkim spokój i niższe rachunki na dekady.
        </p>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie domeny
    const hostDomain = window.location.hostname;
    const authList = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!authList.includes(hostDomain)) {
        const shield = document.getElementById('rk-cs-app');
        if (shield) {
            shield.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #ef4444; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 38px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Blokada Skryptu ROI</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Interaktywny panel analizy kosztów i oszczędności (Case Study) należy do domeny <strong>Projekt-Ogrzewania.pl</strong>. Uruchomienie zatrzymane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Dashboardu Oszczędności
    const btns = document.querySelectorAll('.rk-cs-toggle-btn');
    const board = document.getElementById('cs-interactive-board');
    
    // Pola Danych
    const valCapex = document.getElementById('val-capex');
    const signCapex = document.getElementById('sign-capex');
    const titleCapex = document.getElementById('title-capex');
    const descCapex = document.getElementById('desc-capex');

    const valOpex = document.getElementById('val-opex');
    const signOpex = document.getElementById('sign-opex');
    const titleOpex = document.getElementById('title-opex');
    const descOpex = document.getElementById('desc-opex');

    const tMat = document.getElementById('tech-mat');
    const tU = document.getElementById('tech-u');
    const tPump = document.getElementById('tech-pump');

    const states = {
        'before': {
            css: 'state-before',
            capexTitle: 'Przepłacasz za Pompę Ciepła',
            capexSign: '-',
            capexVal: '3200',
            capexDesc: 'Wymuszony zakup przewymiarowanej jednostki 8 kW.',
            opexTitle: 'Straty na rachunkach co sezon',
            opexSign: '-',
            opexVal: '480',
            opexDesc: 'Ciepło ucieka w grunt. Wyższe rachunki za prąd.',
            mat: '10 cm EPS 70 (Przypadkowy)',
            uVal: '0,32 W/(m²·K)',
            pump: 'Aż 8 kW (Przewymiarowana)'
        },
        'after': {
            css: 'state-after',
            capexTitle: 'Oszczędność przy zakupie Pompy Ciepła',
            capexSign: '+',
            capexVal: '3200',
            capexDesc: 'Uniknięto zakupu przewymiarowanego urządzenia 8 kW.',
            opexTitle: 'Zysk na rachunkach co sezon grzewczy',
            opexSign: '+',
            opexVal: '480',
            opexDesc: 'Gwarancja niższych kosztów eksploatacyjnych dzięki wyższemu COP.',
            mat: '14 cm EPS 100 Grafit',
            uVal: '0,16 W/(m²·K)',
            pump: 'Tylko 6 kW (Zoptymalizowana)'
        }
    };

    function animateValue(obj, start, end, duration) {
        let startTimestamp = null;
        const step = (timestamp) => {
            if (!startTimestamp) startTimestamp = timestamp;
            const progress = Math.min((timestamp - startTimestamp) / duration, 1);
            obj.innerHTML = Math.floor(progress * (end - start) + start);
            if (progress < 1) {
                window.requestAnimationFrame(step);
            }
        };
        window.requestAnimationFrame(step);
    }

    function switchState(stateKey) {
        const s = states[stateKey];
        
        // Zmiana klasy głównej (odpala CSS i SVG animacje)
        board.className = `rk-cs-interactive ${s.css}`;

        // Teksty
        titleCapex.textContent = s.capexTitle;
        signCapex.textContent = s.capexSign;
        descCapex.textContent = s.capexDesc;

        titleOpex.textContent = s.opexTitle;
        signOpex.textContent = s.opexSign;
        descOpex.textContent = s.opexDesc;

        tMat.textContent = s.mat;
        tU.textContent = s.uVal;
        tPump.textContent = s.pump;

        // Odświeżenie klas dla kolorów U i Pompy
        if (stateKey === 'before') {
            tU.className = 'rk-tech-val val-bad';
            tPump.className = 'rk-tech-val val-bad';
        } else {
            tU.className = 'rk-tech-val val-good';
            tPump.className = 'rk-tech-val val-good';
        }

        // Animacja samych liczb
        animateValue(valCapex, 0, parseInt(s.capexVal), 600);
        animateValue(valOpex, 0, parseInt(s.opexVal), 600);
    }

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            if(this.classList.contains('active')) return;
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            switchState(this.getAttribute('data-view'));
        });
    });

    // Uruchomienie animacji startowej (Po Audycie) po załadowaniu
    setTimeout(() => {
        animateValue(valCapex, 0, 3200, 800);
        animateValue(valOpex, 0, 480, 800);
    }, 300);
});
</script>



<style>
:root {
    --rk-sum-eps-dark: #020617;
    --rk-sum-eps-panel: #0f172a;
    --rk-sum-eps-primary: #f59e0b; /* Termiczny bursztyn/złoto */
    --rk-sum-eps-primary-light: #fef3c7;
    --rk-sum-eps-accent: #3b82f6; /* Błękit dla kontrastu */
    --rk-sum-eps-bg: #f8fafc;
    --rk-sum-eps-border: #cbd5e1;
    --rk-sum-eps-text: #334155;
    --rk-sum-eps-text-dim: #64748b;
}

.rk-sum-eps-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(245, 158, 11, 0.15);
    border: 1px solid rgba(245, 158, 11, 0.3);
    overflow: hidden;
}

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

.rk-sum-eps-header::after {
    content: ''; position: absolute; right: 0; top: 0; width: 300px; height: 100%;
    background: radial-gradient(circle at right, rgba(245, 158, 11, 0.15) 0%, transparent 70%);
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.rk-eps-inputs {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-eps-input-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

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

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

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

.rk-eps-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-eps-result-box.highlight { border-color: var(--rk-sum-eps-primary); background: rgba(245, 158, 11, 0.1); }

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

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

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

.rk-eps-author-info { flex-grow: 1; }
.rk-eps-author-info h4 { margin: 0 0 6px 0; font-size: 18px; font-weight: 900; color: var(--rk-sum-eps-dark); }
.rk-eps-author-info p { margin: 0; font-size: 14px; color: var(--rk-sum-eps-text); line-height: 1.6; }

.rk-eps-social { display: flex; gap: 15px; margin-top: 12px; }
.rk-eps-social a { color: var(--rk-sum-eps-accent); font-size: 13px; font-weight: 800; text-decoration: none; display: inline-flex; align-items: center; gap: 5px; transition: color 0.2s; }
.rk-eps-social a:hover { color: #1d4ed8; text-decoration: underline; }

/* Animacje SVG */
.svg-heat-block { opacity: 0; }
.active .svg-heat-block { opacity: 1; animation: blockHeat 2s infinite alternate; }
@keyframes blockHeat { from { transform: translateY(0); } to { transform: translateY(-10px); } }

.svg-weight-press { transform: translateY(-20px); }
.active .svg-weight-press { animation: weightPress 1.5s forwards; }
@keyframes weightPress { 100% { transform: translateY(0); } }

.svg-overlap-slide { transform: translateX(20px); opacity: 0; }
.active .svg-overlap-slide { animation: overlapSlide 1s forwards; }
@keyframes overlapSlide { 100% { transform: translateX(0); opacity: 1; } }

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article-summary-final",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Inżynierskie podsumowanie: Ile styropianu pod podłogówkę?",
    "description": "Kompaktowe zestawienie norm WT2021, wymagań twardości EPS 100 oraz interaktywny kalkulator objętości izolacji podłogowej. Twórca: Robert Kucharski.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "jobTitle": "CEO & Główny Projektant HVAC",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp"
      }
    },
    "datePublished": "2026-05-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset-summary",
    "name": "Wskaźniki materiałowe dla izolacji EPS podłogówki",
    "description": "Twarde dane przeliczeniowe łączące metraż budynku z objętością, szacunkową ilością paczek styropianu oraz oporem cieplnym przegrody.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ile styropianu pod ogrzewanie podłogowe",
      "grubość styropianu eps 100",
      "współczynnik przenikania ciepła podłogi na gruncie",
      "mostki termiczne w podłodze",
      "objętość styropianu kalkulator"
    ],
    "measurementTechnique": "Szacowanie oparte na iloczynie powierzchni i docelowej grubości wyrażonej w metrach. Opór cieplny (R) zoptymalizowany dla białego EPS 100 o parametrze λ=0.036 W/mK.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Minimalna grubość na gruncie: 15 cm Biały lub 12 cm Grafit (WT2021)",
        "Minimalna twardość pod wylewkę: CS(10) ≥ 100 kPa (EPS 100)",
        "Średnia pojemność paczki EPS: ~0.3 m3"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp-summary",
    "name": "Kalkulator Objętości Styropianu",
    "description": "Narzędzie inżynierskie podsumowujące. Przelicza metraż podłogi oraz wybraną grubość styropianu na kubaturę (m3), opór cieplny oraz ilość paczek.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5 Forms",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-sum-eps-container" id="rk-sum-eps-app">
    
    <div class="rk-sum-eps-header">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski CEO Projekt ogrzewania" class="rk-eps-expert-avatar" loading="lazy">
        <div class="rk-eps-header-content">
            <div class="rk-eps-badge">
                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                Wnioski Eksperta
            </div>
            <h2>Inżynierskie podsumowanie: Ile styropianu pod podłogówkę?</h2>
            <p>Zebrałem dla Ciebie 3 żelazne zasady izolacji podłogowej. Ich zignorowanie przed zalaniem jastrychu będzie Cię kosztować tysiące złotych przez lata.</p>
        </div>
    </div>

    <div class="rk-sum-eps-body">
        
        <div class="rk-eps-rules-list">
            <button class="rk-eps-rule-btn active" data-panel="eps-det-1">
                <div class="rk-eps-rule-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg></div>
                <div class="rk-eps-rule-text">
                    <h3>Norma WT2021 to baza</h3>
                    <p>Minimum 15 cm białego styropianu na gruncie.</p>
                </div>
            </button>

            <button class="rk-eps-rule-btn" data-panel="eps-det-2">
                <div class="rk-eps-rule-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><line x1="12" y1="2" x2="12" y2="22"></line><line x1="2" y1="12" x2="22" y2="12"></line></svg></div>
                <div class="rk-eps-rule-text">
                    <h3>Twardość ma znaczenie</h3>
                    <p>EPS 100 to absolutne minimum pod jastrych.</p>
                </div>
            </button>

            <button class="rk-eps-rule-btn" data-panel="eps-det-3">
                <div class="rk-eps-rule-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="21" y1="10" x2="3" y2="10"></line><line x1="21" y1="6" x2="3" y2="6"></line><line x1="21" y1="14" x2="3" y2="14"></line><line x1="21" y1="18" x2="3" y2="18"></line></svg></div>
                <div class="rk-eps-rule-text">
                    <h3>Montaż w mijankę</h3>
                    <p>Wyeliminuj pionowe mostki termiczne spoin.</p>
                </div>
            </button>
        </div>

        <div class="rk-eps-rule-details">
            
            <div class="rk-eps-detail-panel active" id="eps-det-1">
                <h4>Fizyki nie oszukasz</h4>
                <p>Aby spełnić normę WT2021 (<a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/" class="rk-eps-link">współczynnik U ≤ 0,20</a>), potrzebujesz grubej bariery. Chudszy styropian to natychmiastowa ucieczka ciepła w grunt i straty pieniędzy.</p>
                <div class="rk-eps-svg-box">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <rect x="50" y="40" width="100" height="40" fill="#fcd34d" rx="4"></rect>
                        <text x="100" y="65" font-family="sans-serif" font-weight="900" font-size="12" fill="#0f172a" text-anchor="middle">EPS 15 cm</text>
                        <g class="svg-heat-block">
                            <path d="M 80 85 L 85 70 L 90 85 Z" fill="#ef4444"></path>
                            <path d="M 120 85 L 115 70 L 110 85 Z" fill="#ef4444"></path>
                        </g>
                    </svg>
                </div>
            </div>

            <div class="rk-eps-detail-panel" id="eps-det-2">
                <h4>Zagrożenie dla wylewki</h4>
                <p>Zastosowanie taniego styropianu fasadowego (EPS 70) skończy się tragedią. Płyty ugną się pod masą jastrychu (ok. 130 kg/m²), niszcząc <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" class="rk-eps-link">wylewkę</a> i zrywając instalację.</p>
                <div class="rk-eps-svg-box">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <g class="svg-weight-press">
                            <rect x="80" y="10" width="40" height="30" fill="#94a3b8" rx="2"></rect>
                            <text x="100" y="30" fill="#0f172a" font-weight="bold" font-size="10" text-anchor="middle">130 KG</text>
                            <path d="M 100 45 L 95 35 L 105 35 Z" fill="#ffffff"></path>
                        </g>
                        <rect x="60" y="60" width="80" height="20" fill="#38bdf8" rx="2"></rect>
                        <text x="100" y="74" fill="#0f172a" font-weight="900" font-size="10" text-anchor="middle">EPS 100 (SZTYWNY)</text>
                    </svg>
                </div>
            </div>

            <div class="rk-eps-detail-panel" id="eps-det-3">
                <h4>Eliminacja mostków liniowych</h4>
                <p>Nigdy nie układaj styropianu w jednej, grubej warstwie. Konieczny jest montaż krzyżowy (np. 10 cm + 5 cm) przesunięty o minimum 20 cm, aby <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/" class="rk-eps-link">zapobiec ucieczce energii</a> w dół przez spoiny płyt.</p>
                <div class="rk-eps-svg-box">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <rect x="20" y="30" width="100" height="20" fill="#fbbf24" rx="2"></rect>
                        <rect class="svg-overlap-slide" x="60" y="55" width="100" height="20" fill="#f59e0b" rx="2"></rect>
                        <line x1="60" y1="20" x2="60" y2="85" stroke="#ffffff" stroke-width="2" stroke-dasharray="4"></line>
                        <line x1="120" y1="20" x2="120" y2="85" stroke="#ffffff" stroke-width="2" stroke-dasharray="4"></line>
                    </svg>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-eps-quick-calc">
        <div class="rk-eps-calc-header">
            <h4>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-sum-eps-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;">(Szacunki bazowe)</span>
        </div>

        <div class="rk-eps-calc-grid">
            
            <div class="rk-eps-inputs">
                <div class="rk-eps-input-group">
                    <div class="rk-eps-calc-label">
                        Powierzchnia podłóg:
                        <span id="epsAreaOut">120 m²</span>
                    </div>
                    <input type="range" class="rk-eps-range" id="epsAreaSlider" min="50" max="300" step="10" value="120">
                </div>
                
                <div class="rk-eps-input-group">
                    <div class="rk-eps-calc-label">
                        Grubość izolacji EPS:
                        <span id="epsThickOut">15 cm</span>
                    </div>
                    <input type="range" class="rk-eps-range" id="epsThickSlider" min="5" max="25" step="1" value="15">
                </div>
            </div>

            <div class="rk-eps-results">
                <div class="rk-eps-result-box highlight">
                    <span class="rk-eps-res-val" id="resVolume">18.0 <span style="font-size:14px;color:var(--rk-sum-eps-primary);">m³</span></span>
                    <span class="rk-eps-res-lab">Suma objętości EPS</span>
                </div>
                <div class="rk-eps-result-box">
                    <span class="rk-eps-res-val" id="resRValue">4.17 <span style="font-size:14px;color:#94a3b8;">R</span></span>
                    <span class="rk-eps-res-lab">Szacunkowy opór (Biały)</span>
                </div>
                <div class="rk-eps-result-box">
                    <span class="rk-eps-res-val" id="resPacks">60 <span style="font-size:14px;color:#94a3b8;">szt.</span></span>
                    <span class="rk-eps-res-lab">Paczki (~0.3m³ / szt.)</span>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-eps-author">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Projekt Ogrzewania - Ekspert HVAC" class="rk-eps-author-photo" loading="lazy">
        <div class="rk-eps-author-info">
            <h4>Robert Kucharski</h4>
            <p>CEO i twórca portalu Projekt-Ogrzewania.pl. Główny projektant i audytor instalacji HVAC. Wszystkie publikowane tu treści opieram na wieloletnim, praktycznym doświadczeniu zdobytym bezpośrednio na budowach. Moją misją jest dostarczanie twardej, inżynierskiej wiedzy, chroniącej budżety tysięcy inwestorów w całej Polsce.</p>
            <div class="rk-eps-social">
                <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() {
    // 1. Zabezpieczenie Domenowe
    const currentDomain = window.location.hostname;
    const authDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!authDomains.includes(currentDomain)) {
        document.getElementById('rk-sum-eps-app').innerHTML = `
            <div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border:1px solid #ef4444; border-radius:24px; font-weight:800;">
                BŁĄD LICENCJI: Kod podsumowania jest własnością projekt-ogrzewania.pl
            </div>`;
        return;
    }

    // 2. Logika Zakładek
    const btns = document.querySelectorAll('.rk-eps-rule-btn');
    const panels = document.querySelectorAll('.rk-eps-detail-panel');

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

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

    // 3. Logika Estymatora Objętości Styropianu
    const sliderArea = document.getElementById('epsAreaSlider');
    const outArea = document.getElementById('epsAreaOut');
    
    const sliderThick = document.getElementById('epsThickSlider');
    const outThick = document.getElementById('epsThickOut');

    const resVol = document.getElementById('resVolume');
    const resR = document.getElementById('resRValue');
    const resPacks = document.getElementById('resPacks');

    function calculateEPS() {
        const area = parseInt(sliderArea.value);
        const thickCm = parseInt(sliderThick.value);
        const thickM = thickCm / 100;
        
        outArea.textContent = area + ' m²';
        outThick.textContent = thickCm + ' cm';

        // Objętość = pole * grubość (w metrach)
        const volume = area * thickM;
        // Szacunkowy opór cieplny (dla EPS białego lambda ~0.036)
        const rValue = thickM / 0.036;
        // Szacunkowa ilość paczek (zakładając średnio 0.3 m3 w paczce)
        const packs = Math.ceil(volume / 0.3);

        resVol.innerHTML = volume.toFixed(1) + ' <span style="font-size:14px;color:var(--rk-sum-eps-primary);">m³</span>';
        resR.innerHTML = rValue.toFixed(2) + ' <span style="font-size:14px;color:#94a3b8;">R</span>';
        resPacks.innerHTML = packs + ' <span style="font-size:14px;color:#94a3b8;">szt.</span>';
    }

    if(sliderArea && sliderThick) {
        sliderArea.addEventListener('input', calculateEPS);
        sliderThick.addEventListener('input', calculateEPS);
        calculateEPS(); // Init
    }
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-card: #1e293b;
    --rk-faq-brand: #6366f1; /* Eksperckie Indygo */
    --rk-faq-brand-light: #eef2ff;
    --rk-faq-accent: #f59e0b; /* Bursztyn dla akcentów twardości */
    --rk-faq-blue: #3b82f6;
    --rk-faq-bg: #f8fafc;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #475569;
}

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

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

.rk-faq-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(99, 102, 241, 0.35);
    color: #c7d2fe;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(199, 210, 254, 0.2);
}

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

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

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

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

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

.rk-faq-item.active {
    border-color: var(--rk-faq-brand);
    box-shadow: 0 12px 20px -8px rgba(99, 102, 241, 0.15);
}

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

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

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

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

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

/* Wrappery Animacji Rozwijania Grid */
.rk-faq-answer-wrapper {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

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

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

/* Zawartość Odpowiedzi */
.rk-faq-content {
    padding: 25px;
    border-top: 1px solid var(--rk-faq-border);
    display: grid;
    grid-template-columns: 1fr 220px;
    gap: 30px;
    align-items: center;
}

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

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

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

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

/* Kontenery Wizualizacji SVG */
.rk-faq-visual {
    background: var(--rk-faq-dark);
    border-radius: 14px;
    padding: 15px;
    height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
    border: 2px solid #334155;
    position: relative;
    overflow: hidden;
}

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

/* --- Dedykowane Animacje SVG dla Akapitów FAQ --- */

/* 1. Strop międzykondygnacyjny */
.anim-acoustic-wave { stroke: #3b82f6; stroke-width: 2; fill: none; opacity: 0; transition: all 0.4s; }
.rk-faq-item.active .anim-acoustic-wave { opacity: 1; animation: soundDiminish 1.5s infinite linear; }
@keyframes soundDiminish {
    0% { transform: scale(0.8); opacity: 1; }
    100% { transform: scale(1.3); opacity: 0; transform-origin: center; }
}

/* 2. Raster i ucieczka ciepła */
.anim-heat-drop { stroke: #ef4444; stroke-width: 3; stroke-linecap: round; opacity: 0; }
.rk-faq-item.active .anim-heat-drop { opacity: 1; animation: heatPassesThrough 2s infinite linear; }
@keyframes heatPassesThrough {
    0% { transform: translateY(-20px); opacity: 1; }
    100% { transform: translateY(40px); opacity: 0.2; }
}

/* 3. Wytrzymałość EPS vs XPS */
.anim-press-plate { fill: #64748b; transition: transform 0.6s 0.2s cubic-bezier(0.25, 1, 0.5, 1); }
.rk-faq-item.active .anim-press-plate { transform: translateY(8px); }

/* 4. Płynny jastrych anhydrytowy */
.anim-fluid-pour { fill: #f59e0b; transform: scaleX(0); transform-origin: left; transition: transform 0.8s 0.2s ease-out; }
.rk-faq-item.active .anim-fluid-pour { transform: scaleX(1); }

/* 5. Gęstość i twardość kciuka */
.anim-stamp { fill: #10b981; opacity: 0; transform: scale(0.5); transition: all 0.5s 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275); }
.rk-faq-item.active .anim-stamp { opacity: 1; transform: scale(1); transform-origin: center; }


/* Responsywność mobilna */
@media (max-width: 768px) {
    .rk-faq-header, .rk-faq-interactive { padding: 30px 20px; }
    .rk-faq-header h2 { font-size: 24px; }
    .rk-faq-content { grid-template-columns: 1fr; gap: 20px; padding: 15px 10px; }
    .rk-faq-visual { height: 120px; max-width: 240px; margin: 0 auto; width: 100%; }
    .rk-faq-question { font-size: 15px; padding: 18px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "FAQ – Najczęściej zadawane pytania o styropian pod ogrzewanie podłogowe",
    "description": "Eksperckie odpowiedzi na pytania inwestorów o grubość izolacji na stropie, rolę folii z rastrem oraz parametry twardości EPS i XPS pod jastrych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Jaka jest absolutnie minimalna grubość styropianu pod ogrzewanie podłogowe na stropie międzykondygnacyjnym?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Na stropie pomiędzy dwoma ogrzewanymi pomieszczeniami minimalna grubość styropianu wynosi 30-50 mm (3-5 cm). Warstwa ta nie pełni roli bariery przed stratami ciepła do otoczenia, lecz stanowi izolację akustyczną oraz techniczną bazę do mocowania spinek montażowych rur grzewczych."
        }
      },
      {
        "@type": "Question",
        "name": "Czy folia z nadrukiem rastra zastępuje styropian lub pozwala zmniejszyć jego grubość?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, folia aluminiowa bądź metalizowana z rastrem pełni wyłącznie funkcję ekranu odbijającego część promieniowania podczerwonego oraz ułatwia prawidłowy rozstaw rur co 10 lub 15 cm. Posiada ona zerowy opór cieplny, dlatego nie pozwala na redukcję choćby jednego milimetra z grubości płyt styropianowych."
        }
      },
      {
        "@type": "Question",
        "name": "Co jest lepsze pod ogrzewanie podłogowe: styropian EPS czy polistyren ekstrudowany XPS?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Polistyren ekstrudowany XPS jest obiektywnie lepszym materiałem ze względu na wyższą wytrzymałość na ściskanie (od 300 kPa) oraz niższą nasiąkliwość wodą, jednak ze względu na wysoki koszt stosuje się go głównie w miejscach narażonych na ekstremalne obciążenia (np. garaże) lub wilgoć. W pomieszczeniach mieszkalnych w zupełności wystarczający jest styropian EPS 100."
        }
      },
      {
        "@type": "Question",
        "name": "Czy pod wylewkę anhydrytową trzeba stosować inny styropian niż pod klasyczny jastrych cementowy?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Pod względem mechanicznym wymagania są identyczne – minimalna twardość to EPS 100. Kluczowa różnica tkwi w hydroizolacji: wylewka anhydrytowa ma płynną konsystencję, co bezwzględnie wymaga szczelnego wyklejenia styków folii taśmami, aby płynny jastrych nie wpłynął pomiędzy płyty styropianowe."
        }
      },
      {
        "@type": "Question",
        "name": "Jak sprawdzić, czy wykonawca ułożył styropian o właściwych parametrach twardości?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Każda paczka styropianu posiada etykietę z kodem specyfikacji technicznej, na której należy szukać oznaczenia CS(10)100 lub wyższego. Dodatkowo, styropian EPS 100 charakteryzuje się minimalną gęstością własną na poziomie ok. 18 kg/m3 – płyty w dłoniach muszą być sztywne i nie mogą się łatwo kruszyć pod naciskiem kciuka."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset-faq",
    "name": "Zbiorcza Tabela Wytycznych Normatywnych dla Izolacji Podłogowej",
    "description": "Zestawienie fizycznych i mechanicznych parametrów materiałów izolacyjnych wymaganych przez normę PN-EN 1264 w strukturze akapitów FAQ.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": { "@type": "Person", "name": "Robert Kucharski" },
    "keywords": [
      "styropian na stropie",
      "folia z rastrem podłogówka",
      "twardość styropianu EPS 100",
      "izolacja pod wylewkę anhydrytową",
      "wytrzymałość xps na ściskanie"
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp-faq",
    "name": "Interaktywny Panel Wyjaśnień Technicznych",
    "description": "System dynamicznej wizualizacji wektorowej procesów zachodzących w warstwach izolacji termicznej podłogówki.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": { "@type": "Person", "name": "Robert Kucharski" }
  }
]
</script>

<div class="rk-faq-container" id="rk-faq-app">
    <div class="rk-faq-header">
        <div class="rk-faq-badge">
            <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Inżynierska Baza Odpowiedzi
        </div>
        <h2>FAQ – <span>Najczęściej zadawane pytania</span></h2>
    </div>

    <div class="rk-faq-interactive">
        <div class="rk-faq-list">
            
            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>1. Jaka jest absolutnie minimalna grubość styropianu pod ogrzewanie podłogowe na stropie międzykondygnacyjnym?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Na stropie pomiędzy dwoma ogrzewanymi pomieszczeniami minimalna grubość styropianu wynosi <strong>30-50 mm (3-5 cm)</strong>. Warstwa ta nie pełni roli bariery przed stratami ciepła do otoczenia, lecz stanowi kluczową izolację akustyczną wyguszającą dźwięki uderzeniowe. Stanowi również techniczną bazę stabilizującą spinki montażowe dla <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/" class="rk-link">rur do ogrzewania podłogowego</a>, co zabezpiecza je przed wypłynięciem podczas zalewania <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/" class="rk-link">grubości wylewki</a>.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="10" y="45" width="80" height="15" fill="#475569" />
                                    <rect x="10" y="30" width="80" height="12" fill="#94a3b8" />
                                    <circle class="anim-acoustic-wave" cx="50" cy="36" r="10" />
                                    <circle cx="50" cy="36" r="4" fill="#ef4444" />
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>2. Czy folia z nadrukiem rastra zastępuje styropian lub pozwala zmniejszyć jego grubość?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Nie, folia aluminiowa bądź metalizowana z rastrem pełni wyłącznie funkcję ekranu refleksyjnego odbijającego część promieniowania podczerwonego oraz ułatwia instalatorowi zachowanie równego <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewanym-podlogowym/" class="rk-link">rozstawu rur podłogówki</a>. Posiada ona <strong>zerowy opór cieplny (R)</strong>, dlatego nie pozwala na redukcję choćby jednego milimetra z grubości płyt styropianowych. Prawdziwą barierą blokującą ucieczkę energii jest wyłącznie zwarta struktura powietrza zamknięta w spienionym polistyrenie.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <line x1="10" y1="35" x2="90" y2="35" stroke="#cbd5e1" stroke-width="2" stroke-dasharray="2 2" />
                                    <path class="anim-heat-drop" d="M 50 15 L 50 55" />
                                    <circle cx="50" cy="15" r="5" fill="#ef4444" />
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>3. Co jest lepsze pod ogrzewanie podłogowe: styropian EPS czy polistyren ekstrudowany XPS?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Polistyren ekstrudowany XPS jest obiektywnie trwalszym materiałem ze względu na wyższą wytrzymałość na ściskanie wynoszącą <strong>minimum 300 kPa</strong> oraz zerową nasiąkliwość wodą. Ze względu na wysoki koszt zakupu stosuje się go głównie w strefach narażonych na wilgoć lub potężne obciążenia skupione, takich jak przydomowe garaże czy kotłownie z ciężkimi zasobnikami. W pomieszczeniach mieszkalnych w zupełności wystarczający i ekonomicznie zoptymalizowany jest twardy styropian <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/" class="rk-link">EPS 100 o wysokim oporze cieplnym</a>.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="25" y="40" width="50" height="20" fill="#3b82f6" rx="2" />
                                    <rect class="anim-press-plate" x="20" y="15" width="60" height="6" />
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>4. Czy pod wylewkę anhydrytową trzeba stosować inny styropian niż pod klasyczny jastrych cementowy?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Pod względem odporności mechanicznej wymagania są tożsame – minimalny próg twardości to EPS 100. Kluczowa różnica tkwi jednak w sposobie przygotowania izolacji przeciwwilgociowej. Płynny jastrych anhydrytowy ze względu na swoją samopoziomującą konsystencję wymaga **bezwzględnego wyklejenia i uszczelnienia styków folii** taśmami wodoodpornymi. Brak szczelności spowoduje, że płynna masa wpłynie w szczeliny styropianu, unosząc płyty do góry i tworząc potężne mostki termiczne niszczące efektywność całego systemu grzewczego.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="15" y="45" width="70" height="15" fill="#64748b" />
                                    <circle cx="30" cy="45" r="5" fill="#ef4444" />
                                    <circle cx="50" cy="45" r="5" fill="#ef4444" />
                                    <circle cx="70" cy="45" r="5" fill="#ef4444" />
                                    <rect class="anim-fluid-pour" x="15" y="25" width="70" height="15" opacity="0.6"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>5. Jak sprawdzić, czy wykonawca ułożył styropian o właściwych parametrach twardości?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Weryfikację należy zacząć od analizy etykiety technicznej na paczkach – szukaj kodu zwierającego oznaczenie <strong>CS(10)100</strong> lub wyższego (np. CS(10)150). Drugim parametrem weryfikacyjnym jest gęstość własna materiału, która dla oryginalnego EPS 100 powinna wynosić <strong>około 18 kg/m3</strong>. Możesz wykonać prosty test budowlany: markowy styropian podłogowy naciskany mocno kciukiem nie powinien trwale odkształcać się ani kruszyć w strukturze. Jeśli płyta jest miękka i przypomina styropian fasadowy, natychmiast zatrzymaj montaż rur.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="20" y="35" width="60" height="25" fill="#cbd5e1" rx="2" />
                                    <text x="32" y="52" font-family="sans-serif" font-size="8" font-weight="900" fill="#475569">EPS 100</text>
                                    <circle class="anim-stamp" cx="50" cy="22" r="6" />
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie domenowe (Bez tagów H2/H3 w stringu błędu)
    const currentHost = window.location.hostname;
    const authorizedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!authorizedDomains.includes(currentHost)) {
        const appContainer = document.getElementById('rk-faq-app');
        if (appContainer) {
            appContainer.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 24px; font-family: sans-serif;">
                    <div style="font-size: 44px; margin-bottom: 15px;">🛑</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase; letter-spacing: 0.5px;">Błąd Licencji i Autoryzacji</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Ten interaktywny kontener FAQ oraz powiązane z nim mikrodane JSON-LD są chronione prawem autorskim i stanowią własność serwisu <strong>Projekt-Ogrzewania.pl</strong>. Wykryto nieautoryzowane użycie kodu.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika interaktywnego akordeonu FAQ
    const items = document.querySelectorAll('.rk-faq-item');

    items.forEach(item => {
        const questionBtn = item.querySelector('.rk-faq-question');
        questionBtn.addEventListener('click', () => {
            const isCurrentlyActive = item.classList.contains('active');
            
            // Zamknij wszystkie pozostałe elementy
            items.forEach(i => i.classList.remove('active'));
            
            // Jeśli kliknięty nie był aktywny, otwórz go
            if (!isCurrentlyActive) {
                item.classList.add('active');
            }
        });
    });
    
    // Domyślne otwarcie pierwszego elementu FAQ po załadowaniu
    if(items.length > 0) {
        items[0].classList.add('active');
    }
});
</script>



<style>
:root {
    --rk-iso-dark: #1e293b;
    --rk-iso-blue: #0ea5e9;
    --rk-iso-light: #f8fafc;
    --rk-iso-warm: #f97316;
    --rk-iso-warm-light: #ffedd5;
    --rk-iso-cold: #3b82f6;
    --rk-iso-cold-light: #dbeafe;
    --rk-iso-border: #e2e8f0;
    --rk-iso-bg: #ffffff;
    --rk-iso-text: #334155;
}

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

/* Sekcja Nagłówkowa */
.rk-iso-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, #0f172a 0%, var(--rk-iso-dark) 100%);
    color: #ffffff;
    text-align: left;
    position: relative;
    border-bottom: 4px solid var(--rk-iso-warm);
}

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

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

/* Interaktywny Panel */
.rk-iso-interactive {
    padding: 40px 50px;
    background: var(--rk-iso-light);
}

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

/* Toggle Switcher */
.rk-toggle-wrapper {
    display: flex;
    background: #e2e8f0;
    border-radius: 100px;
    padding: 6px;
    max-width: 600px;
    margin: 0 auto 40px auto;
    position: relative;
}

.rk-toggle-btn {
    flex: 1;
    padding: 16px 20px;
    border: none;
    background: transparent;
    font-size: 15px;
    font-weight: 700;
    color: #64748b;
    border-radius: 100px;
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.rk-toggle-btn.active[data-mode="thick"] {
    background: var(--rk-iso-warm);
    color: #ffffff;
    box-shadow: 0 8px 20px -6px rgba(249, 115, 22, 0.5);
}

.rk-toggle-btn.active[data-mode="thin"] {
    background: var(--rk-iso-cold);
    color: #ffffff;
    box-shadow: 0 8px 20px -6px rgba(59, 130, 246, 0.5);
}

/* Wizualizacja SVG i Wynik */
.rk-sim-display {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 40px;
    background: #ffffff;
    padding: 35px;
    border-radius: 20px;
    border: 1px solid var(--rk-iso-border);
    align-items: center;
}

.rk-svg-box {
    position: relative;
    width: 100%;
    height: 220px;
    background: #f1f5f9;
    border-radius: 16px;
    overflow: hidden;
}

.rk-svg-layer-concrete { fill: #cbd5e1; }
.rk-svg-layer-pipe { fill: #ef4444; }
.rk-svg-layer-ground { fill: #8b5cf6; opacity: 0.2; }

/* Dynamiczna Izolacja */
.rk-svg-layer-eps {
    fill: #fcd34d;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Animacje strzałek ciepła */
.heat-arrow {
    stroke: #ef4444;
    stroke-width: 3;
    stroke-linecap: round;
    fill: none;
    transition: all 0.5s;
}

/* Stan: Gruby styropian (Odbijanie ciepła) */
.state-thick .rk-svg-layer-eps { transform: scaleY(1); transform-origin: bottom; }
.state-thick .heat-arrow {
    animation: bounceHeat 2s infinite ease-in-out;
}

/* Stan: Cienki styropian (Ucieczka ciepła) */
.state-thin .rk-svg-layer-eps { transform: scaleY(0.3); transform-origin: bottom; fill: #fbbf24; }
.state-thin .heat-arrow {
    stroke: #3b82f6;
    animation: escapeHeat 2s infinite linear;
}

@keyframes bounceHeat {
    0% { transform: translateY(0); opacity: 1; }
    50% { transform: translateY(30px); opacity: 0.5; }
    100% { transform: translateY(0); opacity: 1; }
}

@keyframes escapeHeat {
    0% { transform: translateY(0); opacity: 1; stroke: #ef4444; }
    50% { transform: translateY(60px); opacity: 0.8; stroke: #3b82f6; }
    100% { transform: translateY(120px); opacity: 0; stroke: #3b82f6; }
}

/* Panel Danych */
.rk-data-panel h4 {
    font-size: 22px;
    font-weight: 800;
    margin: 0 0 10px 0;
    color: var(--rk-iso-dark);
}

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

.rk-data-stat {
    display: flex;
    justify-content: space-between;
    padding: 12px 15px;
    background: var(--rk-iso-light);
    border-radius: 10px;
    margin-bottom: 8px;
    font-weight: 700;
    font-size: 14px;
}

.rk-stat-value {
    color: var(--rk-iso-warm);
    font-size: 16px;
}
.state-thin .rk-stat-value { color: var(--rk-iso-cold); }

/* Podsumowanie Textowe */
.rk-iso-summary-text {
    padding: 40px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-iso-border);
}

.rk-iso-summary-text p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-iso-text);
    margin-bottom: 20px;
}

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

/* Responsywność */
@media (max-width: 768px) {
    .rk-iso-header, .rk-iso-interactive, .rk-iso-summary-text { padding: 30px 20px; }
    .rk-toggle-wrapper { flex-direction: column; border-radius: 16px; gap: 5px; }
    .rk-toggle-btn { border-radius: 12px; }
    .rk-sim-display { grid-template-columns: 1fr; gap: 25px; }
    .rk-svg-box { height: 180px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Podsumowanie – Ile styropianu pod ogrzewanie podłogowe ostatecznie wybrać?",
    "description": "Zastosowanie 15 cm styropianu EPS 100 lub 12 cm grafitowego to optymalny standard izolacji LCC minimalizujący straty ciepła i koszty ogrzewania.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset",
    "name": "Wskaźniki LCC i Opór Cieplny dla EPS 100",
    "description": "Dane dotyczące strat ciepła w ujęciu rocznym w zależności od zastosowanej grubości styropianu podłogowego zgodnie z WT2021.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ile styropianu pod ogrzewanie podłogowe",
      "styropian podłogowy grubość",
      "współczynnik przenikania ciepła podłogi",
      "projektowe obciążenie cieplne OZC",
      "straty ciepła przez grunt"
    ],
    "measurementTechnique": "Kalkulacja oporu cieplnego R oraz symulacja strat kosztowych w perspektywie rocznej w stosunku do normy WT2021.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Norma optymalna: 15 cm EPS 100 lub 12 cm Grafit. Zgodność z WT2021. U = 0,20 W/(m2K).",
        "Izolacja odchudzona: 5-8 cm. Wzrost strat ciepła o 35%, wyższe koszty eksploatacji urządzenia."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp",
    "name": "Symulator Strat Ciepła przez Podłogę LCC",
    "description": "Interaktywna symulacja wizualizująca straty ciepła przenikającego do gruntu przy zastosowaniu normatywnej oraz odchudzonej grubości styropianu.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and CSS3 Animations",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-iso-container" id="rk-iso-app">
    <div class="rk-iso-header">
        <h2>Podsumowanie – Ile styropianu pod ogrzewanie podłogowe ostatecznie wybrać?</h2>
        <p>Decyzja o grubości izolacji podłogowej determinuje koszty eksploatacji pompy ciepła na dekady. Zobacz, jak fizyka weryfikuje próby oszczędzania na materiale.</p>
    </div>

    <div class="rk-iso-interactive">
        <h3>Symulator Oporu Cieplnego i Analiza LCC</h3>
        
        <div class="rk-toggle-wrapper" id="iso-toggle">
            <button class="rk-toggle-btn active" data-mode="thick">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/></svg>
                Normatywne 15 cm (EPS 100)
            </button>
            <button class="rk-toggle-btn" data-mode="thin">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/><line x1="3" y1="3" x2="21" y2="21"/></svg>
                Odchudzone 5 cm (Błąd!)
            </button>
        </div>

        <div class="rk-sim-display state-thick" id="iso-display">
            <div class="rk-svg-box">
                <svg viewBox="0 0 300 220" width="100%" height="100%">
                    <rect class="rk-svg-layer-ground" x="0" y="160" width="300" height="60" />
                    <rect class="rk-svg-layer-eps" x="0" y="70" width="300" height="90" />
                    <rect class="rk-svg-layer-concrete" x="0" y="20" width="300" height="50" />
                    <circle class="rk-svg-layer-pipe" cx="50" cy="45" r="8" />
                    <circle class="rk-svg-layer-pipe" cx="150" cy="45" r="8" />
                    <circle class="rk-svg-layer-pipe" cx="250" cy="45" r="8" />
                    
                    <path class="heat-arrow" d="M50 55 L50 85 M45 80 L50 85 L55 80" />
                    <path class="heat-arrow" d="M150 55 L150 85 M145 80 L150 85 L155 80" />
                    <path class="heat-arrow" d="M250 55 L250 85 M245 80 L250 85 L255 80" />
                </svg>
            </div>

            <div class="rk-data-panel" id="iso-results">
                <h4 style="color: var(--rk-iso-warm);">Standard Inwestycyjny LCC</h4>
                <p>15 cm to złoty standard dla białego EPS lub 12 cm dla styropianu grafitowego. Zapewnia odbicie strumienia ciepła w górę.</p>
                <div class="rk-data-stat">
                    <span>Współczynnik U:</span>
                    <span class="rk-stat-value">≤ 0,20 W/(m2K)</span>
                </div>
                <div class="rk-data-stat">
                    <span>Zgodność z WT2021:</span>
                    <span class="rk-stat-value">TAK</span>
                </div>
                <div class="rk-data-stat">
                    <span>Straty energii do gruntu:</span>
                    <span class="rk-stat-value" style="color: #10b981;">Minimalne</span>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-iso-summary-text">
        <h3>Rachunek ekonomiczny a fizyka budynku</h3>
        <p>
            Optymalny dobór podłogowej izolacji termicznej to wypadkowa kalkulacji fizycznych, wymogów prawnych zawartych w WT2021 oraz rachunku ekonomicznego LCC (Life Cycle Cost). Zastosowanie <strong>15 cm styropianu białego EPS 100 lub 12 cm styropianu grafitowego na gruncie</strong> gwarantuje święty spokój inwestora, bezawaryjną pracę posadzki i minimalne <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">straty ciepła</a>.
        </p>
        <p>
            Każda próba bezrefleksyjnego odchudzania tej warstwy zemści się w postaci drastycznie wyższych rachunków za prąd lub gaz. System zacznie ogrzewać fundamenty i masę ziemi zamiast Twojego salonu, co obniży odczuwalny komfort cieplny.
        </p>
        <p>
            Pamiętaj, że ostateczne wytyczne i grubości zawsze powinien definiować indywidualny, poparty rzetelnymi <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obliczeniami OZC</a> projekt instalacji, dopasowany precyzyjnie do geometrii Twojego budynku, rodzaju gruntu oraz specyfiki i niskiej temperatury zasilania wybranego źródła ciepła.
        </p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez użycia tagów H2/H3 zgodnie z wytycznymi)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-iso-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #0f172a; color: #f87171; border: 3px solid #ef4444; border-radius: 24px; font-family: sans-serif;">
                    <div style="font-size: 48px; margin-bottom: 20px;">🔒</div>
                    <div style="font-size: 22px; font-weight: 900; margin-bottom: 15px; text-transform: uppercase; letter-spacing: 1px;">Blokada Praw Autorskich</div>
                    <div style="font-size: 16px; color: #e2e8f0; max-width: 550px; margin: 0 auto; line-height: 1.7;">
                        Skrypt interaktywnego podsumowania LCC oraz zintegrowane dane strukturalne JSON-LD są wyłączną własnością serwisu <strong>Projekt-Ogrzewania.pl</strong>. Uruchomienie modułu na tej domenie zostało zablokowane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora Izolacji LCC
    const btns = document.querySelectorAll('.rk-toggle-btn');
    const display = document.getElementById('iso-display');
    const resultsPanel = document.getElementById('iso-results');

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

            const mode = this.getAttribute('data-mode');

            // Aktualizacja klas interfejsu i SVG
            if (mode === 'thick') {
                display.className = 'rk-sim-display state-thick';
                resultsPanel.innerHTML = `
                    <h4 style="color: var(--rk-iso-warm);">Standard Inwestycyjny LCC</h4>
                    <p>15 cm to złoty standard dla białego EPS lub 12 cm dla styropianu grafitowego. Zapewnia odbicie strumienia ciepła w górę.</p>
                    <div class="rk-data-stat">
                        <span>Współczynnik U:</span>
                        <span class="rk-stat-value">≤ 0,20 W/(m2K)</span>
                    </div>
                    <div class="rk-data-stat">
                        <span>Zgodność z WT2021:</span>
                        <span class="rk-stat-value">TAK</span>
                    </div>
                    <div class="rk-data-stat">
                        <span>Straty energii do gruntu:</span>
                        <span class="rk-stat-value" style="color: #10b981;">Minimalne</span>
                    </div>
                `;
            } else {
                display.className = 'rk-sim-display state-thin';
                resultsPanel.innerHTML = `
                    <h4 style="color: var(--rk-iso-cold);">Mostek Termiczny w Grunt</h4>
                    <p>Zbyt cienka izolacja sprawia, że ciepło pokonuje barierę, uciekając w chłodny grunt. Pompa ciepła pracuje w trybie ciągłym.</p>
                    <div class="rk-data-stat">
                        <span>Współczynnik U:</span>
                        <span class="rk-stat-value" style="color: #ef4444;">~ 0,35 W/(m2K)</span>
                    </div>
                    <div class="rk-data-stat">
                        <span>Zgodność z WT2021:</span>
                        <span class="rk-stat-value" style="color: #ef4444;">NIE (Naruszenie)</span>
                    </div>
                    <div class="rk-data-stat">
                        <span>Straty energii do gruntu:</span>
                        <span class="rk-stat-value" style="color: #ef4444;">+ 35% rachunków</span>
                    </div>
                `;
            }
        });
    });
});
</script>



<style>
:root {
    --dl-eps-primary: #0f172a;
    --dl-eps-accent: #f59e0b; /* Termiczny pomarańcz EPS */
    --dl-eps-accent-dark: #d97706;
    --dl-eps-bg: #f8fafc;
    --dl-eps-border: #e2e8f0;
    --dl-eps-text: #334155;
    --dl-eps-white: #ffffff;
    --dl-eps-muted: #94a3b8;
}

.rk-dl-eps-container {
    max-width: 950px;
    margin: 60px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    background: var(--dl-eps-white);
    border-radius: 24px;
    border: 1px solid var(--dl-eps-border);
    box-shadow: 0 20px 40px -10px rgba(245, 158, 11, 0.1);
    overflow: hidden;
}

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

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

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

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

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

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

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

@keyframes floatPdfIcon {
    from { transform: translateY(0); }
    to { transform: translateY(-12px); }
}

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

.rk-dl-preview-box {
    flex: 1;
    background: var(--dl-eps-bg);
    border: 1px solid var(--dl-eps-border);
    border-radius: 16px;
    padding: 15px;
    position: relative;
    cursor: zoom-in;
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.4s;
    box-shadow: 0 10px 20px rgba(0,0,0,0.03);
}

.rk-dl-preview-box:hover {
    transform: scale(1.03) translateY(-5px);
    box-shadow: 0 20px 30px rgba(245, 158, 11, 0.15);
    border-color: var(--dl-eps-accent);
}

.rk-dl-preview-img {
    width: 100%;
    height: auto;
    border-radius: 10px;
    display: block;
    border: 1px solid #e2e8f0;
}

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

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

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

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

.rk-dl-check-icon {
    width: 24px;
    height: 24px;
    color: var(--dl-eps-accent);
    flex-shrink: 0;
    background: var(--dl-eps-bg);
    border-radius: 50%;
    padding: 3px;
}

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

.rk-dl-btn:hover {
    background: var(--dl-eps-accent-dark);
    transform: translateY(-3px);
    box-shadow: 0 15px 35px -5px rgba(245, 158, 11, 0.5);
    border-color: #fde68a;
}

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

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

/* STOPKA MODUŁU */
.rk-dl-footer {
    padding: 25px 50px;
    background: var(--dl-eps-bg);
    border-top: 1px solid var(--dl-eps-border);
    font-size: 13px;
    color: var(--dl-eps-muted);
    text-align: center;
    line-height: 1.6;
}

.rk-dl-footer a {
    color: var(--dl-eps-accent-dark);
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 3px;
}

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"
    },
    "headline": "Infografika PDF – Ile styropianu pod ogrzewanie podłogowe?",
    "description": "Pobierz inżynierskie podsumowanie wymogów izolacyjnych (WT2021, opory cieplne R, układy warstwowe EPS 100) w wygodnym formacie PDF.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Ile-styropianu-pod-ogrzewanie-podlogowe-1.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-25",
    "dateModified": "2026-05-25"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#dataset-infografika",
    "name": "Kompendium: Parametry Izolacji EPS pod Podłogówkę",
    "description": "Skondensowany zbiór wytycznych wykonawczych, norm WT2021 oraz porównania styropianu białego i grafitowego dla instalatorów i inwestorów.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika styropian podłogówka pdf",
      "grubość izolacji pod ogrzewanie podłogowe schemat",
      "zestawienie twardości eps 100",
      "parametry styropianu grafitowego ściąga",
      "jak układać styropian instrukcja"
    ],
    "measurementTechnique": "Wizualna agregacja parametrów fizycznych (R, U) oraz instrukcji montażowych w formie graficznego schematu referencyjnego.",
    "mainEntity": {
      "@type": "Thing",
      "name": "Materiały referencyjne i szkoleniowe dla izolacji podłogowych"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webapp-infografika",
    "name": "Centrum Pobierania: Infografika Izolacyjna",
    "description": "Moduł umożliwiający szybki podgląd i bezpieczne pobranie na urządzenie mobilne lub desktopowe materiałów inżynierskich w wysokiej rozdzielczości.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5"
  }
]
</script>

<div class="rk-dl-eps-container" id="rk-dl-eps-app">
    
    <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"><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>
                Zasoby do pobrania
            </div>
            <h2>Pobierz Kompendium Izolacyjne</h2>
            <p>Cała inżynierska wiedza z tego artykułu na jednej planszy. Zapisz PDF na telefonie i zabierz jako ściągawkę na plac budowy przed przyjazdem wykonawcy.</p>
        </div>
        <div class="rk-dl-visual">
            <svg class="rk-dl-pdf-svg" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path d="M14 2H6C4.89543 2 4 2.89543 4 4V20C4 21.1046 4.89543 22 6 22H18C19.1046 22 20 21.1046 20 20V8L14 2Z" fill="#ef4444" stroke="#ffffff" stroke-width="1.5" stroke-linejoin="round"/>
                <path d="M14 2V8H20" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
                <text x="7" y="17.5" fill="white" font-size="6" 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/05/Infografika-Ile-styropianu-pod-ogrzewanie-podlogowe-1.webp', '_blank')">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Ile-styropianu-pod-ogrzewanie-podlogowe-1.webp" alt="Infografika - Ile styropianu pod ogrzewanie podłogowe" class="rk-dl-preview-img" loading="lazy">
            <div class="rk-dl-zoom-hint">
                <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 grafikę
            </div>
        </div>

        <div class="rk-dl-info-side">
            <ul class="rk-dl-features">
                <li class="rk-dl-feature-item">
                    <svg class="rk-dl-check-icon" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Zestawienie wymogów cieplnych WT2021
                </li>
                <li class="rk-dl-feature-item">
                    <svg class="rk-dl-check-icon" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Biały EPS 100 kontra Grafit (Tabela)
                </li>
                <li class="rk-dl-feature-item">
                    <svg class="rk-dl-check-icon" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Schemat: Prawidłowy montaż w mijankę
                </li>
                <li class="rk-dl-feature-item">
                    <svg class="rk-dl-check-icon" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Format HD gotowy do druku A4
                </li>
            </ul>

            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Ile-styropianu-pod-ogrzewanie-podlogowe.pdf" class="rk-dl-btn" target="_blank" rel="noopener noreferrer">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
                POBIERZ INFOGRAFIKĘ (PDF)
            </a>
            
            <p style="margin-top: 25px; font-size: 13px; color: var(--dl-eps-muted); line-height: 1.5; font-weight: 600;">
                Masz pytania dotyczące swojej inwestycji? <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" style="color:var(--dl-eps-accent-dark); font-weight:800;">Zamów indywidualny projekt</a> i zyskaj pewność co do materiałów.
            </p>
        </div>

    </div>

    <div class="rk-dl-footer">
        © 2026 Projekt-Ogrzewania.pl | Autor merytoryczny: <strong>Robert Kucharski</strong>. Możesz swobodnie przesyłać ten plik swojemu instalatorowi, z zachowaniem informacji o autorze.
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie przed kradzieżą (Domain Lock) bez H-tagów
    const hostNm = window.location.hostname;
    const authList = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!authList.includes(hostNm)) {
        const wrap = document.getElementById('rk-dl-eps-app');
        if (wrap) {
            wrap.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fef2f2; border: 2px solid #dc2626; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 900; color: #991b1b; text-transform: uppercase;">Zasoby Prawne Chronione</div>
                    <div style="font-size: 14px; color: #b91c1c; max-width: 500px; margin: 10px auto 0 auto; line-height: 1.6;">
                        Ten moduł pobierania i dokumentacja techniczna są własnością serwisu <strong>Projekt-Ogrzewania.pl</strong>. Osadzanie iframe i pobieranie z zewnętrznych serwerów jest zablokowane.
                    </div>
                </div>
            `;
        }
    }
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">Ile styropianu pod ogrzewanie podłogowe?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Maksymalna temperatura zasilania podłogówki.</title>
		<link>https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 12 Jul 2025 07:21:09 +0000</pubDate>
				<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Modernizacja domu]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Oszczędność energii]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[izolacja podłogowa]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[maksymalna temperatura zasilania podłogówki]]></category>
		<category><![CDATA[normy en 1264]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projekt podłogówki]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<category><![CDATA[temperatura wody]]></category>
		<category><![CDATA[zawory mieszające]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2671</guid>

					<description><![CDATA[<p>Ogrzewanie podłogowe to rozwiązanie, które łączy komfort z efektywnością energetyczną, ale kluczem do jego prawidłowego działania jest odpowiednia temperatura wody. W artykule wyjaśniamy, jaka jest maksymalna temperatura zasilania podłogówki, jakie czynniki na nią wpływają i jak uniknąć typowych błędów. Dowiedz się, jak profesjonalny projekt i odpowiednie ustawienia mogą zapewnić ciepło w Twoim domu, chroniąc jednocześnie posadzkę i obniżając rachunki za ogrzewanie.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">Maksymalna temperatura zasilania podłogówki.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --primary: #0f172a;
    --accent: #0284c7; 
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f0f9ff; 
    --border-color: #e2e8f0;
}

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

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

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

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

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

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

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

.hero-text a:hover {
    color: #0369a1;
}

.hero-modules-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: #94a3b8;
    letter-spacing: 1px;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
}

.hero-modules-title::after {
    content: "";
    flex-grow: 1;
    height: 1px;
    background: var(--border-color);
}

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

.hero-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    padding: 20px 15px;
    border-radius: 16px;
    text-align: center;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    position: relative;
    top: 0;
}

.hero-card:hover {
    top: -5px;
    border-color: var(--accent);
    box-shadow: 0 15px 25px -5px rgba(2, 132, 199, 0.1);
}

.hero-card-icon {
    font-size: 28px;
    margin-bottom: 12px;
    display: block;
}

.hero-card-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--primary);
    line-height: 1.4;
}

@media (max-width: 900px) {
    .hero-content { padding: 35px 25px; }
    .hero-grid { grid-template-columns: repeat(2, 1fr); gap: 15px; }
}

@media (max-width: 500px) {
    .hero-grid { grid-template-columns: 1fr; }
    .hero-card { display: flex; align-items: center; text-align: left; gap: 15px; padding: 15px; }
    .hero-card-icon { margin-bottom: 0; font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Maksymalna temperatura zasilania podłogówki - Wytyczne inżynierskie 2026",
    "description": "Profesjonalna analiza maksymalnej temperatury zasilania ogrzewania podłogowego zgodnie z normą PN-EN 1264. Wpływ na COP pompy ciepła, trwałość jastrychu i bezpieczeństwo drewna.",
    "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"
    },
    "license": "https://projekt-ogrzewania.pl/",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Parametry graniczne temperatur zasilania podłogówki",
    "description": "Zbiór danych technicznych dotyczących limitów temperaturowych dla różnych systemów ogrzewania płaszczyznowego i okładzin podłogowych.",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Limit PN-EN 1264",
        "value": "55°C",
        "description": "Bezwzględna maksymalna temperatura zasilania czynnika grzewczego"
      },
      {
        "@type": "PropertyValue",
        "name": "Limit dla drewna",
        "value": "38°C",
        "description": "Zalecana górna granica zasilania dla ochrony parkietów"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Kalkulator Parametrów Podłogówki",
    "operatingSystem": "All",
    "applicationCategory": "DesignApplication",
    "description": "Narzędzie do symulacji rozkładu temperatur i doboru zasilania na podstawie oporu cieplnego R."
  }
]
</script>

<div class="premium-hero-box" id="hero-app-container">
    <div class="hero-content">
        <div class="hero-badge">
            <span>🛡️</span> Ekspertyza HVAC 2026
        </div>
        
        <p class="hero-text"><strong>Maksymalna temperatura zasilania podłogówki</strong> to zdefiniowana technicznie najwyższa dopuszczalna temperatura czynnika grzewczego (wody) wprowadzanego do pętli grzewczych, która gwarantuje bezpieczeństwo konstrukcyjne jastrychu, trwałość okładziny wierzchniej oraz zachowanie parametrów fizjologicznych użytkowników zgodnie z <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">normą PN-EN 1264</a>. Przekroczenie tych wartości prowadzi do nieodwracalnych uszkodzeń termicznych i drastycznego spadku sprawności źródeł niskotemperaturowych.</p>
        
        <p class="hero-text">Współczesne projektowanie wymaga precyzyjnego balansu – zbyt niska temperatura nie pokryje strat ciepła wyliczonych w <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">OZC</a>, natomiast zbyt wysoka zniszczy strukturę wylewki. Jako inżynier z 15-letnim doświadczeniem, w tym artykule rozbijam na czynniki pierwsze limity temperaturowe, fizykę przepływu i ekonomię eksploatacji.</p>

        <div class="hero-modules-title">Analiza inżynierska obejmuje:</div>
        
        <div class="hero-grid">
            <div class="hero-card">
                <span class="hero-card-icon">📏</span>
                <span class="hero-card-title">Limity normatywne 55°C</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">🌳</span>
                <span class="hero-card-title">Bezpieczeństwo drewna</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">⚙️</span>
                <span class="hero-card-title">Algorytm doboru tz</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">💰</span>
                <span class="hero-card-title">Wpływ na COP pompy</span>
            </div>
        </div>
    </div>
</div>



<style>
:root {
    --primary: #0f172a;
    --accent: #0284c7;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

/* Główny kontener otulający cały moduł (tekst + symulator) */
.integrated-module-wrapper {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 15px 40px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

/* SEKCJA Z ARTYKUŁEM - ZMODYFIKOWANY UKŁAD */
.module-article-section {
    padding: 40px 50px 40px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
    border-bottom: 1px solid var(--border-color);
}

.module-article-section h2 {
    font-size: 24px;
    font-weight: 900;
    color: var(--primary);
    margin: 0 0 20px 0;
    line-height: 1.3;
}

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

.module-article-section a:hover {
    color: #0369a1;
}

.module-article-section strong {
    color: var(--primary);
    background: rgba(2, 132, 199, 0.05);
    padding: 2px 6px;
    border-radius: 4px;
}

.text-lead {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 20px 0;
}

.text-info-box {
    background: #eff6ff;
    border-left: 4px solid var(--accent);
    padding: 18px 20px;
    border-radius: 0 12px 12px 0;
    display: flex;
    gap: 15px;
    align-items: center;
    margin-bottom: 25px;
}

.text-info-box .icon {
    font-size: 24px;
}

.text-info-box p {
    margin: 0;
    font-size: 15px;
    color: #1e3a8a;
    line-height: 1.6;
}

.article-risks-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 10px;
}

.article-risk-card {
    background: #fff5f5;
    border: 1px solid #fecaca;
    padding: 20px;
    border-radius: 16px;
}

.article-risk-card .risk-icon {
    font-size: 24px;
    display: block;
    margin-bottom: 10px;
}

.article-risk-card p {
    margin: 0;
    font-size: 14px;
    color: #7f1d1d;
    line-height: 1.6;
}

.article-risk-card a {
    color: #b91c1c;
    text-decoration-color: #fca5a5;
}

.article-risk-card a:hover {
    color: #7f1d1d;
}

/* SEKCJA Z SYMULATOREM */
.module-simulator-section {
    padding: 40px 50px;
    background: #ffffff;
}

.simulator-header-box {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 30px;
}

.simulator-header-icon {
    font-size: 28px;
}

.simulator-header-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
    margin: 0;
}

.simulator-header-subtitle {
    font-size: 14px;
    color: #64748b;
    margin: 5px 0 0 0;
}

.slider-container {
    position: relative;
    margin: 50px 0 30px 0;
    padding: 0 15px;
}

.temp-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 14px;
    border-radius: 7px;
    background: linear-gradient(to right, #3b82f6 0%, #10b981 25%, #f59e0b 50%, #ef4444 80%, #991b1b 100%);
    outline: none;
    transition: opacity .2s;
}

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

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

.temp-slider::-moz-range-thumb {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #ffffff;
    border: 5px solid var(--primary);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}

.slider-value-display {
    position: absolute;
    top: -55px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--primary);
    color: #ffffff;
    padding: 8px 20px;
    border-radius: 14px;
    font-size: 20px;
    font-weight: 900;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.2);
}

.slider-value-display::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    border-width: 8px 8px 0;
    border-style: solid;
    border-color: var(--primary) transparent transparent transparent;
}

.result-cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
}

.status-card {
    padding: 25px;
    border-radius: 16px;
    border: 2px solid var(--border-color);
    background: #ffffff;
    transition: all 0.3s ease;
}

.status-icon {
    font-size: 32px;
    margin-bottom: 12px;
}

.status-title {
    font-size: 13px;
    font-weight: 900;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 10px;
}

.status-desc {
    font-size: 15px;
    color: var(--primary);
    line-height: 1.6;
    font-weight: 600;
    margin: 0;
}

.state-optimal { border-color: var(--success); background: #f0fdf4; }
.state-optimal .status-title { color: var(--success); }
.state-warning { border-color: var(--warning); background: #fff7ed; }
.state-warning .status-title { color: var(--warning); }
.state-danger { border-color: var(--danger); background: #fef2f2; }
.state-danger .status-title { color: var(--danger); }

@media (max-width: 768px) {
    .module-article-section { padding: 30px 25px; }
    .article-risks-grid { grid-template-columns: 1fr; }
    .module-simulator-section { padding: 30px 25px; }
    .result-cards { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Interaktywna Analiza Tolerancji Termicznej Posadzek",
    "description": "Zintegrowane narzędzie inżynierskie służące do wizualizacji wpływu temperatury zasilania na fizykę jastrychu (naprężenia rozszerzalności liniowej) oraz przyspieszoną degradację żywotności polimerów w rurach wielowarstwowych zgodnie z reżimami normy PN-EN 1264.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "featureList": [
      "Dynamiczna symulacja naprężeń w jastrychu cementowym przy przekroczeniu dopuszczalnych 55°C",
      "Estymacja spadku żywotności rur PEX/PERT dla pracy powyżej 60°C",
      "Ostrzeżenia dotyczące ryzyka pękania gresu ze względu na brak dylatacji"
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Krytyczne parametry zasilania i ich wpływ na ogrzewanie płaszczyznowe",
    "description": "Zestawienie twardych danych inżynierskich określających graniczne temperatury pracy dla betonu oraz polimerów stosowanych w instalacjach.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Rozszerzalność liniowa jastrychu C20/F4",
        "value": "0,012 mm/(m·K)",
        "description": "Współczynnik określający przyrost długości posadzki w odpowiedzi na wzrost temperatury. Przekroczenie limitu 55°C powoduje skrajne naprężenia."
      },
      {
        "@type": "PropertyValue",
        "name": "Temperatura krytycznej degradacji rury PEX (Klasa 4)",
        "value": "> 60°C",
        "description": "Temperatura, powyżej której następuje przyspieszone niszczenie wiązań sieciowanych (PE-Xa), znacząco skracające 50-letnią żywotność systemu."
      },
      {
        "@type": "PropertyValue",
        "name": "Granica bezpieczeństwa jastrychu (PN-EN 1264)",
        "value": "55°C",
        "description": "Bezwzględna maksymalna temperatura dopuszczalna w strefie rur w systemie mokrym."
      }
    ]
  }
]
</script>

<div class="integrated-module-wrapper" id="integrated-app-container">
    
    <div class="module-article-section">
        <h2>Jaka jest maksymalna temperatura zasilania podłogówki według norm?</h2> 
        
        <p class="text-lead">Zgodnie z wymogami, które nakłada <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/" target="_blank" rel="noreferrer noopener">norma PN-EN 1264</a>, bezwzględna <strong>maksymalna temperatura zasilania podłogówki wynosi 55°C</strong>. Jest to nieprzekraczalna granica bezpieczeństwa dla instalacji pracujących w tzw. systemie mokrym, gdzie rury są bezpośrednio zalane jastrychu.</p>
        
        <div class="text-info-box">
            <span class="icon">💡</span>
            <p>W praktyce inżynierskiej dąży się do tego, aby temperatura projektowa (t_z) była jak najniższa. W nowoczesnym budownictwie standardem jest projektowanie układu na parametry <strong>35/30°C</strong> lub <strong>40/35°C</strong>.</p>
        </div>

        <div class="article-risks-grid">
            <div class="article-risk-card">
                <span class="risk-icon">⚠️</span>
                <p>Przekroczenie progu <strong>55°C</strong> stwarza ryzyko wystąpienia naprężeń termicznych przekraczających wytrzymałość jastrychu na ściskanie i zginanie. Przykładowo, jastrych cementowy klasy <strong>C20/F4</strong> przy wzroście temperatury powyżej dopuszczalnej normy ulega rozszerzalności liniowej na poziomie ok. <strong>0,012 mm/(m·K)</strong>. Przy braku odpowiedniej <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">izolacji brzegowej i dylatacji</a>, takie rozszerzenie prowadzi do pękania gresu lub nieodwracalnej deformacji paneli.</p>
            </div>
            
            <div class="article-risk-card">
                <span class="risk-icon">🔥</span>
                <p>Wartości graniczne temperatury zasilania wynikają również z klasyfikacji rur. Najczęściej stosowana <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">rura PEX do ogrzewania podłogowego</a> ma określony czas życia (min. 50 lat) pod warunkiem pracy w określonych reżimach temperaturowych. Praca ciągła powyżej <strong>60°C</strong> drastycznie przyspiesza procesy starzenia polimeru, co może skrócić żywotność instalacji o połowę.</p>
            </div>
        </div>
    </div>

    <div class="module-simulator-section">
        <div class="simulator-header-box">
            <div class="simulator-header-icon">🌡️</div>
            <div>
                <h3 class="simulator-header-title">Symulator Naprężeń Termicznych</h3>
                <p class="simulator-header-subtitle">Przesuń suwak, aby zweryfikować opisane w tekście procesy destrukcyjne dla jastrychu i rur PEX.</p>
            </div>
        </div>
        
        <div class="slider-container">
            <div class="slider-value-display" id="slider-val-display">35°C</div>
            <input type="range" min="20" max="75" value="35" class="temp-slider" id="temp-input-slider">
        </div>

        <div class="result-cards">
            <div class="status-card state-optimal" id="card-screed">
                <div class="status-icon" id="icon-screed">✅</div>
                <div class="status-title" id="title-screed">Reakcja jastrychu C20/F4</div>
                <p class="status-desc" id="desc-screed">Brak naprężeń. Rozszerzalność liniowa pod pełną kontrolą. Posadzka pracuje stabilnie.</p>
            </div>
            
            <div class="status-card state-optimal" id="card-pex">
                <div class="status-icon" id="icon-pex">🛡️</div>
                <div class="status-title" id="title-pex">Żywotność rur PEX (Klasa 4)</div>
                <p class="status-desc" id="desc-pex">Optymalne parametry. Polietylen sieciowany zachowuje 100% żywotności przewidzianej na ponad 50 lat.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe - Autoryzacja modułu (Chronimy zawartość)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('integrated-app-container');
        if (container) {
            container.innerHTML = `
                <div style="padding: 60px 40px; text-align: center; background: #fee2e2; color: #dc2626;">
                    <span style="font-size: 48px; display: block; margin-bottom: 20px;">⚠️</span>
                    <p style="margin: 0 0 15px 0; font-size: 24px;">Treść Chroniona Prawem Autorskim</p>
                    <p style="font-size: 16px; margin-bottom: 20px;">Zintegrowany moduł edukacyjny został skopiowany z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 12px 24px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    const slider = document.getElementById('temp-input-slider');
    const valDisplay = document.getElementById('slider-val-display');
    
    const cardScreed = document.getElementById('card-screed');
    const iconScreed = document.getElementById('icon-screed');
    const titleScreed = document.getElementById('title-screed');
    const descScreed = document.getElementById('desc-screed');
    
    const cardPex = document.getElementById('card-pex');
    const iconPex = document.getElementById('icon-pex');
    const titlePex = document.getElementById('title-pex');
    const descPex = document.getElementById('desc-pex');

    function updateSimulator(temp) {
        valDisplay.textContent = temp + '°C';

        // Logika dla jastrychu
        cardScreed.className = 'status-card'; 
        if (temp <= 45) {
            cardScreed.classList.add('state-optimal');
            iconScreed.textContent = '✅';
            titleScreed.textContent = 'Bezpieczny jastrych';
            descScreed.textContent = 'Brak niebezpiecznych naprężeń. Rozszerzalność zbieżna z projektem i poprawnie przyjmowana przez dylatacje.';
        } else if (temp > 45 && temp <= 55) {
            cardScreed.classList.add('state-warning');
            iconScreed.textContent = '⚠️';
            titleScreed.textContent = 'Granica wg PN-EN 1264';
            descScreed.textContent = 'Zbliżasz się do krawędzi limitu normy. Jastrych silnie pracuje. Wymagana absolutnie bezbłędna izolacja brzegowa.';
        } else {
            cardScreed.classList.add('state-danger');
            iconScreed.textContent = '💥';
            titleScreed.textContent = 'Krytyczne naprężenia!';
            descScreed.textContent = `Przekroczono 55°C. Potężna rozszerzalność [0,012 mm/(m·K)] ścina beton. Gwarantowane pęknięcia i odspojenie posadzek!`;
        }

        // Logika dla Rur PEX/PERT
        cardPex.className = 'status-card'; 
        if (temp <= 40) {
            cardPex.classList.add('state-optimal');
            iconPex.textContent = '🛡️';
            titlePex.textContent = '100% żywotności rury';
            descPex.textContent = 'Idealne środowisko termiczne. Trwałość struktury polimerowej rury jest gwarantowana na minimum 50 lat bezpiecznej pracy.';
        } else if (temp > 40 && temp <= 60) {
            cardPex.classList.add('state-warning');
            iconPex.textContent = '⏱️';
            titlePex.textContent = 'Tolerowane zużycie materiału';
            descPex.textContent = 'System w zakresie Klasy 4. Instalacja działa stabilnie, jednak z perspektywy żywotności nie jest to optymalny reżim dla PE-Xa.';
        } else {
            cardPex.classList.add('state-danger');
            iconPex.textContent = '🔥';
            titlePex.textContent = 'Degradacja struktury PEX';
            descPex.textContent = 'Stała praca powyżej 60°C niszczy sieć wiązań chemicznych! Procesy starzenia przyspieszają gwałtownie. Żywotność skraca się drastycznie.';
        }
        
        const percent = ((temp - slider.min) / (slider.max - slider.min)) * 100;
        valDisplay.style.left = `calc(${percent}% + (${18 - percent * 0.36}px))`;
    }

    slider.addEventListener('input', function() {
        updateSimulator(this.value);
    });

    updateSimulator(slider.value);
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #0284c7;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-floor-temp-module {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 15px 40px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

/* Sekcja tekstowa */
.module-content-section {
    padding: 40px 50px 10px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
}

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

.module-content-section h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
    margin: 0 0 20px 0;
    line-height: 1.3;
}

.module-content-section h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--accent);
    margin: 30px 0 15px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.module-content-section h3::before {
    content: '';
    display: block;
    width: 24px;
    height: 3px;
    background: var(--accent);
    border-radius: 2px;
}

.module-content-section p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 20px 0;
}

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

.module-content-section a:hover {
    color: #0369a1;
}

.module-content-section strong {
    color: var(--primary);
    background: rgba(2, 132, 199, 0.05);
    padding: 2px 6px;
    border-radius: 4px;
}

/* Sekcja Suwaka (NOWE) */
.module-slider-section {
    padding: 10px 50px 25px 50px;
    background: var(--bg-light);
}

.comfort-slider-container {
    position: relative;
    margin: 50px 0 20px 0;
    padding: 0 10px;
}

.comfort-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 12px;
    border-radius: 6px;
    background: linear-gradient(to right, #3b82f6 0%, #10b981 30%, #f59e0b 70%, #ef4444 100%);
    outline: none;
}

.comfort-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #ffffff;
    border: 4px solid var(--primary);
    cursor: pointer;
    box-shadow: 0 3px 8px rgba(0,0,0,0.2);
    transition: transform 0.1s;
}

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

.comfort-val-display {
    position: absolute;
    top: -45px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--primary);
    color: #ffffff;
    padding: 6px 16px;
    border-radius: 12px;
    font-size: 18px;
    font-weight: 900;
    white-space: nowrap;
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
}

.comfort-val-display::after {
    content: '';
    position: absolute;
    bottom: -6px;
    left: 50%;
    transform: translateX(-50%);
    border-width: 6px 6px 0;
    border-style: solid;
    border-color: var(--primary) transparent transparent transparent;
}

.comfort-status {
    text-align: center;
    font-size: 15px;
    font-weight: 600;
    margin-top: 20px;
    padding: 15px;
    border-radius: 12px;
    background: #ffffff;
    border: 1px solid var(--border-color);
    transition: all 0.3s ease;
}

/* Stylizacja Tabeli (Desktop) */
.module-table-section {
    padding: 0 50px 40px 50px;
    background: var(--bg-light);
}

.premium-data-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: #ffffff;
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid var(--border-color);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.premium-data-table thead tr {
    background: var(--primary);
    color: #ffffff;
}

.premium-data-table th,
.premium-data-table td {
    padding: 16px 20px;
    text-align: left;
    font-size: 15px;
}

.premium-data-table thead td {
    font-weight: 800;
    color: #ffffff;
    letter-spacing: 0.5px;
    border-bottom: none;
}

.premium-data-table tbody tr {
    transition: background 0.2s ease;
    border-bottom: 1px solid var(--border-color);
}

.premium-data-table tbody tr:last-child {
    border-bottom: none;
}

.premium-data-table tbody tr:hover {
    background: #f0f9ff;
}

.premium-data-table td strong {
    color: var(--primary);
}

/* Stylizacja Tabeli i responsywność (Mobile) */
@media (max-width: 768px) {
    .module-content-section { padding: 30px 25px 10px 25px; }
    .module-slider-section { padding: 10px 25px 25px 25px; }
    .module-table-section { padding: 0 25px 30px 25px; }
    
    .premium-data-table {
        background: transparent;
        border: none;
        box-shadow: none;
    }
    
    .premium-data-table thead {
        display: none;
    }
    
    .premium-data-table tbody tr {
        display: block;
        background: #ffffff;
        border: 1px solid var(--border-color);
        border-radius: 16px;
        margin-bottom: 15px;
        padding: 5px 15px;
        box-shadow: 0 4px 6px -1px rgba(0,0,0,0.03);
    }
    
    .premium-data-table td {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 12px 0;
        border-bottom: 1px solid #f1f5f9;
        text-align: right;
    }
    
    .premium-data-table td:last-child {
        border-bottom: none;
    }
    
    .premium-data-table td::before {
        content: attr(data-label);
        font-weight: 700;
        color: #64748b;
        font-size: 13px;
        text-align: left;
        padding-right: 15px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }
}
</style>

<div class="premium-floor-temp-module" id="app-container-floor-limits">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Zestawienie Standardów Komfortu Cieplnego Posadzek",
        "description": "Interaktywna tabela i wytyczne inżynierskie określające bezpieczne oraz fizjologicznie optymalne temperatury powierzchni podłogi dla różnych typów pomieszczeń (salony, łazienki, strefy brzegowe).",
        "applicationCategory": "ReferenceApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "PLN"
        },
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Określenie limitów termicznych zapobiegających syndromowi ciężkich nóg",
          "Zestawienie sugerowanych temperatur zasilania dla specyficznych stref budynku",
          "Optymalizacja mocy cieplnej w odniesieniu do stref brzegowych"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Normatywne limity temperatur powierzchni podłogi",
        "description": "Zbiór zmiennych projektowych dla ogrzewania płaszczyznowego uwzględniający przeznaczenie pomieszczenia, temperaturę powierzchni oraz maksymalną moc jednostkową.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Limit dla stref stałego przebywania (Pokoje/Sypialnie)",
            "value": "29°C",
            "description": "Maksymalna temperatura powierzchni chroniąca przed negatywnym wpływem na układ krążenia."
          },
          {
            "@type": "PropertyValue",
            "name": "Limit dla łazienek",
            "value": "35°C",
            "description": "Dopuszczalna wyższa temperatura ze względu na krótkotrwały pobyt i potrzebę odczucia ciepła bosą stopą."
          },
          {
            "@type": "PropertyValue",
            "name": "Limit dla stref brzegowych (przeszklenia)",
            "value": "33°C",
            "description": "Podwyższona temperatura kompensująca zwiększone straty cieplne przy oknach i drzwiach tarasowych."
          }
        ]
      }
    ]
    </script>
    
    <div class="module-content-section">
        <div class="module-badge">
            <span>👣</span> Komfort i Zdrowie
        </div>
        <h2>Jakie są dopuszczalne temperatury powierzchni podłogi?</h2>
        
        <p>Dopuszczalna temperatura powierzchni podłogi zależy od przeznaczenia pomieszczenia: maksymalna wartość wynosi <strong>29°C</strong> dla stref stałego przebywania ludzi (salony, sypialnie), <strong>33°C</strong> dla stref brzegowych oraz <strong>35°C</strong> dla łazienek. Wartości te są punktem wyjścia do obliczenia, jaka powinna być temperatura wody w rurach.</p>
        
        <h3>Fizjologia a projektowanie instalacji</h3>
        <p>Zjawisko to jest ściśle powiązane z fizjologią człowieka. Przekroczenie <strong>29°C</strong> w miejscach, gdzie przebywamy długo (np. pracując przy biurku), powoduje tzw. "zespół ciężkich nóg" i może negatywnie wpływać na układ krążenia. Aby uzyskać te parametry, inżynier musi uwzględnić <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/">strefy brzegowe</a> przy dużych przeszkleniach, gdzie dopuszcza się wyższą temperaturę, aby zniwelować straty ciepła przez okna. W łazienkach, gdzie bosa stopa ma kontakt z podłogą przez krótki czas, wyższa temperatura (<strong>35°C</strong>) jest wręcz pożądana dla odczucia komfortu.</p>
    </div>

    <div class="module-slider-section">
        <div class="comfort-slider-container">
            <div class="comfort-val-display" id="comfort-val-display">29°C</div>
            <input type="range" min="20" max="40" value="29" class="comfort-slider" id="comfort-temp-slider">
        </div>
        <div class="comfort-status" id="comfort-status-box">Przesuń suwak...</div>
    </div>

    <div class="module-table-section">
        <figure class="wp-block-table">
            <table class="has-fixed-layout premium-data-table">
                <thead>
                    <tr>
                        <td><strong>Rodzaj pomieszczenia</strong></td>
                        <td><strong>Max. temp. powierzchni (tf​)</strong></td>
                        <td><strong>Sugerowana temp. zasilania (tz​)</strong></td>
                        <td><strong>Max. moc cieplna (q)</strong></td>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td data-label="Pomieszczenie"><strong>Pokoje dzienne / Sypialnie</strong></td>
                        <td data-label="Max. temp. powierzchni"><strong>29°C</strong></td>
                        <td data-label="Sugerowane zasilanie"><strong>32 - 38°C</strong></td>
                        <td data-label="Max. moc cieplna"><strong>ok. 100 W/m²</strong></td>
                    </tr>
                    <tr>
                        <td data-label="Pomieszczenie"><strong>Łazienki / WC</strong></td>
                        <td data-label="Max. temp. powierzchni"><strong>35°C</strong></td>
                        <td data-label="Sugerowane zasilanie"><strong>40 - 45°C</strong></td>
                        <td data-label="Max. moc cieplna"><strong>ok. 150 W/m²</strong></td>
                    </tr>
                    <tr>
                        <td data-label="Pomieszczenie"><strong>Strefy brzegowe (okna)</strong></td>
                        <td data-label="Max. temp. powierzchni"><strong>33°C</strong></td>
                        <td data-label="Sugerowane zasilanie"><strong>40 - 45°C</strong></td>
                        <td data-label="Max. moc cieplna"><strong>ok. 175 W/m²</strong></td>
                    </tr>
                    <tr>
                        <td data-label="Pomieszczenie"><strong>Hale / Magazyny</strong></td>
                        <td data-label="Max. temp. powierzchni"><strong>24 - 26°C</strong></td>
                        <td data-label="Sugerowane zasilanie"><strong>30 - 35°C</strong></td>
                        <td data-label="Max. moc cieplna"><strong>ok. 80 W/m²</strong></td>
                    </tr>
                </tbody>
            </table>
        </figure>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-container-floor-limits');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">
                    <span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>
                    <p style="margin: 0 0 10px 0; font-size: 22px;">Treść Chroniona Prawem Autorskim</p>
                    <p style="font-size: 15px; margin-bottom: 20px;">Moduł został skopiowany z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 10px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    // Logika Suwaka
    const comfortSlider = document.getElementById('comfort-temp-slider');
    const comfortDisplay = document.getElementById('comfort-val-display');
    const comfortStatus = document.getElementById('comfort-status-box');

    function updateComfort(temp) {
        comfortDisplay.textContent = temp + '°C';
        
        if (temp <= 26) {
            comfortStatus.innerHTML = '❄️ <strong>' + temp + '°C:</strong> Chłodno. Odpowiednia temperatura tylko dla hal i magazynów.';
            comfortStatus.style.borderColor = '#bae6fd';
            comfortStatus.style.color = '#0369a1';
            comfortStatus.style.background = '#f0f9ff';
        } else if (temp <= 29) {
            comfortStatus.innerHTML = '✅ <strong>' + temp + '°C:</strong> Optymalnie. Maksymalny komfort dla salonu i sypialni.';
            comfortStatus.style.borderColor = '#bbf7d0';
            comfortStatus.style.color = '#15803d';
            comfortStatus.style.background = '#f0fdf4';
        } else if (temp <= 33) {
            comfortStatus.innerHTML = '🪟 <strong>' + temp + '°C:</strong> Ciepło. Limit dopuszczalny w strefach brzegowych (przy oknach).';
            comfortStatus.style.borderColor = '#fed7aa';
            comfortStatus.style.color = '#c2410c';
            comfortStatus.style.background = '#fff7ed';
        } else if (temp <= 35) {
            comfortStatus.innerHTML = '🛁 <strong>' + temp + '°C:</strong> Bardzo ciepło. Idealna temperatura wyłącznie dla łazienek.';
            comfortStatus.style.borderColor = '#fed7aa';
            comfortStatus.style.color = '#c2410c';
            comfortStatus.style.background = '#fff7ed';
        } else {
            comfortStatus.innerHTML = '💥 <strong>' + temp + '°C:</strong> Przegrzanie! Ryzyko wystąpienia "zespołu ciężkich nóg".';
            comfortStatus.style.borderColor = '#fecaca';
            comfortStatus.style.color = '#b91c1c';
            comfortStatus.style.background = '#fef2f2';
        }

        const min = comfortSlider.min;
        const max = comfortSlider.max;
        const percent = ((temp - min) / (max - min)) * 100;
        comfortDisplay.style.left = `calc(${percent}% + (${16 - percent * 0.32}px))`;
    }

    if (comfortSlider) {
        comfortSlider.addEventListener('input', function() {
            updateComfort(this.value);
        });
        updateComfort(comfortSlider.value);
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #0284c7;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-material-module {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 15px 40px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

/* ===============================
   SEKCJA TEKSTOWA (Rozbicie ściany)
   =============================== */
.module-content-section {
    padding: 40px 50px 20px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
}

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

.module-content-section h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
    margin: 0 0 20px 0;
    line-height: 1.3;
}

.text-lead {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 20px 0;
}

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

.module-content-section a:hover {
    color: #0369a1;
}

.module-content-section strong {
    color: var(--primary);
    background: rgba(2, 132, 199, 0.05);
    padding: 2px 6px;
    border-radius: 4px;
}

/* Boks o drewnie */
.wood-warning-box {
    background: #fff7ed;
    border-left: 4px solid var(--warning);
    padding: 18px 20px;
    border-radius: 0 12px 12px 0;
    display: flex;
    gap: 15px;
    align-items: center;
    margin-bottom: 25px;
}

.wood-warning-box .icon {
    font-size: 28px;
}

.wood-warning-box p {
    margin: 0;
    font-size: 15px;
    color: #9a3412;
    line-height: 1.6;
}

/* Kafelki z zagrożeniami/info */
.article-risks-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 10px;
    margin-bottom: 10px;
}

.article-risk-card {
    background: #fff5f5;
    border: 1px solid #fecaca;
    padding: 20px;
    border-radius: 16px;
}

.article-risk-card.neutral {
    background: #f8fafc;
    border: 1px solid var(--border-color);
}

.article-risk-card.neutral p {
    color: #475569;
}

.article-risk-card .risk-icon {
    font-size: 24px;
    display: block;
    margin-bottom: 10px;
}

.article-risk-card p {
    margin: 0;
    font-size: 14px;
    color: #7f1d1d;
    line-height: 1.6;
}

/* ===============================
   SEKCJA INTERAKTYWNA
   =============================== */
.module-interactive-section {
    padding: 20px 50px 40px 50px;
    background: var(--bg-light);
}

.material-selector {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-bottom: 30px;
}

.material-btn {
    background: #ffffff;
    border: 2px solid var(--border-color);
    padding: 15px;
    border-radius: 16px;
    cursor: pointer;
    text-align: center;
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.material-btn:hover {
    border-color: #bae6fd;
    transform: translateY(-2px);
}

.material-btn.active {
    border-color: var(--accent);
    background: #f0f9ff;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.15);
}

.material-icon {
    font-size: 28px;
    display: block;
    margin-bottom: 8px;
}

.material-name {
    font-size: 15px;
    font-weight: 800;
    color: var(--primary);
    display: block;
}

.material-visualizer {
    background: #ffffff;
    border-radius: 20px;
    padding: 30px;
    border: 1px solid var(--border-color);
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.visualizer-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--border-color);
}

.temp-stat {
    text-align: center;
}

.temp-stat-label {
    font-size: 12px;
    color: #64748b;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    display: block;
    margin-bottom: 5px;
}

.temp-stat-value {
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
}

.temp-stat-value.highlight {
    color: var(--accent);
}

.visualizer-warning {
    background: #fef2f2;
    border-left: 4px solid var(--danger);
    padding: 15px 20px;
    border-radius: 12px;
    font-size: 14px;
    color: #7f1d1d;
    line-height: 1.6;
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

.visualizer-warning.safe {
    background: #f0fdf4;
    border-left-color: var(--success);
    color: #14532d;
}

.visualizer-warning.caution {
    background: #fff7ed;
    border-left-color: var(--warning);
    color: #7c2d12;
}

.warning-icon {
    font-size: 20px;
    margin-top: 2px;
}

@media (max-width: 768px) {
    .module-content-section { padding: 40px 25px 20px 25px; }
    .article-risks-grid { grid-template-columns: 1fr; }
    .wood-warning-box { flex-direction: column; text-align: center; }
    .module-interactive-section { padding: 20px 25px 40px 25px; }
    .material-selector { grid-template-columns: 1fr; gap: 10px; }
    .visualizer-top { flex-direction: column; gap: 20px; text-align: center; }
    .temp-stat { width: 100%; border-bottom: 1px solid #f1f5f9; padding-bottom: 15px; }
    .temp-stat:last-child { border-bottom: none; padding-bottom: 0; }
}
</style>

<div class="premium-material-module" id="app-container-materials">
    
    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Symulator Limitów Termicznych Okładzin Podłogowych",
        "description": "Narzędzie interaktywne prezentujące maksymalne bezpieczne temperatury zasilania oraz powierzchni dla różnych rodzajów wykończenia podłogi (ceramika, laminat, drewno) w systemach ogrzewania płaszczyznowego.",
        "applicationCategory": "EngineeringApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "PLN"
        },
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Zestawienie limitów temperatury zasilania (tz) dla gresu, paneli i drewna",
          "Ostrzeżenia przed przekroczeniem 27°C dla parkietów warstwowych",
          "Identyfikacja zagrożeń związanych z oporem cieplnym R"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Opór cieplny i tolerancja temperaturowa materiałów wykończeniowych",
        "description": "Zbiór danych inżynierskich klasyfikujących okładziny podłogowe pod kątem współpracy z wodnym ogrzewaniem podłogowym.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Płytki ceramiczne",
            "value": "Max Zasilanie: 50-55°C",
            "description": "Materiał o bardzo niskim oporze cieplnym, idealnie przewodzący ciepło."
          },
          {
            "@type": "PropertyValue",
            "name": "Panele laminowane",
            "value": "Max Zasilanie: 38-40°C",
            "description": "Przegrzanie może prowadzić do uwalniania się lotnych związków organicznych z klejów."
          },
          {
            "@type": "PropertyValue",
            "name": "Drewno (deska warstwowa)",
            "value": "Max Powierzchnia: 27°C",
            "description": "Naturalny izolator (λ ≈ 0,13 - 0,21 W/mK). Przekroczenie limitu grozi rozeschnięciem i utratą gwarancji."
          }
        ]
      }
    ]
    </script>

    <div class="module-content-section">
        <div class="module-badge">
            <span>🧱</span> Właściwości Materiałów
        </div>
        <h2>Jak rodzaj podłogi ogranicza temperaturę zasilania?</h2> 
        
        <p class="text-lead">Każdy materiał wykończeniowy stawia inny opór cieplny, co determinuje górną granicę temperatury wody. O ile dla płytek ceramicznych maksymalna temperatura wody może wynosić nawet <strong>50-55°C</strong>, o tyle dla podłóg drewnianych i laminowanych najczęściej nie może przekroczyć <strong>38-40°C</strong>. Kluczowym parametrem jest tutaj <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">opór cieplny R</a>.</p>
        
        <div class="wood-warning-box">
            <span class="icon">🌳</span>
            <p>Drewno jest naturalnym izolatorem (λ ≈ 0,13 - 0,21 W/mK). Jeśli w systemie z drewnem ustawimy zbyt wysoką temperaturę zasilania, dojdzie do gwałtownego przesuszenia materiału. Większość producentów desek warstwowych zastrzega, że temperatura samej powierzchni drewna nie może przekroczyć <strong>27°C</strong>. Przekroczenie tej wartości powoduje pękanie włókien, rozsychanie się spoin i utratę gwarancji.</p>
        </div>

        <div class="article-risks-grid">
            <div class="article-risk-card neutral">
                <span class="risk-icon">📚</span>
                <p>Dlatego tak ważne jest zrozumienie, <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">jak rodzaj okładziny podłogowej wpływa na wydajność</a> i bezpieczeństwo całego systemu.</p>
            </div>
            
            <div class="article-risk-card">
                <span class="risk-icon">⚠️</span>
                <p>W przypadku paneli laminowanych, wysoka temperatura może prowadzić do emisji substancji chemicznych zawartych w klejach i żywicach. Optymalnym rozwiązaniem przy "trudnych" okładzinach jest zagęszczenie rozstawu rur, co pozwala na obniżenie temperatury czynnika przy zachowaniu tej samej mocy grzewczej.</p>
            </div>
        </div>
    </div>

    <div class="module-interactive-section">
        
        <div class="material-selector">
            <div class="material-btn active" data-mat="tiles">
                <span class="material-icon">🧊</span>
                <span class="material-name">Płytki / Gres</span>
            </div>
            <div class="material-btn" data-mat="laminate">
                <span class="material-icon">🪵</span>
                <span class="material-name">Panele Laminowane</span>
            </div>
            <div class="material-btn" data-mat="wood">
                <span class="material-icon">🌳</span>
                <span class="material-name">Deska Drewniana</span>
            </div>
        </div>

        <div class="material-visualizer">
            <div class="visualizer-top">
                <div class="temp-stat">
                    <span class="temp-stat-label">Max Zasilanie Wody</span>
                    <span class="temp-stat-value highlight" id="vis-supply-temp">55°C</span>
                </div>
                <div class="temp-stat">
                    <span class="temp-stat-label">Max Powierzchnia</span>
                    <span class="temp-stat-value" id="vis-surface-temp">~ 33°C</span>
                </div>
                <div class="temp-stat">
                    <span class="temp-stat-label">Opór Cieplny (R)</span>
                    <span class="temp-stat-value" id="vis-r-value" style="color: #64748b;">0.02</span>
                </div>
            </div>
            
            <div class="visualizer-warning safe" id="vis-warning-box">
                <span class="warning-icon" id="vis-warning-icon">✅</span>
                <div id="vis-warning-text">
                    <strong>Materiał idealny do podłogówki.</strong> Płytki ceramiczne charakteryzują się znikomym oporem cieplnym. Bez problemu znoszą wyższe temperatury zasilania (do 55°C) i optymalnie przekazują energię do pomieszczenia.
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-container-materials');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">
                    <span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>
                    <p style="margin: 0 0 10px 0; font-size: 22px;">Treść Chroniona Prawem Autorskim</p>
                    <p style="font-size: 15px; margin-bottom: 20px;">Moduł został skopiowany z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 10px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    // Baza danych dla materiałów
    const materialData = {
        'tiles': {
            supply: '50-55°C',
            surface: 'Do 35°C',
            rValue: '~ 0.02',
            statusClass: 'safe',
            icon: '✅',
            text: '<strong>Materiał idealny do podłogówki.</strong> Płytki ceramiczne charakteryzują się znikomym oporem cieplnym. Znoszą wyższe temperatury zasilania i błyskawicznie przekazują energię do pomieszczenia.'
        },
        'laminate': {
            supply: 'Max 40°C',
            surface: 'Max 28°C',
            rValue: '~ 0.08',
            statusClass: 'caution',
            icon: '⚠️',
            text: '<strong>Zwróć uwagę na temperaturę.</strong> Przekroczenie 40°C na zasilaniu może prowadzić do deformacji paneli i emisji szkodliwych substancji chemicznych zawartych w rdzeniu HDF oraz klejach.'
        },
        'wood': {
            supply: 'Max 38°C',
            surface: 'Max 27°C',
            rValue: '0.13 - 0.20',
            statusClass: 'danger',
            icon: '🔥',
            text: '<strong>Ryzyko uszkodzenia materiału!</strong> Drewno jest naturalnym izolatorem. Wyższa temperatura drastycznie je przesuszy, powodując pękanie włókien, "łódkowanie" desek i bezpowrotną utratę gwarancji producenta.'
        }
    };

    // Logika przełączania
    const buttons = document.querySelectorAll('.material-btn');
    const valSupply = document.getElementById('vis-supply-temp');
    const valSurface = document.getElementById('vis-surface-temp');
    const valR = document.getElementById('vis-r-value');
    const warnBox = document.getElementById('vis-warning-box');
    const warnIcon = document.getElementById('vis-warning-icon');
    const warnText = document.getElementById('vis-warning-text');

    buttons.forEach(btn => {
        btn.addEventListener('click', function() {
            // Zmiana klas aktywnych
            buttons.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            // Pobranie danych
            const matKey = this.getAttribute('data-mat');
            const data = materialData[matKey];

            // Aktualizacja UI
            valSupply.textContent = data.supply;
            valSurface.textContent = data.surface;
            valR.textContent = data.rValue;
            
            warnBox.className = 'visualizer-warning ' + data.statusClass;
            warnIcon.textContent = data.icon;
            warnText.innerHTML = data.text;
        });
    });
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #0284c7;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-efficiency-module {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 15px 40px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

/* ===============================
   SEKCJA TEKSTOWA (Rozbicie ściany)
   =============================== */
.efficiency-content-section {
    padding: 40px 50px 10px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
}

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

.efficiency-content-section h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
    margin: 0 0 20px 0;
    line-height: 1.3;
}

.efficiency-lead-text {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 25px 0;
}

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

.efficiency-lead-text a:hover {
    color: #0369a1;
}

/* Wyróżniony boks finansowy */
.cost-impact-box {
    background: #fff7ed;
    border-left: 4px solid var(--warning);
    padding: 20px 25px;
    border-radius: 0 16px 16px 0;
    margin-bottom: 25px;
    display: flex;
    gap: 15px;
    align-items: center;
}

.cost-impact-icon {
    font-size: 28px;
}

.cost-impact-box p {
    margin: 0;
    font-size: 15px;
    color: #9a3412;
    line-height: 1.6;
}

.cost-impact-box strong {
    color: #7c2d12;
    background: rgba(234, 88, 12, 0.1);
    padding: 2px 6px;
    border-radius: 4px;
}

/* Kafelki urządzeń */
.devices-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 20px;
}

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

.device-card p {
    margin: 0;
    font-size: 14px;
    color: #475569;
    line-height: 1.7;
}

.device-card a {
    color: var(--accent);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    font-weight: 700;
}

.device-card strong {
    color: var(--primary);
}

/* ===============================
   SEKCJA SYMULATORA
   =============================== */
.efficiency-simulator-section {
    padding: 30px 50px 40px 50px;
    background: var(--bg-light);
}

.sim-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
    margin: 0 0 5px 0;
}

.sim-subtitle {
    font-size: 14px;
    color: #64748b;
    margin: 0 0 40px 0;
}

.slider-container {
    position: relative;
    margin: 50px 0 40px 0;
    padding: 0 15px;
}

.temp-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 14px;
    border-radius: 7px;
    background: linear-gradient(to right, #10b981 0%, #3b82f6 30%, #f59e0b 70%, #ef4444 100%);
    outline: none;
}

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

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

.temp-slider::-moz-range-thumb {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #ffffff;
    border: 5px solid var(--primary);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}

.slider-value-display {
    position: absolute;
    top: -55px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--primary);
    color: #ffffff;
    padding: 8px 20px;
    border-radius: 14px;
    font-size: 20px;
    font-weight: 900;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.2);
}

.slider-value-display::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    border-width: 8px 8px 0;
    border-style: solid;
    border-color: var(--primary) transparent transparent transparent;
}

/* Wyniki symulacji */
.sim-results-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.sim-result-box {
    background: #ffffff;
    border: 2px solid var(--border-color);
    padding: 20px;
    border-radius: 16px;
    text-align: center;
    transition: all 0.3s ease;
}

.sim-result-label {
    display: block;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 10px;
}

.sim-result-value {
    display: block;
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
    margin-bottom: 5px;
}

.sim-result-desc {
    font-size: 13px;
    color: #475569;
    margin: 0;
    font-weight: 600;
}

/* Kolory dynamiczne */
.val-good { color: var(--success); }
.val-warn { color: var(--warning); }
.val-danger { color: var(--danger); }

@media (max-width: 768px) {
    .efficiency-content-section { padding: 30px 25px 10px 25px; }
    .efficiency-simulator-section { padding: 30px 25px 40px 25px; }
    .devices-grid { grid-template-columns: 1fr; }
    .sim-results-grid { grid-template-columns: 1fr; }
    .cost-impact-box { flex-direction: column; text-align: center; }
}
</style>

<div class="premium-efficiency-module" id="app-container-efficiency">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Kalkulator Wpływu Temperatury na Sprawność (COP) i Koszty",
        "description": "Interaktywny symulator inżynierski obliczający spadek współczynnika efektywności (COP) pompy ciepła oraz szacunkowy wzrost kosztów ogrzewania w zależności od wybranej temperatury zasilania podłogówki.",
        "applicationCategory": "CalculatorApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "PLN"
        },
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Wizualizacja spadku wydajności COP pompy ciepła",
          "Szacowanie rocznych strat finansowych dla domu 150m2",
          "Wskazania trybu kondensacji dla kotłów gazowych"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Dane kosztowe i efektywnościowe źródeł ciepła",
        "description": "Zestawienie twardych danych określających związek między podniesieniem temperatury zasilania o 5°C a wzrostem kosztów eksploatacji.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Spadek efektywności COP",
            "value": "10-15%",
            "description": "Spadek sprawności pompy ciepła na każde 5°C podniesienia temperatury zasilania."
          },
          {
            "@type": "PropertyValue",
            "name": "Szacunkowy wzrost kosztów (150 m2)",
            "value": "500-800 PLN",
            "description": "Średni roczny wzrost rachunków na każde 5°C przekroczenia optymalnej temperatury (35°C)."
          },
          {
            "@type": "PropertyValue",
            "name": "Granica kondensacji kotła gazowego",
            "value": "< 45°C",
            "description": "Maksymalna temperatura powrotu warunkująca ekonomiczną i sprawną pracę kotła kondensacyjnego."
          }
        ]
      }
    ]
    </script>
    
    <div class="efficiency-content-section">
        <div class="module-badge">
            <span>💰</span> Ekonomia Eksploatacji
        </div>
        <h2>Jak ustawienie temperatury wpływa na sprawność źródła ciepła?</h2>
        
        <p class="efficiency-lead-text">Wybór temperatury zasilania ma bezpośrednie przełożenie na rachunki za ogrzewanie, zwłaszcza gdy sercem układu jest <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompa ciepła</a>. Urządzenia te osiągają najwyższy współczynnik COP (efektywność), gdy różnica między temperaturą dolnego źródła a temperaturą zasilania jest jak najmniejsza.</p>
        
        <div class="cost-impact-box">
            <span class="cost-impact-icon">📉</span>
            <p>Podniesienie temperatury zasilania o każde <strong>5°C</strong> (np. z <strong>35°C</strong> na <strong>40°C</strong>) obniża sprawność pompy ciepła o około <strong>10-15%</strong>. W skali roku dla domu 150 m2 może to oznaczać wzrost kosztów eksploatacji o <strong>500-800 PLN</strong>.</p>
        </div>

        <div class="devices-grid">
            <div class="device-card">
                <p>Z kolei <a href="https://projekt-ogrzewania.pl/kociol-gazowy/">kocioł gazowy</a> pracuje najefektywniej w trybie kondensacji, który zachodzi najpełniej, gdy temperatura powrotu wody z podłogówki jest niska (poniżej <strong>45°C</strong>).</p>
            </div>
            <div class="device-card" style="background: #f8fafc;">
                <p>Aby bezpiecznie połączyć kocioł wysokotemperaturowy z podłogówką, niezbędny jest <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">zawór mieszający w ogrzewaniu podlogowym</a>. Pełni on funkcję strażnika – w przypadku awarii automatyki kotła, zawór termostatyczny mechanicznie odcina dopływ zbyt gorącej wody, chroniąc instalację przed zniszczeniem.</p>
            </div>
        </div>
    </div>

    <div class="efficiency-simulator-section">
        <h3 class="sim-title">Symulator Kosztów i Sprawności</h3>
        <p class="sim-subtitle">Zobacz na żywo, ile kosztuje Cię podniesienie temperatury w sterowniku.</p>
        
        <div class="slider-container">
            <div class="slider-value-display" id="eff-val-display">35°C</div>
            <input type="range" min="30" max="55" value="35" step="1" class="temp-slider" id="eff-temp-slider">
        </div>

        <div class="sim-results-grid">
            <div class="sim-result-box" id="eff-box-cost">
                <span class="sim-result-label">Pompa Ciepła: Straty roczne</span>
                <span class="sim-result-value val-good" id="eff-cost-val">+0 PLN</span>
                <p class="sim-result-desc" id="eff-cost-desc">Optymalny COP. Maksymalna oszczędność.</p>
            </div>
            
            <div class="sim-result-box" id="eff-box-gas">
                <span class="sim-result-label">Kocioł Gazowy (Kondensacja)</span>
                <span class="sim-result-value val-good" id="eff-gas-val">100%</span>
                <p class="sim-result-desc" id="eff-gas-desc">Pełne odzyskiwanie ciepła ze spalin.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-container-efficiency');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">
                    <span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>
                    <p style="margin: 0 0 10px 0; font-size: 22px;">Treść Chroniona Prawem Autorskim</p>
                    <p style="font-size: 15px; margin-bottom: 20px;">Moduł edukacyjny został skopiowany z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 10px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    // Logika symulatora
    const effSlider = document.getElementById('eff-temp-slider');
    const effDisplay = document.getElementById('eff-val-display');
    
    const costVal = document.getElementById('eff-cost-val');
    const costDesc = document.getElementById('eff-cost-desc');
    const boxCost = document.getElementById('eff-box-cost');
    
    const gasVal = document.getElementById('eff-gas-val');
    const gasDesc = document.getElementById('eff-gas-desc');
    const boxGas = document.getElementById('eff-box-gas');

    function updateEfficiencyCalc(temp) {
        effDisplay.textContent = temp + '°C';
        
        // Zmienne bazowe z tekstu: +5C to +650 PLN (średnia z 500-800 PLN), czyli ok. 130 PLN na 1C powyżej 35C.
        // Spadek COP: 12.5% (średnia z 10-15%) na 5C, czyli 2.5% na 1C.
        const baseTemp = 35;
        let excessTemp = Math.max(0, temp - baseTemp);
        
        let extraCost = excessTemp * 130;
        let copDrop = excessTemp * 2.5;

        // Aktualizacja Pompy Ciepła
        if (temp <= 35) {
            costVal.textContent = "+0 PLN";
            costVal.className = "sim-result-value val-good";
            boxCost.style.borderColor = "var(--success)";
            costDesc.innerHTML = "Optymalny COP. Praca najbardziej ekonomiczna.";
        } else if (temp <= 45) {
            costVal.textContent = "+" + extraCost + " PLN";
            costVal.className = "sim-result-value val-warn";
            boxCost.style.borderColor = "var(--warning)";
            costDesc.innerHTML = "Spadek efektywności COP o ok. <strong>" + copDrop.toFixed(1) + "%</strong>.";
        } else {
            costVal.textContent = "+" + extraCost + " PLN";
            costVal.className = "sim-result-value val-danger";
            boxCost.style.borderColor = "var(--danger)";
            costDesc.innerHTML = "Spadek COP o <strong>" + copDrop.toFixed(1) + "%</strong>. Sprężarka przeciążona!";
        }

        // Aktualizacja Kotła Gazowego (Zależność od temperatury zasilania; powrót jest ok 5-7C niższy)
        // Jeśli Zasilanie to 45C, powrót to ~38-40C (Idealnie kondensuje). 
        // Jeśli Zasilanie > 50C, powrót > 45C (Granica kondensacji).
        if (temp <= 45) {
            gasVal.textContent = "IDEALNA";
            gasVal.className = "sim-result-value val-good";
            boxGas.style.borderColor = "var(--border-color)"; // neutral
            gasDesc.innerHTML = "Powrót poniżej 45°C. Kocioł kondensuje z maksymalną sprawnością.";
        } else if (temp <= 50) {
            gasVal.textContent = "CZĘŚCIOWA";
            gasVal.className = "sim-result-value val-warn";
            boxGas.style.borderColor = "var(--border-color)"; // neutral
            gasDesc.innerHTML = "Woda powrotna blisko granicy 45°C. Kondensacja słabnie.";
        } else {
            gasVal.textContent = "BRAK";
            gasVal.className = "sim-result-value val-danger";
            boxGas.style.borderColor = "var(--danger)";
            gasDesc.innerHTML = "Powrót powyżej 45°C! Zwykłe spalanie, kocioł traci najwyższą sprawność.";
        }

        // Pozycjonowanie dymka nad suwakiem
        const min = effSlider.min;
        const max = effSlider.max;
        const percent = ((temp - min) / (max - min)) * 100;
        effDisplay.style.left = `calc(${percent}% + (${18 - percent * 0.36}px))`;
    }

    if (effSlider) {
        effSlider.addEventListener('input', function() {
            updateEfficiencyCalc(this.value);
        });
        
        // Timeout dla poprawnego załadowania szerokości w DOM
        setTimeout(() => {
            updateEfficiencyCalc(effSlider.value);
        }, 50);
    }
});
</script>



<style>
:root {
    --primary-hvac: #0f172a;
    --accent-hvac: #2563eb;
    --bg-tip: #f1f5f9;
}

.expert-tip-wrapper {
    max-width: 850px;
    margin: 50px auto 40px auto;
}

.expert-tip-wrapper h2 {
    font-family: 'Inter', -apple-system, sans-serif;
    font-size: 24px;
    font-weight: 900;
    color: var(--primary-hvac);
    margin: 0 0 20px 0;
    text-align: center;
}

.expert-tip-container {
    background: var(--bg-tip);
    border-radius: 20px;
    padding: 30px;
    display: flex;
    gap: 25px;
    align-items: center;
    border-left: 6px solid var(--accent-hvac);
    position: relative;
    font-family: 'Inter', -apple-system, sans-serif;
    text-align: left;
}

.expert-tip-photo-wrap {
    flex-shrink: 0;
    width: 90px;
    height: 90px;
    position: relative;
}

.expert-tip-photo {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    object-position: center top;
    border: 3px solid #ffffff;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

.expert-tip-photo-wrap::after {
    content: '📐';
    position: absolute;
    bottom: -5px;
    right: -5px;
    background: #ffffff;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.expert-tip-content {
    flex-grow: 1;
}

.expert-tip-label {
    display: block;
    font-size: 12px;
    font-weight: 800;
    color: var(--accent-hvac);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 8px;
}

.expert-tip-text {
    font-size: 16px;
    line-height: 1.6;
    color: var(--primary-hvac);
    font-style: italic;
    margin: 0;
}

.expert-tip-signature {
    display: block;
    margin-top: 10px;
    font-size: 13px;
    font-weight: 700;
    color: #64748b;
}

@media (max-width: 600px) {
    .expert-tip-container { flex-direction: column; text-align: center; padding: 25px; }
    .expert-tip-photo-wrap { margin-bottom: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Quotation",
    "license": "https://projekt-ogrzewania.pl/",
    "text": "Wielu instalatorów uważa, że im cieplejsza woda, tym szybciej nagrzeje się dom. To ogromny błąd! Maksymalna temperatura zasilania podłogówki nie powinna przekraczać 55°C, a w nowoczesnych układach z pompą ciepła optymalny wynik to zaledwie 30-35°C. Przekroczenie tej granicy to nie tylko wyrok na Twoje rachunki, ale przede wszystkim ryzyko nieodwracalnego spękania wylewki i zniszczenia drogich posadzek.",
    "spokenByCharacter": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "jobTitle": "CEO & Główny Projektant",
      "url": "https://projekt-ogrzewania.pl",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ],
      "worksFor": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl"
      }
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Wytyczne inżynierskie: Bezpieczne granice temperatur w ogrzewaniu płaszczyznowym",
    "description": "Zestawienie normatywnych i praktycznych limitów temperatury wody grzewczej dla ochrony jastrychu betonowego i okładzin wrażliwych (drewno, winyl).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Kalkulator Bezpiecznej Temperatury Zasilania",
    "description": "Narzędzie online symulujące optymalną temperaturę wody w pętli grzewczej na podstawie oporu cieplnego materiału wykończeniowego oraz obciążenia cieplnego OZC.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    }
  }
]
</script>

<div class="expert-tip-wrapper">
    <h2><span style="margin-right:10px">⚖️</span>Robert Kucharski o fundamentach hydrauliki</h2>
    
    <div class="expert-tip-container" id="expert-tip-hvac">
        <div class="expert-tip-photo-wrap">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="expert-tip-photo" loading="lazy">
        </div>
        <div class="expert-tip-content">
            <span class="expert-tip-label">Wskazówka od Projektanta</span>
            <p class="expert-tip-text">
                "Wielu instalatorów uważa, że im cieplejsza woda, tym szybciej nagrzeje się dom. To ogromny błąd! <strong>Maksymalna temperatura zasilania podłogówki</strong> nie powinna przekraczać 55°C, a w nowoczesnych układach z pompą ciepła optymalny wynik to zaledwie 30-35°C. Przekroczenie tej granicy to nie tylko wyrok na Twoje rachunki, ale przede wszystkim ryzyko nieodwracalnego spękania wylewki i zniszczenia drogich posadzek."
            </p>
            <span class="expert-tip-signature">— Robert Kucharski, CEO & Główny Projektant Projekt-Ogrzewania.pl</span>
        </div>
    </div>

    <noscript>
        <div style="padding: 20px; background: #f1f5f9; border-radius: 20px; margin-top: 20px; font-family: sans-serif;">
            <p style="font-size: 14px; font-weight: bold; color: #0f172a;">Rekomendacja inżynierska Roberta Kucharskiego:</p>
            <p style="font-size: 14px; color: #475569;">Błędem jest dążenie do ekstremalnie wysokich temperatur w instalacji płaszczyznowej. Maksymalna temperatura zasilania podłogówki nie może przekraczać wytycznych normy (55°C), a z punktu widzenia efektywności pomp ciepła powinna oscylować w rejonie 30-35°C.</p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('expert-tip-hvac');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 20px; width: 100%; border: 2px solid #dc2626;">
                    <span style="font-size: 32px; margin-bottom: 15px;">🔒</span>
                    <div style="font-size: 20px; font-weight: bold; margin-bottom: 10px;">Moduł ekspercki chroniony autorsko</div>
                    <p style="font-size: 14px; color: #7f1d1d;">Rekomendacja ekspercka Roberta Kucharskiego jest własnością Projekt-Ogrzewania.pl.</p>
                </div>
            `;
            container.style.borderLeft = 'none';
            container.style.background = 'transparent';
            container.style.padding = '0';
        }
    }
});
</script>



<style>
:root {
    --ozc-primary: #0f172a;
    --ozc-blueprint: #1e293b;
    --ozc-accent: #0ea5e9;
    --ozc-accent-glow: rgba(14, 165, 233, 0.4);
    --ozc-danger: #ef4444;
    --ozc-success: #10b981;
    --ozc-text-light: #f8fafc;
    --ozc-text-muted: #94a3b8;
}

.ozc-premium-module {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.15);
    background: #ffffff;
    border: 1px solid #e2e8f0;
}

/* ===============================
   Część Tekstowa (Rozbita Ściana Tekstu)
   =============================== */
.ozc-text-section {
    padding: 45px 50px 35px 50px;
}

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

.ozc-text-section h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--ozc-primary);
    margin: 0 0 25px 0;
    line-height: 1.3;
}

.ozc-lead-text {
    font-size: 16px;
    line-height: 1.8;
    color: #1e293b;
    background: #f0f9ff;
    padding: 20px 25px;
    border-radius: 16px;
    border-left: 4px solid var(--ozc-accent);
    margin: 0 0 30px 0;
}

.ozc-text-section a {
    color: var(--ozc-accent);
    text-decoration: none;
    font-weight: 700;
    border-bottom: 2px solid rgba(14, 165, 233, 0.3);
    transition: all 0.3s ease;
}

.ozc-text-section a:hover {
    background: rgba(14, 165, 233, 0.1);
    border-bottom-color: var(--ozc-accent);
}

.ozc-text-section strong {
    color: var(--ozc-primary);
    font-weight: 800;
}

/* Interaktywne Zakładki (Tabs) */
.ozc-interactive-tabs {
    margin-bottom: 10px;
}

.ozc-tab-nav {
    display: flex;
    gap: 12px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.ozc-tab-btn {
    background: #ffffff;
    border: 2px solid #e2e8f0;
    padding: 10px 20px;
    border-radius: 30px;
    font-size: 14px;
    font-weight: 700;
    color: #475569;
    cursor: pointer;
    transition: all 0.3s ease;
}

.ozc-tab-btn:hover {
    border-color: #bae6fd;
    color: var(--ozc-accent);
}

.ozc-tab-btn.active {
    background: var(--ozc-primary);
    border-color: var(--ozc-primary);
    color: #ffffff;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.15);
}

.ozc-tab-panel {
    display: none;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    padding: 25px;
    border-radius: 16px;
    animation: ozc-fade-in 0.4s ease;
}

.ozc-tab-panel.active {
    display: block;
}

.ozc-tab-panel p {
    font-size: 15px;
    line-height: 1.8;
    color: #334155;
    margin: 0;
}

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

/* ===============================
   Część Inżynierska (Ciemny Blueprint)
   =============================== */
.ozc-engineering-section {
    background-color: var(--ozc-blueprint);
    background-image: 
        linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
    background-size: 20px 20px;
    padding: 40px 50px;
    color: var(--ozc-text-light);
    position: relative;
    border-top: 4px solid var(--ozc-accent);
}

.ozc-eng-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 30px;
}

.ozc-eng-title {
    margin: 0;
    font-size: 20px;
    font-weight: 800;
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 10px;
}

.ozc-eng-subtitle {
    margin: 5px 0 0 0;
    font-size: 14px;
    color: var(--ozc-text-muted);
}

.ozc-slider-wrap {
    margin-bottom: 35px;
    background: rgba(0,0,0,0.2);
    padding: 20px 25px;
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,0.05);
}

.ozc-slider-label {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--ozc-text-muted);
    margin-bottom: 15px;
}

.ozc-slider-val {
    color: var(--ozc-accent);
    font-size: 16px;
    font-family: monospace;
    font-weight: 900;
}

.ozc-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 6px;
    background: rgba(255,255,255,0.1);
    border-radius: 3px;
    outline: none;
}

.ozc-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--ozc-blueprint);
    border: 3px solid var(--ozc-accent);
    cursor: pointer;
    box-shadow: 0 0 15px var(--ozc-accent-glow);
    transition: transform 0.1s;
}

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

/* Kafelki porównawcze */
.ozc-comparison-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.ozc-comp-card {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 16px;
    padding: 25px;
    position: relative;
    overflow: hidden;
}

.ozc-comp-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 4px; height: 100%;
}

.ozc-comp-card.amateur::before { background: var(--ozc-danger); }
.ozc-comp-card.pro::before { background: var(--ozc-success); }

.ozc-comp-header {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--ozc-text-muted);
    margin-bottom: 15px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.ozc-comp-value {
    font-family: 'Courier New', monospace;
    font-size: 32px;
    font-weight: 900;
    color: #ffffff;
    margin-bottom: 5px;
    display: block;
}

.ozc-comp-sub {
    font-size: 13px;
    color: var(--ozc-text-muted);
}

.ozc-roi-box {
    margin-top: 20px;
    background: rgba(16, 185, 129, 0.1);
    border: 1px dashed rgba(16, 185, 129, 0.3);
    border-radius: 12px;
    padding: 15px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.ozc-roi-text {
    font-size: 14px;
    color: #a7f3d0;
    font-weight: 600;
}

.ozc-roi-result {
    font-size: 18px;
    font-weight: 900;
    color: var(--ozc-success);
}

@media (max-width: 768px) {
    .ozc-text-section { padding: 35px 25px; }
    .ozc-engineering-section { padding: 35px 25px; }
    .ozc-comparison-grid { grid-template-columns: 1fr; }
    .ozc-eng-header { flex-direction: column; align-items: flex-start; gap: 10px; }
    .ozc-roi-box { flex-direction: column; text-align: center; gap: 10px; }
    .ozc-tab-nav { flex-direction: column; }
    .ozc-tab-btn { width: 100%; text-align: left; }
}
</style>

<div class="ozc-premium-module" id="app-ozc-roi">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Kalkulator Zwrotu z Inwestycji w Projekt OZC",
        "description": "Narzędzie inżynierskie udowadniające finansową zasadność wykonania profesjonalnego projektu OZC i doboru rozstawu rur podłogówki (10 cm vs 15 cm) względem montażu metodą 'na oko'.",
        "applicationCategory": "CalculatorApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "PLN"
        },
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Kalkulacja strat cieplnych wynikających z bezwładności i złego rozstawu rur",
          "Porównanie kosztów eksploatacji (Na oko vs Projekt Inżynierski)",
          "Obliczanie czasu zwrotu (ROI) za dokumentację projektową"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Parametry projektowe OZC i bezwładność cieplna",
        "description": "Dane wejściowe do oceny skuteczności sterowania temperaturą zasilania w systemach płaszczyznowych.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Koszt dokumentacji projektowej",
            "value": "500-1500 PLN",
            "description": "Jednorazowy koszt wykonania profesjonalnego projektu ogrzewania podłogowego."
          },
          {
            "@type": "PropertyValue",
            "name": "Ustawienie temperatury",
            "value": "Stałe vs Zmienne (krzywa grzewcza)",
            "description": "Różnica między ręcznym ustawianiem 45°C na kotle a sterowaniem na podstawie OZC."
          },
          {
            "@type": "PropertyValue",
            "name": "Rozstaw rur",
            "value": "10 cm lub 15 cm",
            "description": "Zagęszczenie ustalane na podstawie strat ciepła wyliczanych indywidualnie dla pomieszczenia."
          }
        ]
      }
    ]
    </script>

    <div class="ozc-text-section">
        <div class="ozc-badge">
            <span>📐</span> Inżynieria w Praktyce
        </div>
        <h2>Dlaczego profesjonalny projekt jest kluczem do optymalnej temperatury?</h2>
        
        <p class="ozc-lead-text">Ustawienie temperatury zasilania "na oko" (np. stałe <strong>45°C</strong> na kotle) jest najczęstszym błędem inwestorów. Poprawne parametry można wyznaczyć jedynie poprzez <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne OZC</a>, które precyzyjnie określa straty energii dla każdego pomieszczenia.</p>
        
        <div class="ozc-interactive-tabs">
            <div class="ozc-tab-nav">
                <button class="ozc-tab-btn active" data-target="ozc-tab-1">📏 Rozstaw rur</button>
                <button class="ozc-tab-btn" data-target="ozc-tab-2">🧱 Bezwładność cieplna</button>
                <button class="ozc-tab-btn" data-target="ozc-tab-3">💰 Koszty i zwrot</button>
            </div>
            
            <div class="ozc-tab-content">
                <div class="ozc-tab-panel active" id="ozc-tab-1">
                    <p>Dzięki obliczeniom wiemy, czy w danym pokoju wystarczy <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowego/">rozstaw rur co 15 cm</a>, czy może ze względu na duże straty i niską temperaturę zasilania (np. z pompy ciepła), musimy zagęścić rury do <strong>10 cm</strong>.</p>
                </div>
                
                <div class="ozc-tab-panel" id="ozc-tab-2">
                    <p>Projektant bierze pod uwagę również <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplną</a> jastrychu. Zbyt wysoka temperatura zasilania w połączeniu z grubą wylewką sprawia, że systemem nie da się sterować – po osiągnięciu temperatury w pokoju, podłoga jeszcze przez wiele godzin oddaje nadmiar ciepła, prowadząc do przegrzania pomieszczeń.</p>
                </div>
                
                <div class="ozc-tab-panel" id="ozc-tab-3">
                    <p>Zastanawiając się, <a href="https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/">czy do ogrzewania podłogowego potrzebny jest projekt</a>, warto pamiętać, że koszt dokumentacji (ok. <strong>500-1500 PLN</strong>) zwraca się zazwyczaj już po pierwszym sezonie grzewczym dzięki optymalizacji temperatury zasilania.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="ozc-engineering-section">
        <div class="ozc-eng-header">
            <div>
                <h3 class="ozc-eng-title"><span>⚙️</span> Kalkulator Zwrotu z Projektu OZC</h3>
                <p class="ozc-eng-subtitle">Symulacja kosztów eksploatacji w pierwszym sezonie grzewczym.</p>
            </div>
        </div>

        <div class="ozc-slider-wrap">
            <div class="ozc-slider-label">
                <span>Powierzchnia do ogrzania:</span>
                <span class="ozc-slider-val" id="ozc-area-val">150 m²</span>
            </div>
            <input type="range" min="80" max="300" step="10" value="150" class="ozc-slider" id="ozc-area-slider">
        </div>

        <div class="ozc-comparison-grid">
            <div class="ozc-comp-card amateur">
                <div class="ozc-comp-header"><span style="font-size:16px">❌</span> Montaż "Na Oko"</div>
                <span class="ozc-comp-value" id="cost-amateur">4 800 PLN</span>
                <span class="ozc-comp-sub">Przewymiarowane rachunki, przegrzewanie i brak optymalizacji pracy pompy.</span>
            </div>
            
            <div class="ozc-comp-card pro">
                <div class="ozc-comp-header"><span style="font-size:16px">✅</span> Profesjonalny Projekt</div>
                <span class="ozc-comp-value" style="color:var(--ozc-success)" id="cost-pro">3 950 PLN</span>
                <span class="ozc-comp-sub">Właściwy rozstaw rur, bezwładność pod kontrolą i minimalna temp. zasilania.</span>
            </div>
        </div>

        <div class="ozc-roi-box">
            <div class="ozc-roi-text">Szacowane oszczędności po pierwszym sezonie:</div>
            <div class="ozc-roi-result" id="ozc-savings">850 PLN</div>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-ozc-roi');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">
                    <span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>
                    <p style="margin: 0 0 10px 0; font-size: 22px;">Treść Chroniona Prawem Autorskim</p>
                    <p style="font-size: 15px; margin-bottom: 20px;">Kalkulator został skopiowany z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 10px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    // Logika Zakładek (Tabs)
    const tabBtns = document.querySelectorAll('.ozc-tab-btn');
    const tabPanels = document.querySelectorAll('.ozc-tab-panel');

    tabBtns.forEach(btn => {
        btn.addEventListener('click', () => {
            // Usuń klasę active ze wszystkich
            tabBtns.forEach(b => b.classList.remove('active'));
            tabPanels.forEach(p => p.classList.remove('active'));
            
            // Dodaj do klikniętego
            btn.classList.add('active');
            const targetId = btn.getAttribute('data-target');
            document.getElementById(targetId).classList.add('active');
        });
    });

    // Logika Kalkulatora ROI
    const slider = document.getElementById('ozc-area-slider');
    const displayArea = document.getElementById('ozc-area-val');
    const displayAmateur = document.getElementById('cost-amateur');
    const displayPro = document.getElementById('cost-pro');
    const displaySavings = document.getElementById('ozc-savings');

    // Założenia ekonomiczne
    const costPerSqmPro = 26.50; // PLN / m2 / rok
    const inefficiencyPenalty = 1.21; // 21% wyższe rachunki na "oko"

    function formatCurrency(num) {
        return Math.round(num).toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ") + " PLN";
    }

    function calculateROI(area) {
        displayArea.textContent = area + ' m²';

        const proCost = area * costPerSqmPro;
        const amateurCost = proCost * inefficiencyPenalty;
        const savings = amateurCost - proCost;

        displayPro.textContent = formatCurrency(proCost);
        displayAmateur.textContent = formatCurrency(amateurCost);
        
        displaySavings.innerHTML = `+ ${formatCurrency(savings)} <span style="font-size:13px; font-weight:600; color:#6ee7b7">(Projekt zwraca się w 1 rok)</span>`;
    }

    if (slider) {
        slider.addEventListener('input', function() {
            calculateROI(this.value);
        });
        calculateROI(slider.value);
    }
});
</script>



<style>
:root {
    --cs-primary: #0f172a;
    --cs-accent: #2563eb;
    --cs-wood: #b45309; /* Kolor drewna */
    --cs-tiles: #0891b2; /* Kolor gresu/wody */
    --cs-bg: #f8fafc;
    --cs-border: #e2e8f0;
    --cs-text: #475569;
}

.case-study-module {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--cs-border);
    overflow: hidden;
}

/* ================= HEADER I METRYCZKA ================= */
.cs-header-wrapper {
    background: var(--cs-primary);
    color: #ffffff;
    padding: 40px 50px;
    position: relative;
    overflow: hidden;
}

.cs-header-wrapper::after {
    content: '';
    position: absolute;
    top: -50px;
    right: -50px;
    width: 250px;
    height: 250px;
    background: radial-gradient(circle, rgba(37, 99, 235, 0.3) 0%, rgba(255,255,255,0) 70%);
    border-radius: 50%;
}

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

.cs-header-wrapper h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 25px 0;
    line-height: 1.3;
    color: #ffffff;
    position: relative;
    z-index: 2;
}

.cs-stats-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    position: relative;
    z-index: 2;
}

.cs-stat-box {
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 15px;
    border-radius: 12px;
    backdrop-filter: blur(4px);
}

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

.cs-stat-value {
    display: block;
    font-size: 16px;
    font-weight: 900;
    color: #ffffff;
}

/* ================= OPIS WYZWANIA ================= */
.cs-content-section {
    padding: 40px 50px 30px 50px;
    background: #ffffff;
}

.cs-lead-text {
    font-size: 16px;
    line-height: 1.8;
    color: var(--cs-text);
    margin: 0 0 20px 0;
}

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

.cs-author-box {
    background: #f0f9ff;
    border-left: 4px solid var(--cs-accent);
    padding: 15px 20px;
    border-radius: 0 12px 12px 0;
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 10px;
}

.cs-author-photo {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid #ffffff;
    box-shadow: 0 4px 10px rgba(37, 99, 235, 0.2);
    flex-shrink: 0;
}

.cs-author-box p {
    margin: 0;
    font-size: 14px;
    color: #1e3a8a;
    line-height: 1.6;
}

.cs-author-box a {
    color: var(--cs-accent);
    font-weight: 800;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.cs-author-box a:hover {
    color: #1e3a8a;
}

/* ================= INTERAKTYWNE WYZWANIE (SPLIT CARDS) ================= */
.cs-interactive-section {
    padding: 0 50px 40px 50px;
}

.cs-split-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

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

/* Stan nieaktywny lekko przygaszony */
.cs-split-card:not(.active) {
    opacity: 0.7;
    transform: scale(0.98);
}

/* Kolorystyka i aktywacja */
.cs-split-card.wood.active {
    border-color: var(--cs-wood);
    background: #fffbeb;
    box-shadow: 0 10px 25px rgba(180, 83, 9, 0.1);
    opacity: 1;
    transform: scale(1);
}

.cs-split-card.tiles.active {
    border-color: var(--cs-tiles);
    background: #ecfeff;
    box-shadow: 0 10px 25px rgba(8, 145, 178, 0.1);
    opacity: 1;
    transform: scale(1);
}

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

.cs-card-icon {
    font-size: 28px;
}

.cs-card-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--cs-primary);
    margin: 0;
}

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

.cs-card-solution {
    margin-top: 15px;
    padding-top: 15px;
    border-top: 1px dashed rgba(0,0,0,0.1);
    font-size: 13px;
    font-weight: 700;
    display: none; /* Ukryte do momentu kliknięcia */
}

.cs-split-card.wood .cs-card-solution { color: #92400e; }
.cs-split-card.tiles .cs-card-solution { color: #155e75; }

.cs-split-card.active .cs-card-solution {
    display: block;
    animation: csFadeIn 0.4s ease forwards;
}

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

@media (max-width: 768px) {
    .cs-header-wrapper { padding: 35px 25px; }
    .cs-stats-grid { grid-template-columns: 1fr 1fr; }
    .cs-content-section { padding: 30px 25px 20px 25px; }
    .cs-interactive-section { padding: 0 25px 30px 25px; }
    .cs-split-container { grid-template-columns: 1fr; }
}
</style>

<div class="case-study-module" id="app-case-study">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Panel Studium Przypadku: Optymalizacja Podłogówki",
        "description": "Interaktywny moduł prezentujący proces decyzyjny i wyzwania inżynierskie przy projektowaniu ogrzewania dla różnych rodzajów posadzek w jednym budynku.",
        "applicationCategory": "EducationalApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "PLN"
        },
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "url": "https://projekt-ogrzewania.pl/author/admin3399/",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Analiza parametrów zasilania dla parkietu dębowego",
          "Analiza parametrów zasilania dla gresu",
          "Wizualizacja dylematu projektowego (mieszane wykończenie)"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Parametry Projektowe OZC - Dom Zielonki 2026",
        "description": "Zestawienie parametrów wejściowych budynku wykorzystanych do optymalizacji zasilania ogrzewania podłogowego.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Data projektu",
            "value": "Luty 2026"
          },
          {
            "@type": "PropertyValue",
            "name": "Powierzchnia budynku",
            "value": "144 m²"
          },
          {
            "@type": "PropertyValue",
            "name": "Zapotrzebowanie na moc (OZC)",
            "value": "40 W/m²"
          },
          {
            "@type": "PropertyValue",
            "name": "Lokalizacja",
            "value": "Zielonki (k. Krakowa)"
          }
        ],
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        }
      }
    ]
    </script>

    <div class="cs-header-wrapper">
        <div class="cs-badge">Projekt w praktyce</div>
        <h2>Optymalizacja dla mieszanego wykończenia</h2>
        <div class="cs-stats-grid">
            <div class="cs-stat-box">
                <span class="cs-stat-label">Termin</span>
                <span class="cs-stat-value">Luty 2026</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Lokalizacja</span>
                <span class="cs-stat-value">Zielonki</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Powierzchnia</span>
                <span class="cs-stat-value">144 m²</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Standard (OZC)</span>
                <span class="cs-stat-value">40 W/m²</span>
            </div>
        </div>
    </div>

    <div class="cs-content-section">
        <p class="cs-lead-text">Podczas finalizacji projektu instalacji dla nowo budowanego domu Pana Marka, zderzyliśmy się z klasycznym, ale zawsze wymagającym dylematem. Kluczowym wyzwaniem była optymalizacja parametrów pracy układu dla dwóch skrajnie różnych stref cieplnych w obrębie jednego źródła.</p>
        
        <div class="cs-author-box">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="cs-author-photo" loading="lazy">
            <p>Założenia hydrauliczne opracował główny projektant <a href="https://projekt-ogrzewania.pl/author/admin3399/">Robert Kucharski</a>. Wymagało to znalezienia precyzyjnego balansu pomiędzy dwiema okładzinami:</p>
        </div>
    </div>

    <div class="cs-interactive-section">
        <div class="cs-split-container">
            
            <div class="cs-split-card wood active" id="cs-btn-wood">
                <div class="cs-card-header">
                    <span class="cs-card-icon">🌳</span>
                    <h3 class="cs-card-title">Salon: Parkiet Dębowy</h3>
                </div>
                <p class="cs-card-desc">Drewno to izolator. Ogranicza oddawanie ciepła do pomieszczenia. Zbyt wysoka temperatura zasilania (>38°C) spowoduje jednak przesuszenie i pękanie drogich desek.</p>
                <div class="cs-card-solution">
                    Rozwiązanie: Zagęszczenie rozstawu rur do 10 cm, co pozwoliło utrzymać niską temperaturę zasilania przy jednoczesnym dostarczeniu 40 W/m² mocy.
                </div>
            </div>

            <div class="cs-split-card tiles" id="cs-btn-tiles">
                <div class="cs-card-header">
                    <span class="cs-card-icon">🧊</span>
                    <h3 class="cs-card-title">Łazienka: Gres Szkliwiony</h3>
                </div>
                <p class="cs-card-desc">Gres idealnie przewodzi ciepło. Wymaga wyższej temperatury powierzchni (odczucie "ciepłej podłogi" boso), ale łazienka ma najczęściej największe straty cieplne.</p>
                <div class="cs-card-solution">
                    Rozwiązanie: Zastosowanie osobnej pętli ze standardowym rozstawem, ale dodanie grzejnika drabinkowego, aby nie podnosić temperatury zasilania dla całego domu.
                </div>
            </div>

        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-case-study');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 25px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">
                    <span style="font-size: 40px; display: block; margin-bottom: 10px;">🔒</span>
                    <h3 style="margin: 0 0 10px 0; font-size: 20px;">Studium Przypadku Chronione</h3>
                    <p style="font-size: 14px; margin-bottom: 15px;">Ten panel to autorska własność Projekt-Ogrzewania.pl.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 10px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold; font-size: 13px;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    // Logika przełączania kart Case Study
    const cardWood = document.getElementById('cs-btn-wood');
    const cardTiles = document.getElementById('cs-btn-tiles');

    function toggleCards(activeCard, inactiveCard) {
        activeCard.classList.add('active');
        inactiveCard.classList.remove('active');
    }

    if (cardWood && cardTiles) {
        cardWood.addEventListener('click', () => toggleCards(cardWood, cardTiles));
        cardTiles.addEventListener('click', () => toggleCards(cardTiles, cardWood));
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #0284c7;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.calc-intro {
    max-width: 1150px;
    margin: 40px auto 10px auto;
    text-align: center;
    padding: 0 20px;
}

.calc-intro h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
    margin-bottom: 15px;
}

.calc-intro p {
    font-size: 16px;
    color: #475569;
    line-height: 1.6;
    max-width: 800px;
    margin: 0 auto;
}

.screed-calc {
    max-width: 1150px;
    margin: 30px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    color: var(--primary);
}

.calc-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
}

.config-side {
    padding: 40px;
    background: #ffffff;
}

.section-title {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    color: #94a3b8;
    letter-spacing: 1.2px;
    margin-bottom: 20px;
    display: block;
}

.type-selector {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 30px;
}

.type-btn {
    padding: 14px 8px;
    border: 2px solid #cbd5e1;
    border-radius: 12px;
    cursor: pointer;
    text-align: center;
    font-weight: 700;
    font-size: 13px;
    color: #475569;
    background: #fff;
    transition: all 0.2s;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.type-btn span {
    margin-top: 4px;
}

.type-btn.active {
    border-color: var(--accent);
    background: #eff6ff;
    color: var(--accent);
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.1);
}

.input-wrap { margin-bottom: 25px; }
.input-label-row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 8px;
    align-items: center;
}
.input-label-row label { font-weight: 600; font-size: 14px; }
.input-label-row .val-badge {
    background: #f1f5f9;
    padding: 4px 12px;
    border-radius: 8px;
    font-weight: 800;
    color: var(--accent);
    font-size: 14px;
}

input[type=range] {
    width: 100%; height: 6px; background: #e2e8f0; border-radius: 10px; appearance: none; outline: none; margin-top: 10px;
}
input[type=range]::-webkit-slider-thumb {
    appearance: none; width: 22px; height: 22px; background: var(--accent); border-radius: 50%; border: 3px solid white; box-shadow: 0 2px 5px rgba(0,0,0,0.15); cursor: pointer;
}

.result-side {
    padding: 40px;
    background: var(--bg-light);
    border-left: 1px solid #f1f5f9;
}

.main-score-box {
    background: white; padding: 30px; border-radius: 20px; text-align: center; box-shadow: 0 10px 25px rgba(0,0,0,0.03); margin-bottom: 25px; border-bottom: 6px solid var(--success); transition: 0.3s;
}
.score-num { font-size: 48px; font-weight: 900; line-height: 1; display: block; margin: 10px 0; }
.score-label { font-size: 12px; color: #64748b; font-weight: 700; text-transform: uppercase; }

#tz2-risk-msg {
    margin-top: 15px; padding: 12px; border-radius: 10px; font-size: 13px; font-weight: 600; display: none; background: #fee2e2; color: var(--danger); border: 1px solid #fecaca; line-height: 1.4; text-align: left;
}

.tech-grid {
    background: var(--primary); color: white; padding: 25px; border-radius: 20px; display: grid; gap: 12px;
}
.tech-item {
    display: flex; justify-content: space-between; padding-bottom: 12px; border-bottom: 1px solid #1e293b; align-items: center;
}
.tech-item:last-child { border: none; padding-bottom: 0; }
.tech-item span { color: #94a3b8; font-size: 13px; }
.tech-item strong { font-size: 15px; text-align: right;}

.material-grid {
    display: grid; grid-template-columns: 1fr; gap: 10px; margin-top: 15px;
}
.mini-card { background: rgba(255,255,255,0.08); padding: 15px; border-radius: 12px; text-align: center;}
.mini-card span { font-size: 11px; color: #94a3b8; display: block; margin-bottom: 6px; text-transform: uppercase; font-weight: 600;}
.mini-card strong { font-size: 18px; color: #fbbf24; }

.footer-cta {
    margin: 0 40px 40px 40px;
    padding: 30px;
    background: #eff6ff;
    border-radius: 20px;
    border-left: 6px solid var(--accent);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
}

.cta-text-side {
    max-width: 550px;
}

.cta-buttons-stack {
    display: flex;
    flex-direction: column; 
    gap: 12px;
    min-width: 280px; 
}

.cta-btn {
    display: block; background: var(--accent); color: white; text-decoration: none; padding: 16px 20px; border-radius: 12px; font-weight: 800; transition: 0.3s; font-size: 13px; text-align: center; border: none; cursor: pointer;
}
.cta-btn:hover { transform: translateY(-3px); box-shadow: 0 5px 15px rgba(37, 99, 235, 0.2); }

@media (max-width: 900px) {
    .calc-grid { grid-template-columns: 1fr; }
    .footer-cta { flex-direction: column; text-align: center; gap: 25px; margin: 20px; }
    .cta-buttons-stack { min-width: 100%; width: 100%; }
    .type-selector { grid-template-columns: 1fr; }
}
</style>

<div class="calc-intro">
    <h2>Kalkulator wymaganej temperatury zasilania</h2>
    <p>Oto uproszczony schemat obliczeniowy algorytmu, który stosuję w moich projektach, aby wyznaczyć optymalne <strong>t_z</strong>. Wprowadź powierzchnię, realne zapotrzebowanie z OZC oraz rodzaj wykończenia, aby sprawdzić, czy Twój układ zmieści się w normach.</p>
</div>

<div class="screed-calc" id="tz2-calc-app">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Kalkulator wymaganej temperatury zasilania ogrzewania podłogowego",
        "description": "Narzędzie inżynierskie wyliczające niezbędną temperaturę wody (t_z) na podstawie OZC, powierzchni pomieszczenia oraz oporu cieplnego zastosowanej okładziny.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Zapotrzebowanie na moc (Q)",
            "value": "Straty ciepła w Watach (OZC)"
          },
          {
            "@type": "PropertyValue",
            "name": "Moc jednostkowa (q)",
            "value": "Q / Powierzchnia [W/m²]"
          },
          {
            "@type": "PropertyValue",
            "name": "Opór okładziny (R)",
            "value": "Gres (0.02), Panele (0.08), Drewno (0.15) [m²K/W]"
          },
          {
            "@type": "PropertyValue",
            "name": "Wyznaczenie zasilania (t_z)",
            "value": "t_powietrza + ΔT_średnie + (0,5 × σ)"
          }
        ],
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        }
      },
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Symulator Temperatury Zasilania (Algorytm Inżynierski)",
        "applicationCategory": "CalculatorApplication",
        "operatingSystem": "All",
        "license": "https://projekt-ogrzewania.pl/",
        "description": "Profesjonalny kalkulator weryfikujący czy przy danym OZC i wybranej okładzinie nie dojdzie do przegrzania jastrychu lub przekroczenia norm komfortu fizjologicznego.",
        "featureList": [
          "Wyliczenie temperatury zasilania (t_z)",
          "Estymacja temperatury powierzchni podłogi (t_f)",
          "Ostrzeżenia przed przekroczeniem normy PN-EN 1264"
        ]
      }
    ]
    </script>

    <div class="calc-grid">
        <div class="config-side">
            
            <span class="section-title">1. Straty cieplne pomieszczenia (OZC)</span>
            <div class="input-wrap">
                <div class="input-label-row"><label>Powierzchnia pokoju</label><span class="val-badge"><span id="tz2-v-area">30</span> m²</span></div>
                <input type="range" id="tz2-area" min="5" max="80" step="1" value="30">
            </div>
            
            <div class="input-wrap">
                <div class="input-label-row"><label>Zapotrzebowanie na moc (Q)</label><span class="val-badge"><span id="tz2-v-power">1200</span> W</span></div>
                <input type="range" id="tz2-power" min="200" max="6000" step="50" value="1200">
                <div style="font-size: 11px; color: #64748b; margin-top: 8px;">Krok 1 (OZC): Ilość ciepła potrzebna do ogrzania pokoju.</div>
            </div>

            <div class="input-wrap">
                <div class="input-label-row"><label>Oczekiwana temp. w pokoju</label><span class="val-badge"><span id="tz2-v-room">20</span> °C</span></div>
                <input type="range" id="tz2-roomTemp" min="18" max="25" step="1" value="20">
            </div>

            <span class="section-title">2. Opór cieplny okładziny (R)</span>
            <div class="type-selector" style="margin-bottom:0">
                <div class="type-btn" id="tz2-btn-gres">Płytki / Gres<span style="font-size:10px; font-weight:400">R ≈ 0.02 m²K/W</span></div>
                <div class="type-btn active" id="tz2-btn-panel">Panele laminowane<span style="font-size:10px; font-weight:400">R ≈ 0.08 m²K/W</span></div>
                <div class="type-btn" id="tz2-btn-wood">Deska warstwowa<span style="font-size:10px; font-weight:400">R ≈ 0.15 m²K/W</span></div>
            </div>
        </div>

        <div class="result-side">
            <div id="tz2-mainBox" class="main-score-box">
                <span class="score-label">Wymagana temperatura zasilania (t_z)</span>
                <span class="score-num" id="tz2-resTz">--</span>
                <span class="score-label">°C na wejściu do pętli</span>
                <div id="tz2-risk-msg">⚠️ Uwaga!</div>
            </div>

            <div class="tech-grid">
                <div class="tech-item"><span>Moc jednostkowa (q):</span><strong id="tz2-resQ">--</strong></div>
                <div class="tech-item"><span>Różnica temp. (ΔT_średnie):</span><strong id="tz2-resDelta">--</strong></div>
                
                <div class="material-grid">
                    <div class="mini-card"><span>Estymowana temp. powierzchni podłogi:</span><strong id="tz2-resTf" style="color:#60a5fa">--</strong></div>
                </div>
            </div>
            
            <div style="margin-top:20px; font-size:11px; color:#94a3b8; line-height: 1.5;">
                <strong>Algorytm:</strong> t_z = t_powietrza + ΔT_średnie + (0,5 × σ). Obliczenia zakładają standardowy spadek temperatury czynnika na pętli grzewczej (σ) wynoszący 5 Kelwinów.
            </div>
        </div>
    </div>

    <div class="footer-cta">
        <div class="cta-text-side">
            <h3 style="margin:0 0 10px 0; color:#1e3a8a">Nie ryzykuj błędów obliczeniowych</h3>
            <p style="margin:0; font-size:14px; color:#475569">Ten kalkulator to świetny wstęp do fizyki układu. Kompletny projekt instalacji musi jednak uwzględniać opory hydrauliczne, przepływy masowe i rozstaw rur, by instalacja grzała bez awarii.</p>
        </div>
        <div class="cta-buttons-stack">
            <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/" class="cta-btn">
                ZAAWANSOWANY KALKULATOR →
            </a>
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cta-btn" style="background:#1e293b">
                ZAMÓW PROJEKT OZC + PODŁOGÓWKA
            </a>
        </div>
    </div>

    <noscript>
        <div style="padding: 30px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h3 style="font-size: 18px; color: #0f172a;">Kalkulator wymaganej temperatury zasilania – Algorytm</h3>
            <p style="font-size: 14px; color: #475569; line-height: 1.6;">
                Oto uproszczony schemat obliczeniowy, który stosuję w moich projektach, aby wyznaczyć optymalne t_z:<br>
                <strong>Krok 1 (OZC):</strong> Wyznaczamy zapotrzebowanie na moc (Q) w Watach. Przykład: Salon 30 m², Q = 1200 W.<br>
                <strong>Krok 2 (Moc jednostkowa q):</strong> Dzielimy moc przez powierzchnię. 1200 W / 30 m² = 40 W/m².<br>
                <strong>Krok 3 (Opór okładziny R):</strong> Przyjmujemy opór dla wybranego materiału (np. gres R = 0,02, panel R = 0,08).<br>
                <strong>Krok 4 (Obliczenie różnicy temperatur ΔT):</strong> Korzystamy z logarytmicznej różnicy temperatur między wodą a powietrzem.<br>
                <strong>Krok 5 (Wyznaczenie zasilania):</strong> t_z = t_powietrza + ΔT_średnie + (0,5 × σ), gdzie σ to spadek temperatury na pętli (zazwyczaj 5K).<br><br>
                <em>Przykład praktyczny:</em> Dla nowoczesnego domu pasywnego (q = 20 W/m²) przy gresie, temperatura zasilania rzadko przekracza 28-30°C, co czyni system niemal "samoregulującym się".
            </p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('tz2-calc-app');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px; font-family: sans-serif;">' +
                '<span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>' +
                '<div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px; color: #dc2626;">Narzędzie chronione</div>' +
                '<p style="font-size: 16px; margin-bottom: 25px;">Ten kalkulator jest własnością serwisu <a href="https://projekt-ogrzewania.pl/" style="color: #dc2626; font-weight: bold; text-decoration: underline;">Projekt-Ogrzewania.pl</a></p>' +
                '<a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 14px 28px; background: #dc2626; color: #ffffff; text-decoration: none; border-radius: 12px; font-weight: 800;">PRZEJDŹ DO ORYGINAŁU</a>' +
                '</div>';
        }
        return; 
    }

    var floorResistance = 0.08; 
    
    function updateCalc() {
        var areaEl = document.getElementById('tz2-area');
        var powerEl = document.getElementById('tz2-power');
        var roomTempEl = document.getElementById('tz2-roomTemp');
        
        if (!areaEl) return;
        if (!powerEl) return;
        if (!roomTempEl) return;

        var area = parseFloat(areaEl.value);
        var power = parseFloat(powerEl.value);
        var t_i = parseFloat(roomTempEl.value);
        
        document.getElementById('tz2-v-area').innerText = area;
        document.getElementById('tz2-v-power').innerText = power;
        document.getElementById('tz2-v-room').innerText = t_i;

        var q = power / area;
        
        var R_total = 0.093 + 0.03 + floorResistance;
        var delta_T_avg = q * R_total;
        
        var t_m = t_i + delta_T_avg;
        var sigma = 5; 
        var t_z = t_m + (0.5 * sigma);

        var t_f = t_i + (q * 0.093);

        document.getElementById('tz2-resQ').innerText = q.toFixed(1) + ' W/m²';
        document.getElementById('tz2-resDelta').innerText = delta_T_avg.toFixed(1) + ' K';
        document.getElementById('tz2-resTz').innerText = t_z.toFixed(1);
        document.getElementById('tz2-resTf').innerText = t_f.toFixed(1) + ' °C';

        var mBox = document.getElementById('tz2-mainBox');
        var rMsg = document.getElementById('tz2-risk-msg');
        var warnings = [];
        var boxColor = 'var(--success)';

        if (t_z > 55) { 
            warnings.push('❌ <strong>Krytyczny błąd:</strong> Temperatura zasilania przekracza 55°C. System niezgodny z normą PN-EN 1264. Grozi pęknięciem wylewki!'); 
            boxColor = 'var(--danger)'; 
        } else if (floorResistance === 0.15) {
            if (t_z > 38) {
                warnings.push('⚠️ <strong>Zagrożenie dla drewna:</strong> Temperatura rzędu ' + t_z.toFixed(1) + '°C doprowadzi do rozschnięcia się parkietu. Producent odrzuci gwarancję.'); 
                boxColor = 'var(--warning)';
            }
        }

        if (t_f > 29) {
            if (t_i < 24) {
                warnings.push('🔥 <strong>Przegrzana podłoga:</strong> Temperatura powierzchni przekroczy fizjologiczną granicę 29°C. Dyskomfort gwarantowany.');
                if(boxColor !== 'var(--danger)') {
                    boxColor = 'var(--warning)';
                }
            }
        }

        if (q <= 30) {
            if (t_z <= 32) {
                warnings.push('🌿 <strong>System optymalny:</strong> Parametry typowe dla domu energooszczędnego/pasywnego. Pompa ciepła osiągnie tu maksymalne COP.');
            }
        }

        if (warnings.length > 0) {
            rMsg.innerHTML = warnings.join('<br><br>');
            rMsg.style.display = 'block';
            
            if(boxColor === 'var(--success)') {
                rMsg.style.background = '#f0fdf4';
                rMsg.style.color = '#15803d';
                rMsg.style.borderColor = '#bbf7d0';
            } else if(boxColor === 'var(--warning)') {
                rMsg.style.background = '#fff7ed';
                rMsg.style.color = '#c2410c';
                rMsg.style.borderColor = '#fed7aa';
            } else {
                rMsg.style.background = '#fee2e2';
                rMsg.style.color = '#b91c1c';
                rMsg.style.borderColor = '#fecaca';
            }
        } else {
            rMsg.style.display = 'none';
        }
        
        mBox.style.borderColor = boxColor;
    }

    var floorOptions = {
        'tz2-btn-gres': 0.02,
        'tz2-btn-panel': 0.08,
        'tz2-btn-wood': 0.15
    };

    var btnKeys = Object.keys(floorOptions);
    for (var i = 0; i < btnKeys.length; i++) {
        (function(btnId) {
            var btn = document.getElementById(btnId);
            if(btn) {
                btn.addEventListener('click', function(e) {
                    floorResistance = floorOptions[btnId];
                    for(var j = 0; j < btnKeys.length; j++) {
                        var el = document.getElementById(btnKeys[j]);
                        if(el) { el.classList.remove('active'); }
                    }
                    e.currentTarget.classList.add('active');
                    updateCalc();
                });
            }
        })(btnKeys[i]);
    }

    var sliders = ['tz2-area', 'tz2-power', 'tz2-roomTemp'];
    sliders.forEach(function(id) {
        var el = document.getElementById(id);
        if(el) el.addEventListener('input', updateCalc);
    });

    updateCalc();
});
</script>



<style>
:root {
    --st-primary: #0f172a;
    --st-accent: #0284c7;
    --st-danger: #dc2626;
    --st-warning: #ea580c;
    --st-success: #16a34a;
    --st-concrete: #cbd5e1;
    --st-bg-light: #f8fafc;
}

.screed-thickness-module {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 15px 40px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid #e2e8f0;
    overflow: hidden;
    color: var(--st-primary);
}

/* 1. SEKCJA HEADER & LEAD */
.st-header-section {
    padding: 40px 50px 20px 50px;
    background: linear-gradient(135deg, #ffffff 0%, var(--st-bg-light) 100%);
}

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

.st-header-section h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--st-primary);
    margin: 0 0 20px 0;
    line-height: 1.3;
}

.st-lead {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0;
}

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

.st-lead a:hover {
    color: #0369a1;
}

/* 2. SEKCJA SYMULATORA (Suwak Mierniczy) */
.st-interactive-section {
    padding: 20px 50px;
    background: #ffffff;
    border-bottom: 1px solid #e2e8f0;
}

.st-ruler-container {
    position: relative;
    padding: 40px 20px 20px 20px;
    background: var(--st-bg-light);
    border-radius: 16px;
    border: 1px solid #e2e8f0;
    margin-top: 10px;
}

.st-ruler-title {
    position: absolute;
    top: 15px;
    left: 20px;
    font-size: 13px;
    font-weight: 800;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.st-slider-val {
    position: absolute;
    top: 10px;
    right: 20px;
    font-size: 20px;
    font-weight: 900;
    color: var(--st-accent);
    background: #e0f2fe;
    padding: 4px 12px;
    border-radius: 8px;
}

.st-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 12px;
    border-radius: 6px;
    background: linear-gradient(to right, #fecaca 0%, #fecaca 25%, #bbf7d0 25%, #bbf7d0 60%, #fed7aa 60%, #fed7aa 100%);
    outline: none;
    margin-top: 25px;
}

.st-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: #ffffff;
    border: 4px solid var(--st-primary);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
    transition: transform 0.1s;
    background-image: repeating-linear-gradient(90deg, transparent, transparent 2px, #cbd5e1 2px, #cbd5e1 4px);
    background-size: 8px 100%;
    background-position: center;
}

/* 3. KARTY STANU WYLEWKI */
.st-cards-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    padding: 30px 50px;
    background: #ffffff;
}

.st-card {
    padding: 25px;
    border-radius: 16px;
    border: 2px solid #e2e8f0;
    background: #ffffff;
    position: relative;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    opacity: 0.6; 
    transform: scale(0.98);
}

.st-card.active {
    opacity: 1;
    transform: scale(1);
    box-shadow: 0 15px 30px -5px rgba(0, 0, 0, 0.1);
}

.st-card[data-type="thin"].active { border-color: var(--st-danger); }
.st-card[data-type="standard"].active { border-color: var(--st-success); }
.st-card[data-type="thick"].active { border-color: var(--st-warning); }

.st-card-icon {
    font-size: 32px;
    display: block;
    margin-bottom: 15px;
}

.st-cross-section {
    height: 40px;
    background: #f1f5f9;
    border-radius: 8px;
    margin-bottom: 15px;
    position: relative;
    border: 1px solid #cbd5e1;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    overflow: hidden;
}

.st-pipe {
    width: 16px;
    height: 16px;
    background: #ef4444;
    border-radius: 50%;
    border: 2px solid #ffffff;
    margin-bottom: 4px;
    z-index: 2;
}

.st-concrete-fill {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    background: repeating-linear-gradient(45deg, #e2e8f0, #e2e8f0 5px, #cbd5e1 5px, #cbd5e1 10px);
    z-index: 1;
}

.st-card[data-type="thin"] .st-concrete-fill { height: 50%; }
.st-card[data-type="standard"] .st-concrete-fill { height: 75%; }
.st-card[data-type="thick"] .st-concrete-fill { height: 100%; }

.st-card p {
    font-size: 14px;
    line-height: 1.6;
    color: #475569;
    margin: 0;
}

.st-card strong {
    color: var(--st-primary);
}

.st-card[data-type="thin"].active p { color: #7f1d1d; }
.st-card[data-type="thin"].active strong { color: #991b1b; }
.st-card[data-type="standard"].active p { color: #14532d; }
.st-card[data-type="standard"].active strong { color: #166534; }
.st-card[data-type="thick"].active p { color: #7c2d12; }
.st-card[data-type="thick"].active strong { color: #9a3412; }

/* 4. SEKCJA OUTRO */
.st-outro-section {
    padding: 0 50px 40px 50px;
}

.st-pro-tip {
    background: #f0f9ff;
    border-left: 4px solid var(--st-accent);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    display: flex;
    gap: 15px;
    align-items: center;
}

.st-pro-tip-icon {
    font-size: 28px;
}

.st-pro-tip p {
    margin: 0;
    font-size: 15px;
    color: #1e3a8a;
    line-height: 1.6;
}

@media (max-width: 768px) {
    .st-header-section { padding: 30px 25px 15px 25px; }
    .st-interactive-section { padding: 15px 25px; }
    .st-cards-grid { grid-template-columns: 1fr; padding: 25px; gap: 15px; }
    .st-outro-section { padding: 0 25px 30px 25px; }
    .st-pro-tip { flex-direction: column; text-align: center; }
}
</style>

<div class="screed-thickness-module" id="app-screed-thickness">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Symulator Wpływu Grubości Jastrychu na Temperaturę Zasilania",
        "description": "Interaktywne narzędzie inżynierskie wizualizujące zależność między grubością wylewki betonowej a oporem cieplnym i wymaganą temperaturą zasilania w systemach ogrzewania podłogowego.",
        "applicationCategory": "EngineeringApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "PLN"
        },
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Obrazowanie ryzyka pęknięć dla wylewek poniżej 3,5 cm",
          "Wyznaczanie optymalnej grubości betonu nad rurą (4,5 - 5 cm)",
          "Estymacja konieczności podniesienia temperatury zasilania o 2-3°C dla grubych wylewek (8 cm)"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Właściwości termiczne i mechaniczne wylewki betonowej",
        "description": "Zestawienie twardych danych inżynierskich określających zachowanie jastrychu w zależności od jego grubości oraz temperatury zasilania do 55°C.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Grubość standardowa",
            "value": "4,5 - 5 cm",
            "description": "Optymalna masa termiczna i bezpieczny rozkład naprężeń dla instalacji."
          },
          {
            "@type": "PropertyValue",
            "name": "Grubość ryzykowna (zbyt cienka)",
            "value": "< 3,5 cm",
            "description": "Wysokie ryzyko pękania pod wpływem naprężeń termicznych, nawet przy normatywnych 55°C."
          },
          {
            "@type": "PropertyValue",
            "name": "Grubość podwyższona",
            "value": "8 cm",
            "description": "Zwiększony opór cieplny wymuszający podniesienie temperatury zasilania o 2-3°C w celu zachowania tej samej temperatury powierzchni."
          }
        ]
      }
    ]
    </script>

    <div class="st-header-section">
        <div class="st-badge"><span>🏗️</span> Konstrukcja a Termodynamika</div>
        <h2>Czy wysokość wylewki wpływa na temperaturę zasilania?</h2>
        <p class="st-lead">Tak, masa termiczna <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewki betonowej na ogrzewanie podłogowe</a> ma kluczowe znaczenie. Im grubsza warstwa betonu nad rurą, tym wyższy opór cieplny samej płyty grzejnej.</p>
    </div>

    <div class="st-interactive-section">
        <div class="st-ruler-container">
            <span class="st-ruler-title">Grubość jastrychu nad rurą</span>
            <span class="st-slider-val" id="st-val-display">5.0 cm</span>
            <input type="range" min="2.0" max="10.0" step="0.5" value="5.0" class="st-slider" id="st-slider">
        </div>
    </div>

    <div class="st-cards-grid">
        <div class="st-card" data-type="thin" id="st-card-thin">
            <span class="st-card-icon">💥</span>
            <div class="st-cross-section">
                <div class="st-concrete-fill"></div>
                <div class="st-pipe"></div>
            </div>
            <p>Z kolei zbyt cienka <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewka na ogrzewanie podłogowe</a> (poniżej <strong>3,5 cm</strong>) grozi pękaniem pod wpływem naprężeń termicznych, nawet jeśli nie przekroczymy maksymalnych <strong>55°C</strong> na zasilaniu.</p>
        </div>

        <div class="st-card active" data-type="standard" id="st-card-standard">
            <span class="st-card-icon">✅</span>
            <div class="st-cross-section">
                <div class="st-concrete-fill"></div>
                <div class="st-pipe"></div>
            </div>
            <p>Standardowo przyjmuje się <strong>4,5 - 5 cm</strong> betonu ponad rurą.</p>
        </div>

        <div class="st-card" data-type="thick" id="st-card-thick">
            <span class="st-card-icon">🌡️</span>
            <div class="st-cross-section">
                <div class="st-concrete-fill"></div>
                <div class="st-pipe"></div>
            </div>
            <p>Zwiększenie tej grubości do <strong>8 cm</strong> wymusza podniesienie temperatury zasilania o około <strong>2-3°C</strong>, aby uzyskać tę samą temperaturę na powierzchni w tym samym czasie.</p>
        </div>
    </div>

    <div class="st-outro-section">
        <div class="st-pro-tip">
            <span class="st-pro-tip-icon">💡</span>
            <p>W systemach renowacyjnych, gdzie brakuje miejsca na gruby beton, stosuje się specjalne jastrychy anhydrytowe o wysokim współczynniku przewodzenia ciepła.</p>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-screed-thickness');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">
                    <span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>
                    <p style="margin: 0 0 10px 0; font-size: 22px;">Treść Chroniona Prawem Autorskim</p>
                    <p style="font-size: 15px; margin-bottom: 20px;">Moduł edukacyjny został skopiowany z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 10px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    const slider = document.getElementById('st-slider');
    const displayVal = document.getElementById('st-val-display');
    
    const cardThin = document.getElementById('st-card-thin');
    const cardStandard = document.getElementById('st-card-standard');
    const cardThick = document.getElementById('st-card-thick');

    function updateScreedSimulator(thickness) {
        displayVal.textContent = parseFloat(thickness).toFixed(1) + ' cm';

        cardThin.classList.remove('active');
        cardStandard.classList.remove('active');
        cardThick.classList.remove('active');

        if (thickness < 4.0) {
            cardThin.classList.add('active');
        } else if (thickness >= 4.0 && thickness <= 6.5) {
            cardStandard.classList.add('active');
        } else {
            cardThick.classList.add('active');
        }
    }

    if (slider) {
        slider.addEventListener('input', function() {
            updateScreedSimulator(this.value);
        });
        
        updateScreedSimulator(slider.value);
    }
});
</script>



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



<style>
:root {
    --hazard-primary: #0f172a;
    --hazard-accent: #dc2626; /* Intensywna czerwień ostrzegawcza */
    --hazard-bg: #fff1f2;
    --hazard-border: #fecaca;
    --hazard-text: #475569;
}

.hazard-report-module {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    border: 2px solid var(--hazard-border);
    overflow: hidden;
    box-shadow: 0 20px 25px -5px rgba(220, 38, 38, 0.05);
}

/* 1. SEKACJA HEADER */
.hazard-header {
    background: var(--hazard-accent);
    padding: 30px 50px;
    color: #ffffff;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.hazard-header h2 {
    margin: 0;
    font-size: 24px;
    font-weight: 900;
    color: #ffffff;
}

.hazard-status-label {
    background: rgba(0, 0, 0, 0.2);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.hazard-pulse {
    width: 8px;
    height: 8px;
    background: #ffffff;
    border-radius: 50%;
    animation: hazard-blink 1s infinite;
}

@keyframes hazard-blink {
    0% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.4; transform: scale(1.2); }
    100% { opacity: 1; transform: scale(1); }
}

/* 2. SEKACJA TEKSTU PROWADZĄCEGO */
.hazard-intro {
    padding: 35px 50px 20px 50px;
    background: #ffffff;
}

.hazard-intro p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0;
}

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

/* 3. INTERAKTYWNA LISTA ZAGROŻEŃ */
.hazard-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    padding: 20px 50px 40px 50px;
}

.hazard-item {
    background: var(--hazard-bg);
    border: 1px solid var(--hazard-border);
    border-radius: 16px;
    padding: 25px 20px;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.hazard-item:hover {
    transform: translateY(-5px);
    background: #ffffff;
    box-shadow: 0 10px 20px rgba(220, 38, 38, 0.1);
    border-color: var(--hazard-accent);
}

.hazard-icon {
    font-size: 32px;
    margin-bottom: 15px;
}

.hazard-item h4 {
    margin: 0 0 10px 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--hazard-primary);
    text-transform: uppercase;
}

.hazard-details {
    font-size: 13px;
    line-height: 1.6;
    color: var(--hazard-text);
    height: 0;
    overflow: hidden;
    transition: all 0.3s ease;
    opacity: 0;
}

.hazard-item.active {
    background: #ffffff;
    border-color: var(--hazard-accent);
    box-shadow: 0 10px 25px rgba(220, 38, 38, 0.1);
}

.hazard-item.active .hazard-details {
    height: auto;
    opacity: 1;
    margin-top: 10px;
}

.hazard-temp-badge {
    background: var(--hazard-accent);
    color: #ffffff;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 900;
    margin-top: 10px;
}

@media (max-width: 768px) {
    .hazard-header { padding: 25px; flex-direction: column; gap: 15px; text-align: center; }
    .hazard-intro { padding: 30px 25px 15px 25px; }
    .hazard-grid { grid-template-columns: 1fr; padding: 15px 25px 30px 25px; }
    .hazard-item { padding: 20px; }
}
</style>

<div class="hazard-report-module" id="app-hazard-report">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Analizator Skutków Przegrzania Podłogówki",
        "description": "Narzędzie eksperckie identyfikujące fizyczne i techniczne zagrożenia wynikające z przekroczenia temperatury 55°C w instalacjach ogrzewania płaszczyznowego.",
        "applicationCategory": "EducationalApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Weryfikacja wytrzymałości termicznej klejów ceramicznych",
          "Analiza prądów konwekcyjnych i emisji pyłów",
          "Ocena degradacji polimerów rur PERT/PEX"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Krytyczne progi degradacji instalacji podłogowej",
        "description": "Zbiór danych technicznych dotyczących niszczącego wpływu wysokich temperatur na materiały budowlane i instalacyjne.",
        "license": "https://projekt-ogrzewania.pl/",
        "variableMeasured": [
          {
            "@type": "PropertyValue",
            "name": "Wytrzymałość klejów do ceramiki",
            "value": "Max 60-70°C",
            "description": "Powyżej tego progu następuje kruszenie spoiwa i odparzenie płytek."
          },
          {
            "@type": "PropertyValue",
            "name": "Próg emisji pyłów (konwekcja)",
            "value": "> 35°C powierzchni",
            "description": "Gwałtowny ruch powietrza unoszący alergeny."
          },
          {
            "@type": "PropertyValue",
            "name": "Degradacja sieciowania PEX",
            "value": "Stała praca > 60°C",
            "description": "Przyspieszone starzenie materiału i kruszenie rur."
          }
        ]
      }
    ]
    </script>

    <div class="hazard-header">
        <h2>Zagrożenia i błędy: Co się dzieje po przekroczeniu 55°C?</h2>
        <div class="hazard-status-label">
            <div class="hazard-pulse"></div>
            Analiza Krytyczna
        </div>
    </div>

    <div class="hazard-intro">
        <p>W mojej karierze widziałem dziesiątki instalacji zniszczonych przez brak kontroli nad temperaturą zasilania. <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">Najczęstsze błędy przy montażu ogrzewania podłogowego</a> często kumulują się właśnie w tym punkcie. <strong>Kliknij w wybrane zagrożenie, aby poznać szczegóły:</strong></p>
    </div>

    <div class="hazard-grid">
        <div class="hazard-item" onclick="this.classList.toggle('active')">
            <span class="hazard-icon">🧱</span>
            <h4>Odparzenie płytek</h4>
            <div class="hazard-temp-badge">60-70°C</div>
            <div class="hazard-details">
                Kleje do ceramiki mają swoją wytrzymałość termiczną. Praca w temperaturze <strong>60-70°C</strong> powoduje ich kruszenie i utratę przyczepności do jastrychu.
            </div>
        </div>

        <div class="hazard-item" onclick="this.classList.toggle('active')">
            <span class="hazard-icon">💨</span>
            <h4>Emisja pyłów</h4>
            <div class="hazard-temp-badge">Konwekcja</div>
            <div class="hazard-details">
                Przegrzana podłoga generuje silne prądy konwekcyjne. Zjawisko to unosi kurz, co jest szczególnie dotkliwe dla alergików. Poprawna podłogówka powinna oddawać ciepło głównie przez promieniowanie.
            </div>
        </div>

        <div class="hazard-item" onclick="this.classList.toggle('active')">
            <span class="hazard-icon">🚨</span>
            <h4>Niszczenie rur</h4>
            <div class="hazard-temp-badge">Degradacja PEX</div>
            <div class="hazard-details">
                Rury PERT/PEX przy stałym przegrzewaniu stają się kruche (proces sieciowania ulega degradacji), co po kilku latach może prowadzić do awarii i konieczności kucia posadzek.
            </div>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-hazard-report');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px; border: 2px solid #dc2626;">
                    <span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>
                    <p style="margin: 0 0 10px 0; font-size: 22px;">Moduł Zabezpieczony</p>
                    <p style="font-size: 15px; margin-bottom: 20px;">Treść raportu zagrożeń została skopiowana nielegalnie.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 12px 20px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }
});
</script>



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



<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy mogę ustawić 60°C na podłogówkę, aby dom szybciej się nagrzał?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Absolutnie nie. Bezwładność cieplna wylewki betonowej sprawia, że proces akumulacji energii trwa wiele godzin. Skokowe podniesienie temperatury zasilania wywoła szok termiczny, co grozi pęknięciem wylewki, odspojeniem płytek i uszkodzeniem rur PEX. System powinien pracować stabilnie na niskich parametrach."
        }
      },
      {
        "@type": "Question",
        "name": "Dlaczego moja podłoga jest zimna, mimo że zasilanie ma 45°C?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Problem najprawdopodobniej leży w hydraulice lub wysokim oporze cieplnym okładziny (np. gruby dywan). Jeśli rury są ciepłe przy rozdzielaczu, a podłoga nie grzeje, należy sprawdzić przepływy na rotametrach (brak przepływu oznacza zapowietrzenie lub zablokowane siłowniki)."
        }
      },
      {
        "@type": "Question",
        "name": "Jaka jest optymalna temperatura dla paneli winylowych?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Panele winylowe (LVT) świetnie przewodzą ciepło, ale temperatura na ich powierzchni nie może przekraczać 27°C. Aby zachować bezpieczeństwo materiału i nie doprowadzić do jego odkształceń, temperatura zasilania podłogówki nie powinna przekraczać 35°C."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Interaktywny Asystent Diagnostyczny Instalacji Podłogowych",
    "description": "Moduł typu Helpdesk ułatwiający inwestorom diagnozowanie problemów z instalacją grzewczą (np. zimne posadzki) oraz weryfikację bezpieczeństwa parametrów eksploatacyjnych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "featureList": [
      "Rozwiązywanie problemów z przepływem i zapowietrzeniem układu",
      "Weryfikacja maksymalnych parametrów dla winylu (LVT)",
      "Analiza skutków przewymiarowania temperatury zasilania"
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Baza wiedzy i parametry diagnostyczne ogrzewania płaszczyznowego",
    "description": "Zbiór danych określających krytyczne błędy użytkowe i parametry eksploatacyjne systemów HVAC.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Prawidłowy przepływ w rotametrze",
        "value": "1.0 - 2.5 l/min",
        "description": "Wartość niezbędna do pokonania oporów hydraulicznych i równomiernego oddawania ciepła."
      },
      {
        "@type": "PropertyValue",
        "name": "Max temp. zasilania dla winylu LVT",
        "value": "35°C",
        "description": "Graniczna temperatura na zasilaniu zapobiegająca uszkodzeniu zamków i odkształcaniu paneli winylowych."
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
    }
  }
]
</script>

<style>
:root {
    --faq-primary: #0f172a;
    --faq-accent: #0284c7;
    --faq-accent-light: #e0f2fe;
    --faq-bg: #f8fafc;
    --faq-border: #e2e8f0;
    --faq-text: #334155;
    --faq-danger: #dc2626;
}

.premium-faq-module {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 15px 35px -5px rgba(0, 0, 0, 0.05);
    border: 1px solid var(--faq-border);
    overflow: hidden;
}

.faq-header-section {
    padding: 40px 50px 30px 50px;
    background: linear-gradient(180deg, #ffffff 0%, var(--faq-bg) 100%);
    border-bottom: 1px solid var(--faq-border);
    text-align: center;
}

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

.faq-header-section h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--faq-primary);
    margin: 0 0 15px 0;
}

.faq-header-section p {
    font-size: 16px;
    color: #64748b;
    margin: 0;
    max-width: 600px;
    margin: 0 auto;
    line-height: 1.6;
}

.faq-accordion-container {
    padding: 30px 50px 40px 50px;
    background: #ffffff;
}

.faq-item {
    margin-bottom: 15px;
    border: 1px solid var(--faq-border);
    border-radius: 16px;
    background: #ffffff;
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    overflow: hidden;
}

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

.faq-item:hover {
    border-color: #bae6fd;
}

.faq-item.active {
    border-color: var(--faq-accent);
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.1);
}

.faq-question {
    padding: 20px 25px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    gap: 20px;
    user-select: none;
    background: #ffffff;
}

.faq-q-text {
    display: flex;
    align-items: center;
    gap: 15px;
}

.faq-q-icon {
    font-size: 24px;
    flex-shrink: 0;
}

.faq-q-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--faq-primary);
    margin: 0;
    line-height: 1.4;
    transition: color 0.3s;
}

.faq-item.active .faq-q-title {
    color: var(--faq-accent);
}

.faq-toggle-btn {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--faq-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--faq-primary);
    font-weight: bold;
    font-size: 18px;
    flex-shrink: 0;
    transition: all 0.3s ease;
}

.faq-item.active .faq-toggle-btn {
    background: var(--faq-accent);
    color: #ffffff;
    transform: rotate(45deg);
}

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

.faq-answer-inner {
    padding: 0 25px 25px 65px; /* Offset for icon alignment */
}

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

.faq-answer p:last-child {
    margin-bottom: 0;
}

.faq-answer strong {
    color: var(--faq-primary);
}

/* Wyróżnienie "Wskazówka Inżyniera" */
.expert-highlight {
    background: #f0fdf4;
    border-left: 4px solid var(--success);
    padding: 15px 20px;
    border-radius: 0 12px 12px 0;
    margin-top: 15px;
}

.expert-highlight strong {
    display: block;
    color: #14532d;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 5px;
}

.expert-highlight p {
    color: #166534;
    font-size: 14px;
    margin: 0;
}

@media (max-width: 768px) {
    .faq-header-section { padding: 35px 25px 25px 25px; }
    .faq-accordion-container { padding: 25px; }
    .faq-question { padding: 15px 20px; gap: 15px; }
    .faq-answer-inner { padding: 0 20px 20px 20px; } /* Usunięty offset dla mobile */
    .faq-q-icon { font-size: 20px; }
    .faq-q-title { font-size: 15px; }
}
</style>

<div class="premium-faq-module" id="app-faq-module">
    
    <div class="faq-header-section">
        <div class="faq-badge">
            <span>💡</span> Baza Wiedzy Inwestora
        </div>
        <h2>Najczęściej zadawane pytania (FAQ)</h2>
        <p>Zebraliśmy najczęstsze wątpliwości inwestorów dotyczące temperatur zasilania. Rozwiń poniższe zagadnienia, aby uniknąć kosztownych błędów eksploatacyjnych.</p>
    </div>

    <div class="faq-accordion-container">
        
        <div class="faq-item">
            <div class="faq-question">
                <div class="faq-q-text">
                    <span class="faq-q-icon">🔥</span>
                    <h3 class="faq-q-title">Czy mogę ustawić 60°C na podłogówkę, aby dom szybciej się nagrzał?</h3>
                </div>
                <div class="faq-toggle-btn">+</div>
            </div>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    <p><strong>Absolutnie nie.</strong> Bezwładność cieplna wylewki betonowej sprawia, że proces akumulacji energii i tak potrwa od kilku do kilkunastu godzin. Skokowe podniesienie temperatury zasilania nie przyspieszy odczuwalnie nagrzewania pomieszczenia, ale wywoła potężny szok termiczny dla instalacji.</p>
                    <p>Ryzykujesz rażące przekroczenie normy PN-EN 1264 (limit 55°C), co prowadzi do nieodwracalnego pękania jastrychu, odspojenia płytek oraz drastycznego skrócenia żywotności rur PEX. System podłogowy to układ niskotemperaturowy – powinien pracować stabilnie, ciągle i na niskich parametrach.</p>
                    <div class="expert-highlight">
                        <strong>Wskazówka Inżyniera</strong>
                        <p>Jeśli posiadasz pompę ciepła, takie wymuszenie temperatury włączy grzałki elektryczne, co w ciągu kilku dni potrafi wygenerować rachunki równe miesięcznym kosztom standardowej eksploatacji.</p>
                    </div>
                </div>
            </div>
        </div>

        <div class="faq-item">
            <div class="faq-question">
                <div class="faq-q-text">
                    <span class="faq-q-icon">❄️</span>
                    <h3 class="faq-q-title">Dlaczego moja podłoga jest zimna, mimo że zasilanie ma 45°C?</h3>
                </div>
                <div class="faq-toggle-btn">+</div>
            </div>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    <p>Wysoka temperatura na kotle nie gwarantuje ciepłej podłogi, jeśli energia nie jest w stanie dotrzeć do posadzki i przebić się do pomieszczenia. Najprawdopodobniej problem leży w <strong>błędach hydraulicznych lub złym wykończeniu podłogi</strong>.</p>
                    <p>W pierwszej kolejności sprawdź przepływy na rotametrach na rozdzielaczu – poprawne wartości to zazwyczaj od 1.0 do 2.5 l/min. Zablokowany przepływ może oznaczać zapowietrzenie pętli lub usterkę siłownika termoelektrycznego. Jeśli przepływy są prawidłowe, winny jest zbyt wysoki opór cieplny (R) – np. gruby dywan, zły podkład lub pustka powietrzna pod deską, która blokuje oddawanie ciepła.</p>
                </div>
            </div>
        </div>

        <div class="faq-item">
            <div class="faq-question">
                <div class="faq-q-text">
                    <span class="faq-q-icon">🪵</span>
                    <h3 class="faq-q-title">Jaka jest optymalna temperatura dla paneli winylowych (LVT)?</h3>
                </div>
                <div class="faq-toggle-btn">+</div>
            </div>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    <p>Panele winylowe (LVT/SPC) są bardzo cienkie i rewelacyjnie przewodzą ciepło, co czyni je doskonałym wyborem na ogrzewanie podłogowe. Mają jednak jedną wadę: <strong>bardzo niską odporność na wysoką temperaturę</strong>.</p>
                    <p>Zgodnie z rygorystycznymi wytycznymi większości producentów, temperatura styku paneli z wylewką absolutnie nie może przekroczyć <strong>27°C - 28°C</strong>. Zazwyczaj oznacza to, że temperatura wody na zasilaniu podłogówki powinna być zablokowana na poziomie maksymalnie <strong>30-35°C</strong>.</p>
                    <div class="expert-highlight" style="border-left-color: var(--faq-danger); background: #fef2f2;">
                        <strong style="color: #991b1b;">Zagrożenie</strong>
                        <p style="color: #7f1d1d;">Przegrzanie winylu natychmiast prowadzi do rozmiękczenia materiału, odkształcenia (wyłamania) zamków, efektu "łódkowania" oraz utraty gwarancji na podłogę.</p>
                    </div>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-faq-module');
        if (container) {
            container.innerHTML = `
                <div style="padding: 60px 40px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px; border: 2px solid #dc2626;">
                    <span style="font-size: 48px; display: block; margin-bottom: 20px;">🔒</span>
                    <p style="margin: 0 0 15px 0; font-size: 24px;">Moduł Zabezpieczony Prawem Autorskim</p>
                    <p style="font-size: 16px; margin-bottom: 25px;">Baza wiedzy FAQ została skopiowana z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Akordeonu (Zwijanie / Rozwijanie)
    const faqItems = document.querySelectorAll('.faq-item');

    faqItems.forEach(item => {
        const question = item.querySelector('.faq-question');
        
        question.addEventListener('click', () => {
            const isActive = item.classList.contains('active');
            
            // Opcjonalnie: Zwijanie wszystkich innych zakładek po kliknięciu nowej
            faqItems.forEach(otherItem => {
                otherItem.classList.remove('active');
                const otherAnswer = otherItem.querySelector('.faq-answer');
                otherAnswer.style.maxHeight = null;
            });

            // Logika otwierania klikniętego elementu
            if (!isActive) {
                item.classList.add('active');
                const answer = item.querySelector('.faq-answer');
                // Dynamiczne ustawienie max-height pozwala na gładką animację dla zawartości o różnej długości
                answer.style.maxHeight = answer.scrollHeight + "px";
            }
        });
    });
    
    // Otwórz domyślnie pierwsze pytanie, aby użytkownik widział, jak działa element
    if (faqItems.length > 0) {
        faqItems[0].classList.add('active');
        const firstAnswer = faqItems[0].querySelector('.faq-answer');
        firstAnswer.style.maxHeight = firstAnswer.scrollHeight + "px";
    }
});
</script>



<style>
:root {
    --dl-primary: #0f172a;
    --dl-secondary: #1e293b;
    --dl-accent: #0284c7;
    --dl-pdf: #ef4444; 
    --dl-img: #10b981; 
    --dl-bg: #f8fafc;
    --dl-border: #e2e8f0;
}

.premium-download-module {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--dl-border);
    overflow: hidden;
    display: flex;
    flex-direction: row;
}

/* LEWA STRONA: Wizualizacja materiału (Podgląd) */
.dl-visual-side {
    flex: 0 0 38%;
    background: linear-gradient(135deg, var(--dl-primary) 0%, var(--dl-secondary) 100%);
    padding: 40px 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    position: relative;
    border-right: 1px solid rgba(255,255,255,0.1);
    overflow: hidden;
}

/* Dekoracyjne tło */
.dl-visual-side::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background-image: radial-gradient(circle at top right, rgba(2, 132, 199, 0.4) 0%, transparent 60%);
    pointer-events: none;
}

/* Nowy kontener z podglądem grafiki */
.dl-preview-wrapper {
    width: 170px;
    max-width: 80%;
    margin-bottom: 25px;
    border-radius: 8px;
    box-shadow: -10px 15px 25px rgba(0,0,0,0.4);
    border: 3px solid rgba(255,255,255,0.15);
    transform: rotate(-4deg) translateY(0);
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    z-index: 1;
    overflow: hidden;
    background: #fff;
}

.dl-preview-wrapper:hover {
    transform: rotate(0deg) translateY(-5px) scale(1.05);
    box-shadow: 0 20px 35px rgba(0,0,0,0.5);
    border-color: rgba(255,255,255,0.3);
}

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

.dl-visual-side p {
    color: #cbd5e1;
    font-size: 14px;
    line-height: 1.5;
    margin: 0;
    z-index: 1;
    padding: 0 10px;
}

/* PRAWA STRONA: Treść i przyciski */
.dl-content-side {
    flex: 1;
    padding: 40px 50px;
    background: #ffffff;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.dl-badge {
    align-self: flex-start;
    background: #f0f9ff;
    color: var(--dl-accent);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid #bae6fd;
}

.dl-content-side h3 {
    font-size: 24px;
    font-weight: 900;
    color: var(--dl-primary);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.dl-features {
    list-style: none;
    padding: 0;
    margin: 0 0 30px 0;
}

.dl-features li {
    position: relative;
    padding-left: 28px;
    margin-bottom: 12px;
    font-size: 15px;
    color: #475569;
    line-height: 1.5;
}

.dl-features li::before {
    content: '✓';
    position: absolute;
    left: 0;
    top: 0;
    color: var(--dl-img);
    font-weight: bold;
}

.dl-features li strong {
    color: var(--dl-primary);
}

/* Przyciski pobierania */
.dl-actions {
    display: flex;
    gap: 15px;
    flex-wrap: wrap;
}

.dl-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 24px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
    transition: all 0.3s ease;
    flex: 1;
    justify-content: center;
    min-width: 180px;
}

.dl-btn-pdf {
    background: #fef2f2;
    color: #b91c1c;
    border: 1px solid #fecaca;
}

.dl-btn-pdf:hover {
    background: var(--dl-pdf);
    color: #ffffff;
    border-color: var(--dl-pdf);
    transform: translateY(-2px);
    box-shadow: 0 8px 15px rgba(239, 68, 68, 0.2);
}

.dl-btn-img {
    background: #f0fdf4;
    color: #15803d;
    border: 1px solid #bbf7d0;
}

.dl-btn-img:hover {
    background: var(--dl-img);
    color: #ffffff;
    border-color: var(--dl-img);
    transform: translateY(-2px);
    box-shadow: 0 8px 15px rgba(16, 185, 129, 0.2);
}

.dl-btn-icon {
    font-size: 18px;
}

@media (max-width: 768px) {
    .premium-download-module {
        flex-direction: column;
    }
    .dl-visual-side {
        padding: 40px 30px;
    }
    .dl-content-side {
        padding: 30px 25px;
    }
    .dl-actions {
        flex-direction: column;
    }
    .dl-btn {
        width: 100%;
    }
}
</style>

<div class="premium-download-module" id="app-download-center">

    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "WebApplication",
        "name": "Centrum Pobierania - Infografiki HVAC",
        "description": "Interaktywny moduł umożliwiający pobranie kompendium wiedzy na temat maksymalnych temperatur zasilania dla ogrzewania podłogowego w formatach PDF i WebP.",
        "applicationCategory": "MultimediaApplication",
        "operatingSystem": "All",
        "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
        "license": "https://projekt-ogrzewania.pl/",
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "PLN"
        },
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        },
        "featureList": [
          "Szybkie pobieranie infografiki w bezstratnym formacie PDF do druku",
          "Dostęp do lekkiej wersji graficznej WebP dla urządzeń mobilnych",
          "Zestawienie norm PN-EN 1264 z praktyką inżynierską"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Dataset",
        "name": "Infografika: Maksymalna temperatura zasilania podłogówki",
        "description": "Wizualne zestawienie parametrów eksploatacyjnych, optymalnych temperatur dla poszczególnych rodzajów posadzek oraz najczęstszych błędów montażowych.",
        "license": "https://projekt-ogrzewania.pl/",
        "distribution": [
          {
            "@type": "DataDownload",
            "encodingFormat": "application/pdf",
            "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Maksymalna-temperatura-zasilania-podlogowki.pdf"
          },
          {
            "@type": "DataDownload",
            "encodingFormat": "image/webp",
            "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Maksymalna-temperatura-zasilania-podlogowki.webp"
          }
        ],
        "creator": {
          "@type": "Person",
          "name": "Robert Kucharski",
          "sameAs": [
            "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
            "https://www.linkedin.com/in/robert-kucharski-38069b48/"
          ]
        }
      }
    ]
    </script>

    <div class="dl-visual-side">
        <div class="dl-preview-wrapper">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Maksymalna-temperatura-zasilania-podlogowki.webp" alt="Podgląd infografiki - parametry ogrzewania podłogowego" class="dl-preview-img" loading="lazy">
        </div>
        <p>Materiały oparte na twardych danych inżynierskich i normie PN-EN 1264.</p>
    </div>

    <div class="dl-content-side">
        <div class="dl-badge">Darmowe Materiały</div>
        <h2>Pobierz infografikę z parametrami instalacji</h2>
        
        <ul class="dl-features">
            <li><strong>Graficzne podsumowanie wiedzy:</strong> Czytelny schemat pracy układu grzewczego.</li>
            <li><strong>Szybka ściągawka z norm:</strong> Optymalne i graniczne wartości temperatur (25°C - 55°C) zawsze pod ręką.</li>
            <li><strong>Analiza błędów:</strong> Zestawienie 3 najdroższych pomyłek montażowych.</li>
        </ul>

        <div class="dl-actions">
            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Maksymalna-temperatura-zasilania-podlogowki.pdf" target="_blank" rel="noopener noreferrer" class="dl-btn dl-btn-pdf">
                <span class="dl-btn-icon">📄</span> Pobierz plik PDF
            </a>
            
            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Maksymalna-temperatura-zasilania-podlogowki.webp" target="_blank" rel="noopener noreferrer" class="dl-btn dl-btn-img">
                <span class="dl-btn-icon">🖼️</span> Otwórz Obrazek
            </a>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-download-center');
        if (container) {
            container.innerHTML = `
                <div style="padding: 60px 40px; text-align: center; background: #fee2e2; color: #dc2626; width: 100%;">
                    <span style="font-size: 48px; display: block; margin-bottom: 20px;">🔒</span>
                    <p style="margin: 0 0 15px 0; font-size: 24px;">Moduł Zabezpieczony</p>
                    <p style="font-size: 16px; margin-bottom: 25px;">Moduł pobierania plików został skopiowany z naruszeniem licencji.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
        }
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #0284c7;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-summary-box {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 15px 40px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.summary-header {
    background: var(--primary);
    padding: 35px 40px;
    color: #ffffff;
    position: relative;
    overflow: hidden;
}

/* Dekoracyjne tło w nagłówku */
.summary-header::before {
    content: '';
    position: absolute;
    top: -50px;
    right: -20px;
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, rgba(2, 132, 199, 0.4) 0%, rgba(255,255,255,0) 70%);
    border-radius: 50%;
}

.summary-header h2 {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
    line-height: 1.3;
    position: relative;
    z-index: 2;
}

.summary-text {
    padding: 35px 40px 10px 40px;
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
}

.summary-text strong {
    color: var(--primary);
    background: rgba(2, 132, 199, 0.05);
    padding: 2px 6px;
    border-radius: 4px;
}

/* Moduł interaktywny - Weryfikator */
.interactive-checklist-module {
    margin: 20px 40px 40px 40px;
    border: 1px solid var(--border-color);
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 4px 15px rgba(0,0,0,0.02);
}

.checklist-title {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    letter-spacing: 1px;
    padding: 20px 25px;
    border-bottom: 1px solid var(--border-color);
    background: var(--bg-light);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.progress-wrapper {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 200px;
}

.progress-track {
    flex: 1;
    height: 8px;
    background: #e2e8f0;
    border-radius: 4px;
    overflow: hidden;
}

.progress-fill {
    height: 100%;
    width: 0%;
    background: var(--accent);
    transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.progress-text {
    font-size: 12px;
    font-weight: 900;
    color: var(--primary);
    min-width: 40px;
    text-align: right;
}

.checklist-items {
    padding: 20px 25px;
    display: grid;
    gap: 12px;
}

.check-item {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    padding: 15px;
    border: 1px solid var(--border-color);
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.2s ease;
    background: #ffffff;
}

.check-item:hover {
    border-color: #bae6fd;
    background: #f0f9ff;
}

.check-item.completed {
    border-color: var(--success);
    background: #f0fdf4;
}

.check-box {
    width: 24px;
    height: 24px;
    border: 2px solid #cbd5e1;
    border-radius: 6px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    background: #fff;
    margin-top: 2px;
}

.check-item.completed .check-box {
    background: var(--success);
    border-color: var(--success);
}

.check-icon {
    color: white;
    font-size: 14px;
    font-weight: 900;
    opacity: 0;
    transform: scale(0);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.check-item.completed .check-icon {
    opacity: 1;
    transform: scale(1);
}

.check-content h4 {
    margin: 0 0 5px 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--primary);
}

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

/* CTA Sukcesu - ROZWIĄZANIE HYBRYDOWE */
.success-cta-box {
    padding: 30px 40px;
    background: #f8fafc;
    border-top: 1px solid var(--border-color);
    text-align: center;
    transition: all 0.4s ease;
}

.success-cta-box.is-success {
    background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
    border-top-color: #bbf7d0;
}

.success-messages {
    display: none;
    animation: fadeIn 0.5s ease;
}

.success-cta-box.is-success .success-messages {
    display: block;
}

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

.success-messages h3 {
    margin: 0 0 10px 0;
    font-size: 20px;
    color: #166534;
    font-weight: 900;
}

.success-messages p {
    font-size: 15px;
    color: #15803d;
    margin: 0 0 20px 0;
}

.success-cta-promo {
    font-size: 15px;
    color: var(--primary);
    margin-bottom: 20px;
    font-weight: 700;
    transition: color 0.4s ease;
}

.success-cta-box.is-success .success-cta-promo {
    color: #166534;
}

.cta-btn-blog {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #16a34a;
    color: #ffffff;
    padding: 14px 28px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
    transition: all 0.3s ease;
    box-shadow: 0 4px 10px rgba(22, 163, 74, 0.3);
}

.cta-btn-blog:hover {
    background: #15803d;
    transform: translateY(-2px);
    box-shadow: 0 6px 15px rgba(22, 163, 74, 0.4);
    color: #ffffff;
}

@media (max-width: 768px) {
    .summary-header { padding: 30px 25px; }
    .summary-text { padding: 25px 25px 10px 25px; }
    .interactive-checklist-module { margin: 20px 20px 30px 20px; }
    .checklist-title { flex-direction: column; align-items: flex-start; gap: 15px; }
    .progress-wrapper { width: 100%; }
    .success-cta-box { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Kluczowe parametry i wytyczne zasilania ogrzewania podłogowego",
    "description": "Zbiór najważniejszych inżynierskich wytycznych dotyczących maksymalnych limitów temperatury zasilania oraz powierzchni podłogi z uwzględnieniem specyfiki źródła ciepła i okładziny.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Maksymalna temperatura zasilania wg normy",
        "value": "55°C",
        "description": "Graniczna wartość według PN-EN 1264, której przekroczenie grozi uszkodzeniem jastrychu."
      },
      {
        "@type": "PropertyValue",
        "name": "Optymalna temperatura zasilania (Pompa ciepła)",
        "value": "30-38°C",
        "description": "Zakres gwarantujący najwyższy współczynnik SCOP i energooszczędność."
      },
      {
        "@type": "PropertyValue",
        "name": "Maksymalna temperatura powierzchni podłogi",
        "value": "29°C",
        "description": "Limit dla stref stałego przebywania ludzi (np. salon, sypialnia) ze względów fizjologicznych."
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Ekspercki Audyt Parametrów Zasilania",
    "description": "Interaktywna aplikacja sprawdzająca, czy założenia projektowe dotyczące temperatur zasilania podłogówki są bezpieczne i zgodne z normami inżynierskimi.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "featureList": [
      "Weryfikacja parametrów OZC i układu hydraulicznego",
      "Kontrola zabezpieczeń przed przegrzewem dla źródeł wysokotemperaturowych",
      "Ocena spójności między rozstawem rur a planowaną okładziną"
    ]
  }
]
</script>

<div class="premium-summary-box" id="summary-app-container">
    <div class="summary-header">
        <h2>Podsumowanie i rekomendacje eksperta</h2>
        <p style="margin:0; font-size: 15px; color:#cbd5e1;">Maksymalna temperatura zasilania podłogówki to parametr, którego nie wolno lekceważyć.</p>
    </div>
    
    <div class="summary-text">
        <p>Choć norma dopuszcza graniczną wartość <strong>55°C</strong>, współczesne budownictwo oparte na efektywnych źródłach niskotemperaturowych bezwzględnie dąży do parametrów na poziomie <strong>30-38°C</strong>. Taki zakres to jedyna droga, która gwarantuje najwyższą sprawność pomp ciepła, bezpieczeństwo termiczne dla wszystkich rodzajów okładzin wierzchnich oraz idealny, bezwładnościowy komfort cieplny dla domowników.</p>
    </div>

    <div class="interactive-checklist-module">
        <div class="checklist-title">
            <span>🌡️ Audyt Bezpieczeństwa: Weryfikacja parametrów zasilania</span>
            <div class="progress-wrapper">
                <div class="progress-track">
                    <div class="progress-fill" id="audit-fill"></div>
                </div>
                <span class="progress-text" id="audit-text">0%</span>
            </div>
        </div>

        <div class="checklist-items">
            <div class="check-item" data-val="25">
                <div class="check-box"><span class="check-icon">✓</span></div>
                <div class="check-content">
                    <h4>Projekt OZC jako absolutna podstawa</h4>
                    <p>Zawsze wymagam obliczenia projektowego zapotrzebowania na ciepło przed rozpoczęciem instalacji, aby nie dobierać temperatury zasilania "w ciemno".</p>
                </div>
            </div>

            <div class="check-item" data-val="25">
                <div class="check-box"><span class="check-icon">✓</span></div>
                <div class="check-content">
                    <h4>Zastosowanie zaworu mieszającego</h4>
                    <p>W przypadku współpracy z kotłem stałopalnym lub gazowym, układ jest zabezpieczony zaworem obniżającym zbyt wysoką temperaturę powrotu.</p>
                </div>
            </div>

            <div class="check-item" data-val="25">
                <div class="check-box"><span class="check-icon">✓</span></div>
                <div class="check-content">
                    <h4>Dopasowanie rozstawu pętli do okładziny</h4>
                    <p>Dobrałem gęstość rur pod rodzaj wykończenia. Zastosuję węższy rozstaw (np. co 10 cm), jeśli nad rurami znajdzie się stawiające opór termiczny drewno.</p>
                </div>
            </div>

            <div class="check-item" data-val="25">
                <div class="check-box"><span class="check-icon">✓</span></div>
                <div class="check-content">
                    <h4>Monitorowanie temperatury powierzchni</h4>
                    <p>Układ jest tak wyregulowany, by temperatura powierzchni podłogi (np. w salonie i sypialniach) bezwzględnie nie przekraczała normatywnych 29°C.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="success-cta-box" id="success-cta">
        
        <div class="success-messages" id="success-messages">
            <h3>Gratulacje! Twój układ grzewczy to majstersztyk inżynierski.</h3>
            <p>Inwestycja w poprawnie zaprojektowany i wyregulowany system to nie tylko niższe rachunki za energię, ale przede wszystkim spokój na dziesięciolecia i dom wolny od kosztownych awarii wylewki i posadzek.</p>
        </div>

        <p class="success-cta-promo">Chcesz poznać inne parametry wpływające na efektywność ogrzewania? Sprawdź naszą bazę wiedzy pełną branżowych kalkulatorów i darmowych poradników!</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="cta-btn-blog">
            📚 PRZEJDŹ NA BLOGA I POZNAJ KOLEJNE SEKRETY ➔
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('summary-app-container');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 12px; font-family: sans-serif;">
                    <span style="font-size: 40px;">⚠️</span>
                    <p style="margin: 15px 0;">Treść Chroniona Prawem Autorskim</p>
                    <p>Moduł audytu został skopiowany. Przejdź na stronę <strong>Projekt-Ogrzewania.pl</strong>.</p>
                </div>
            `;
            return;
        }
    }

    // Logika weryfikatora
    const checkItems = document.querySelectorAll('.check-item');
    const fill = document.getElementById('audit-fill');
    const text = document.getElementById('audit-text');
    const ctaBox = document.getElementById('success-cta');
    
    let currentProgress = 0;

    checkItems.forEach(item => {
        item.addEventListener('click', function() {
            const value = parseInt(this.getAttribute('data-val'));
            
            if (this.classList.contains('completed')) {
                this.classList.remove('completed');
                currentProgress -= value;
            } else {
                this.classList.add('completed');
                currentProgress += value;
            }

            // Aktualizacja UI paska postępu
            fill.style.width = currentProgress + '%';
            text.textContent = currentProgress + '%';

            // Zmiana zachowania CTA Boxa na tryb sukcesu
            if (currentProgress === 100) {
                fill.style.background = 'var(--success)';
                text.style.color = 'var(--success)';
                ctaBox.classList.add('is-success');
            } else {
                fill.style.background = 'var(--accent)';
                text.style.color = 'var(--primary)';
                ctaBox.classList.remove('is-success');
            }
        });
    });
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">Maksymalna temperatura zasilania podłogówki.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Norma EN ISO 15875.</title>
		<link>https://projekt-ogrzewania.pl/norma-en-iso-15875/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Thu, 27 Feb 2025 18:39:53 +0000</pubDate>
				<category><![CDATA[Bezpieczeństwo instalacji]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Normy grzewcze]]></category>
		<category><![CDATA[Normy i certyfikaty]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[bezpieczeństwo instalacji]]></category>
		<category><![CDATA[certyfikaty jakości]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[norma en iso 15875]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[porady budowlane]]></category>
		<category><![CDATA[projektowanie ogrzewania]]></category>
		<category><![CDATA[rury grzewcze]]></category>
		<category><![CDATA[tworzywa sztuczne]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2301</guid>

					<description><![CDATA[<p>Planujesz montaż ogrzewania podłogowego? Dowiedz się, dlaczego norma EN ISO 15875 jest kluczowa dla bezpieczeństwa i trwałości Twojej instalacji. W artykule omawiamy wymagania tej normy, korzyści z jej stosowania oraz praktyczne wskazówki dotyczące projektowania systemów grzewczych. Sprawdź, jak wybrać odpowiednie rury i uniknąć błędów, które mogą wpłynąć na efektywność ogrzewania.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/norma-en-iso-15875/">Norma EN ISO 15875.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Wybór odpowiednich materiałów do <em>ogrzewania podłogowego</em> ma kluczowe znaczenie dla efektywności i bezpieczeństwa całej instalacji. Jednym z najważniejszych dokumentów potwierdzających jakość rur stosowanych w tego typu systemach jest <strong>norma EN ISO 15875</strong>. </p>



<p class="wp-block-paragraph">W artykule przyjrzymy się, dlaczego ten standard jest tak istotny, jakie wymagania stawia przed producentami oraz jak wpływa na trwałość i niezawodność instalacji grzewczych. Dowiesz się również, jak wykorzystać go w praktyce podczas projektowania ogrzewania podłogowego.</p>



<h2 class="wp-block-heading">Czym jest norma EN ISO 15875 i dlaczego warto ją znać?</h2>



<p class="wp-block-paragraph"><strong>Norma EN ISO 15875</strong> to międzynarodowy standard określający <strong>wymagania dla <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rur z tworzyw sztucznych</a></strong> stosowanych w instalacjach wodnych, w tym w systemach ogrzewania podłogowego. Dokument ten precyzuje kryteria dotyczące:</p>



<ul class="wp-block-list">
<li><strong>Materiałów</strong> – dopuszczalnych rodzajów tworzyw (np. PE-X, PB),</li>



<li><strong>Wytrzymałości mechanicznej</strong> – odporności na uszkodzenia i odkształcenia,</li>



<li><strong>Odporności termicznej</strong> – stabilności w wysokich temperaturach,</li>



<li><strong>Bezpieczeństwa sanitarnego</strong> – braku negatywnego wpływu na jakość wody.</li>
</ul>



<p class="wp-block-paragraph">Certyfikacja zgodnie z tą normą oznacza, że produkt przeszedł rygorystyczne testy, a jego parametry są zgodne z europejskimi wymaganiami. To właśnie dlatego <strong>rury oznaczone EN ISO 15875</strong> są rekomendowane przez ekspertów jako podstawa niezawodnych instalacji grzewczych.</p>



<h2 class="wp-block-heading">Wymagania normy EN ISO 15875 – na co zwrócić uwagę?</h2>



<p class="wp-block-paragraph">Aby rury mogły spełnić <strong>normę EN ISO 15875</strong>, muszą przejść serię badań, które potwierdzają ich właściwości techniczne. Oto najważniejsze aspekty oceniane w procesie certyfikacji:</p>



<h3 class="wp-block-heading">1. Odporność na wysokie temperatury i ciśnienie.</h3>



<p class="wp-block-paragraph">W systemach <strong><a href="https://projekt-ogrzewania.pl">ogrzewania podłogowego</a></strong> rury narażone są na działanie wody o temperaturze nawet do <strong>70°C</strong> (w zależności od projektu). Norma wymaga, aby tworzywo zachowało stabilność przez co najmniej <strong>50 lat</strong> w takich warunkach. Przykładem są rury PE-X, które dzięki sieciowanej strukturze wykazują wyjątkową odporność na rozciąganie i pękanie.</p>



<h3 class="wp-block-heading">2. Minimalizacja strat ciepła.</h3>



<p class="wp-block-paragraph"><strong>Dobrze izolowane rury</strong> to mniejsze zużycie energii i niższe rachunki. Norma EN ISO 15875 określa dopuszczalne współczynniki przewodzenia ciepła, co przekłada się na optymalną grubość ścianek rur. Na przykład rury PB (polibutylenowe) charakteryzują się niższym współczynnikiem niż PE-X, co może być istotne w projektach wymagających wysokiej efektywności.</p>



<h3 class="wp-block-heading">3. Bezpieczeństwo dla zdrowia.</h3>



<p class="wp-block-paragraph">W przypadku instalacji łączących ogrzewanie podłogowe z systemem ciepłej wody użytkowej, norma gwarantuje, że materiały nie uwalniają szkodliwych substancji. Przykładowo, rury certyfikowane <strong>EN ISO 15875</strong> są wolne od metali ciężkich i ftalanów.</p>



<h2 class="wp-block-heading">Korzyści stosowania rur zgodnych z normą EN ISO 15875</h2>



<p class="wp-block-paragraph">Inwestycja w certyfikowane produkty to nie tylko spełnienie wymogów prawnych, ale też szereg praktycznych zalet:</p>



<ul class="wp-block-list">
<li><strong>Długowieczność</strong> – instalacje wytrzymują nawet kilkadziesiąt lat bez awarii,</li>



<li><strong>Oszczędność energii</strong> – precyzyjna dystrybucja ciepła redukuje straty,</li>



<li><strong>Bezpieczeństwo</strong> – brak ryzyka przecieków czy pęknięć,</li>



<li><strong>Gwarancja producenta</strong> – wiele firm udziela nawet 10-letniej ochrony na swoje produkty.</li>
</ul>



<h3 class="wp-block-heading">Przykłady zastosowań w praktyce</h3>



<p class="wp-block-paragraph">W projektach <strong>ogrzewania podłogowego</strong> w domach jednorodzinnych często wykorzystuje się rury PE-X ze względu na ich elastyczność i łatwość układania. Z kolei w obiektach przemysłowych, gdzie wymagana jest większa odporność na obciążenia mechaniczne, sprawdzają się rury PB. W obu przypadkach norma EN ISO 15875 działa jako „filtrujący” standard, eliminujący produkty niskiej jakości.</p>



<h2 class="wp-block-heading">Projekt ogrzewania podłogowego a norma EN ISO 15875 – kluczowe etapy</h2>



<p class="wp-block-paragraph">Planując instalację grzewczą, warto uwzględnić wymagania normy już na etapie <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">projektu ogrzewania podłogowego</a>. Oto jak to zrobić:</p>



<h3 class="wp-block-heading">1. Wybór materiałów.</h3>



<p class="wp-block-paragraph">Zawsze sprawdzaj, czy rury posiadają certyfikat <strong>EN ISO 15875</strong>. Unikaj produktów bez oznaczeń lub z niejasnymi deklaracjami. Przykład: rury marki Kisan, TECE, Uponor lub Rehau są standardowo certyfikowane, co potwierdzają dokumentacje techniczne.</p>



<h3 class="wp-block-heading">2. Rozmieszczenie rur.</h3>



<p class="wp-block-paragraph">Norma nie reguluje bezpośrednio układu pętli grzewczych, ale zaleca zachowanie minimalnych odległości między rurami (zwykle ok. 10-30 cm), aby uniknąć lokalnych przegrzewów. W projektach złożonych, np. w łazienkach z wieloma strefami grzewczymi, warto użyć rur o mniejszych średnicach (np. 14 mm), które łatwiej dopasować do kształtu pomieszczenia.</p>



<h3 class="wp-block-heading">3. Dokumentacja i gwarancje.</h3>



<p class="wp-block-paragraph">Przechowuj certyfikaty zgodności z normą – mogą być wymagane przez inspektorów nadzoru budowlanego lub w przypadku roszczeń gwarancyjnych. Niektóre firmy, jak np. Viega, oferują dodatkowe ubezpieczenie instalacji, pod warunkiem użycia certyfikowanych komponentów.</p>



<h3 class="wp-block-heading">4. Testy ciśnieniowe.</h3>



<p class="wp-block-paragraph">Przed zalaniem posadzki, przeprowadź próbę szczelności instalacji zgodnie z parametrami normy (np. ciśnienie 6 bar przez 24 godziny). To pozwoli wykryć ewentualne wady materiałów lub montażu.</p>



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



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1740680812103"><strong class="schema-faq-question"><strong>Dlaczego norma EN ISO 15875 jest ważna w ogrzewaniu podłogowym?</strong></strong> <p class="schema-faq-answer">Norma EN ISO 15875 gwarantuje, że rury spełniają wymagania dotyczące wytrzymałości, odporności termicznej i bezpieczeństwa, co przekłada się na trwałość i niezawodność instalacji.</p> </div> <div class="schema-faq-section" id="faq-question-1740680822708"><strong class="schema-faq-question"><strong>Jakie materiały są dopuszczone przez normę EN ISO 15875?</strong></strong> <p class="schema-faq-answer">Norma dopuszcza rury z tworzyw sztucznych, takich jak PE-X (polietylen sieciowany) i PB (polibutylen), które są odporne na wysokie temperatury i ciśnienie.</p> </div> <div class="schema-faq-section" id="faq-question-1740680838734"><strong class="schema-faq-question"><strong>Czy rury zgodne z normą EN ISO 15875 są droższe?</strong></strong> <p class="schema-faq-answer">Choć mogą być nieco droższe, ich wyższa jakość i dłuższa żywotność sprawiają, że inwestycja zwraca się dzięki mniejszym kosztom eksploatacji i napraw.</p> </div> <div class="schema-faq-section" id="faq-question-1740680846736"><strong class="schema-faq-question"><strong>Jak sprawdzić, czy rury są zgodne z normą EN ISO 15875?</strong></strong> <p class="schema-faq-answer">Należy szukać certyfikatów zgodności wydanych przez producenta lub niezależne instytucje certyfikujące. Informacje te często znajdują się na opakowaniu lub w dokumentacji technicznej.</p> </div> <div class="schema-faq-section" id="faq-question-1740680859276"><strong class="schema-faq-question"><strong>Czy norma EN ISO 15875 dotyczy tylko ogrzewania podłogowego?</strong></strong> <p class="schema-faq-answer">Nie, norma dotyczy również innych instalacji wodnych, ale w przypadku ogrzewania podłogowego jest szczególnie istotna ze względu na specyficzne warunki pracy rur.</p> </div> </div>



<h2 class="wp-block-heading">Podsumowanie: Dlaczego norma EN ISO 15875 to niezbędny standard?</h2>



<p class="wp-block-paragraph">Stosowanie rur zgodnych z <strong>normą EN ISO 15875</strong> to inwestycja w bezawaryjność i energooszczędność ogrzewania podłogowego. Dzięki precyzyjnym wymaganiom dotyczącym wytrzymałości, bezpieczeństwa i trwałości, standard ten stał się synonimem jakości w branży instalacyjnej. Niezależnie od tego, czy projektujesz system dla małego mieszkania, czy wielkopowierzchniowego magazynu – wybór certyfikowanych komponentów to najlepsza droga do sukcesu.</p>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-projekt-ogrzewania wp-block-embed-projekt-ogrzewania"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="YkhGD03zx4"><a href="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-100-m2/">Projekt ogrzewania podłogowego &#8211; do 100 m2</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8222;Projekt ogrzewania podłogowego &#8211; do 100 m2&#8221; &#8212; Projekt Ogrzewania" src="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-100-m2/embed/#?secret=kROEAMOUhR#?secret=YkhGD03zx4" data-secret="YkhGD03zx4" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/norma-en-iso-15875/">Norma EN ISO 15875.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Norma obliczeń ogrzewania podłogowego EN 1264.</title>
		<link>https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Mon, 17 Feb 2025 18:37:11 +0000</pubDate>
				<category><![CDATA[EN 1264]]></category>
		<category><![CDATA[Niskotemperaturowe systemy grzewcze]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Normy grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Systemy grzewcze]]></category>
		<category><![CDATA[budownictwo]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[izolacja termiczna]]></category>
		<category><![CDATA[montaż ogrzewania]]></category>
		<category><![CDATA[norma en 1264]]></category>
		<category><![CDATA[obliczenia cieplne]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projektowanie instalacji]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<category><![CDATA[trwałość instalacji]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2241</guid>

					<description><![CDATA[<p>Projektowanie ogrzewania podłogowego wymaga precyzji i wiedzy technicznej. Norma obliczeń ogrzewania podłogowego EN 1264 to kluczowy dokument, który określa zasady projektowania, obliczeń i montażu systemów grzewczych. Dzięki niej możliwe jest zapewnienie efektywności energetycznej, komfortu użytkowania oraz trwałości instalacji. W artykule szczegółowo omawiamy strukturę normy, metody obliczeniowe oraz praktyczne wskazówki dla projektantów i instalatorów. Dowiesz się, jak uniknąć błędów i zoptymalizować system grzewczy w swoim domu.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">Norma obliczeń ogrzewania podłogowego EN 1264.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Norma obliczeń ogrzewania podłogowego EN 1264</strong> to kluczowy dokument regulujący projektowanie, obliczenia i wykonanie systemów grzewczo-chłodzących płaszczyznowych, w tym podłogowych, ściennych i sufitowych. Jako europejski standard, EN 1264 zapewnia spójne wytyczne dla inżynierów, architektów i instalatorów, gwarantując efektywność energetyczną, bezpieczeństwo i trwałość instalacji. W artykule szczegółowo omówimy strukturę normy, jej praktyczne zastosowanie oraz wpływ na optymalizację systemów grzewczych.</p>



<h2 class="wp-block-heading"><strong>Podstawy normy EN 1264 – dlaczego jest tak ważna?</strong></h2>



<p class="wp-block-paragraph">Ogrzewanie płaszczyznowe, zwłaszcza podłogowe, wymaga precyzyjnego planowania, aby uniknąć błędów wpływających na komfort użytkowania czy koszty eksploatacji. <strong>Norma EN 1264</strong> wprowadza jednolite zasady projektowe, uwzględniające parametry cieplne, mechaniczne i technologiczne. Składa się z pięciu części, z których każda koncentruje się na innym aspekcie instalacji. Dzięki temu dokument kompleksowo obejmuje zarówno teorię, jak i praktykę.</p>



<h3 class="wp-block-heading"><em>Kluczowe parametry techniczne według EN 1264</em>.</h3>



<p class="wp-block-paragraph">Norma definiuje m.in.:</p>



<ul class="wp-block-list">
<li><strong>Maksymalną temperaturę powierzchni podłogi</strong> (np. 29°C dla pomieszczeń mieszkalnych),</li>



<li><strong>Współczynnik przenikania ciepła</strong> dla warstw podłogi,</li>



<li><strong><a href="https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/">Rozstaw rur</a></strong> oraz ich średnicę,</li>



<li><strong>Moc grzewczą</strong> konieczną do zbilansowania strat energii.</li>
</ul>



<h2 class="wp-block-heading"><strong>Struktura normy EN 1264 – co obejmują poszczególne części?</strong></h2>



<p class="wp-block-paragraph">Aby w pełni wykorzystać potencjał <strong>normy obliczeń ogrzewania podłogowego EN 1264</strong>, warto poznać zakres jej poszczególnych części. Każda z nich odpowiada za inny etap projektowania i realizacji systemu.</p>



<h3 class="wp-block-heading"><em>EN 1264-1: Definicje i symbole</em>.</h3>



<p class="wp-block-paragraph">Ta część wprowadza podstawową terminologię oraz symbole stosowane w dokumentacji technicznej. Dzięki niej projektanci unikają niejasności, np. rozróżniając pojęcia takie jak <strong>„opór cieplny warstwy”</strong> (R) czy <strong>„gęstość strumienia cieplnego”</strong> (q). Standaryzacja nazewnictwa ułatwia współpracę między branżami.</p>



<h3 class="wp-block-heading"><em>EN 1264-2: Metody projektowania i obliczenia cieplne</em>.</h3>



<p class="wp-block-paragraph">Najbardziej istotna część dla inżynierów. Zawiera algorytmy obliczeniowe uwzględniające:</p>



<ul class="wp-block-list">
<li>Straty ciepła w budynku,</li>



<li><a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">Właściwości termiczne materiałów</a> (np. przewodność cieplną wylewki),</li>



<li>Dopuszczalne temperatury powierzchni podłogi.</li>
</ul>



<p class="wp-block-paragraph">Przykładowo, wzór na moc grzewczą:<br><strong>Q = (ΔT * A) / R</strong>,<br>gdzie ΔT to różnica temperatur między podłogą a pomieszczeniem, jest bezpośrednio powiązany z wytycznymi z tej części normy.</p>



<h3 class="wp-block-heading"><em>EN 1264-3: Wymagania konstrukcyjne</em>.</h3>



<p class="wp-block-paragraph">Określa zasady doboru materiałów i warstw systemu:</p>



<ul class="wp-block-list">
<li>Minimalna <strong>grubość izolacji termicznej</strong> (np. <a href="https://projekt-ogrzewania.pl/produkt/plyta-styropianowa-eps-100-z-folia-przeciwwilgociowa/">30 mm dla styropianu EPS</a>),</li>



<li>Dopuszczalne <strong>materiały rur</strong> (PEX, PE-RT, miedź),</li>



<li>Wytrzymałość mechaniczną jastrychu.</li>
</ul>



<h3 class="wp-block-heading"><em>EN 1264-4: Instalacja i regulacja systemu</em>.</h3>



<p class="wp-block-paragraph">Część praktyczna, skupiająca się na montażu:</p>



<ul class="wp-block-list">
<li>Procedury <strong>testów ciśnieniowych</strong> rur przed zalaniem wylewką,</li>



<li>Metody <strong>równoważenia hydraulicznego</strong> instalacji,</li>



<li>Zasady sterowania temperaturą (np. użycie zaworów termostatycznych).</li>
</ul>



<h3 class="wp-block-heading"><em>EN 1264-5: Systemy dynamiczne</em>.</h3>



<p class="wp-block-paragraph">Dedykowana instalacjom, które dynamicznie reagują na zmiany warunków zewnętrznych (np. pogoda) lub wewnętrznych (np. obecność osób). Norma wskazuje, jak dostosować parametry pracy, aby uniknąć przegrzewania lub wychłodzenia pomieszczeń.</p>



<h2 class="wp-block-heading"><strong>Jak obliczyć moc grzewczą zgodnie z EN 1264? Metody i przykłady</strong>.</h2>



<p class="wp-block-paragraph"><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Projektowanie ogrzewania podłogowego</a> według <strong>normy EN 1264</strong> wymaga analizy strat ciepła oraz właściwości termicznych podłogi. Poniżej przedstawiamy krok po kroku, jak przeprowadzić obliczenia.</p>



<h3 class="wp-block-heading"><em>Krok 1: Określenie strat ciepła w pomieszczeniu</em>.</h3>



<p class="wp-block-paragraph">Straty oblicza się na podstawie izolacyjności budynku. Dla domu energooszczędnego przyjmuje się ok. <strong>40–50 W/m²</strong>, a dla starszych budynków nawet <strong>80–100 W/m²</strong>.</p>



<h3 class="wp-block-heading"><em>Krok 2: Obliczenie oporu cieplnego podłogi (R)</em>.</h3>



<p class="wp-block-paragraph">Opór cieplny to suma oporów wszystkich warstw, np.:</p>



<ul class="wp-block-list">
<li>Wylewka (grubość 5 cm, λ=1,2 W/m·K): <strong>R₁ = 0,05 m / 1,2 = 0,042 (m²·K)/W</strong>,</li>



<li>Izolacja (styropian 3 cm, λ=0,04 W/m·K): <strong>R₂ = 0,03 / 0,04 = 0,75 (m²·K)/W</strong>,</li>



<li>Wykładzina (R=0,1 (m²·K)/W).</li>
</ul>



<p class="wp-block-paragraph"><strong>Razem: R = R₁ + R₂ + R₃ = 0,042 + 0,75 + 0,1 = 0,892 (m²·K)/W</strong>.</p>



<h3 class="wp-block-heading"><em>Krok 3: Wyznaczenie mocy grzewczej</em>.</h3>



<p class="wp-block-paragraph">Korzystając ze wzoru <strong>Q = (ΔT * A) / R</strong>:</p>



<ul class="wp-block-list">
<li>ΔT = 10 K (np. temperatura podłogi 29°C, pomieszczenia 19°C),</li>



<li>A = 20 m²,</li>



<li>R = 0,892 (m²·K)/W.</li>
</ul>



<p class="wp-block-paragraph"><strong>Q = (10 * 20) / 0,892 ≈ 224 W/m²</strong>.<br>Jeśli straty ciepła wynoszą 50 W/m², system jest przewymiarowany – należy zmniejszyć ΔT lub zwiększyć izolację.</p>



<h2 class="wp-block-heading"><strong>Znaczenie normy EN 1264 w projektowaniu systemów grzewczych</strong>.</h2>



<p class="wp-block-paragraph">Stosowanie <strong>normy obliczeń ogrzewania podłogowego EN 1264</strong> przekłada się na konkretne korzyści techniczne i ekonomiczne. Oto najważniejsze z nich:</p>



<h3 class="wp-block-heading"><em>Gwarancja efektywności energetycznej</em>.</h3>



<p class="wp-block-paragraph">Norma wymusza optymalizację parametrów, np. poprzez ograniczenie temperatury zasilania do <strong>40–45°C</strong>. Dzięki temu system zużywa nawet o <strong>25% mniej energii</strong> w porównaniu z tradycyjnymi grzejnikami.</p>



<h3 class="wp-block-heading"><em>Bezpieczeństwo użytkowników</em>.</h3>



<p class="wp-block-paragraph">EN 1264 definiuje maksymalne temperatury powierzchni podłogi, np. <strong>35°C w łazienkach</strong>. Zapobiega to ryzyku poparzeń, szczególnie ważne w domach z dziećmi.</p>



<h3 class="wp-block-heading"><em>Trwałość instalacji</em>.</h3>



<p class="wp-block-paragraph">Wytyczne dotyczące materiałów (np. odporność rur na korozję) oraz montażu (testy ciśnieniowe) minimalizują awarie. Przykładowo, <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rury</a> z tworzyw sztucznych zgodne z normą wytrzymują <strong>50 lat</strong> eksploatacji.</p>



<h2 class="wp-block-heading"><strong>Praktyczne wskazówki dla projektantów i instalatorów</strong>.</h2>



<p class="wp-block-paragraph">Aby w pełni wykorzystać potencjał <strong>normy EN 1264</strong>, warto pamiętać o kilku zasadach:</p>



<h3 class="wp-block-heading"><em>Dobór rozstawu rur w zależności od strefy</em>.</h3>



<ul class="wp-block-list">
<li><strong>Strefa brzegowa</strong> (np. przy oknach): Rozstaw <strong>5–10 cm</strong> – większa moc kompensuje wyższe straty ciepła.</li>



<li><strong>Strefa centralna</strong>: Rozstaw <strong>10–20 cm</strong> – równomierne ogrzewanie przy mniejszym zużyciu materiałów.</li>
</ul>



<h3 class="wp-block-heading"><em>Dynamiczne sterowanie temperaturą</em>.</h3>



<p class="wp-block-paragraph">W systemach zgodnych z <strong>EN 1264-5</strong> warto zastosować regulatory pogodowe, które automatycznie dostosowują temperaturę wody do warunków zewnętrznych. Przykład: Przy -10°C na zewnątrz temperatura zasilania wynosi <strong>45°C</strong>, a przy +5°C – <strong>35°C</strong>.</p>



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



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1739816240920"><strong class="schema-faq-question"><strong>Dlaczego norma EN 1264 jest ważna w projektowaniu ogrzewania podłogowego?</strong></strong> <p class="schema-faq-answer">Norma EN 1264 zapewnia jednolite standardy projektowe, gwarantujące efektywność energetyczną, bezpieczeństwo użytkowania oraz trwałość instalacji. Dzięki niej unika się błędów, które mogą prowadzić do nierównomiernego grzania czy zwiększonych kosztów eksploatacji.</p> </div> <div class="schema-faq-section" id="faq-question-1739816256939"><strong class="schema-faq-question"><strong>Jakie parametry są kluczowe w obliczeniach według EN 1264?</strong></strong> <p class="schema-faq-answer">Kluczowe parametry to: straty ciepła w budynku, opór cieplny warstw podłogi, rozstaw rur oraz maksymalna temperatura powierzchni podłogi (np. 29°C dla pomieszczeń mieszkalnych).</p> </div> <div class="schema-faq-section" id="faq-question-1739816274542"><strong class="schema-faq-question"><strong>Jak obliczyć moc grzewczą zgodnie z EN 1264?</strong></strong> <p class="schema-faq-answer">Moc oblicza się ze wzoru: <strong>Q = (ΔT * A) / R</strong>, gdzie ΔT to różnica temperatur, A – powierzchnia, a R – opór cieplny warstw podłogi. Przykładowo, dla ΔT=10 K, A=20 m² i R=0,892 (m²·K)/W, moc wynosi ok. 224 W/m².</p> </div> <div class="schema-faq-section" id="faq-question-1739816283613"><strong class="schema-faq-question"><strong>Jakie materiały są zalecane w systemach zgodnych z EN 1264?</strong></strong> <p class="schema-faq-answer">Norma rekomenduje rury z tworzyw sztucznych (PEX, PE-RT) lub miedź, izolację termiczną (np. styropian EPS) oraz jastrych o odpowiedniej wytrzymałości mechanicznej.</p> </div> <div class="schema-faq-section" id="faq-question-1739816296973"><strong class="schema-faq-question"><strong>Czy norma EN 1264 dotyczy tylko ogrzewania podłogowego?</strong></strong> <p class="schema-faq-answer">Nie, norma obejmuje również systemy chłodzenia płaszczyznowego (podłogowe, ścienne, sufitowe) oraz instalacje pracujące w trybie dynamicznym, dostosowującym się do zmiennych warunków.</p> </div> </div>



<h2 class="wp-block-heading"><strong>Podsumowanie: EN 1264 jako fundament nowoczesnych instalacji</strong>.</h2>



<p class="wp-block-paragraph"><strong>Norma obliczeń ogrzewania podłogowego EN 1264</strong> to niezbędnik każdego profesjonalisty. Łączy precyzję obliczeń z praktycznymi wytycznymi montażowymi, zapewniając systemom grzewczym efektywność, bezpieczeństwo i długowieczność. Dzięki jej stosowaniu inwestycja w <a href="https://projekt-ogrzewania.pl">ogrzewanie podłogowe</a> staje się opłacalna zarówno pod względem kosztów instalacji, jak i późniejszej eksploatacji. Pamiętaj: Ignorowanie normy może prowadzić do nierównomiernego grzania, zwiększonych rachunków za energię, a nawet uszkodzenia podłogi!</p>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-projekt-ogrzewania wp-block-embed-projekt-ogrzewania"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="7OPsceVxkp"><a href="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-150-m2/">Projekt ogrzewania podłogowego &#8211; do 150 m2</a></blockquote><iframe loading="lazy" class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8222;Projekt ogrzewania podłogowego &#8211; do 150 m2&#8221; &#8212; Projekt Ogrzewania" src="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-150-m2/embed/#?secret=t6RvRzbfui#?secret=7OPsceVxkp" data-secret="7OPsceVxkp" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">Norma obliczeń ogrzewania podłogowego EN 1264.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
