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

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa rura pex - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/tag/rura-pex/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Samodzielny montaż ogrzewania podłogowego – 5 błędów, których nie naprawisz po wylewce.</title>
		<link>https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 19 Apr 2026 19:27:33 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Efektywne ogrzewanie]]></category>
		<category><![CDATA[Efektywność ogrzewania]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradnik inwestora]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki inwestora]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Projektowanie systemów grzewczych]]></category>
		<category><![CDATA[Systemy ogrzewania]]></category>
		<category><![CDATA[Technika grzewcza]]></category>
		<category><![CDATA[Technika instalacyjna]]></category>
		<category><![CDATA[błędy wykonawcze]]></category>
		<category><![CDATA[budowa domu]]></category>
		<category><![CDATA[dylatacje]]></category>
		<category><![CDATA[hydraulika]]></category>
		<category><![CDATA[izolacja termiczna]]></category>
		<category><![CDATA[jastrych]]></category>
		<category><![CDATA[montaż samodzielny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[pętle grzewcze]]></category>
		<category><![CDATA[porady techniczne]]></category>
		<category><![CDATA[próba szczelności]]></category>
		<category><![CDATA[projekt instalacji]]></category>
		<category><![CDATA[rura pex]]></category>
		<category><![CDATA[zebra termiczna]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=4245</guid>

					<description><![CDATA[<p>Planujesz samodzielny montaż instalacji grzewczej, by zaoszczędzić na robociźnie? Wiele osób, wpisując w wyszukiwarkę frazę „jak samemu zrobić ogrzewanie podłogowe”, skupia się wyłącznie na prostocie rozkładania rur PEX, zapominając o bezlitosnych prawach fizyki budowli i mechaniki płynów. Ten techniczny przewodnik obala popularne mity i analizuje pięć najpoważniejszych „grzechów głównych” popełnianych przez inwestorów. Dowiesz się z niego, dlaczego brak profesjonalnego projektu, zignorowanie dylatacji czy zbyt długie pętle grzewcze mogą doprowadzić do nieodwracalnych uszkodzeń wylewki i kosztownego remontu. Zamiast uczyć się na własnych błędach pod warstwą betonu, poznaj inżynierskie standardy, które zagwarantują Ci komfort cieplny i niskie rachunki przez kolejne trzydzieści lat.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/">Samodzielny montaż ogrzewania podłogowego – 5 błędów, których nie naprawisz po wylewce.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --primary: #0f172a;
    --accent: #dc2626; /* Czerwony ostrzegawczy */
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #fef2f2;
    --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;
}

/* 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: #fef2f2;
    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: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.1);
}

.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": "Samodzielny montaż ogrzewania podłogowego – 5 błędów, których nie naprawisz po wylewce",
    "description": "Techniczny przewodnik po najczęstszych błędach podczas montażu podłogówki DIY. Dowiedz się, dlaczego fizyka budowli i mechanika płynów są ważniejsze niż samo układanie rur.",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl"
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl"
    },
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Przegląd techniczny błędów montażowych",
    "description": "Zestawienie kluczowych parametrów technicznych i zagrożeń wynikających z błędów przy samodzielnym montażu ogrzewania podłogowego.",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Projekt hydrauliczny",
        "value": "Równowaga oporów",
        "description": "Zagrożenie: Niedogrzane pomieszczenia"
      },
      {
        "@type": "PropertyValue",
        "name": "Test ciśnieniowy",
        "value": "6 bar (0.6 MPa)",
        "description": "Zagrożenie: Wyciek pod wylewką"
      },
      {
        "@type": "PropertyValue",
        "name": "Dylatacje",
        "value": "0.012 mm/(m·K)",
        "description": "Zagrożenie: Pękanie płytek i jastrychu"
      },
      {
        "@type": "PropertyValue",
        "name": "Długość obwodów",
        "value": "Max 100m (PEX 16)",
        "description": "Zagrożenie: Przeciążenie pompy obiegowej"
      }
    ],
    "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> Punkt bez powrotu
        </div>
        
        <p class="hero-text">Kiedy wpisujesz w wyszukiwarkę frazę <strong>„jak samemu zrobić ogrzewanie podłogowe”</strong>, widzisz dziesiątki poradników pokazujących, jak łatwo rozwinąć rolkę czerwonej lub białej rury PEX i przyszpilić ją do styropianu. Rzeczywiście, sama czynność układania wężyków jest prosta i może dać ogromną satysfakcję oraz oszczędności na robociźnie rzędu kilku tysięcy złotych.</p>
        
        <p class="hero-text">Problem w tym, że prawdziwa wiedza potrzebna przy samodzielnym montażu ogrzewania podłogowego nie dotyczy wpinania rury w rozdzielacz, ale <strong>fizyki budowli i mechaniki płynów</strong>. Poniższy artykuł to techniczny przewodnik dla tych, którzy rozumieją, że po stwardnieniu betonowej wylewki jedyną metodą naprawy błędu jest młot udarowy i nowy remont.</p>

        <div class="hero-modules-title">Poznaj katalog głównych grzechów:</div>
        
        <div class="hero-grid">
            <div class="hero-card">
                <span class="hero-card-icon">📐</span>
                <span class="hero-card-title">Brak projektu i obliczeń</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">💧</span>
                <span class="hero-card-title">Zła próba szczelności</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">🏗️</span>
                <span class="hero-card-title">Zignorowanie dylatacji</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">⚠️</span>
                <span class="hero-card-title">Błędy długości pętli</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;">Przegląd techniczny błędów montażowych</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;">Obszar kontroli</th>
                        <th style="padding: 10px 0; color: #475569;">Kluczowy parametr</th>
                        <th style="padding: 10px 0; color: #475569;">Zagrożenie</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0;">Projekt hydrauliczny</td>
                        <td style="padding: 10px 0; font-weight: bold;">Równowaga oporów</td>
                        <td style="padding: 10px 0; color: #dc2626;">Niedogrzane pomieszczenia</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0;">Test ciśnieniowy</td>
                        <td style="padding: 10px 0; font-weight: bold;">6 bar (0.6 MPa)</td>
                        <td style="padding: 10px 0; color: #dc2626;">Wyciek pod wylewką</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0;">Dylatacje</td>
                        <td style="padding: 10px 0; font-weight: bold;">0.012 mm/(m·K)</td>
                        <td style="padding: 10px 0; color: #dc2626;">Pękanie płytek i jastrychu</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0;">Długość obwodów</td>
                        <td style="padding: 10px 0; font-weight: bold;">Max 100m (PEX 16)</td>
                        <td style="padding: 10px 0; color: #dc2626;">Przeciążenie pompy obiegowej</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: #7f1d1d; 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: #2563eb;
    --accent-light: #eff6ff;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-physics-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.physics-header {
    background: var(--primary);
    color: #ffffff;
    padding: 30px 40px;
    position: relative;
    overflow: hidden;
}

.physics-header::after {
    content: '📐';
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 80px;
    opacity: 0.1;
}

.physics-header h3 {
    margin: 0 0 10px 0;
    font-size: 24px;
    font-weight: 900;
}

.physics-header p {
    margin: 0;
    font-size: 15px;
    color: #94a3b8;
    line-height: 1.5;
}

.physics-content {
    padding: 40px;
}

.physics-text {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin-bottom: 25px;
}

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

/* INTERAKTYWNY SYMULATOR */
.simulator-wrap {
    background: var(--bg-light);
    border: 1px solid var(--border-color);
    border-radius: 16px;
    padding: 30px;
    margin: 30px 0;
}

.sim-title {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--accent);
    letter-spacing: 1px;
    margin-bottom: 20px;
    display: block;
    text-align: center;
}

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

.loop-control {
    background: #ffffff;
    padding: 20px;
    border-radius: 12px;
    border: 1px solid var(--border-color);
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.loop-label {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 15px;
}

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

input[type=range] {
    width: 100%; height: 6px; background: #e2e8f0; border-radius: 10px; appearance: none; outline: none; margin-bottom: 20px;
}
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;
}

.flow-bar-container {
    height: 24px;
    background: #e2e8f0;
    border-radius: 12px;
    overflow: hidden;
    position: relative;
}

.flow-bar {
    height: 100%;
    width: 50%;
    background: var(--success);
    transition: width 0.4s ease, background-color 0.4s ease;
}

.flow-text {
    position: absolute;
    width: 100%;
    text-align: center;
    top: 50%;
    transform: translateY(-50%);
    font-size: 11px;
    font-weight: 800;
    color: #ffffff;
    text-shadow: 0 1px 2px rgba(0,0,0,0.3);
}

#sim-warning {
    margin-top: 20px;
    padding: 15px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 700;
    text-align: center;
    background: #fef2f2;
    color: var(--danger);
    border: 1px solid #fecaca;
    display: none;
}

/* LINKI / CTA */
.physics-cta-box {
    margin-top: 30px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.physics-cta-text {
    font-size: 14px;
    font-weight: 600;
    color: #475569;
    margin-bottom: 5px;
}

.cta-link-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 24px;
    border-radius: 12px;
    text-decoration: none;
    font-weight: 700;
    font-size: 15px;
    transition: all 0.3s ease;
}

.cta-primary {
    background: var(--accent);
    color: #ffffff !important;
    box-shadow: 0 4px 15px rgba(37, 99, 235, 0.2);
}

.cta-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(37, 99, 235, 0.3);
}

.cta-secondary {
    background: var(--accent-light);
    color: var(--accent) !important;
    border: 1px solid #bfdbfe;
}

.cta-secondary:hover {
    background: #dbeafe;
}

@media (max-width: 768px) {
    .physics-header { padding: 25px 20px; }
    .physics-content { padding: 25px 20px; }
    .sim-grid { grid-template-columns: 1fr; gap: 15px; }
    .cta-link-btn { flex-direction: column; text-align: center; gap: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Symulacja oporów hydraulicznych i prawa Hagena-Poiseuille’a",
    "description": "Zależność między długością pętli grzewczych a oporem hydraulicznym i przepływem w systemach ogrzewania podłogowego.",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Długość pętli krytyczna",
        "value": "100",
        "unitCode": "MTR",
        "description": "Maksymalna długość pętli dla rury 16mm"
      },
      {
        "@type": "PropertyValue",
        "name": "Maksymalna dopuszczalna różnica długości pętli",
        "value": "15",
        "unitText": "%",
        "description": "Powyżej 15% różnicy woda omija dłuższą pętlę i nie da się jej zbilansować na rotametrach"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator przepływu: Prawo Hagena-Poiseuille’a w praktyce",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "description": "Interaktywne narzędzie inżynierskie demonstrujące wpływ różnicy długości pętli grzewczych na równowagę oporów hydraulicznych i przepływ wody.",
    "featureList": [
      "Wizualizacja prawa Hagena-Poiseuille’a",
      "Obliczanie stosunku przepływu na podstawie różnicy długości",
      "Wykrywanie przekroczenia krytycznej granicy zbilansowania (15%)"
    ]
  }
]
</script>

<div class="premium-physics-box" id="physics-app-lock">
    <div class="physics-header">
        <h3>Projekt instalacji – fundament, a nie fanaberia</h3>
        <p>Dlaczego metoda &#8222;na oko&#8221; i brak obliczeń to przepis na zimną podłogę?</p>
    </div>

    <div class="physics-content">
        <p class="physics-text">
            Zanim przejdziemy do konkretnych błędów montażowych, musimy postawić sprawę jasno: <strong>brak projektu hydraulicznego i cieplnego jest matką wszystkich tych wpadek.</strong> Wpisując w Google <em>jak samemu zrobić ogrzewanie podłogowe</em>, większość majsterkowiczów szuka schematu rozstawu rur („ślimak czy meander?”), całkowicie ignorując obliczenia oporów hydraulicznych i strat ciepła.
        </p>

        <div class="simulator-wrap">
            <span class="sim-title">Symulator przepływu: Prawo Hagena-Poiseuille’a w praktyce</span>
            <div class="sim-grid">
                <div class="loop-control">
                    <div class="loop-label"><span>Pętla A (np. Łazienka)</span><span class="loop-val"><span id="val-loop1">45</span> m</span></div>
                    <input type="range" id="loop1" min="20" max="150" value="45">
                    <div class="flow-bar-container">
                        <div id="bar-loop1" class="flow-bar"></div>
                        <span id="text-loop1" class="flow-text">Przepływ: Wysoki (Gorąca)</span>
                    </div>
                </div>
                <div class="loop-control">
                    <div class="loop-label"><span>Pętla B (np. Salon)</span><span class="loop-val"><span id="val-loop2">120</span> m</span></div>
                    <input type="range" id="loop2" min="20" max="150" value="120">
                    <div class="flow-bar-container">
                        <div id="bar-loop2" class="flow-bar" style="background:var(--danger)"></div>
                        <span id="text-loop2" class="flow-text">Przepływ: Niski (Zimna)</span>
                    </div>
                </div>
            </div>
            <div id="sim-warning">⚠️ Różnica oporów jest zbyt duża (>15%). Woda omija dłuższą pętlę. Tego układu nie da się zbilansować na rozdzielaczu!</div>
        </div>

        <p class="physics-text">
            Próba wykonania instalacji „na oko” prowadzi dokładnie do sytuacji z powyższego symulatora, w której <strong>jedna pętla ma 120 metrów, a druga 45 metrów.</strong> Zgodnie z prawami fizyki, woda przepływa tam, gdzie jest najmniejszy opór. W takim układzie krótsza pętla będzie gorąca, a długa – ledwo letnia. 
            <br><br>
            <strong>Nie da się tego skorygować zaworem na rozdzielaczu, jeśli różnica długości przekracza 10-15%.</strong> 
        </p>

        <div class="physics-cta-box">
            <div class="physics-cta-text">Chcesz uchronić się przed kosztownymi pomyłkami?</div>
            
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cta-link-btn cta-primary">
                <span>📐 Zleć profesjonalny projekt instalacji u specjalisty</span>
                <span>ZAMÓW PROJEKT →</span>
            </a>
            
            <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/" class="cta-link-btn cta-secondary">
                <span>📖 Dowiedz się, ile możesz stracić na błędach bez wyliczeń</span>
                <span>PRZECZYTAJ ARTYKUŁ →</span>
            </a>
        </div>
    </div>

    <noscript>
        <div style="padding: 20px 40px 30px 40px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h3 style="font-size: 16px; color: #0f172a; margin-bottom: 15px;">Parametry hydrauliczne pętli grzewczych (Prawo Hagena-Poiseuille’a)</h3>
            <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;">Długość pętli</th>
                        <th style="padding: 10px 0; color: #475569;">Zdolność przepływu w układzie mieszanym</th>
                        <th style="padding: 10px 0; color: #475569;">Ocena hydrauliczna</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">45 m (Krótka)</td>
                        <td style="padding: 10px 0;">Pętla o niskim oporze &#8211; przejmuje większość przepływu</td>
                        <td style="padding: 10px 0; color: #dc2626; font-weight: bold;">Gorąca (Przegrzewanie)</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">120 m (Długa)</td>
                        <td style="padding: 10px 0;">Pętla o wysokim oporze &#8211; woda ją omija</td>
                        <td style="padding: 10px 0; color: #2563eb; font-weight: bold;">Zimna (Niedogrzanie)</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">Różnica &gt; 15%</td>
                        <td style="padding: 10px 0;">Brak możliwości kompensacji ciśnienia na rotametrach</td>
                        <td style="padding: 10px 0; color: #dc2626; font-weight: bold;">Błąd projektowy (Nie do zbilansowania)</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA (Domain Lock)
    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('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; 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>';
        }
        return; 
    }

    // LOGIKA SYMULATORA
    var loop1 = document.getElementById('loop1');
    var loop2 = document.getElementById('loop2');
    var val1 = document.getElementById('val-loop1');
    var val2 = document.getElementById('val-loop2');
    var bar1 = document.getElementById('bar-loop1');
    var bar2 = document.getElementById('bar-loop2');
    var text1 = document.getElementById('text-loop1');
    var text2 = document.getElementById('text-loop2');
    var warning = document.getElementById('sim-warning');

    function calculateFlow() {
        var l1 = parseFloat(loop1.value);
        var l2 = parseFloat(loop2.value);
        
        val1.innerText = l1;
        val2.innerText = l2;

        // Odwrotna proporcjonalność: większa długość = mniejszy przepływ
        // Zakładamy stałe ciśnienie pompy, przepływ Q ~ 1/L
        var q1 = 1 / l1;
        var q2 = 1 / l2;
        var totalQ = q1 + q2;

        var perc1 = (q1 / totalQ) * 100;
        var perc2 = (q2 / totalQ) * 100;

        bar1.style.width = perc1 + '%';
        bar2.style.width = perc2 + '%';

        // Kolorowanie pętli w zależności od udziału w przepływie
        updateBarColor(bar1, text1, perc1);
        updateBarColor(bar2, text2, perc2);

        // Obliczanie różnicy w długości pętli
        var maxL = Math.max(l1, l2);
        var diff = Math.abs(l1 - l2);
        var diffPerc = (diff / maxL) * 100;

        if (diffPerc > 15 || l1 > 100 || l2 > 100) {
            warning.style.display = 'block';
            if (l1 > 100 || l2 > 100) {
                warning.innerHTML = '⚠️ <strong>Jedna z pętli przekracza 100 m!</strong> Opór jest tak duży, że dławienie zaworów nie pomoże. Pętla nie dogrzeje pomieszczenia.';
            } else {
                warning.innerHTML = '⚠️ <strong>Różnica długości wynosi ok. ' + Math.round(diffPerc) + '%!</strong> Woda wybiera najmniejszy opór. Układu nie da się zbilansować na rotametrach.';
            }
        } else {
            warning.style.display = 'none';
        }
    }

    function updateBarColor(bar, textEl, perc) {
        if (perc > 60) {
            bar.style.backgroundColor = '#dc2626'; // Red
            textEl.innerText = 'Gorąca (Główny obieg)';
        } else if (perc >= 40 && perc <= 60) {
            bar.style.backgroundColor = '#16a34a'; // Green
            textEl.innerText = 'Zbilansowana';
        } else {
            bar.style.backgroundColor = '#3b82f6'; // Blue
            textEl.innerText = 'Zimna (Brak przepływu)';
        }
    }

    loop1.addEventListener('input', calculateFlow);
    loop2.addEventListener('input', calculateFlow);

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



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

.premium-error-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.error-header {
    background: #fef2f2;
    border-bottom: 1px solid #fecaca;
    padding: 35px 40px;
    position: relative;
    overflow: hidden;
}

.error-header::after {
    content: '💦';
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 90px;
    opacity: 0.1;
}

.error-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fee2e2;
    color: var(--danger);
    padding: 6px 14px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.error-header h3 {
    margin: 0 0 10px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--danger);
}

.error-content {
    padding: 40px;
}

.error-text {
    font-size: 16px;
    line-height: 1.7;
    color: #334155;
    margin-bottom: 20px;
}

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

/* INTERAKTYWNY SYMULATOR */
.simulator-wrap {
    background: var(--bg-light);
    border: 1px solid var(--border-color);
    border-radius: 16px;
    padding: 30px;
    margin: 35px 0;
}

.sim-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--primary);
    letter-spacing: 1px;
    margin-bottom: 25px;
    display: block;
    text-align: center;
}

.sim-controls {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 25px;
}

.gauge-display {
    font-size: 42px;
    font-weight: 900;
    color: var(--accent);
    margin-bottom: 10px;
    line-height: 1;
}

.gauge-label {
    font-size: 14px;
    color: #64748b;
    font-weight: 700;
    margin-bottom: 15px;
}

input[type=range] {
    width: 100%; max-width: 400px; height: 8px; background: #e2e8f0; border-radius: 10px; appearance: none; outline: none; margin-bottom: 20px;
}
input[type=range]::-webkit-slider-thumb {
    appearance: none; width: 28px; height: 28px; background: var(--accent); border-radius: 50%; border: 4px solid white; box-shadow: 0 2px 8px rgba(0,0,0,0.2); cursor: pointer;
}

.sim-actions {
    display: flex;
    gap: 15px;
    justify-content: center;
    flex-wrap: wrap;
}

.sim-btn {
    padding: 12px 20px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    border: none;
    transition: 0.3s;
}

.btn-concrete { background: #94a3b8; color: white; box-shadow: 0 4px 10px rgba(148, 163, 184, 0.3); }
.btn-concrete:hover { background: #64748b; }
.btn-strike { background: #fbbf24; color: #78350f; box-shadow: 0 4px 10px rgba(251, 191, 36, 0.3); }
.btn-strike:hover { background: #f59e0b; }

#sim-result {
    margin-top: 25px;
    padding: 20px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 700;
    text-align: center;
    display: none;
    line-height: 1.5;
}

.result-danger { background: #fef2f2; color: var(--danger); border: 2px solid #fecaca; }
.result-success { background: #f0fdf4; color: var(--success); border: 2px solid #bbf7d0; }
.result-warning { background: #fffbeb; color: #b45309; border: 2px solid #fde68a; }

/* SEKCJE TEKSTOWE */
.golden-standard {
    background: #f0fdf4;
    border-left: 6px solid var(--success);
    padding: 25px;
    border-radius: 0 16px 16px 0;
    margin: 30px 0;
}

.golden-standard h4 { margin: 0 0 15px 0; color: #166534; font-size: 18px; font-weight: 800;}
.golden-standard ul { margin: 0; padding-left: 20px; color: #15803d; line-height: 1.7; }
.golden-standard li { margin-bottom: 10px; }
.golden-standard strong { color: #14532d; }

.life-example {
    background: #fff7ed;
    border: 1px solid #ffedd5;
    padding: 25px;
    border-radius: 16px;
    margin-top: 30px;
}

.life-example h4 { margin: 0 0 10px 0; color: var(--warning); font-size: 16px; font-weight: 800;}

@media (max-width: 768px) {
    .error-header { padding: 25px 20px; }
    .error-content { padding: 25px 20px; }
    .sim-actions { flex-direction: column; width: 100%; }
    .sim-btn { width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Standardy próby szczelności instalacji ogrzewania podłogowego",
    "description": "Wymagania techniczne i fizyczne konsekwencje nieprawidłowo przeprowadzonej próby ciśnieniowej przed zalaniem wylewką.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Wymagane ciśnienie próbne",
        "value": "0.6",
        "unitCode": "BAR",
        "description": "Minimum 6 barów w celu zapobiegania mikrorozszczelnieniom złączek pod masą betonu"
      },
      {
        "@type": "PropertyValue",
        "name": "Minimalny czas trwania testu",
        "value": "24",
        "unitText": "godziny"
      },
      {
        "@type": "PropertyValue",
        "name": "Masa jastrychu grzewczego na rurach",
        "value": "200-250",
        "unitText": "kg/m2",
        "description": "Siła wywierana na rury PEX wymagająca sztywności uzyskanej ciśnieniem > 5 bar"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator naprężeń: Sprawdź zachowanie rury",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "description": "Interaktywny symulator demonstrujący wpływ ciśnienia próbnego na zachowanie rur ogrzewania podłogowego podczas prac betoniarskich, takich jak wibrowanie wylewki oraz uderzenia mechaniczne.",
    "featureList": [
      "Wizualizacja wpływu wibratora do betonu na szczelność",
      "Symulacja spadku ciśnienia na manometrze przy uszkodzeniu mechanicznym",
      "Określanie bezpiecznych (>= 6 bar) i niebezpiecznych poziomów ciśnienia"
    ]
  }
]
</script>

<div class="premium-error-box" id="pressure-app-lock">
    <div class="error-header">
        <div class="error-badge">Błąd #1</div>
        <h3>Brak lub źle przeprowadzona próba szczelności</h3>
        <p style="margin:0; font-size:15px; color:#991b1b; font-weight:600;">Czyli przeciek ukryty w tonach betonu.</p>
    </div>

    <div class="error-content">
        <p class="error-text">
            <strong>Dlaczego standardowe "sprawdzenie na 2 bary" to za mało?</strong><br>
            To absolutnie najpoważniejszy błąd przy samodzielnym wykonaniu podłogówki. W domowych warunkach najczęściej robi się tak: podłącza się wąż ogrodowy do rozdzielacza, puszcza wodę z sieci (ok. 3-4 bary), widzi się, że z drugiego końca leci woda, zakręca zawór i uznaje instalację za szczelną.
        </p>
        <p class="error-text">
            <strong>Konsekwencja techniczna:</strong><br>
            Podczas zalewania wylewki na rury działa masa betonu (około 200-250 kg/m² przy grubości 6-8 cm). Ponadto ekipy betoniarskie używają wibratorów wgłębnych lub listew wibracyjnych. Drgania o wysokiej częstotliwości potrafią poluzować nawet prawidłowo zaciśnięte złączki zaciskowe. Jeśli w rurze panowało niskie ciśnienie statyczne, a złączka była "na styk", pod wpływem wibracji i ciężaru betonu dojdzie do mikrorozszczelnienia. Woda zacznie migrować w beton, a Ty zobaczysz to dopiero po 3 miesiącach, gdy na suficie piętra niżej pojawi się mokra plama.
        </p>

        <div class="simulator-wrap">
            <span class="sim-title">Symulator naprężeń: Sprawdź zachowanie rury</span>
            
            <div class="sim-controls">
                <div class="gauge-display"><span id="pressure-val">2.0</span> BAR</div>
                <span class="gauge-label">Ustaw ciśnienie w układzie (0 - 8 bar)</span>
                <input type="range" id="pressure-slider" min="0" max="8" step="0.5" value="2.0">
            </div>

            <div class="sim-actions">
                <button id="btn-pour" class="sim-btn btn-concrete">1. Wylej beton i włącz wibrator</button>
                <button id="btn-strike" class="sim-btn btn-strike">2. Symuluj uderzenie łopatą</button>
            </div>

            <div id="sim-result"></div>
        </div>

        <div class="golden-standard">
            <h4>Złoty standard próby szczelności (jak to zrobić dobrze):</h4>
            <ul>
                <li><strong>Ciśnienie próbne:</strong> Minimum 0,6 MPa (6 barów). Woda w instalacji CO rzadko przekracza 2 bary, ale próba ma symulować ekstremalne naprężenia mechaniczne.</li>
                <li><strong>Czas trwania:</strong> Minimum 24 godziny.</li>
                <li><strong>W trakcie wylewania betonu:</strong> Rury muszą być pod ciśnieniem! To kluczowa zasada pomijana przez 90% samouków.</li>
            </ul>
        </div>

        <p class="error-text">
            Dzięki utrzymaniu ciśnienia rura jest sztywna (naprężona). Jeśli ekipa od wylewek nadepnie na nią kaloszem lub uderzy łopatą, manometr na rozdzielaczu natychmiast spadnie. Wtedy możesz przerwać wylewanie, odkopać uszkodzone miejsce i naprawić złączką. Szczegółową instrukcję przeprowadzania tego kluczowego testu znajdziesz w naszym dedykowanym artykule: <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/" style="color:var(--accent); font-weight:700; text-decoration:none;">próba szczelności ogrzewania podłogowego – jak zrobić to prawidłowo?</a>.
        </p>

        <div class="life-example">
            <h4>👷‍♂️ Przykład z życia:</h4>
            <p style="margin:0; font-size:14px; color:#78350f; line-height:1.6;">
                Pan Adam z Wrocławia oszczędził na kompresorze. Zrobił próbę na 2 bary z wodociągu. Po wylaniu 10 cm betonu okazało się, że w jednej pętli nie ma przepływu. Po 3 latach płytki w przedpokoju zaczęły "pływać" – okazało się, że przy rozdzielaczu ekipa wylała beton bezpośrednio na złączkę, wyginając ją i powodując pęknięcie zmęczeniowe mosiądzu. <strong>Koszt naprawy: skucie 4 m² posadzki, wymiana złączki, nowa wylewka i nowe płytki (łącznie ok. 3500 zł).</strong>
            </p>
        </div>
    </div>
    
    <noscript>
        <div style="padding: 20px 40px 30px 40px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h3 style="font-size: 16px; color: #0f172a; margin-bottom: 15px;">Skutki ciśnienia w rurach ogrzewania podłogowego podczas prac betoniarskich</h3>
            <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;">Wartość ciśnienia próbnego</th>
                        <th style="padding: 10px 0; color: #475569;">Zachowanie rury pod wpływem wibratora do betonu</th>
                        <th style="padding: 10px 0; color: #475569;">Reakcja na uszkodzenie mechaniczne (np. łopatą)</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">&lt; 5 bar (Zbyt niskie)</td>
                        <td style="padding: 10px 0;">Poluzowanie złączek, wyciek pod wylewką</td>
                        <td style="padding: 10px 0; color: #dc2626;">Brak widocznego spadku na manometrze</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">&ge; 6 bar (Zalecane)</td>
                        <td style="padding: 10px 0;">Rura sztywna, złączki zablokowane</td>
                        <td style="padding: 10px 0; color: #16a34a; font-weight: bold;">Natychmiastowy spadek ciśnienia = szybka naprawa</td>
                    </tr>
                </tbody>
            </table>
        </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('pressure-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>';
        }
        return; 
    }

    // LOGIKA SYMULATORA
    var slider = document.getElementById('pressure-slider');
    var valDisplay = document.getElementById('pressure-val');
    var btnPour = document.getElementById('btn-pour');
    var btnStrike = document.getElementById('btn-strike');
    var resultBox = document.getElementById('sim-result');

    slider.addEventListener('input', function() {
        valDisplay.innerText = parseFloat(slider.value).toFixed(1);
        resultBox.style.display = 'none'; // reset wyników przy zmianie
    });

    btnPour.addEventListener('click', function() {
        var pressure = parseFloat(slider.value);
        resultBox.style.display = 'block';
        resultBox.className = ''; 
        
        if (pressure < 5.0) {
            resultBox.classList.add('result-danger');
            resultBox.innerHTML = '❌ <strong>KATASTROFA!</strong> Ciśnienie jest zbyt niskie. Rura jest wiotka. Wibrator poluzował złączki, a ciężar betonu wywołał mikrorozszczelnienie. Woda ucieka w wylewkę!';
        } else {
            resultBox.classList.add('result-success');
            resultBox.innerHTML = '✅ <strong>BEZPIECZNIE!</strong> Rura pod ciśnieniem ' + pressure.toFixed(1) + ' bar jest sztywna jak kamień. Złączki są napięte i zablokowane. Wibracje betonu nie robią na niej żadnego wrażenia.';
        }
    });

    btnStrike.addEventListener('click', function() {
        var pressure = parseFloat(slider.value);
        resultBox.style.display = 'block';
        resultBox.className = ''; 

        if (pressure < 3.0) {
            resultBox.classList.add('result-warning');
            resultBox.innerHTML = '⚠️ <strong>BRAK REAKCJI MANOMETRU!</strong> Rura została uszkodzona łopatą, ale ciśnienie było tak niskie, że wskaźnik ledwo drgnął. Ekipa nie zauważyła problemu i zalała dziurawą rurę betonem.';
        } else {
            // Animacja spadku ciśnienia
            slider.value = 0;
            valDisplay.innerText = "0.0";
            resultBox.classList.add('result-success');
            resultBox.innerHTML = '🚨 <strong>ALARM! WZORCOWA REAKCJA!</strong> Uszkodzenie łopatą natychmiast wyrzuciło wodę z naprężonej rury. Manometr spadł do ZERA w sekundę. Zatrzymujesz wylewanie i naprawiasz uszkodzenie!';
        }
    });
});
</script>



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

.premium-error-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.error-header {
    background: #fef2f2;
    border-bottom: 1px solid #fecaca;
    padding: 35px 40px;
    position: relative;
    overflow: hidden;
}

.error-header::after {
    content: '💥';
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 90px;
    opacity: 0.1;
}

.error-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fee2e2;
    color: var(--danger);
    padding: 6px 14px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.error-header h3 {
    margin: 0 0 10px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--danger);
}

.error-content {
    padding: 40px;
}

.error-text {
    font-size: 16px;
    line-height: 1.7;
    color: #334155;
    margin-bottom: 20px;
}

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

/* INTERAKTYWNY SYMULATOR */
.simulator-wrap {
    background: var(--bg-light);
    border: 1px solid var(--border-color);
    border-radius: 16px;
    padding: 30px;
    margin: 35px 0;
}

.sim-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--primary);
    letter-spacing: 1px;
    margin-bottom: 25px;
    display: block;
    text-align: center;
}

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

.sim-control-group {
    background: #ffffff;
    padding: 20px;
    border-radius: 12px;
    border: 1px solid var(--border-color);
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.sim-label-row {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 15px;
}

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

input[type=range] {
    width: 100%; height: 8px; background: #e2e8f0; border-radius: 10px; appearance: none; outline: none; margin-bottom: 10px;
}
input[type=range]::-webkit-slider-thumb {
    appearance: none; width: 24px; height: 24px; background: var(--accent); border-radius: 50%; border: 3px solid white; box-shadow: 0 2px 5px rgba(0,0,0,0.2); cursor: pointer;
}

.sim-result-box {
    text-align: center;
    margin-top: 30px;
    padding: 25px;
    background: #ffffff;
    border-radius: 12px;
    border: 2px dashed #cbd5e1;
}

.sim-result-value {
    font-size: 36px;
    font-weight: 900;
    color: var(--danger);
    line-height: 1;
    margin-bottom: 10px;
    display: block;
}

#sim-warning {
    margin-top: 15px;
    padding: 12px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    text-align: center;
    background: #fef2f2;
    color: var(--danger);
    display: none;
}

/* LISTA DYLATACJI */
.rules-list {
    background: #eff6ff;
    border-left: 6px solid var(--accent);
    padding: 25px;
    border-radius: 0 16px 16px 0;
    margin: 30px 0;
}

.rules-list h4 { margin: 0 0 15px 0; color: #1e3a8a; font-size: 18px; font-weight: 800;}
.rules-list ul { margin: 0; padding-left: 20px; color: #1e40af; line-height: 1.7; }
.rules-list li { margin-bottom: 12px; }
.rules-list li strong { color: #1e3a8a; }

/* ZAMIAN TABELI NA KARTY */
.param-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-top: 30px;
}

.param-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    padding: 20px;
    border-radius: 16px;
    text-align: center;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
}

.param-icon { font-size: 28px; margin-bottom: 10px; display: block; }
.param-title { font-size: 13px; font-weight: 800; color: var(--primary); text-transform: uppercase; margin-bottom: 10px; }
.param-value { font-size: 14px; font-weight: 700; color: var(--accent); margin-bottom: 10px; display: block;}
.param-danger { font-size: 12px; color: var(--danger); font-weight: 600; background: #fef2f2; padding: 6px; border-radius: 8px; }

@media (max-width: 768px) {
    .error-header { padding: 25px 20px; }
    .error-content { padding: 25px 20px; }
    .sim-grid { grid-template-columns: 1fr; gap: 15px; }
    .param-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Dataset",
  "name": "Parametry rozszerzalności termicznej jastrychu i zasady dylatacji",
  "description": "Dane techniczne dotyczące pracy betonu w instalacjach ogrzewania podłogowego oraz normatywne wymagania dla szczelin dylatacyjnych.",
  "license": "https://projekt-ogrzewania.pl/",
  "variableMeasured": [
    {
      "@type": "PropertyValue",
      "name": "Współczynnik rozszerzalności termicznej betonu",
      "value": "0.012",
      "unitText": "mm/(m·K)"
    },
    {
      "@type": "PropertyValue",
      "name": "Maksymalna powierzchnia pola bez dylatacji",
      "value": "40",
      "unitText": "m2"
    },
    {
      "@type": "PropertyValue",
      "name": "Maksymalna długość boku pola bez dylatacji",
      "value": "8",
      "unitCode": "MTR"
    },
    {
      "@type": "PropertyValue",
      "name": "Minimalna długość osłony peszel na dylatacji",
      "value": "30",
      "unitCode": "CMT"
    }
  ],
  "creator": {
    "@type": "Person",
    "name": "Robert Kucharski"
  }
}
</script>

<div class="premium-error-box" id="expansion-app-lock">
    <div class="error-header">
        <div class="error-badge">Błąd #2</div>
        <h3>Zignorowanie dylatacji i pracy betonu</h3>
        <p style="margin:0; font-size:15px; color:#991b1b; font-weight:600;">Czyli dlaczego piękna podłoga pęka z hukiem.</p>
    </div>

    <div class="error-content">
        <p class="error-text">
            <strong>Dlaczego podłoga pęka mimo pięknie ułożonych płytek?</strong><br>
            Beton (zarówno cementowy, jak i anhydrytowy) pod wpływem zmian temperatury pracuje objętościowo. Współczynnik rozszerzalności termicznej betonu wynosi około <strong>0,012 mm/(m·K)</strong>. 
        </p>

        <div class="simulator-wrap">
            <span class="sim-title">Symulator rozszerzalności wylewki</span>
            <div class="sim-grid">
                <div class="sim-control-group">
                    <div class="sim-label-row"><span>Długość pomieszczenia (L)</span><span class="sim-val"><span id="val-length">10</span> m</span></div>
                    <input type="range" id="slider-length" min="2" max="20" step="1" value="10">
                </div>
                <div class="sim-control-group">
                    <div class="sim-label-row"><span>Różnica temperatur (ΔT)</span><span class="sim-val"><span id="val-temp">20</span> °C</span></div>
                    <input type="range" id="slider-temp" min="10" max="40" step="1" value="20">
                    <div style="font-size:11px; color:#94a3b8; margin-top:5px;">Różnica: stan zimny vs zasilanie grzewcze</div>
                </div>
            </div>

            <div class="sim-result-box">
                <span style="font-size:13px; font-weight:800; color:#64748b; text-transform:uppercase;">Wylewka wydłuży się o:</span>
                <span class="sim-result-value"><span id="result-expansion">2.4</span> mm</span>
                <p style="margin:0; font-size:14px; color:#334155; max-width: 600px; margin: 0 auto;">
                    Te milimetry to ogromna siła. Beton nie ściśnie się sam z siebie. Jeśli napotka opór (ścianę) bez dylatacji, energia rozładuje się w najsłabszym punkcie – powodując pęknięcie na środku salonu i przecinając płytki gresowe jak żyletka.
                </p>
                <div id="sim-warning">⚠️ Długość boku przekracza 8 metrów! Wymagane jest zastosowanie dylatacji pośredniej (przecięcie wylewki), w przeciwnym razie posadzka pęknie samoistnie.</div>
            </div>
        </div>

        <div style="position: absolute; left: -9999px; height: 1px; width: 1px; overflow: hidden;" aria-hidden="true">
            <table>
                <caption>Specyfikacja techniczna dylatacji i pracy betonu</caption>
                <thead>
                    <tr>
                        <th>Parametr fizyczny</th>
                        <th>Wartość normatywna</th>
                        <th>Skutek zignorowania</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>Współczynnik rozszerzalności</td>
                        <td>0,012 mm/(m·K)</td>
                        <td>Praca objętościowa jastrychu (wydłużanie)</td>
                    </tr>
                    <tr>
                        <td>Maksymalna długość boku</td>
                        <td>8 metrów bieżących</td>
                        <td>Pęknięcia skurczowe wylewki</td>
                    </tr>
                    <tr>
                        <td>Maksymalna powierzchnia pola</td>
                        <td>40 m²</td>
                        <td>Pękanie płytek gresowych</td>
                    </tr>
                    <tr>
                        <td>Osłona rur (Peszel) na dylatacji</td>
                        <td>Min. 30 cm</td>
                        <td>Przecięcie rury przez pracujący beton</td>
                    </tr>
                </tbody>
            </table>
        </div>

        <div class="rules-list">
            <h4>Gdzie bezwzględnie stosować dylatacje?</h4>
            <ul>
                <li><strong>Progi drzwiowe</strong> – każdy otwór drzwiowy musi mieć szczelinę w wylewce.</li>
                <li><strong>Pomieszczenia w kształcie litery L</strong> – narożniki wewnętrzne to miejsca największej koncentracji naprężeń.</li>
                <li><strong>Duże pola grzejne (> 40 m²)</strong> – w przestronnym salonie należy podzielić podłogę na mniejsze sekcje (zazwyczaj co 8 metrów bieżących).</li>
                <li><strong>Przejście rur przez dylatację (Pułapka!)</strong> – rura PEX przechodząca przez szczelinę dylatacyjną musi być osłonięta peszlem (rurą karbowaną) na długości min. 30 cm od osi szczeliny. Gołą rurę pracujący beton przetnie jak nożyce.</li>
            </ul>
        </div>

        <p class="error-text">
            Kompendium wiedzy na ten temat znajdziesz w artykule: <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" style="color:var(--accent); font-weight:700; text-decoration:none;">izolacja brzegowa i dylatacje w instalacji ogrzewania podłogowego</a>.
        </p>

        <h4 style="text-align:center; font-size: 18px; margin-top: 40px; margin-bottom: 0;">Parametry Techniczne i Konsekwencje</h4>
        <div class="param-grid">
            <div class="param-card">
                <span class="param-icon">📏</span>
                <div class="param-title">Max powierzchnia pola</div>
                <span class="param-value">40 m² (lub 8 m boku)</span>
                <div class="param-danger">Brak: Pęknięcia skurczowe w wylewce</div>
            </div>
            <div class="param-card">
                <span class="param-icon">🎗️</span>
                <div class="param-title">Taśma brzegowa</div>
                <span class="param-value">Min. 8 mm grubości</span>
                <div class="param-danger">Brak: Napór na ściany (pękające tynki)</div>
            </div>
            <div class="param-card">
                <span class="param-icon">🛡️</span>
                <div class="param-title">Peszel na dylatacji</div>
                <span class="param-value">Odcinek min. 30 cm</span>
                <div class="param-danger">Brak: Przecięcie rury grzewczej</div>
            </div>
        </div>

    </div>
</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('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; 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>';
        }
        return; 
    }

    // LOGIKA SYMULATORA
    var sliderLength = document.getElementById('slider-length');
    var sliderTemp = document.getElementById('slider-temp');
    var valLength = document.getElementById('val-length');
    var valTemp = document.getElementById('val-temp');
    var resultExpansion = document.getElementById('result-expansion');
    var warning = document.getElementById('sim-warning');

    var alpha = 0.012; // Współczynnik dla betonu

    function updateExpansion() {
        var length = parseFloat(sliderLength.value);
        var tempDiff = parseFloat(sliderTemp.value);

        valLength.innerText = length;
        valTemp.innerText = tempDiff;

        // Wyliczenie ze wzoru: ΔL = α × L × ΔT
        var deltaL = alpha * length * tempDiff;
        resultExpansion.innerText = deltaL.toFixed(1);

        // Ostrzeżenie o dylatacji pośredniej
        if (length > 8) {
            warning.style.display = 'block';
        } else {
            warning.style.display = 'none';
        }
    }

    sliderLength.addEventListener('input', updateExpansion);
    sliderTemp.addEventListener('input', updateExpansion);

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



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --accent-light: #eff6ff;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
    
    /* Zmienne do symulatora zebry */
    --pipe-color: #ef4444;
    --cold-color: #3b82f6;
    --warm-color: #fca5a5;
}

.premium-error-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.error-header {
    background: #fef2f2;
    border-bottom: 1px solid #fecaca;
    padding: 35px 40px;
    position: relative;
    overflow: hidden;
}

.error-header::after {
    content: '🦓';
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 90px;
    opacity: 0.1;
}

.error-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fee2e2;
    color: var(--danger);
    padding: 6px 14px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.error-header h3 {
    margin: 0 0 10px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--danger);
}

.error-content {
    padding: 40px;
}

.error-text {
    font-size: 16px;
    line-height: 1.7;
    color: #334155;
    margin-bottom: 20px;
}

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

/* INTERAKTYWNY SYMULATOR ZEBRA */
.simulator-wrap {
    background: var(--bg-light);
    border: 1px solid var(--border-color);
    border-radius: 16px;
    padding: 30px;
    margin: 35px 0;
}

.sim-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--primary);
    letter-spacing: 1px;
    margin-bottom: 25px;
    display: block;
    text-align: center;
}

.sim-controls-zebra {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 30px;
    background: #fff;
    padding: 20px;
    border-radius: 12px;
    border: 1px solid var(--border-color);
}

.zebra-val-display {
    font-size: 32px;
    font-weight: 900;
    color: var(--accent);
    margin-bottom: 5px;
}

.zebra-slider-wrap {
    width: 100%;
    max-width: 500px;
    margin-top: 15px;
}

input[type=range].zebra-slider {
    width: 100%; height: 8px; background: #e2e8f0; border-radius: 10px; appearance: none; outline: none; margin-bottom: 10px;
}
input[type=range].zebra-slider::-webkit-slider-thumb {
    appearance: none; width: 28px; height: 28px; background: var(--accent); border-radius: 50%; border: 4px solid white; box-shadow: 0 2px 8px rgba(0,0,0,0.2); cursor: pointer;
}

.zebra-visualizer {
    width: 100%;
    height: 120px;
    border-radius: 12px;
    border: 2px solid #cbd5e1;
    margin-bottom: 25px;
    position: relative;
    overflow: hidden;
    transition: background 0.4s ease;
}

.zebra-overlay-text {
    position: absolute;
    top: 10px;
    left: 15px;
    background: rgba(255,255,255,0.9);
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 800;
    color: var(--primary);
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

/* KARTY WYNIKÓW (ZAMIAST TABELI) */
.zebra-stats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.zebra-stat-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    padding: 20px;
    border-radius: 12px;
    text-align: center;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
}

.stat-icon { font-size: 24px; margin-bottom: 8px; display: block; }
.stat-label { font-size: 11px; color: #64748b; text-transform: uppercase; font-weight: 800; margin-bottom: 8px; display: block; }
.stat-value { font-size: 15px; font-weight: 800; color: var(--primary); }
.stat-cop-high { color: var(--success); }
.stat-cop-low { color: var(--danger); }

/* SEKCJA REKOMENDACJI */
.recommendation-box {
    background: #eff6ff;
    border-left: 6px solid var(--accent);
    padding: 25px;
    border-radius: 0 16px 16px 0;
    margin: 30px 0;
}

.recommendation-box h4 { margin: 0 0 15px 0; color: #1e3a8a; font-size: 18px; font-weight: 800;}
.rec-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}
.rec-item {
    display: flex;
    justify-content: space-between;
    background: #ffffff;
    padding: 12px 15px;
    border-radius: 8px;
    border: 1px solid #bfdbfe;
    align-items: center;
}
.rec-item span { font-size: 14px; font-weight: 600; color: #334155; }
.rec-item strong { font-size: 15px; color: var(--accent); font-weight: 900; background: #dbeafe; padding: 4px 10px; border-radius: 6px; }

@media (max-width: 768px) {
    .error-header { padding: 25px 20px; }
    .error-content { padding: 25px 20px; }
    .zebra-stats-grid { grid-template-columns: 1fr; gap: 10px; }
    .rec-item { flex-direction: column; text-align: center; gap: 8px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Wpływ rozstawu rur na moc i sprawność ogrzewania podłogowego",
    "description": "Zależność między odległością rur grzewczych PEX a emitowaną mocą, komfortem cieplnym i sprawnością pompy ciepła (COP).",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Moc grzewcza przy rozstawie 10 cm",
        "value": "85",
        "unitText": "W/m2"
      },
      {
        "@type": "PropertyValue",
        "name": "Moc grzewcza przy rozstawie 15 cm",
        "value": "65",
        "unitText": "W/m2"
      },
      {
        "@type": "PropertyValue",
        "name": "Moc grzewcza przy rozstawie 25 cm",
        "value": "35",
        "unitText": "W/m2",
        "description": "Zauważalny efekt zebry termicznej (różnica temp. > 5K)"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator Efektu Zebry Termicznej",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Interaktywny symulator wizualizujący rozkład temperatur na powierzchni podłogi w zależności od rozstawu rur PEX oraz wpływ tych parametrów na współczynnik COP pompy ciepła.",
    "featureList": [
      "Wizualizacja kamery termowizyjnej dla różnych rozstawów",
      "Kalkulacja spadku mocy grzewczej",
      "Analiza komfortu 'odczucia stopy'"
    ]
  }
]
</script>

<div class="premium-error-box" id="zebra-app-lock">
    <div class="error-header">
        <div class="error-badge">Błąd #3</div>
        <h3>Nierównomierny rozstaw rur</h3>
        <p style="margin:0; font-size:15px; color:#991b1b; font-weight:600;">Oszczędność 100 metrów rury, która kosztuje komfort przez 30 lat.</p>
    </div>

    <div class="error-content">
        <p class="error-text">
            To błąd wynikający z chęci zaoszczędzenia na materiale przy układaniu ogrzewania samodzielnie. Inwestor myśli: <em>"Skoro standard to 15 cm, to ja dam co 25 cm, przecież i tak będzie ciepło"</em>. Fizyka jest tu bezlitosna.
        </p>

        <div class="simulator-wrap">
            <span class="sim-title">Symulator Efektu Zebry Termicznej</span>
            
            <div class="sim-controls-zebra">
                <span style="font-size:12px; font-weight:700; color:#64748b; text-transform:uppercase;">Wybrany rozstaw rur:</span>
                <div class="zebra-val-display"><span id="z-spacing">15</span> cm</div>
                <div class="zebra-slider-wrap">
                    <input type="range" class="zebra-slider" id="zebra-slider" min="10" max="30" step="5" value="15">
                    <div style="display:flex; justify-content:space-between; font-size:11px; font-weight:700; color:#94a3b8;">
                        <span>10 cm</span><span>15 cm</span><span>20 cm</span><span>25 cm</span><span>30 cm</span>
                    </div>
                </div>
            </div>

            <div class="zebra-visualizer" id="z-visualizer">
                <div class="zebra-overlay-text">Kamera termowizyjna (widok z góry)</div>
            </div>

            <div class="zebra-stats-grid">
                <div class="zebra-stat-card">
                    <span class="stat-icon">🔥</span>
                    <span class="stat-label">Moc Grzewcza</span>
                    <span class="stat-value" id="z-power">~65 W/m²</span>
                </div>
                <div class="zebra-stat-card">
                    <span class="stat-icon">👣</span>
                    <span class="stat-label">Odczucie stopy</span>
                    <span class="stat-value" id="z-feel">Ciepła, komfortowa</span>
                </div>
                <div class="zebra-stat-card">
                    <span class="stat-icon">⚙️</span>
                    <span class="stat-label">Sprawność (COP)</span>
                    <span class="stat-value stat-cop-high" id="z-cop">Optymalna</span>
                </div>
            </div>
            
            <div id="z-warning" style="margin-top: 15px; padding: 12px; border-radius: 8px; font-size: 13px; font-weight: 700; text-align: center; background: #fef2f2; color: var(--danger); display: none;">
                ⚠️ <strong>Uwaga!</strong> Aby ogrzać pokój przy tak rzadkim rozstawie, musisz drastycznie podnieść temperaturę zasilania kotła. Rachunki za prąd/gaz znacząco wzrosną!
            </div>
        </div>

        <p class="error-text">
            <strong>Przykład techniczny:</strong><br>
            Załóżmy, że rura PEX 16x2,0 mm ułożona jest w jastrychu o grubości 6,5 cm nad rurą. Przy rozstawie <strong>co 15 cm</strong>, temperatura powierzchni podłogi będzie niemal jednolita (różnica między punktem nad rurą a między rurami wynosi ok. 1,5-2°C – nieodczuwalna dla stopy).
            <br><br>
            Przy rozstawie <strong>co 25-30 cm</strong>, różnica temperatur na powierzchni płytek wzrasta do 5-7°C. To jest właśnie <strong>"zebra termiczna"</strong>. Człowiek wyraźnie czuje stopą naprzemienne pasy ciepła i chłodu. Im rzadszy rozstaw, tym bardziej stromo spada krzywa mocy (nawet o 45%!).
        </p>

        <div class="recommendation-box">
            <h4>Zalecane rozstawy rur:</h4>
            <div class="rec-grid">
                <div class="rec-item">
                    <span>Strefa mieszkalna (środek pokoju)</span>
                    <strong>15 cm</strong>
                </div>
                <div class="rec-item">
                    <span>Strefa brzegowa (okna, ściany zew.)</span>
                    <strong>10 cm</strong>
                </div>
                <div class="rec-item">
                    <span>Łazienka (ciepła posadzka)</span>
                    <strong>10 cm</strong>
                </div>
            </div>
        </div>

        <p class="error-text">
            Wybór odpowiedniego rozstawu to decyzja, która wpłynie na rachunki za ogrzewanie przez kolejne dekady. Szczegółową analizę tego zagadnienia przedstawiamy w tekście: <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/" style="color:var(--accent); font-weight:700; text-decoration:none;">rozstaw rur ogrzewania podłogowego przy pompie ciepła – co 10 czy 15 cm?</a>
        </p>

    </div>

    <noscript>
        <div style="padding: 20px 40px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h3 style="font-size: 16px; color: #0f172a; margin-bottom: 15px;">Zależność mocy i komfortu od rozstawu rur grzewczych</h3>
            <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;">Rozstaw rur</th>
                        <th style="padding: 10px 0; color: #475569;">Szacowana moc (przy zasilaniu 35°C)</th>
                        <th style="padding: 10px 0; color: #475569;">Komfort i odczucie stopy</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">10 cm</td>
                        <td style="padding: 10px 0;">~85 W/m²</td>
                        <td style="padding: 10px 0;">Równomierne ciepło (Idealne pod pompę ciepła)</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">15 cm</td>
                        <td style="padding: 10px 0;">~65 W/m²</td>
                        <td style="padding: 10px 0;">Komfortowe, optymalne rozwiązanie</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">25 cm</td>
                        <td style="padding: 10px 0;">~35 W/m²</td>
                        <td style="padding: 10px 0;">Zebra termiczna (wyczuwalne zimne pasy podłogi)</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">30 cm</td>
                        <td style="padding: 10px 0;">~25 W/m²</td>
                        <td style="padding: 10px 0;">Brak komfortu, drastyczny spadek sprawności</td>
                    </tr>
                </tbody>
            </table>
        </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('zebra-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></div>';
        }
        return; 
    }

    // LOGIKA SYMULATORA ZEBRA
    var slider = document.getElementById('zebra-slider');
    var spacingVal = document.getElementById('z-spacing');
    var visualizer = document.getElementById('z-visualizer');
    var power = document.getElementById('z-power');
    var feel = document.getElementById('z-feel');
    var cop = document.getElementById('z-cop');
    var warning = document.getElementById('z-warning');

    var dataMap = {
        '10': { pwr: '~85 W/m²', feel: 'Gorąca, równomierna', copTxt: 'Wysoka (niska temp.)', copClass: 'stat-cop-high', warn: false, grad: 'repeating-linear-gradient(90deg, #ef4444, #ef4444 30px, #fca5a5 40px, #ef4444 50px)' },
        '15': { pwr: '~65 W/m²', feel: 'Ciepła, komfortowa', copTxt: 'Optymalna', copClass: 'stat-cop-high', warn: false, grad: 'repeating-linear-gradient(90deg, #ef4444, #ef4444 20px, #fecaca 45px, #ef4444 70px)' },
        '20': { pwr: '~50 W/m²', feel: 'Letnia, wyczuwalne przerwy', copTxt: 'Obniżona', copClass: 'stat-cop-low', warn: false, grad: 'repeating-linear-gradient(90deg, #ef4444, #ef4444 15px, #bfdbfe 55px, #ef4444 95px)' },
        '25': { pwr: '~35 W/m²', feel: 'Wyraźna "zebra termiczna"', copTxt: 'Niska (wyższa temp.)', copClass: 'stat-cop-low', warn: true, grad: 'repeating-linear-gradient(90deg, #ef4444, #ef4444 10px, #60a5fa 65px, #ef4444 120px)' },
        '30': { pwr: '~25 W/m²', feel: 'Agresywna zebra (Zimna)', copTxt: 'Bardzo niska!', copClass: 'stat-cop-low', warn: true, grad: 'repeating-linear-gradient(90deg, #ef4444, #ef4444 8px, #2563eb 80px, #ef4444 150px)' }
    };

    function updateZebra() {
        var val = slider.value;
        var data = dataMap[val];

        spacingVal.innerText = val;
        power.innerText = data.pwr;
        feel.innerText = data.feel;
        
        cop.innerText = data.copTxt;
        cop.className = 'stat-value ' + data.copClass;

        visualizer.style.background = data.grad;

        if (data.warn) {
            warning.style.display = 'block';
        } else {
            warning.style.display = 'none';
        }
    }

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



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --accent-light: #eff6ff;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-error-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.error-header {
    background: #fef2f2;
    border-bottom: 1px solid #fecaca;
    padding: 35px 40px;
    position: relative;
    overflow: hidden;
}

.error-header::after {
    content: '💸';
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 90px;
    opacity: 0.1;
}

.error-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fee2e2;
    color: var(--danger);
    padding: 6px 14px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.error-header h3 {
    margin: 0 0 10px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--danger);
}

.error-content {
    padding: 40px;
}

.error-text {
    font-size: 16px;
    line-height: 1.7;
    color: #334155;
    margin-bottom: 20px;
}

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

/* INTERAKTYWNY SYMULATOR STRAT CIEPŁA */
.simulator-wrap {
    background: var(--bg-light);
    border: 1px solid var(--border-color);
    border-radius: 16px;
    padding: 30px;
    margin: 35px 0;
}

.sim-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--primary);
    letter-spacing: 1px;
    margin-bottom: 25px;
    display: block;
    text-align: center;
}

.sim-controls-insulation {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 30px;
    background: #fff;
    padding: 20px 30px;
    border-radius: 12px;
    border: 1px solid var(--border-color);
}

.insulation-val-display {
    font-size: 32px;
    font-weight: 900;
    color: var(--accent);
    margin-bottom: 5px;
}

.insulation-slider-wrap {
    width: 100%;
    max-width: 500px;
    margin-top: 15px;
}

input[type=range].insulation-slider {
    width: 100%; height: 8px; background: #e2e8f0; border-radius: 10px; appearance: none; outline: none; margin-bottom: 10px;
}
input[type=range].insulation-slider::-webkit-slider-thumb {
    appearance: none; width: 28px; height: 28px; background: var(--accent); border-radius: 50%; border: 4px solid white; box-shadow: 0 2px 8px rgba(0,0,0,0.2); cursor: pointer;
}

/* KARTY WYNIKÓW */
.insulation-stats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.insulation-stat-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    padding: 20px;
    border-radius: 12px;
    text-align: center;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
    position: relative;
    overflow: hidden;
}

.stat-icon { font-size: 24px; margin-bottom: 8px; display: block; }
.stat-label { font-size: 11px; color: #64748b; text-transform: uppercase; font-weight: 800; margin-bottom: 8px; display: block; }
.stat-value { font-size: 20px; font-weight: 900; color: var(--primary); }
.stat-loss-high { color: var(--danger); }
.stat-loss-low { color: var(--success); }

#ins-warning {
    margin-top: 20px;
    padding: 15px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 700;
    text-align: center;
    background: #fef2f2;
    color: var(--danger);
    border: 1px solid #fecaca;
    display: none;
}

#ins-success {
    margin-top: 20px;
    padding: 15px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 700;
    text-align: center;
    background: #f0fdf4;
    color: var(--success);
    border: 1px solid #bbf7d0;
    display: none;
}

/* SEKCJA TAŚMY BRZEGOWEJ */
.edge-tape-box {
    background: #fff7ed;
    border-left: 6px solid var(--warning);
    padding: 25px;
    border-radius: 0 16px 16px 0;
    margin: 30px 0;
}

.edge-tape-box h4 { margin: 0 0 10px 0; color: #9a3412; font-size: 18px; font-weight: 800;}
.edge-tape-box p { margin: 0; color: #78350f; font-size: 15px; line-height: 1.6; }

/* LINK DO ARTYKUŁU */
.article-link-box {
    background: #eff6ff;
    padding: 20px;
    border-radius: 12px;
    border: 1px solid #bfdbfe;
    display: flex;
    align-items: center;
    gap: 15px;
    text-decoration: none;
    transition: 0.3s;
    margin-top: 25px;
}
.article-link-box:hover {
    background: #dbeafe;
    transform: translateY(-2px);
}
.article-link-icon {
    font-size: 24px;
}
.article-link-text {
    font-size: 14px;
    font-weight: 700;
    color: var(--accent);
}

@media (max-width: 768px) {
    .error-header { padding: 25px 20px; }
    .error-content { padding: 25px 20px; }
    .insulation-stats-grid { grid-template-columns: 1fr; gap: 10px; }
    .sim-controls-insulation { padding: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Zależność grubości izolacji podłogi od strat ciepła do gruntu",
    "description": "Kalkulator strat finansowych i energetycznych wynikających z zastosowania niewystarczającej grubości styropianu EPS pod ogrzewaniem podłogowym na gruncie.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Współczynnik przenikania ciepła (U max dla podłogi)",
        "value": "0.18",
        "unitText": "W/(m2K)",
        "description": "Wymaganie zgodnie z WT 2021"
      },
      {
        "@type": "PropertyValue",
        "name": "Wymagana grubość styropianu (WT 2021)",
        "value": "12-15",
        "unitCode": "CMT"
      },
      {
        "@type": "PropertyValue",
        "name": "Ucieczka ciepła przy izolacji 5cm",
        "value": "25-30",
        "unitText": "%"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Kalkulator Strat Finansowych Izolacji Podłogi",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Narzędzie symulujące roczne i wieloletnie straty finansowe wynikające z grubości zastosowanej izolacji termicznej pod ogrzewaniem podłogowym na gruncie.",
    "featureList": [
      "Obliczanie procentowej ucieczki ciepła w grunt",
      "Estymacja kosztów w perspektywie 30 lat",
      "Weryfikacja zgodności z normą WT 2021"
    ]
  }
]
</script>

<div class="premium-error-box" id="insulation-app-lock">
    <div class="error-header">
        <div class="error-badge">Błąd #4</div>
        <h3>Niewłaściwa izolacja termiczna i brzegowa</h3>
        <p style="margin:0; font-size:15px; color:#991b1b; font-weight:600;">Czyli grzanie fundamentów sąsiada.</p>
    </div>

    <div class="error-content">
        <p class="error-text">
            <strong>Fizyka ucieczki ciepła w dół</strong><br>
            Samodzielny montaż ogrzewania podłogowego często skupia się na tym, co widać (rury), a nie na tym, co jest pod spodem (styropian). Tymczasem ciepło, zgodnie z II zasadą termodynamiki, płynie w kierunku niższej temperatury. 
        </p>

        <div class="simulator-wrap">
            <span class="sim-title">Kalkulator Strat Finansowych (Dla domu 100 m²)</span>
            
            <div class="sim-controls-insulation">
                <span style="font-size:12px; font-weight:700; color:#64748b; text-transform:uppercase;">Grubość styropianu na gruncie:</span>
                <div class="insulation-val-display"><span id="i-thickness">5</span> cm</div>
                <div class="insulation-slider-wrap">
                    <input type="range" class="insulation-slider" id="ins-slider" min="2" max="25" step="1" value="5">
                    <div style="display:flex; justify-content:space-between; font-size:11px; font-weight:700; color:#94a3b8;">
                        <span>2 cm</span><span>WT2021</span><span>25 cm</span>
                    </div>
                </div>
                <span style="font-size:11px; color:#64748b; margin-top:10px;">Założenia: Zapotrzebowanie 10000 kWh/rok, Cena energii: 0,30 zł/kWh</span>
            </div>

            <div class="insulation-stats-grid">
                <div class="insulation-stat-card">
                    <span class="stat-icon">📉</span>
                    <span class="stat-label">Ciepło uciekające w ziemię</span>
                    <span class="stat-value stat-loss-high" id="i-percent">25%</span>
                </div>
                <div class="insulation-stat-card">
                    <span class="stat-icon">💸</span>
                    <span class="stat-label">Roczna strata finansowa</span>
                    <span class="stat-value stat-loss-high" id="i-cost-year">750 zł</span>
                </div>
                <div class="insulation-stat-card">
                    <span class="stat-icon">🔥</span>
                    <span class="stat-label">Strata w ciągu 30 lat</span>
                    <span class="stat-value stat-loss-high" id="i-cost-30">22 500 zł</span>
                </div>
            </div>
            
            <div id="ins-warning">
                ⚠️ <strong>Fatalna izolacja!</strong> Nie spełniasz norm budowlanych WT 2021. Znaczna część wyprodukowanego ciepła trafia do ziemi, a Ty wyrzucasz pieniądze w błoto!
            </div>
            <div id="ins-success">
                ✅ <strong>Zgodność z normą WT 2021.</strong> Przy warstwie 15 cm różnica w koszcie zakupu styropianu zwraca się zaledwie w kilka lat dzięki zaoszczędzonej energii.
            </div>
        </div>

        <p class="error-text">
            Przykład z symulatora wyraźnie pokazuje, że przy 5 cm izolacji wyrzucasz przez podłogę tysiące złotych. Różnica w cenie materiału między 5 cm a 15 cm styropianu EPS 100 to zazwyczaj około 1500 zł na 100 m². Zwraca się to błyskawicznie.
        </p>
        <p class="error-text">
            <strong>Wymagania techniczne WT 2021</strong> – wartość współczynnika przenikania ciepła $U_{max}$ dla podłogi na gruncie wynosi 0,18 $W/(m^2K)$. Aby to osiągnąć, potrzebujesz <strong>minimum 12-15 cm styropianu</strong> (lub styroduru XPS o lepszym współczynniku $\lambda$). Na stropie między piętrami wewnątrz ogrzewanej bryły budynku wystarczy 3-5 cm (głównie jako izolacja akustyczna i wyrównanie dla instalacji).
        </p>

        <a href="https://projekt-ogrzewania.pl/jakie-sa-najlepsze-sposoby-izolacji-pod-ogrzewanie-podlogowe/" class="article-link-box">
            <span class="article-link-icon">📖</span>
            <span class="article-link-text">Jakie są najlepsze sposoby izolacji pod ogrzewanie podłogowe? Zobacz pełny poradnik →</span>
        </a>

        <div class="edge-tape-box">
            <h4>Taśma brzegowa – nie tylko dla dylatacji!</h4>
            <p>
                Zapomnienie o taśmie brzegowej przy ścianach to nie tylko problem pękania betonu (Błąd #2). To również <strong>gigantyczny mostek termiczny</strong>. Jeśli wylewka dotyka zimnej ściany fundamentowej, ciepło z Twojej podłogi ucieka wprost w górę ściany i na zewnątrz budynku. Taśma brzegowa z pianki polietylenowej pełni krytyczną funkcję izolatora termicznego na całym obwodzie pomieszczenia.
            </p>
        </div>

    </div>

    <noscript>
        <div style="padding: 20px 40px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h3 style="font-size: 16px; color: #0f172a; margin-bottom: 15px;">Skutki błędów w izolacji termicznej podłogi na gruncie</h3>
            <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;">Grubość styropianu (EPS 100)</th>
                        <th style="padding: 10px 0; color: #475569;">Status i ucieczka ciepła w grunt</th>
                        <th style="padding: 10px 0; color: #475569;">Przewidywana strata po 30 latach (dom 100 m2)</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">5 cm</td>
                        <td style="padding: 10px 0;">Krytyczny błąd (strata ok. 25-30%)</td>
                        <td style="padding: 10px 0; color: #dc2626; font-weight: bold;">~ 22 500 PLN</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">10 cm</td>
                        <td style="padding: 10px 0;">Poniżej aktualnych norm WT</td>
                        <td style="padding: 10px 0;">Znaczna ucieczka ciepła</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">12-15 cm</td>
                        <td style="padding: 10px 0;">Normatywna (zgodna z WT 2021)</td>
                        <td style="padding: 10px 0; color: #16a34a; font-weight: bold;">Optymalne koszty eksploatacji</td>
                    </tr>
                </tbody>
            </table>
        </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('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; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div></div>';
        }
        return; 
    }

    // LOGIKA SYMULATORA STRAT CIEPŁA
    var slider = document.getElementById('ins-slider');
    var valThick = document.getElementById('i-thickness');
    var valPercent = document.getElementById('i-percent');
    var valCostYear = document.getElementById('i-cost-year');
    var valCost30 = document.getElementById('i-cost-30');
    var warning = document.getElementById('ins-warning');
    var success = document.getElementById('ins-success');

    // Stałe z tekstu
    var baseEnergyKwh = 10000;
    var pricePerKwh = 0.30;

    function updateInsulation() {
        var eps = parseFloat(slider.value);
        valThick.innerText = eps;

        // Uproszczony model spadku strat zgodny z tekstem użytkownika (5cm = 25%)
        // Wzór hiperboliczny: loss = 125 / eps_thickness
        var lossPercent = 125 / eps;
        
        // Zabezpieczenie przed nierealnymi ekstremami na wykresie
        if (lossPercent > 62.5) lossPercent = 62.5; 

        var lostKwh = baseEnergyKwh * (lossPercent / 100);
        var costYear = lostKwh * pricePerKwh;
        var cost30y = costYear * 30;

        valPercent.innerText = Math.round(lossPercent) + '%';
        
        // Formatowanie waluty z separatorem spacji
        valCostYear.innerText = Math.round(costYear).toLocaleString('pl-PL') + ' zł';
        valCost30.innerText = Math.round(cost30y).toLocaleString('pl-PL') + ' zł';

        // Stylowanie wyników
        var valueElements = [valPercent, valCostYear, valCost30];
        if (eps < 12) {
            valueElements.forEach(function(el) {
                el.classList.remove('stat-loss-low');
                el.classList.add('stat-loss-high');
            });
            warning.style.display = 'block';
            success.style.display = 'none';
        } else {
            valueElements.forEach(function(el) {
                el.classList.remove('stat-loss-high');
                el.classList.add('stat-loss-low');
            });
            warning.style.display = 'none';
            success.style.display = 'block';
        }
    }

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



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --accent-light: #eff6ff;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-error-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.error-header {
    background: #fef2f2;
    border-bottom: 1px solid #fecaca;
    padding: 35px 40px;
    position: relative;
    overflow: hidden;
}

.error-header::after {
    content: '🛑';
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 90px;
    opacity: 0.1;
}

.error-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fee2e2;
    color: var(--danger);
    padding: 6px 14px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.error-header h3 {
    margin: 0 0 10px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--danger);
}

.error-content {
    padding: 40px;
}

.error-text {
    font-size: 16px;
    line-height: 1.7;
    color: #334155;
    margin-bottom: 20px;
}

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

/* INTERAKTYWNY SYMULATOR OPORÓW */
.simulator-wrap {
    background: var(--bg-light);
    border: 1px solid var(--border-color);
    border-radius: 16px;
    padding: 30px;
    margin: 35px 0;
}

.sim-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--primary);
    letter-spacing: 1px;
    margin-bottom: 25px;
    display: block;
    text-align: center;
}

.sim-controls-loop {
    background: #fff;
    padding: 20px 30px;
    border-radius: 12px;
    border: 1px solid var(--border-color);
    margin-bottom: 25px;
}

.loop-val-display {
    font-size: 36px;
    font-weight: 900;
    color: var(--accent);
    text-align: center;
    margin: 10px 0;
}

input[type=range].loop-slider {
    width: 100%; height: 8px; background: #e2e8f0; border-radius: 10px; appearance: none; outline: none; margin-bottom: 10px;
}
input[type=range].loop-slider::-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;
}

.loop-stats-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin-bottom: 20px;
}

.loop-stat-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    padding: 15px;
    border-radius: 12px;
    text-align: center;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
}

.stat-label { font-size: 11px; color: #64748b; text-transform: uppercase; font-weight: 800; margin-bottom: 5px; display: block; }
.stat-value { font-size: 18px; font-weight: 900; color: var(--primary); }

.pump-load-container {
    height: 12px;
    background: #e2e8f0;
    border-radius: 6px;
    overflow: hidden;
    margin-top: 15px;
}

.pump-load-bar {
    height: 100%;
    width: 20%;
    background: var(--success);
    transition: 0.3s ease;
}

.sim-msg {
    margin-top: 15px;
    padding: 12px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    text-align: center;
}

.msg-success { background: #f0fdf4; color: var(--success); border: 1px solid #bbf7d0; }
.msg-warning { background: #fffbeb; color: var(--warning); border: 1px solid #fde68a; }
.msg-danger { background: #fef2f2; color: var(--danger); border: 1px solid #fecaca; }

/* ALERT ZAŁAMANIA RURY */
.kink-alert-box {
    background: #fef2f2;
    border-left: 6px solid var(--danger);
    padding: 25px;
    border-radius: 0 16px 16px 0;
    margin: 35px 0;
    display: flex;
    gap: 20px;
    align-items: center;
}

.kink-icon {
    font-size: 40px;
    flex-shrink: 0;
}

.kink-content h4 { margin: 0 0 8px 0; color: #991b1b; font-size: 18px; font-weight: 800;}
.kink-content p { margin: 0; color: #7f1d1d; font-size: 15px; line-height: 1.6; }
.kink-content strong { color: #7f1d1d; background: #fee2e2; padding: 2px 6px; border-radius: 4px;}

/* LINK DO ARTYKUŁU */
.article-link-box {
    background: #eff6ff;
    padding: 20px;
    border-radius: 12px;
    border: 1px solid #bfdbfe;
    display: flex;
    align-items: center;
    gap: 15px;
    text-decoration: none;
    transition: 0.3s;
    margin-top: 25px;
}
.article-link-box:hover {
    background: #dbeafe;
    transform: translateY(-2px);
}
.article-link-icon { font-size: 24px; }
.article-link-text { font-size: 14px; font-weight: 700; color: var(--accent); }

@media (max-width: 768px) {
    .error-header { padding: 25px 20px; }
    .error-content { padding: 25px 20px; }
    .loop-stats-grid { grid-template-columns: 1fr; }
    .kink-alert-box { flex-direction: column; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Kalkulator oporów hydraulicznych i limitów długości pętli ogrzewania podłogowego",
    "description": "Limity projektowe i hydrauliczne dla długości pętli rur PEX 16mm w instalacjach ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Maksymalna długość pętli (PEX 16x2.0)",
        "value": "100",
        "unitCode": "MTR",
        "description": "Twarda granica długości w celu uniknięcia przeciążenia pompy obiegowej"
      },
      {
        "@type": "PropertyValue",
        "name": "Optymalna długość pętli",
        "value": "80-90",
        "unitCode": "MTR"
      },
      {
        "@type": "PropertyValue",
        "name": "Szacunkowy opór liniowy rury 16mm (przy przepływie 1.5 l/min)",
        "value": "1.2",
        "unitText": "mbar/m"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Kalkulator oporów hydraulicznych pętli PEX",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Interaktywne narzędzie pozwalające obliczyć opory liniowe i całkowite pętli ogrzewania podłogowego oraz zweryfikować obciążenie pompy obiegowej.",
    "featureList": [
      "Obliczanie oporu jednostkowego rury",
      "Kalkulacja całkowitego oporu z uwzględnieniem armatury",
      "Wizualizacja obciążenia granicznego pompy"
    ]
  }
]
</script>

<div class="premium-error-box" id="loop-app-lock">
    <div class="error-header">
        <div class="error-badge">Błąd #5</div>
        <h3>Zbyt długie pętle i załamania rur</h3>
        <p style="margin:0; font-size:15px; color:#991b1b; font-weight:600;">Czyli moment, w którym pompa obiegowa mówi "dość".</p>
    </div>

    <div class="error-content">
        <p class="error-text">
            <strong>Hydraulika dla opornych: Dlaczego 120 metrów rury to katastrofa?</strong><br>
            Woda płynąca w rurze PEX 16x2,0 mm napotyka <strong>opory liniowe i miejscowe</strong>. Każdy metr rury, każde kolanko i każda spinka to przeszkoda dla przepływu. Jeśli pętla jest za długa, opór hydrauliczny przewyższa wysokość podnoszenia pompy obiegowej (zazwyczaj jest to 4-6 metrów słupa wody dla całego układu).
        </p>

        <div class="simulator-wrap">
            <span class="sim-title">Kalkulator oporów hydraulicznych (Uproszczony)</span>
            <div style="font-size:11px; text-align:center; color:#64748b; margin-bottom:15px;">Dla rury PEX 16x2,0 przy przepływie ~1,5 l/min</div>
            
            <div class="sim-controls-loop">
                <span style="font-size:12px; font-weight:700; color:#64748b; text-transform:uppercase; text-align:center; display:block;">Długość pojedynczej pętli:</span>
                <div class="loop-val-display"><span id="l-length">120</span> m</div>
                <input type="range" class="loop-slider" id="loop-slider" min="30" max="150" step="1" value="120">
                <div style="display:flex; justify-content:space-between; font-size:11px; font-weight:700; color:#94a3b8;">
                    <span>30 m</span><span>90 m (Max)</span><span>150 m</span>
                </div>
            </div>

            <div class="loop-stats-grid">
                <div class="loop-stat-card">
                    <span class="stat-label">Opór jednostkowy rury (Liniowy)</span>
                    <span class="stat-value" id="l-linear">144.0 mbar</span>
                </div>
                <div class="loop-stat-card">
                    <span class="stat-label">Opór całkowity (+ zawory/kolana ~40%)</span>
                    <span class="stat-value" id="l-total">1.47 m H₂O</span>
                </div>
            </div>

            <div style="font-size:11px; font-weight:700; color:#64748b; text-transform:uppercase;">Obciążenie graniczne dla pętli 16mm:</div>
            <div class="pump-load-container">
                <div class="pump-load-bar" id="l-bar"></div>
            </div>
            
            <div id="l-msg" class="sim-msg msg-danger">
                ❌ Katastrofa! Opór przekracza możliwości standardowej pompy dla jednego obwodu.
            </div>
        </div>

        <p class="error-text">
            Do oporu samej rury dochodzą opory na rozdzielaczu, zaworach i kolanach (z reguły to 30-50% więcej). 
            Jeśli różnica długości między pętlami jest duża, musisz zdławić krótsze pętle zaworami, aby zmusić wodę do płynięcia w te dłuższe. To generuje hałas (szum wody w rotametrach) i niepotrzebne obciążenie pompy.
        </p>

        <p class="error-text">
            <strong>Maksymalna długość pętli (rura 16 mm):</strong> Nie przekraczaj 100 metrów! Idealnie trzymać się wartości 80-90 m, aby mieć margines na nierówności i strefy brzegowe.
        </p>

        <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/" class="article-link-box">
            <span class="article-link-icon">📏</span>
            <span class="article-link-text">Dlaczego 100 metrów to twarda granica? Przeczytaj pełną analizę długości obwodów grzewczych →</span>
        </a>

        <div class="kink-alert-box">
            <div class="kink-icon">⚠️</div>
            <div class="kink-content">
                <h4>Błąd montażu: Załamanie (złamanie) rury</h4>
                <p>
                    Rury PERT i PEX są elastyczne, ale mają swoją granicę. Jeśli przy układaniu rury zginasz ją pod kątem ostrym (bez użycia sprężyny zewnętrznej lub wewnętrznej do gięcia), na zewnętrznym łuku tworzy się <strong>białe przełamanie</strong>. 
                    <br><br>
                    To znak, że struktura polimeru oraz wkładka aluminiowa (w PEX) zostały naruszone. W tym miejscu rura traci wytrzymałość mechaniczną i pod wpływem ciągłych skoków ciśnienia oraz temperatury <strong>pęknie w ciągu 5-10 lat</strong>. Jeśli zobaczysz takie miejsce na budowie – bezwzględnie wytnij je i połącz rurę <strong>systemową złączką zaprasowywaną</strong> (złączki zaciskowe/prasowane można bezpiecznie zatapiać w wylewce, w przeciwieństwie do starych mitów).
                </p>
            </div>
        </div>

    </div>

    <noscript>
        <div style="padding: 20px 40px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h3 style="font-size: 16px; color: #0f172a; margin-bottom: 15px;">Limity długości pętli grzewczych i opory hydrauliczne</h3>
            <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;">Długość pętli (Rura 16x2.0)</th>
                        <th style="padding: 10px 0; color: #475569;">Szacowany opór całkowity</th>
                        <th style="padding: 10px 0; color: #475569;">Status i obciążenie pompy</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">Do 90 m</td>
                        <td style="padding: 10px 0;">&lt; 1.1 m H₂O</td>
                        <td style="padding: 10px 0; color: #16a34a; font-weight: bold;">Optymalne (Bezpieczne)</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">90 m - 100 m</td>
                        <td style="padding: 10px 0;">~ 1.2 m H₂O</td>
                        <td style="padding: 10px 0; color: #ea580c; font-weight: bold;">Graniczne (Dopuszczalne)</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">Powyżej 100 m (np. 120 m)</td>
                        <td style="padding: 10px 0;">&gt; 1.45 m H₂O</td>
                        <td style="padding: 10px 0; color: #dc2626; font-weight: bold;">Krytyczne (Przeciążenie pompy)</td>
                    </tr>
                </tbody>
            </table>
        </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('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; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div></div>';
        }
        return; 
    }

    // LOGIKA SYMULATORA OPORÓW
    var slider = document.getElementById('loop-slider');
    var valLength = document.getElementById('l-length');
    var valLinear = document.getElementById('l-linear');
    var valTotal = document.getElementById('l-total');
    var bar = document.getElementById('l-bar');
    var msg = document.getElementById('l-msg');

    function updateLoop() {
        var L = parseFloat(slider.value);
        valLength.innerText = L;

        // Wartości z tekstu użytkownika:
        // Opór jedn. = 1.2 mbar/m
        // Opór całkowity (dla 120m) = 144 mbar = 1.47 m H2O
        // Dodatki miejscowe = +40% (uśrednione 30-50%)

        var linearMbar = L * 1.2;
        var totalMbar = linearMbar * 1.4; // dodajemy opory miejscowe i rozdzielacza
        
        // Przelicznik mbar na metry słupa wody (100 mbar to ok. 1.02 m H2O)
        var totalH2O = totalMbar * 0.0102;

        valLinear.innerText = linearMbar.toFixed(1) + ' mbar';
        valTotal.innerText = totalH2O.toFixed(2) + ' m H₂O';

        // Obliczanie paska (skala do 150m)
        var percent = (L / 150) * 100;
        bar.style.width = percent + '%';

        if (L <= 90) {
            bar.style.backgroundColor = 'var(--success)';
            msg.innerText = "✅ Optymalna długość pętli. Woda przepłynie bez obciążania pompy.";
            msg.className = "sim-msg msg-success";
        } else if (L <= 100) {
            bar.style.backgroundColor = 'var(--warning)';
            msg.innerText = "⚠️ Długość graniczna! Zbliżasz się do maksymalnych akceptowalnych oporów dla rury 16mm.";
            msg.className = "sim-msg msg-warning";
        } else {
            bar.style.backgroundColor = 'var(--danger)';
            msg.innerText = "❌ Katastrofa hydrauliczna! Opór drastycznie przewyższa normę. Pętla nie dogrzeje pomieszczenia.";
            msg.className = "sim-msg msg-danger";
        }
    }

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



<style>
:root {
    --primary-hvac: #0f172a;
    --accent-hvac: #2563eb;
    --bg-tip: #f1f5f9;
}

/* Dodano lekki margines górny dla całego kontenera w związku z H2 */
.expert-tip-wrapper {
    max-width: 850px;
    margin: 50px auto 40px auto;
}

/* Nowy styl dla H2 */
.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": "Projekt instalacji to dla wykonawcy świętość, a dla Ciebie podstawa rzetelnej inwentaryzacji powykonawczej. Zanim wylejesz beton, zrób dokładne zdjęcia i zweryfikuj, czy każda pętla leży dokładnie tak, jak przewidział projektant.",
    "spokenByCharacter": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "jobTitle": "CEO & Główny Projektant",
      "worksFor": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl"
      }
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Kluczowe zalecenia inżynierskie przed wylewką betonu",
    "description": "Zestawienie procedur weryfikacyjnych dla inwestora przed przyjazdem betoniarki, mających na celu zapewnienie zgodności montażu z projektem hydraulicznym.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Dokumentacja fotograficzna",
        "description": "Rzetelna inwentaryzacja powykonawcza przed ukryciem rur."
      },
      {
        "@type": "PropertyValue",
        "name": "Weryfikacja układu pętli",
        "description": "Sprawdzenie zgodności fizycznego montażu z projektem hydraulicznym."
      },
      {
        "@type": "PropertyValue",
        "name": "Zgodność z obliczeniami",
        "description": "Gwarancja osiągnięcia zakładanej mocy grzewczej oraz optymalizacji kosztów eksploatacji."
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="expert-tip-wrapper">
    <h2><span style="margin-right:10px">🛡️</span>Robert Kucharski: Moja rekomendacja dla inwestoró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">Twoja polisa bezpieczeństwa</span>
            <p class="expert-tip-text">
                "Projekt instalacji to dla wykonawcy świętość, a dla Ciebie podstawa rzetelnej inwentaryzacji powykonawczej. Zanim wylejesz beton, zrób dokładne zdjęcia i zweryfikuj, czy każda pętla leży dokładnie tak, jak przewidział projektant. Tylko pełna zgodność z obliczeniami hydraulicznymi gwarantuje, że Twoje ogrzewanie osiągnie zakładaną moc i niskie koszty eksploatacji."
            </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;">
            <h3 style="font-size: 16px; color: #0f172a; margin-bottom: 15px;">Zalecenia inżynierskie przed wylewką betonu</h3>
            <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;">Działanie inwestora</th>
                        <th style="padding: 10px 0; color: #475569;">Cel i rekomendacja inżynierska</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">Dokumentacja fotograficzna</td>
                        <td style="padding: 10px 0;">Rzetelna inwentaryzacja powykonawcza przed ukryciem rur.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">Weryfikacja układu pętli</td>
                        <td style="padding: 10px 0;">Sprawdzenie zgodności fizycznego montażu z projektem hydraulicznym.</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">Zgodność z obliczeniami</td>
                        <td style="padding: 10px 0;">Gwarancja osiągnięcia zakładanej mocy grzewczej i niskich kosztów.</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('expert-tip-hvac');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 20px; text-align: center; background: #fee2e2; color: #dc2626; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 200px; font-family: sans-serif; border-radius: 20px; width: 100%;">
                    <span style="font-size: 32px; margin-bottom: 15px;">🔒</span>
                    <div style="margin-top:0; font-size: 20px; font-weight: bold; margin-bottom: 10px;">Wskazówka ekspercka chroniona prawem autorskim</div>
                    <p style="font-size: 14px; max-width: 500px; color: #7f1d1d; line-height: 1.5;">Ten moduł jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został skopiowany nielegalnie.</p>
                </div>
            `;
            container.style.borderLeft = 'none';
            container.style.background = 'transparent';
            container.style.padding = '0';
        }
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
}

.premium-params {
    max-width: 1150px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
}

.params-title {
    text-align: center;
    margin-bottom: 40px;
}

.params-title h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 10px 0;
    color: var(--primary);
}

.params-title p {
    color: #64748b;
    margin: 0;
    font-size: 16px;
    line-height: 1.6;
}

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

.param-card {
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid #f1f5f9;
    padding: 25px;
    display: flex;
    flex-direction: column;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.param-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 40px -10px rgba(37, 99, 235, 0.12);
    border-color: #bfdbfe;
}

.card-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 2px dashed #e2e8f0;
}

.icon-box {
    width: 42px;
    height: 42px;
    background: #eff6ff;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    flex-shrink: 0;
}

.header-text h4 {
    margin: 0;
    font-size: 15px;
    font-weight: 800;
    line-height: 1.3;
}

.header-text span {
    font-size: 11px;
    color: #94a3b8;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 0.5px;
}

.result-box {
    background: var(--bg-light);
    padding: 15px;
    border-radius: 12px;
    text-align: center;
    margin-bottom: 15px;
    border-top: 3px solid var(--accent);
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.r-thick {
    display: block;
    font-size: 16px;
    font-weight: 800;
    color: var(--primary);
}

.r-value {
    display: inline-block;
    background: #ffffff;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 700;
    color: var(--accent);
    margin-top: 8px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}

.justification {
    font-size: 12px;
    line-height: 1.5;
    color: #475569;
    margin: 0;
    background: #f8fafc;
    padding: 12px;
    border-radius: 10px;
    border-left: 3px solid #cbd5e1;
}

.justification strong {
    color: var(--danger);
}

@media (max-width: 950px) {
    .param-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
    .param-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Dataset",
  "name": "Ściąga parametrów technicznych do montażu ogrzewania podłogowego",
  "description": "Zestawienie najważniejszych wartości technicznych i normatywnych wymaganych podczas budowy instalacji HVAC (podłogówki).",
  "license": "https://projekt-ogrzewania.pl/",
  "variableMeasured": [
    { "@type": "PropertyValue", "name": "Grubość styropianu na gruncie", "value": "15-20", "unitCode": "CMT" },
    { "@type": "PropertyValue", "name": "Folia PE pod styropian (grubość)", "value": "0.2", "unitText": "mm" },
    { "@type": "PropertyValue", "name": "Wysokość taśmy brzegowej ponad wylewkę", "value": "15", "unitCode": "CMT" },
    { "@type": "PropertyValue", "name": "Rozstaw rur (środek pomieszczenia)", "value": "15", "unitCode": "CMT" },
    { "@type": "PropertyValue", "name": "Rozstaw rur (strefa brzegowa)", "value": "10", "unitCode": "CMT" },
    { "@type": "PropertyValue", "name": "Maksymalna długość pętli PEX 16x2", "value": "90", "unitCode": "MTR" },
    { "@type": "PropertyValue", "name": "Ciśnienie próby szczelności", "value": "6", "unitCode": "BAR" },
    { "@type": "PropertyValue", "name": "Czas dojrzewania jastrychu cementowego", "value": "28", "unitText": "dni" },
    { "@type": "PropertyValue", "name": "Wygrzewanie wstępne (Start)", "value": "20", "unitText": "°C" }
  ],
  "creator": {
    "@type": "Person",
    "name": "Robert Kucharski"
  }
}
</script>

<div class="premium-params" id="params-app">
    <div class="params-title">
        <h2>Tabela parametrów technicznych</h2>
        <p>Ściąga dla samodzielnego montażu – najważniejsze wartości w pigułce.</p>
    </div>

    <div class="param-grid">
        <div class="param-card">
            <div class="card-header">
                <div class="icon-box">🧱</div>
                <div class="header-text">
                    <span>Podstawa</span>
                    <h4>Grubość styropianu na gruncie</h4>
                </div>
            </div>
            <div class="result-box">
                <span class="r-thick">15 - 20 cm</span>
                <span class="r-value">EPS 100 lub EPS 200</span>
            </div>
            <p class="justification"><strong>Wymóg WT2021:</strong> Zapobiega ucieczce ciepła do gruntu.</p>
        </div>

        <div class="param-card">
            <div class="card-header">
                <div class="icon-box">🛡️</div>
                <div class="header-text">
                    <span>Izolacja</span>
                    <h4>Folia PE pod styropian</h4>
                </div>
            </div>
            <div class="result-box">
                <span class="r-thick">Min. 0,2 mm</span>
                <span class="r-value">Zakład 15 cm</span>
            </div>
            <p class="justification"><strong>Paroizolacja!</strong> Chroni styropian przed wilgocią z chudziaka.</p>
        </div>

        <div class="param-card">
            <div class="card-header">
                <div class="icon-box">🎗️</div>
                <div class="header-text">
                    <span>Dylatacja</span>
                    <h4>Taśma brzegowa</h4>
                </div>
            </div>
            <div class="result-box">
                <span class="r-thick">Wysokość min. 15 cm</span>
                <span class="r-value">Powyżej poziomu wylewki</span>
            </div>
            <p class="justification"><strong>Uwaga:</strong> Odciąć nadmiar dopiero po ułożeniu docelowych paneli/płytek!</p>
        </div>

        <div class="param-card">
            <div class="card-header">
                <div class="icon-box">🦶</div>
                <div class="header-text">
                    <span>Hydraulika</span>
                    <h4>Rozstaw rur (strefa komfortu)</h4>
                </div>
            </div>
            <div class="result-box">
                <span class="r-thick">15 cm</span>
                <span class="r-value">Środek pomieszczenia</span>
            </div>
            <p class="justification"><strong>Optimum dla pompy ciepła.</strong> Gwarantuje brak "zebry termicznej".</p>
        </div>

        <div class="param-card">
            <div class="card-header">
                <div class="icon-box">🪟</div>
                <div class="header-text">
                    <span>Hydraulika</span>
                    <h4>Rozstaw rur (strefa brzegowa)</h4>
                </div>
            </div>
            <div class="result-box">
                <span class="r-thick">10 cm</span>
                <span class="r-value">Gęstsze ułożenie</span>
            </div>
            <p class="justification"><strong>Zastosowanie:</strong> Przy dużych oknach i drzwiach balkonowych, gdzie straty są największe.</p>
        </div>

        <div class="param-card">
            <div class="card-header">
                <div class="icon-box">🔄</div>
                <div class="header-text">
                    <span>Ograniczenia</span>
                    <h4>Maksymalna długość pętli</h4>
                </div>
            </div>
            <div class="result-box">
                <span class="r-thick">90 m</span>
                <span class="r-value">Absolutne max: 100 m</span>
            </div>
            <p class="justification">Dla rury PEX 16x2. <strong>Zasada:</strong> Różnica długości pętli na jednym rozdzielaczu max 10%.</p>
        </div>

        <div class="param-card">
            <div class="card-header">
                <div class="icon-box">🗜️</div>
                <div class="header-text">
                    <span>Bezpieczeństwo</span>
                    <h4>Ciśnienie próby szczelności</h4>
                </div>
            </div>
            <div class="result-box">
                <span class="r-thick">6 barów</span>
                <span class="r-value">0,6 MPa</span>
            </div>
            <p class="justification"><strong>Kluczowe:</strong> Utrzymywać rury pod takim ciśnieniem podczas betonowania!</p>
        </div>

        <div class="param-card">
            <div class="card-header">
                <div class="icon-box">⏳</div>
                <div class="header-text">
                    <span>Wylewka</span>
                    <h4>Czas dojrzewania jastrychu</h4>
                </div>
            </div>
            <div class="result-box">
                <span class="r-thick">28 dni</span>
                <span class="r-value">Dla jastrychu cementowego</span>
            </div>
            <p class="justification">Przed pierwszym uruchomieniem pompy. <strong>Bezwzględnie bez grzania!</strong></p>
        </div>

        <div class="param-card">
            <div class="card-header">
                <div class="icon-box">🌡️</div>
                <div class="header-text">
                    <span>Eksploatacja</span>
                    <h4>Wygrzewanie wstępne</h4>
                </div>
            </div>
            <div class="result-box">
                <span class="r-thick">Start od 20°C</span>
                <span class="r-value">Codziennie +5°C</span>
            </div>
            <p class="justification">Stopniowe podnoszenie temperatury <strong>zapobiega szokowi termicznemu</strong> i pękaniu betonu.</p>
        </div>
    </div>

    <noscript>
        <div style="padding: 30px; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 20px; margin-top: 40px; font-family: sans-serif;">
            <h3 style="margin-top: 0;">Parametry techniczne: Ogrzewanie podłogowe</h3>
            <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;">Obszar instalacji</th>
                        <th style="padding: 10px;">Parametr techniczny</th>
                        <th style="padding: 10px;">Zalecana wartość</th>
                        <th style="padding: 10px;">Uzasadnienie inżynieryjne</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px;">Podstawa (grunt)</td>
                        <td style="padding: 10px; font-weight: bold;">Grubość styropianu</td>
                        <td style="padding: 10px;">15 - 20 cm (EPS 100/200)</td>
                        <td style="padding: 10px;">Zgodność z WT2021, izolacja od gruntu.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px;">Izolacja</td>
                        <td style="padding: 10px; font-weight: bold;">Folia PE</td>
                        <td style="padding: 10px;">Min. 0.2 mm (15 cm zakład)</td>
                        <td style="padding: 10px;">Paroizolacja, ochrona przed wilgocią.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px;">Dylatacja</td>
                        <td style="padding: 10px; font-weight: bold;">Taśma brzegowa</td>
                        <td style="padding: 10px;">Min. 15 cm ponad wylewkę</td>
                        <td style="padding: 10px;">Odcinać dopiero po ułożeniu posadzki.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px;">Hydraulika</td>
                        <td style="padding: 10px; font-weight: bold;">Rozstaw rur (środek)</td>
                        <td style="padding: 10px;">15 cm</td>
                        <td style="padding: 10px;">Optymalne dla pomp ciepła, brak zebry.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px;">Hydraulika</td>
                        <td style="padding: 10px; font-weight: bold;">Rozstaw rur (brzeg)</td>
                        <td style="padding: 10px;">10 cm</td>
                        <td style="padding: 10px;">Kompensacja dużych strat przy oknach.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px;">Ograniczenia</td>
                        <td style="padding: 10px; font-weight: bold;">Maksymalna długość pętli</td>
                        <td style="padding: 10px;">90 m (Max 100 m)</td>
                        <td style="padding: 10px;">Dla rury 16x2. Max różnica dł. to 10%.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px;">Bezpieczeństwo</td>
                        <td style="padding: 10px; font-weight: bold;">Próba szczelności</td>
                        <td style="padding: 10px;">6 barów (0.6 MPa)</td>
                        <td style="padding: 10px;">Ciśnienie musi być stałe podczas betonowania.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px;">Wylewka</td>
                        <td style="padding: 10px; font-weight: bold;">Czas dojrzewania</td>
                        <td style="padding: 10px;">28 dni</td>
                        <td style="padding: 10px;">Dla cementu. Brak grzania w tym czasie!</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px;">Eksploatacja</td>
                        <td style="padding: 10px; font-weight: bold;">Wygrzewanie wstępne</td>
                        <td style="padding: 10px;">Start od 20°C (+5°C / doba)</td>
                        <td style="padding: 10px;">Zapobiega szokowi termicznemu betonu.</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

<script>
// ZABEZPIECZENIE DOMENOWE (Domain Lock)
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 appElement = document.getElementById('params-app');
        if (appElement) {
            appElement.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: 20px;">
                    <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: #7f1d1d; line-height: 1.5;">Ta tabela techniczna jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i została wklejona na tę stronę bez zgody autora.</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>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
}

/* ZAJAWKA SEO I LINK */
.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;
}

/* LEWA STRONA - KONFIGURACJA */
.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(2, 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;
}

/* PRAWA STRONA - WYNIKI */
.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; }

#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; }

/* STOPKA */
.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%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Kalkulator ilości rury do ogrzewania podłogowego",
    "description": "Narzędzie inżynierskie pozwalające oszacować wymaganą długość rury grzewczej i liczbę pętli na podstawie powierzchni, długości ścian zewnętrznych i rozstawu rur.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Wzór na strefę główną",
        "value": "Powierzchnia / Rozstaw rur w metrach"
      },
      {
        "@type": "PropertyValue",
        "name": "Wzór na strefę brzegową",
        "value": "2 * Długość ścian zewnętrznych w metrach"
      },
      {
        "@type": "PropertyValue",
        "name": "Wzór na całkowitą długość",
        "value": "Strefa główna + Strefa brzegowa"
      },
      {
        "@type": "PropertyValue",
        "name": "Maksymalna bezpieczna długość pętli (Dzielnik obwodów)",
        "value": "90",
        "unitCode": "MTR"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Kalkulator ilości rury PEX (Ogrzewanie Podłogowe)",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Profesjonalny kalkulator do obliczania zapotrzebowania na rurę grzewczą z uwzględnieniem zagęszczenia w strefach brzegowych oraz limitów hydraulicznych pętli.",
    "featureList": [
      "Obliczanie całkowitej długości rury",
      "Podział na strefę główną i brzegową",
      "Sugestia wymaganej liczby pętli na rozdzielaczu"
    ]
  }
]
</script>

<div class="calc-intro">
    <h2>Prosty kalkulator ilości rury dla majsterkowicza</h2>
    <p>Oszacuj, ile metrów rury potrzebujesz do swojego pomieszczenia i sprawdź, czy woda da radę ją przepchnąć! Narzędzie oparte o wytyczne inżynierów z <a href="https://projekt-ogrzewania.pl/" style="color: #2563eb; font-weight: 700; text-decoration: none;">Projekt-Ogrzewania.pl</a>. Wynik wyraźnie wskaże Ci, czy podłogę musisz podzielić na kilka pętli grzewczych na rozdzielaczu.</p>
</div>

<div class="screed-calc" id="pipe-calc-app">
    <div class="calc-grid">
        <div class="config-side">
            
            <span class="section-title">1. Wymiary pomieszczenia</span>
            <div class="input-wrap">
                <div class="input-label-row"><label>Powierzchnia pokoju</label><span class="val-badge"><span id="v-area">30</span> m²</span></div>
                <input type="range" id="area" min="5" max="80" step="1" value="30">
            </div>
            
            <div class="input-wrap">
                <div class="input-label-row"><label>Łączna dł. ścian zewnętrznych</label><span class="val-badge"><span id="v-walls">10</span> m</span></div>
                <input type="range" id="walls" min="0" max="30" step="1" value="10">
                <div style="font-size: 11px; color: #64748b; margin-top: 8px;">Ściany, przez które ucieka ciepło (tu zagęszczamy rurę).</div>
            </div>

            <span class="section-title">2. Planowany rozstaw rur</span>
            <div class="type-selector" style="margin-bottom:0">
                <div class="type-btn" id="btn-roz-10">10 cm<span style="font-size:10px; font-weight:400">Gęsty (Łazienki / Pompa Ciepła)</span></div>
                <div class="type-btn active" id="btn-roz-15">15 cm<span style="font-size:10px; font-weight:400">Standard / Optymalny</span></div>
                <div class="type-btn" id="btn-roz-20">20 cm<span style="font-size:10px; font-weight:400">Rzadszy</span></div>
                <div class="type-btn" id="btn-roz-25">25 cm<span style="font-size:10px; font-weight:400">Tylko jako tło cieplne</span></div>
            </div>
        </div>

        <div class="result-side">
            <div id="mainBox" class="main-score-box">
                <span class="score-label">Szacowana całkowita długość rury</span>
                <span class="score-num" id="resTotal">--</span>
                <span class="score-label">metrów</span>
                <div id="risk-msg">⚠️ Uwaga!</div>
            </div>

            <div class="tech-grid">
                <div class="tech-item"><span>Rura w części głównej:</span><strong id="resMain">--</strong></div>
                <div class="tech-item"><span>Rura w strefie brzegowej (okna):</span><strong id="resEdge">--</strong></div>
                
                <div class="material-grid">
                    <div class="mini-card"><span>Wymagana liczba pętli (obwodów):</span><strong id="resLoops">--</strong></div>
                </div>
            </div>
            
            <div style="margin-top:20px; font-size:11px; color:#94a3b8; font-weight:700">PROPORCJA ZUŻYCIA RURY:</div>
            <div style="height:12px; display:flex; border-radius:6px; overflow:hidden; margin-top:10px; background:#e2e8f0">
                <div id="bar-main" style="background:var(--accent); width:80%; transition: 0.3s;"></div>
                <div id="bar-edge" style="background:#94a3b8; width:20%; transition: 0.3s;"></div>
            </div>
            <div style="display: flex; justify-content: space-between; font-size: 10px; color: #64748b; margin-top: 5px;">
                <span>Powierzchnia główna</span>
                <span>Zagęszczenie pod ścianami</span>
            </div>
        </div>
    </div>

    <div class="footer-cta">
        <div class="cta-text-side">
            <h3 style="margin:0 0 10px 0; color:#1e3a8a">Chcesz obliczyć cały dom?</h3>
            <p style="margin:0; font-size:14px; color:#475569">Ten uproszczony wzór świetnie sprawdza się do szybkiej estymacji jednego pokoju. Jeśli chcesz zaprojektować rozdzielacz dla całego domu, skorzystaj z naszego zaawansowanego narzędzia.</p>
        </div>
        <div class="cta-buttons-stack">
            <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/" class="cta-btn">
                KOMPLEKSOWY KALKULATOR →
            </a>
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cta-btn" style="background:#1e293b">
                ZAMÓW PROJEKT INŻYNIERSKI
            </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;">Metodyka obliczeń zapotrzebowania na rurę</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left; margin-bottom: 20px;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px 0; color: #475569;">Rozstaw rur</th>
                        <th style="padding: 10px 0; color: #475569;">Zużycie na 1 m²</th>
                        <th style="padding: 10px 0; color: #475569;">Komentarz</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">10 cm</td>
                        <td style="padding: 10px 0;">~10.0 m</td>
                        <td style="padding: 10px 0;">Łazienki i pompy ciepła.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">15 cm</td>
                        <td style="padding: 10px 0;">~6.6 m</td>
                        <td style="padding: 10px 0;">Standard rynkowy.</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">25 cm</td>
                        <td style="padding: 10px 0;">~4.0 m</td>
                        <td style="padding: 10px 0;">Wyłącznie jako tło cieplne.</td>
                    </tr>
                </tbody>
            </table>
            <p style="font-size: 13px; color: #475569; line-height: 1.6;">
                <strong>Wzór:</strong> Całkowita długość = (Powierzchnia / Rozstaw) + (2 * Długość ścian zewnętrznych).<br>
                Zgodnie z prawami fizyki, pojedyncza pętla z rury 16x2.0 nie powinna przekraczać 100 metrów ze względu na opory hydrauliczne.
            </p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA (Domain Lock)
    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('pipe-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 spacingMeters = 0.15; // Domyślny rozstaw to 15 cm
    var SAFE_LOOP_LIMIT = 90; // Oczekiwany dzielnik długości pętli
    var MAX_LOOP_LIMIT = 100; // Bezwzględny limit pętli
    
    function updateCalc() {
        var areaEl = document.getElementById('area');
        var wallsEl = document.getElementById('walls');
        
        if(!areaEl || !wallsEl) return;

        var area = parseFloat(areaEl.value);
        var walls = parseFloat(wallsEl.value);
        
        // Aktualizacja widoków wartości na suwakach
        document.getElementById('v-area').innerText = area;
        document.getElementById('v-walls').innerText = walls;

        // MATEMATYKA ZGODNA ZE WZOREM: (Powierzchnia / Rozstaw) + (2 * Ściany)
        var mainLength = area / spacingMeters;
        var edgeLength = 2 * walls;
        var totalLength = mainLength + edgeLength;
        
        // Obliczanie ilości pętli (zaokrąglanie w górę, docelowa pętla to 90m)
        var requiredLoops = Math.ceil(totalLength / SAFE_LOOP_LIMIT);
        
        // Aktualizacja wartości w widoku
        document.getElementById('resTotal').innerText = Math.round(totalLength);
        document.getElementById('resMain').innerText = Math.round(mainLength) + ' m';
        document.getElementById('resEdge').innerText = Math.round(edgeLength) + ' m';
        document.getElementById('resLoops').innerText = requiredLoops + (requiredLoops === 1 ? ' pętla' : (requiredLoops > 4 ? ' pętli' : ' pętle'));

        // Logika ostrzeżeń i kolorów
        var mBox = document.getElementById('mainBox');
        var rMsg = document.getElementById('risk-msg');
        var warnings = [];
        var boxColor = 'var(--success)';

        if (totalLength > MAX_LOOP_LIMIT) { 
            warnings.push('❌ <strong>Stanowczo za dużo!</strong> Długość przekracza bezpieczny limit (100 m). Zgodnie z fizyką przepływu, pompa nie podoła oporom hydraulicznym.<br><br>Pomieszczenie musi zostać podzielone na co najmniej <strong>' + requiredLoops + ' osobne pętle</strong> na rozdzielaczu!'); 
            boxColor = 'var(--danger)'; 
        } else if (totalLength > SAFE_LOOP_LIMIT) { 
            warnings.push('⚠️ <strong>Zwróć uwagę:</strong> Zbliżasz się do granicy wydajności pompy obiegowej (90-100m). Rozważ podzielenie na 2 pętle.'); 
            boxColor = 'var(--warning)'; 
        }

        if (warnings.length > 0) {
            rMsg.innerHTML = warnings.join('<br><br>');
            rMsg.style.display = 'block';
        } else {
            rMsg.style.display = 'none';
        }
        mBox.style.borderColor = boxColor;

        // Pasek postępu (proporcje)
        var barTotal = totalLength > 0 ? totalLength : 1; // zapobieganie dzieleniu przez zero
        document.getElementById('bar-main').style.width = ((mainLength / barTotal) * 100) + '%';
        document.getElementById('bar-edge').style.width = ((edgeLength / barTotal) * 100) + '%';
    }

    // Obsługa przycisków rozstawu
    var spacingOptions = {
        'btn-roz-10': 0.10,
        'btn-roz-15': 0.15,
        'btn-roz-20': 0.20,
        'btn-roz-25': 0.25
    };

    var btnKeys = Object.keys(spacingOptions);
    for (var i = 0; i < btnKeys.length; i++) {
        (function(btnId) {
            var btn = document.getElementById(btnId);
            if(btn) {
                btn.addEventListener('click', function(e) {
                    spacingMeters = spacingOptions[btnId];
                    // Reset klas active
                    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]);
    }

    // Obsługa suwaków
    var areaInput = document.getElementById('area');
    var wallsInput = document.getElementById('walls');
    
    if(areaInput) areaInput.addEventListener('input', updateCalc);
    if(wallsInput) wallsInput.addEventListener('input', updateCalc);

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



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

.premium-myth-box {
    max-width: 1050px;
    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.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

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

.myth-header h3 {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
}

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

.myth-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
    padding: 40px;
    background: #ffffff;
}

/* FLIP CARD STYLES */
.flip-card {
    background-color: transparent;
    width: 100%;
    min-height: 350px;
    perspective: 1000px;
    cursor: pointer;
}

.flip-card-inner {
    position: relative;
    width: 100%;
    height: 100%;
    text-align: center;
    transition: transform 0.6s cubic-bezier(0.4, 0.2, 0.2, 1);
    transform-style: preserve-3d;
}

.flip-card.is-flipped .flip-card-inner {
    transform: rotateY(180deg);
}

.flip-card-front, .flip-card-back {
    position: absolute;
    width: 100%;
    height: 100%;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    border-radius: 20px;
    padding: 30px 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05);
    border: 2px solid transparent;
}

.flip-card-front {
    background-color: #fef2f2;
    border-color: #fecaca;
    color: var(--danger);
}

.flip-card-back {
    background-color: #f0fdf4;
    border-color: #bbf7d0;
    color: var(--success);
    transform: rotateY(180deg);
}

.card-icon {
    font-size: 42px;
    margin-bottom: 15px;
    line-height: 1;
}

.card-title {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 10px;
    opacity: 0.8;
}

.card-text {
    font-size: 15px;
    font-weight: 700;
    line-height: 1.5;
    margin: 0;
}

.flip-card-back .card-title {
    color: var(--success);
}

.flip-card-back .card-text {
    font-size: 14px;
    font-weight: 500;
    color: #166534;
    line-height: 1.6;
}

.flip-hint {
    margin-top: 20px;
    font-size: 12px;
    font-weight: 700;
    background: rgba(255,255,255,0.8);
    padding: 6px 16px;
    border-radius: 20px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.myth-summary {
    margin: 0 40px 40px 40px;
    padding: 30px;
    background: #eff6ff;
    border-radius: 20px;
    border-left: 6px solid var(--accent);
}

.myth-summary h4 {
    margin: 0 0 10px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
}

.myth-summary p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: #334155;
}

@media (max-width: 900px) {
    .myth-grid { grid-template-columns: 1fr; gap: 20px; padding: 25px 20px; }
    .flip-card { min-height: 280px; }
    .myth-summary { margin: 0 20px 25px 20px; padding: 25px 20px; }
    .myth-header { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Dataset",
  "name": "Fakty i mity o samodzielnym montażu ogrzewania podłogowego",
  "description": "Zestawienie najczęstszych błędnych przekonań inwestorów dotyczących testów szczelności, rozstawu rur i limitów hydraulicznych w systemach podłogowych.",
  "license": "https://projekt-ogrzewania.pl/",
  "creator": {
    "@type": "Person",
    "name": "Robert Kucharski"
  }
}
</script>

<div class="premium-myth-box" id="diy-myth-app">
    <div class="myth-header">
        <h3>Fakty i Mity Samodzielnego Montażu</h3>
        <p>Wpisując w sieć "jak samemu zrobić podłogówkę", łatwo trafić na porady, które po wylaniu betonu zamienią się w koszmar. <strong>Kliknij kartę, aby obalić najgroźniejsze mity.</strong></p>
    </div>

    <div class="myth-grid">
        <div class="flip-card" onclick="this.classList.toggle('is-flipped')">
            <div class="flip-card-inner">
                <div class="flip-card-front">
                    <div class="card-icon">💧</div>
                    <div class="card-title">MIT #1</div>
                    <p class="card-text">"Szybkie sprawdzenie z węża ogrodowego na 2 bary wystarczy, żeby upewnić się, że nie ma przecieków."</p>
                    <div class="flip-hint" style="color: var(--danger)"><span>Odwróć kartę</span> ⤵</div>
                </div>
                <div class="flip-card-back">
                    <div class="card-icon">🏗️</div>
                    <div class="card-title">FAKT</div>
                    <p class="card-text"><strong>To punkt bez powrotu!</strong> Próba musi wynosić min. 6 barów przez 24 godziny. Co więcej, rury bezwzględnie <strong>muszą być pod ciśnieniem podczas wylewania betonu</strong>. Inaczej wibracje i masa wylewki mogą rozszczelnić zluzowane złączki, a awarię zauważysz po roku.</p>
                </div>
            </div>
        </div>

        <div class="flip-card" onclick="this.classList.toggle('is-flipped')">
            <div class="flip-card-inner">
                <div class="flip-card-front">
                    <div class="card-icon">🦓</div>
                    <div class="card-title">MIT #2</div>
                    <p class="card-text">"Standard to 15 cm, ale jak rozłożę rury co 25 cm, to i tak będzie ciepło, a oszczędzę na materiale."</p>
                    <div class="flip-hint" style="color: var(--danger)"><span>Odwróć kartę</span> ⤵</div>
                </div>
                <div class="flip-card-back">
                    <div class="card-icon">📉</div>
                    <div class="card-title">FAKT</div>
                    <p class="card-text"><strong>Stworzysz "zebrę termiczna".</strong> Fizyka jest bezlitosna – poczujesz stopą naprzemienne pasy chłodu i ciepła (różnica 5-7°C). Co gorsza, aby dogrzać dom, będziesz musiał podnieść temperaturę na kotle, drastycznie obniżając sprawność układu (COP).</p>
                </div>
            </div>
        </div>

        <div class="flip-card" onclick="this.classList.toggle('is-flipped')">
            <div class="flip-card-inner">
                <div class="flip-card-front">
                    <div class="card-icon">🔄</div>
                    <div class="card-title">MIT #3</div>
                    <p class="card-text">"Zrobię jedną długą pętlę na cały salon (np. 140 metrów), to będzie mniej rur i szybciej pójdzie."</p>
                    <div class="flip-hint" style="color: var(--danger)"><span>Odwróć kartę</span> ⤵</div>
                </div>
                <div class="flip-card-back">
                    <div class="card-icon">⚠️</div>
                    <div class="card-title">FAKT</div>
                    <p class="card-text"><strong>Zabijesz pompę obiegową.</strong> Absolutny limit dla rury PEX 16mm to 90-100 metrów. Przy zbyt długiej pętli opór hydrauliczny przewyższy możliwości tłoczenia pompy. W efekcie woda nie popłynie w ogóle, a połowa salonu pozostanie zimna.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="myth-summary">
        <h4>Podsumowanie: Beton nie wybacza</h4>
        <p>Montaż ogrzewania podłogowego to praca inżynierska z zakresu mechaniki płynów, a nie tylko zabawa w układanie wężyków na styropianie. Brak odpowiednich dylatacji, złe opory hydrauliczne i zaoszczędzenie kilku złotych na projekcie niemal zawsze kończy się remontem i skuwaniem płytek przy użyciu młota udarowego. <strong>Projekt i obliczenia to fundament sukcesu.</strong></p>
    </div>

    <noscript>
        <div style="padding: 30px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h2 style="font-size: 18px; color: #0f172a;">Najczęstsze mity przy montażu ogrzewania podłogowego</h2>
            <ul style="font-size: 14px; color: #334155; line-height: 1.6;">
                <li><strong>MIT 1: Szybkie sprawdzenie szczelności na 2 bary wystarczy.</strong><br>
                FAKT: Próba musi wynosić min. 6 barów przez 24h. Rury muszą być pod ciśnieniem podczas wylewania betonu, aby uniknąć mikrorozszczelnień na złączkach.</li>
                <li><strong>MIT 2: Rozstaw rur co 25 cm pozwala na oszczędności bez utraty komfortu.</strong><br>
                FAKT: Powstaje "zebra termiczna" (odczuwalne zimne pasy). Wymusza to podniesienie temperatury wody, co drastycznie obniża sprawność pompy ciepła (COP).</li>
                <li><strong>MIT 3: Można robić pętle o długości 140 metrów.</strong><br>
                FAKT: Granica dla rury 16mm to 100m. Powyżej tej długości opór hydrauliczny blokuje przepływ wody, a pompa obiegowa ulega przeciążeniu.</li>
            </ul>
        </div>
    </noscript>
</div>

<script>
// ZABEZPIECZENIE DOMENOWE (Domain Lock - Czysty JS)
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('diy-myth-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>
                    <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: #7f1d1d; line-height: 1.5;">To zestawienie mitów budowlanych jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i zostało wklejone na tę stronę bez zgody autora.</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: #2563eb;
    --accent-light: #eff6ff;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
    --text-muted: #475569;
}

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

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

.faq-header::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: var(--accent);
}

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

.faq-header h3 {
    margin: 0 0 15px 0;
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
}

.faq-header p {
    margin: 0;
    font-size: 15px;
    color: var(--text-muted);
    line-height: 1.6;
}

.faq-content {
    padding: 20px 40px 40px 40px;
}

/* INTERAKTYWNY AKORDEON Z MIKRO-INTERAKCJAMI */
.faq-item {
    border-bottom: 1px solid var(--border-color);
    transition: all 0.3s ease;
    border-left: 4px solid transparent;
    padding-left: 15px;
    margin-bottom: 10px;
    border-radius: 8px;
}

.faq-item:hover {
    background: #f8fafc;
    border-left-color: #cbd5e1;
}

.faq-item.active {
    background: #ffffff;
    border-left-color: var(--accent);
    box-shadow: 0 4px 15px rgba(0,0,0,0.03);
    padding-bottom: 10px;
    border-bottom: 1px solid transparent;
}

.faq-question {
    width: 100%;
    text-align: left;
    background: none;
    border: none;
    padding: 20px 0;
    font-size: 16px;
    font-weight: 700;
    color: var(--primary);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 15px;
    font-family: inherit;
    transition: color 0.2s ease;
}

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

.faq-q-icon {
    font-size: 22px;
    flex-shrink: 0;
    filter: grayscale(0.2);
    transition: 0.3s;
}

.faq-item.active .faq-q-icon {
    filter: grayscale(0);
    transform: scale(1.1);
}

.faq-q-text {
    flex-grow: 1;
    padding-right: 20px;
}

.faq-toggle-icon {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--bg-light);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--accent);
    font-size: 18px;
    font-weight: 300;
    transition: transform 0.4s ease, background 0.3s ease, color 0.3s ease;
    border: 1px solid #e2e8f0;
}

.faq-item.active .faq-toggle-icon {
    transform: rotate(45deg);
    background: var(--accent);
    color: #ffffff;
    border-color: var(--accent);
    box-shadow: 0 4px 10px rgba(37, 99, 235, 0.2);
}

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

/* Animacja otwierania CSS Grid Trick */
.faq-answer-wrapper {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

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

.faq-answer-inner {
    overflow: hidden;
}

.faq-answer-text {
    padding: 0 0 15px 37px; /* Wcięcie wyrównujące tekst z nagłówkiem */
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: var(--text-muted);
}

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

@media (max-width: 768px) {
    .faq-header { padding: 30px 20px 25px 20px; }
    .faq-content { padding: 10px 20px 30px 20px; }
    .faq-question { font-size: 15px; padding: 15px 0; }
    .faq-toggle-icon { width: 28px; height: 28px; font-size: 16px; }
    .faq-answer-text { padding-left: 0; }
}
</style>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "license": "https://projekt-ogrzewania.pl/",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Jakie ciśnienie powinna mieć próba szczelności podłogówki i jak długo trwać?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Złoty standard to minimum 6 barów (0,6 MPa) utrzymane przez 24 godziny. Co najważniejsze, rury muszą bezwzględnie pozostać pod ciśnieniem podczas wylewania jastrychu, aby uchronić je przed zgnieceniem przez masę betonu oraz wibratory, a także aby natychmiast wykryć ewentualne uszkodzenie łopatą.",
        "author": {
          "@type": "Person",
          "name": "Robert Kucharski"
        }
      }
    },
    {
      "@type": "Question",
      "name": "Gdzie koniecznie trzeba zastosować dylatacje w wylewce?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Dylatacje są bezwzględnie wymagane w progach drzwiowych, w narożnikach pomieszczeń w kształcie litery L oraz przy podziale dużych pól grzejnych (powyżej 40 m² lub gdy długość boku przekracza 8 metrów). Każdą rurę przechodzącą przez szczelinę dylatacyjną należy osłonić peszlem na odcinku min. 30 cm.",
        "author": {
          "@type": "Person",
          "name": "Robert Kucharski"
        }
      }
    },
    {
      "@type": "Question",
      "name": "Jaki jest optymal rozstaw rur ogrzewania podłogowego dla pompy ciepła?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Dla pomp ciepła zaleca się rozstaw 15 cm w głównych strefach mieszkalnych (salony, sypialnie) oraz zagęszczenie do 10 cm w łazienkach i tzw. strefach brzegowych (przy dużych oknach i drzwiach tarasowych). Zbyt rzadki rozstaw (20-30 cm) powoduje powstawanie odczuwalnej dla stóp 'zebry termicznej' i obniża sprawność (COP) układu.",
        "author": {
          "@type": "Person",
          "name": "Robert Kucharski"
        }
      }
    },
    {
      "@type": "Question",
      "name": "Jaka grubość styropianu na gruncie jest wymagana pod podłogówkę?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Aby spełnić normy Warunków Technicznych (WT 2021), wymagane jest minimum 12-15 cm styropianu EPS 100 lub twardszego. Zastosowanie zbyt cienkiej izolacji (np. 5 cm) skutkuje ucieczką nawet 25-30% wyprodukowanego ciepła bezpośrednio w ziemię, co generuje ogromne straty finansowe.",
        "author": {
          "@type": "Person",
          "name": "Robert Kucharski"
        }
      }
    },
    {
      "@type": "Question",
      "name": "Ile wynosi maksymalna długość pętli z rury PEX 16 mm?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Absolutne maksimum dla rury 16x2.0 mm to 100 metrów, jednak w profesjonalnych projektach zaleca się nie przekraczać 80-90 metrów. Zbyt długa pętla stawia opór hydrauliczny przekraczający możliwości standardowej pompy obiegowej, co skutkuje brakiem przepływu i niedogrzaniem pomieszczenia.",
        "author": {
          "@type": "Person",
          "name": "Robert Kucharski"
        }
      }
    }
  ]
}
</script>

<div class="premium-faq-box" id="faq-app-lock">
    <div class="faq-header">
        <div class="faq-badge">Baza Wiedzy</div>
        <h3>O to najczęściej pytają inwestorzy</h3>
        <p>Krótkie i konkretne odpowiedzi na najważniejsze pytania dotyczące prawidłowego wykonania instalacji ogrzewania podłogowego.</p>
    </div>

    <div class="faq-content">
        
        <div class="faq-item">
            <button class="faq-question">
                <span class="faq-q-icon">💦</span>
                <span class="faq-q-text">1. Jakie ciśnienie powinna mieć próba szczelności i jak długo trwać?</span>
                <div class="faq-toggle-icon">+</div>
            </button>
            <div class="faq-answer-wrapper">
                <div class="faq-answer-inner">
                    <p class="faq-answer-text">
                        Złoty standard to <strong>minimum 6 barów (0,6 MPa)</strong> utrzymane przez 24 godziny. Co najważniejsze, rury muszą bezwzględnie <strong>pozostać pod ciśnieniem podczas wylewania jastrychu</strong>, aby uchronić je przed zgnieceniem przez masę betonu oraz wibratory, a także aby natychmiast wykryć na manometrze ewentualne uszkodzenie mechaniczne (np. łopatą).
                    </p>
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <span class="faq-q-icon">💥</span>
                <span class="faq-q-text">2. Gdzie koniecznie trzeba zastosować dylatacje w wylewce?</span>
                <div class="faq-toggle-icon">+</div>
            </button>
            <div class="faq-answer-wrapper">
                <div class="faq-answer-inner">
                    <p class="faq-answer-text">
                        Dylatacje są bezwzględnie wymagane w <strong>progach drzwiowych</strong>, w narożnikach pomieszczeń w kształcie litery L oraz przy podziale dużych pól grzejnych (powyżej 40 m² lub gdy długość jednego boku przekracza 8 metrów). Każdą rurę przechodzącą przez szczelinę dylatacyjną należy <strong>osłonić peszlem</strong> na odcinku min. 30 cm, aby pracujący beton jej nie przeciął.
                    </p>
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <span class="faq-q-icon">🦓</span>
                <span class="faq-q-text">3. Jaki jest optymalny rozstaw rur podłogówki dla pompy ciepła?</span>
                <div class="faq-toggle-icon">+</div>
            </button>
            <div class="faq-answer-wrapper">
                <div class="faq-answer-inner">
                    <p class="faq-answer-text">
                        Dla pomp ciepła zaleca się <strong>rozstaw 15 cm</strong> w głównych strefach mieszkalnych (salony, sypialnie) oraz zagęszczenie do <strong>10 cm</strong> w łazienkach i tzw. strefach brzegowych (przy oknach i drzwiach tarasowych). Zbyt rzadki rozstaw (20-30 cm) powoduje powstawanie "zebry termicznej" i wymusza podniesienie temperatury zasilania, co drastycznie obniża sprawność układu.
                    </p>
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <span class="faq-q-icon">🧱</span>
                <span class="faq-q-text">4. Jaka grubość styropianu na gruncie jest wymagana pod rury?</span>
                <div class="faq-toggle-icon">+</div>
            </button>
            <div class="faq-answer-wrapper">
                <div class="faq-answer-inner">
                    <p class="faq-answer-text">
                        Aby spełnić aktualne normy (WT 2021), wymagane jest <strong>minimum 12-15 cm styropianu EPS 100</strong> lub twardszego. Zastosowanie zbyt cienkiej izolacji (np. 5 cm) skutkuje ucieczką nawet 25-30% wyprodukowanego ciepła bezpośrednio w ziemię, co generuje ogromne straty finansowe przez cały okres życia budynku.
                    </p>
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <span class="faq-q-icon">🔄</span>
                <span class="faq-q-text">5. Ile wynosi maksymalna bezpieczna długość pętli z rury 16 mm?</span>
                <div class="faq-toggle-icon">+</div>
            </button>
            <div class="faq-answer-wrapper">
                <div class="faq-answer-inner">
                    <p class="faq-answer-text">
                        Absolutne maksimum dla rury 16x2.0 mm to <strong>100 metrów</strong>, jednak w profesjonalnych projektach inżynierskich zaleca się nie przekraczać <strong>80-90 metrów</strong>. Zbyt długa pętla stwarza opór hydrauliczny przekraczający możliwości tłoczenia standardowej pompy obiegowej, co ostatecznie skutkuje brakiem przepływu.
                    </p>
                </div>
            </div>
        </div>

    </div>

    <noscript>
        <div style="padding: 30px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h2 style="font-size: 18px; color: #0f172a; margin-bottom: 20px;">Najczęściej zadawane pytania (Baza Wiedzy)</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; color: #475569;">Pytanie</th>
                        <th style="padding: 10px; color: #475569;">Odpowiedź eksperta</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px; font-weight: bold;">Jakie ciśnienie próby szczelności?</td>
                        <td style="padding: 10px;">Minimum 6 barów przez 24h. Zostawić ciśnienie na czas wylewki.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px; font-weight: bold;">Gdzie stosować dylatacje?</td>
                        <td style="padding: 10px;">Progi, narożniki, pola > 40 m2. Przejścia osłonić peszlem (30 cm).</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px; font-weight: bold;">Jaki rozstaw dla pompy ciepła?</td>
                        <td style="padding: 10px;">Środek: 15 cm. Przy oknach: 10 cm. Zapobiega to zebrom termicznym.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px; font-weight: bold;">Grubość izolacji EPS na gruncie?</td>
                        <td style="padding: 10px;">Min. 12-15 cm EPS 100 zgodnie z WT 2021. Zapobiega stratom ciepła.</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px; font-weight: bold;">Maksymalna długość rury w pętli?</td>
                        <td style="padding: 10px;">Zalecane 80-90m, bezwzględne max 100m. Zapobiega przeciążeniu pompy.</td>
                    </tr>
                </tbody>
            </table>
        </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('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; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div></div>';
        }
        return; 
    }

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

    faqItems.forEach(item => {
        const questionBtn = item.querySelector('.faq-question');
        
        questionBtn.addEventListener('click', () => {
            const isActive = item.classList.contains('active');
            
            // Zamyka pozostałe
            faqItems.forEach(otherItem => {
                otherItem.classList.remove('active');
            });

            // Otwiera/Zamyka kliknięty
            if (!isActive) {
                item.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --sum-bg-gradient: linear-gradient(145deg, #1e293b 0%, #0f172a 100%);
    --sum-text: #f8fafc;
    --sum-accent: #3b82f6;
    --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(59,130,246,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(59, 130, 246, 0.5);
    border: 1px solid #60a5fa;
}

.sum-btn-primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(59, 130, 246, 0.6);
    background: #2563eb;
}

.sum-btn-secondary {
    background: transparent;
    color: #ffffff !important;
    border: 2px solid #475569;
}

.sum-btn-secondary:hover {
    border-color: #cbd5e1;
    background: rgba(255, 255, 255, 0.05);
}

@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: Beton nie wybacza - błędy przy montażu ogrzewania podłogowego",
    "abstract": "Samodzielny montaż ogrzewania podłogowego to zadanie inżynierskie. Błędy hydrauliczne i konstrukcyjne stają się nieodwracalne po wylaniu betonu. Projekt instalacji to kluczowa inwestycja zapewniająca bezpieczeństwo na dekady.",
    "license": "https://projekt-ogrzewania.pl/",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Analiza ryzyka samodzielnego montażu podłogówki",
    "description": "Zestawienie porównawcze oszczędności na projekcie versus koszty naprawy błędów montażowych po wylaniu betonu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</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</h2>
        </div>

        <p class="summary-text">
            Decydując się na samodzielne wykonanie instalacji ogrzewania podłogowego, stajesz przed <strong>zadaniem inżynierskim</strong>, a nie tylko pracą fizyczną. Pięć wymienionych błędów – od braku ciśnienia podczas wylewki, przez ignorowanie dylatacji, po zbyt długie pętle – to problemy, które w przeciwieństwie do krzywo przyklejonej tapety, <strong>zostaną z Tobą na zawsze pod warstwą płytek i wylewki.</strong>
        </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">1 000 zł</span>
                <p class="risk-desc">Tyle rzekomo zaoszczędzisz rezygnując z projektu lub zagęszczenia rur. Może to jednak skutkować koniecznością <strong>skucia całej podłogi za 10 000 zł</strong>.</p>
            </div>
            <div class="risk-card good-choice">
                <span class="risk-label">Prawdziwa Inwestycja</span>
                <span class="risk-value">30 Lat</span>
                <p class="risk-desc">Projekt i precyzyjne wyliczenia to jedyna inwestycja w tej układance, która nie wymaga wylewki, a daje <strong>zwrot w postaci cichej i taniej pracy instalacji przez dekady.</strong></p>
            </div>
        </div>

        <p class="summary-text">
            Traktuj ten artykuł jako kompendium wiedzy i <strong>listę kontrolną, którą musisz odhaczyć przed przyjazdem betoniarki</strong>. A jeśli poczujesz, że wyliczenia hydrauliczne lub cieplne Cię przerastają – skonsultuj się z profesjonalistą.
        </p>

        <div class="summary-actions">
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="sum-btn sum-btn-primary">
                📐 SKONSULTUJ SIĘ Z PROJEKTANTEM
            </a>
            <a href="https://projekt-ogrzewania.pl/blog/" class="sum-btn sum-btn-secondary">
                📖 CZYTAJ NASZ BLOG
            </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 samodzielnego montażu podłogówki</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;">Podejście do inwestycji</th>
                        <th style="padding: 10px 0; color: #94a3b8;">Szacowany koszt początkowy</th>
                        <th style="padding: 10px 0; color: #94a3b8;">Konsekwencje</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #1e293b;">
                        <td style="padding: 10px 0; font-weight: bold;">Oszczędność na projekcie</td>
                        <td style="padding: 10px 0; color: #ef4444;">-1000 PLN (pozornie)</td>
                        <td style="padding: 10px 0;">Ryzyko skucia posadzki i wysokich rachunków.</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">Profesjonalny projekt</td>
                        <td style="padding: 10px 0; color: #10b981;">Koszt rynkowy</td>
                        <td style="padding: 10px 0;">Gwarancja cichej i taniej pracy przez min. 30 lat.</td>
                    </tr>
                </tbody>
            </table>
            <p style="font-size: 13px; line-height: 1.6;">
                Samodzielny montaż to zadanie inżynierskie. Błędy hydrauliczne i konstrukcyjne stają się nieodwracalne po wylaniu betonu. Projekt instalacji to jedyna pewna polisa bezpieczeństwa.
            </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/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/">Samodzielny montaż ogrzewania podłogowego – 5 błędów, których nie naprawisz po wylewce.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Rura PEX do ogrzewania podłogowego.</title>
		<link>https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/</link>
					<comments>https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Mon, 03 Mar 2025 10:56:05 +0000</pubDate>
				<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Instalacje hydrauliczne]]></category>
		<category><![CDATA[Nowoczesne materiały budowlane]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Projektowanie systemów grzewczych]]></category>
		<category><![CDATA[Rura PEX]]></category>
		<category><![CDATA[Rury do ogrzewania]]></category>
		<category><![CDATA[Rury do podłogówki]]></category>
		<category><![CDATA[Systemy rurowe]]></category>
		<category><![CDATA[Technologie budowlane]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pex-a]]></category>
		<category><![CDATA[pex-b]]></category>
		<category><![CDATA[pex-c]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[rura pex]]></category>
		<category><![CDATA[system rurowy]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2314</guid>

					<description><![CDATA[<p>Rura PEX do ogrzewania podłogowego to jedno z najczęściej stosowanych rozwiązań w nowoczesnych systemach grzewczych. Dzięki odporności na wysokie temperatury, elastyczności oraz długiej żywotności, PEX jest wyborem numer jeden zarówno dla domów jednorodzinnych, jak i większych budynków użytkowych. W artykule omawiamy zalety tego materiału, porównujemy różne rodzaje PEX (PE-Xa, PE-Xb, PE-Xc), a także doradzamy, jak dobrać odpowiednie rury do projektu ogrzewania podłogowego. Przedstawiamy również koszty inwestycji oraz możliwe oszczędności, jakie można osiągnąć dzięki tej technologii.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/">Rura PEX do ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Rura PEX do ogrzewania podłogowego</strong> to obecnie jeden z najpopularniejszych materiałów stosowanych w nowoczesnych instalacjach grzewczych. Dzięki swojej wyjątkowej odporności na wysokie temperatury oraz uszkodzenia mechaniczne, usieciowany polietylen (PEX) stał się synonimem trwałości i efektywności. W tym artykule przyjrzymy się, dlaczego warto postawić na ten materiał, jak projektować systemy z jego wykorzystaniem oraz jakie korzyści finansowe i eksploatacyjne możesz odnieść.</p>



<h2 class="wp-block-heading">Zalety rur PEX w systemach podłogowych.</h2>



<h3 class="wp-block-heading"><em>Odporność na ekstremalne temperatury – klucz do bezpieczeństwa</em>.</h3>



<p class="wp-block-paragraph"><a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">Rury do ogrzewania podłogowego</a> PEX zachowują stabilność nawet przy temperaturach do <strong>95°C</strong>, co znacznie przekracza typowe potrzeby ogrzewania podłogowego (zwykle 35–55°C). Dzięki temu:</p>



<ul class="wp-block-list">
<li>Ryzyko przegrzania jest minimalne.</li>



<li>Materiał nie odkształca się, nawet przy długotrwałym kontakcie z gorącą wodą.</li>



<li>Idealnie sprawdza się w połączeniu z pompą ciepła lub kotłem kondensacyjnym.</li>
</ul>



<p class="wp-block-paragraph"><strong>Przykład:</strong>&nbsp;W domach z niskotemperaturowymi źródłami ciepła (np. pompy ciepła) PEX gwarantuje równomierny rozkład temperatury bez ryzyka uszkodzenia instalacji.</p>



<h3 class="wp-block-heading"><em>Wytrzymałość mechaniczna – ochrona przed pęknięciami i korozją</em>.</h3>



<p class="wp-block-paragraph">W przeciwieństwie do rur metalowych, PEX:</p>



<ul class="wp-block-list">
<li>Nie koroduje, nawet po latach kontaktu z wodą.</li>



<li>Jest odporny na uderzenia i ścieranie dzięki elastycznej strukturze.</li>



<li>Nie wymaga konserwacji, co obniża koszty eksploatacji.</li>
</ul>



<p class="wp-block-paragraph"><strong>Statystyka:</strong>&nbsp;Badania wykazują, że żywotność rur PEX w systemach podłogowych sięga nawet&nbsp;<strong>50 lat</strong>, przy założeniu poprawnego montażu.</p>



<h3 class="wp-block-heading"><em>Elastyczność montażu – oszczędność czasu i pieniędzy</em>.</h3>



<p class="wp-block-paragraph">Rury PEX można giąć pod kątem nawet&nbsp;<strong>90 stopni</strong>&nbsp;bez użycia kształtek, co:</p>



<ul class="wp-block-list">
<li>Zmniejsza liczbę połączeń (mniej punktów potencjalnych awarii).</li>



<li>Przyspiesza instalację – np. w domu 120 m² układanie rur zajmuje ok. <strong>2 dni</strong>.</li>



<li>Umożliwia dopasowanie do nietypowych kształtów pomieszczeń.</li>
</ul>



<h2 class="wp-block-heading">Dane techniczne rur PEX – kluczowe parametry dla efektywnego ogrzewania podłogowego.</h2>



<h3 class="wp-block-heading"><em>Rodzaje usieciowanego polietylenu: PE-Xa, PE-Xb, PE-Xc</em>.</h3>



<ul class="wp-block-list">
<li><strong>PE-Xa</strong>: Sieciowany chemicznie (najwyższa elastyczność, idealny do ciasnych przestrzeni).</li>



<li><strong>PE-Xb</strong>: Sieciowany w procesie silanowym (niższy koszt, wysoka odporność na chlor).</li>



<li><strong>PE-Xc</strong>: Sieciowany promieniowaniem (brak dodatków chemicznych, ekologiczny wybór).</li>
</ul>



<p class="wp-block-paragraph"><strong>Wskazówka:</strong>&nbsp;Do ogrzewania podłogowego najczęściej wybiera się PE-Xa lub PE-Xb ze względu na optymalny stosunek ceny do właściwości.</p>



<h3 class="wp-block-heading"><em>Wytrzymałość mechaniczna i temperatura pracy – co mówią normy?</em></h3>



<p class="wp-block-paragraph"><strong>Rury PEX do ogrzewania podłogowego</strong> muszą spełniać rygorystyczne normy, takie jak <strong><a href="https://projekt-ogrzewania.pl/norma-en-iso-15875/">EN ISO 15875</a></strong> lub <strong>DIN 16892</strong>, które określają ich właściwości eksploatacyjne. Oto najważniejsze parametry techniczne:</p>



<ul class="wp-block-list">
<li><strong>Maksymalna temperatura pracy</strong>: <strong>95°C</strong> (krótkotrwale) i <strong>70°C</strong> (stała praca).</li>



<li><strong>Ciśnienie robocze</strong>: <strong>6–10 bar</strong> w zależności od średnicy i grubości ścianki.</li>



<li><strong>Wytrzymałość na rozciąganie</strong>: <strong>20–25 MPa</strong> – porównywalne z niektórymi stopami metali.</li>



<li><strong>Współczynnik rozszerzalności cieplnej</strong>: <strong>0,15–0,2 mm/m na 10°C</strong> (3–4 razy niższy niż w przypadku PCV).</li>
</ul>



<p class="wp-block-paragraph"><strong>Przykład</strong>: Rura PEX o średnicy&nbsp;<strong>16 mm</strong>&nbsp;i grubości ścianki&nbsp;<strong>2 mm</strong>&nbsp;wytrzymuje ciśnienie&nbsp;<strong>10 bar</strong>&nbsp;w temperaturze&nbsp;<strong>70°C</strong>, co jest wartością wystarczającą dla większości systemów podłogowych w domach jednorodzinnych.</p>



<h3 class="wp-block-heading"><em>Średnica i grubość ścianki – jak dobrać je do projektu?</em></h3>



<p class="wp-block-paragraph">Wybór odpowiednich wymiarów rur PEX wpływa na wydajność grzewczą i koszty inwestycji. Najczęściej stosowane warianty to:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th><strong>Średnica zewnętrzna</strong></th><th><strong>Grubość ścianki</strong></th><th><strong>Zastosowanie</strong></th></tr></thead><tbody><tr><td><strong>16 mm</strong></td><td>2,0 mm</td><td>Standardowe pomieszczenia (sypialnie, salony)</td></tr><tr><td><strong>20 mm</strong></td><td>2,3 mm</td><td>Duże powierzchnie lub strefy z wysokimi stratami ciepła</td></tr><tr><td><strong>25 mm</strong></td><td>3,0 mm</td><td>Obiekty przemysłowe lub baseny</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>Wskazówka</strong>: W systemach podłogowych dominują rury&nbsp;<strong>16 mm</strong>&nbsp;i&nbsp;<strong>20 mm</strong>, ponieważ zapewniają optymalny przepływ wody przy minimalnych stratach ciśnienia.</p>



<h3 class="wp-block-heading"><em>Bariera EVOH – dlaczego chroni instalację?</em></h3>



<p class="wp-block-paragraph">Większość rur PEX posiada warstwę&nbsp;<strong>EVOH (etleno-winylowego alkoholu)</strong>, która:</p>



<ul class="wp-block-list">
<li>Zmniejsza dyfuzję tlenu do <strong>0,1 g/m³ na dobę</strong> (dla porównania: rury bez bariery – nawet <strong>10 g/m³</strong>).</li>



<li>Zapobiega korozji elementów metalowych (np. kotłów, zaworów).</li>



<li>Wydłuża żywotność instalacji o <strong>20–30%</strong>.</li>
</ul>



<p class="wp-block-paragraph"><strong>Norma EN ISO 15875</strong>&nbsp;dopuszcza maksymalną przepuszczalność tlenu na poziomie&nbsp;<strong>0,5 g/m³ na dobę</strong>&nbsp;– warto więc wybierać rury z wartościami poniżej tego progu.</p>



<h3 class="wp-block-heading"><em>Klasyfikacja SDR (Standard Dimension Ratio) – co oznacza?</em></h3>



<p class="wp-block-paragraph">Wskaźnik <strong>SDR</strong> określa stosunek średnicy zewnętrznej rury do grubości jej ścianki. Im niższy SDR, tym większa wytrzymałość mechaniczna. Dla <a href="https://projekt-ogrzewania.pl/category/ogrzewanie-podlogowe/">ogrzewania podłogowego</a> rekomendowane są:</p>



<ul class="wp-block-list">
<li><strong>SDR 7,4</strong>: Dla rur <strong>16×2,0 mm</strong> – uniwersalne rozwiązanie.</li>



<li><strong>SDR 9</strong>: Dla rur <strong>20×2,3 mm</strong> – stosowane w systemach wymagających wyższego przepływu.</li>
</ul>



<p class="wp-block-paragraph"><strong>Kalkulacja</strong>: Rura&nbsp;<strong>20×2,3 mm</strong>&nbsp;ma SDR = 20 / 2,3 ≈&nbsp;<strong>8,7</strong>&nbsp;– mieści się w bezpiecznym zakresie dla instalacji podłogowych.</p>



<h3 class="wp-block-heading"><em>Certyfikacje i atesty – na co zwracać uwagę?</em></h3>



<p class="wp-block-paragraph">Przed zakupem rur PEX sprawdź, czy posiadają:</p>



<ul class="wp-block-list">
<li><strong>Atest PZH</strong>: Potwierdza bezpieczeństwo kontaktu z wodą pitną.</li>



<li><strong>Certyfikat DVGW</strong>: Wymagany w instalacjach grzewczych w Niemczech (gwarancja jakości).</li>



<li><strong>Oznaczenie CE</strong>: Spełnienie norm Unii Europejskiej.</li>
</ul>



<p class="wp-block-paragraph"><strong>Przykład marki</strong>: Rury takich producentów jak Kisan, Rehau, Wawin czy Upnor posiadają wszystkie powyższe certyfikaty i są rekomendowane przez producentów kotłów, takich jak Vaillant czy Viessmann.</p>



<h2 class="wp-block-heading"><strong>Projektowanie ogrzewania podłogowego z rur PEX – krok po kroku</strong>.</h2>



<h3 class="wp-block-heading"><em>Planowanie rozkładu rur – klucz do efektywności</em>.</h3>



<ul class="wp-block-list">
<li><strong>Rozstaw rur</strong>: Optymalna odległość między rurami to <strong>10–25 cm</strong> (w zależności od strat ciepła w pomieszczeniu).</li>



<li><strong>Długość pętli</strong>: Zaleca się, aby jedna pętla nie przekraczała <strong>90–100 m</strong> (zapobiega nierównomiernemu grzaniu).</li>
</ul>



<p class="wp-block-paragraph"><strong>Przykład projektu:</strong> Dla domu o powierzchni 150 m² potrzeba ok. <strong>1600–1800 m rur PEX</strong> (przy rozstawie 10 cm).</p>



<h3 class="wp-block-heading"><em>Wybór średnicy rur a wydajność systemu</em>.</h3>



<ul class="wp-block-list">
<li><strong>16 mm</strong>: Standard dla pomieszczeń o średnim zapotrzebowaniu na ciepło.</li>



<li><strong>20 mm</strong>: Stosowane w dużych obiektach lub strefach o wysokich stratach ciepła (np. przeszklone elewacje).</li>
</ul>



<p class="wp-block-paragraph"><strong>Kalkulacja:</strong>&nbsp;W salonie o powierzchni 30 m² z rurami 16 mm i rozstawie 15 cm potrzeba ok.&nbsp;<strong>200 m rur</strong>.</p>



<p class="wp-block-paragraph"><strong>Wskazówka</strong>: Pamiętaj by uwzględnić odpowiednią średnicę rur do ogrzewania podłogowego podczas <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">projektowania ogrzewania podłogowego</a>.</p>



<h2 class="wp-block-heading"><strong>Koszty inwestycji vs. oszczędności – ile możesz zyskać?</strong></h2>



<h3 class="wp-block-heading"><em>Porównanie z tradycyjnymi materiałami</em>.</h3>



<ul class="wp-block-list">
<li><strong>PEX vs. miedź</strong>: Koszt materiału jest niższy o <strong>40–60%</strong>, a montaż o <strong>30% szybszy</strong>.</li>



<li><strong>PEX vs. PE-RT</strong>: Rury PEX są droższe o <strong>10–15%</strong>, ale trwalsze o <strong>20–30 lat</strong>.</li>
</ul>



<p class="wp-block-paragraph"><strong>Analiza przypadku:</strong>&nbsp;Dla domu 100 m² inwestycja w PEX to wydatek ok.&nbsp;<strong>8 000–12 000 zł</strong>&nbsp;(w tym materiały i robocizna), ale zwraca się po&nbsp;<strong>5–7 latach</strong>&nbsp;dzięki oszczędności energii.</p>



<h3 class="wp-block-heading"><em>Przykładowe wyliczenia dla domów różnej wielkości</em>.</h3>



<ol start="1" class="wp-block-list">
<li><strong>Dom 80 m²</strong>:
<ul class="wp-block-list">
<li>Długość rur: <strong>600–800 m</strong>.</li>



<li>Koszt materiału: <strong>2500–3000 zł</strong>.</li>



<li>Roczne oszczędności na ogrzewaniu: <strong>15–20%</strong> w porównaniu do grzejników.</li>
</ul>
</li>



<li><strong>Biurowiec 300 m²</strong>:
<ul class="wp-block-list">
<li>Długość rur: <strong>1800 – 2500 m</strong>.</li>



<li>Koszt materiału: <strong>8000 – 12000 zł</strong>.</li>



<li>Redukcja kosztów energii: <strong>25–30%</strong>.</li>
</ul>
</li>
</ol>



<h2 class="wp-block-heading"><strong>FAQ – Najczęściej zadawane pytania o rury PEX do ogrzewania podłogowego</strong>.</h2>



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1740998259055"><strong class="schema-faq-question"><strong>Czym różnią się rury PEX-a, PEX-b i PEX-c?</strong></strong> <p class="schema-faq-answer">PEX-a jest najbardziej elastyczny, co ułatwia montaż w ciasnych przestrzeniach. PEX-b ma wysoką odporność na chlor, a PEX-c to opcja ekologiczna, sieciowana promieniowaniem.</p> </div> <div class="schema-faq-section" id="faq-question-1740998271752"><strong class="schema-faq-question"><strong>Jaką średnicę rur PEX wybrać do ogrzewania podłogowego?</strong></strong> <p class="schema-faq-answer">Najczęściej stosowane są rury o średnicy 16 mm lub 20 mm. Mniejsze średnice sprawdzają się w standardowych pomieszczeniach, a większe w miejscach o większych stratach ciepła.</p> </div> <div class="schema-faq-section" id="faq-question-1740998282517"><strong class="schema-faq-question"><strong>Czy rury PEX są odporne na korozję?</strong></strong> <p class="schema-faq-answer">Tak, rury PEX nie korodują i są odporne na działanie chemikaliów, co wydłuża ich żywotność w instalacji grzewczej.</p> </div> <div class="schema-faq-section" id="faq-question-1740998294153"><strong class="schema-faq-question"><strong>Jaka jest żywotność rur PEX w ogrzewaniu podłogowym?</strong></strong> <p class="schema-faq-answer">Przy prawidłowym montażu i eksploatacji rury PEX mogą działać nawet 50 lat, co czyni je niezwykle trwałym rozwiązaniem.</p> </div> <div class="schema-faq-section" id="faq-question-1740998330304"><strong class="schema-faq-question"><strong>Czy rury PEX wymagają konserwacji?</strong></strong> <p class="schema-faq-answer">Nie, rury PEX nie wymagają konserwacji, co sprawia, że są praktycznie bezobsługowe i nie generują dodatkowych kosztów eksploatacyjnych.</p> </div> </div>



<h2 class="wp-block-heading"><strong>Podsumowanie: PEX to inwestycja w komfort i oszczędności</strong>.</h2>



<p class="wp-block-paragraph"><strong>Rury PEX do ogrzewania podłogowego</strong>&nbsp;to rozwiązanie, które łączy w sobie technologiczną innowacyjność z ekonomiczną opłacalnością. Niezależnie od tego, czy projektujesz dom jednorodzinny, czy duży obiekt komercyjny, usieciowany polietylen zapewni Ci bezawaryjną pracę instalacji przez dziesięciolecia. Kluczem sukcesu jest jednak współpraca z doświadczonym projektantem, który dobierze optymalny rozstaw rur i uwzględni specyfikę Twojego budynku.</p>



<p class="wp-block-paragraph"><em><strong>Warto pamiętać:</strong> Nawet najlepszy materiał nie zastąpi profesjonalnego montażu – zawsze zatrudniaj certyfikowanych instalatorów!</em></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="LIGQp3iH8r"><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=P91XAQYSIX#?secret=LIGQp3iH8r" data-secret="LIGQp3iH8r" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/">Rura PEX do ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
