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

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa rozdzielacz - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/tag/rozdzielacz/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Rotametr (wskaźnik przepływu) w rozdzielaczu ogrzewania podłogowego.</title>
		<link>https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/</link>
					<comments>https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 29 Nov 2025 17:11:32 +0000</pubDate>
				<category><![CDATA[Hydraulika]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Konserwacja systemów grzewczych]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Regulacja instalacji]]></category>
		<category><![CDATA[Rozdzielacz do podłogówki]]></category>
		<category><![CDATA[Rozdzielacze do podłogówki]]></category>
		<category><![CDATA[Rozdzielacze grzewcze]]></category>
		<category><![CDATA[Serwis i konserwacja]]></category>
		<category><![CDATA[hydraulika]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pętle grzewcze]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[przepływomierz]]></category>
		<category><![CDATA[regulacja przepływu]]></category>
		<category><![CDATA[rotametr]]></category>
		<category><![CDATA[rozdzielacz]]></category>
		<category><![CDATA[wskaźnik przepływu]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2873</guid>

					<description><![CDATA[<p>Rotametr (wskaźnik przepływu) w rozdzielaczu ogrzewania podłogowego to jeden z tych elementów instalacji, które wyglądają niepozornie, ale mają ogromny wpływ na komfort cieplny całego domu. W artykule wyjaśniam, jak działa rotametr, dlaczego jest kluczowy dla równoważenia hydraulicznego oraz jak prawidłowo ustawić przepływy na każdej pętli podłogówki. Dzięki temu dowiesz się, jak uniknąć przegrzewania pomieszczeń, zimnych stref na podłodze i niepotrzebnych strat energii.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">Rotametr (wskaźnik przepływu) w rozdzielaczu ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --primary: #0f172a;
    --accent: #0284c7; /* Hydrauliczny, chłodny niebieski */
    --accent-hover: #0369a1;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f0f9ff;
    --border-color: #e2e8f0;
    --glass-bg: rgba(255, 255, 255, 0.9);
}

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

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

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

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

/* Wewnętrzne nagłówki SEO */
.hero-content h2 {
    font-size: 28px;
    font-weight: 800;
    color: var(--primary);
    line-height: 1.2;
    margin-bottom: 20px;
    letter-spacing: -0.5px;
}

.hero-content h3 {
    font-size: 20px;
    font-weight: 700;
    color: #334155;
    margin-top: 35px;
    margin-bottom: 15px;
}

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

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

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

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

/* Interaktywne Zakładki (Tabs) eliminujące "ścianę tekstu" */
.hero-tabs-container {
    margin: 25px 0 35px 0;
    background: #f8fafc;
    border: 1px solid var(--border-color);
    border-radius: 16px;
    padding: 10px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.02);
}

.hero-tab-buttons {
    display: flex;
    gap: 10px;
    margin-bottom: 15px;
    background: #ffffff;
    padding: 8px;
    border-radius: 12px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.04);
}

.hero-tab-btn {
    flex: 1;
    padding: 14px 20px;
    border: none;
    background: transparent;
    border-radius: 10px;
    font-family: 'Inter', sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: #64748b;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.hero-tab-btn:hover {
    background: #f1f5f9;
    color: var(--primary);
}

.hero-tab-btn.active {
    background: var(--accent);
    color: #ffffff;
    box-shadow: 0 4px 12px rgba(2, 132, 199, 0.25);
}

.hero-tab-panels {
    padding: 10px 20px 20px 20px;
    min-height: 140px; /* Zapobiega skakaniu wysokości przy krótkim tekście */
}

.hero-tab-panel {
    display: none;
    animation: fadeSlideUp 0.4s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.hero-tab-panel.active {
    display: block;
}

.hero-tab-panel p.hero-text {
    margin-bottom: 0;
}

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

/* Moduły podsumowujące */
.hero-modules-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: #94a3b8;
    letter-spacing: 1px;
    margin-top: 40px;
    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(3, 1fr);
    gap: 15px;
}

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

.hero-card:hover {
    top: -5px;
    border-color: var(--accent);
    box-shadow: 0 15px 25px -5px rgba(2, 132, 199, 0.1);
}

.hero-card-icon {
    font-size: 28px;
    margin-bottom: 12px;
    display: block;
    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;
}

/* Responsywność */
@media (max-width: 900px) {
    .hero-content { padding: 35px 25px; }
    .hero-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 600px) {
    .hero-tab-buttons { flex-direction: column; }
    .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; }
    .hero-content h2 { font-size: 24px; }
    .hero-tab-panels { padding: 10px 5px 10px 5px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/"
    },
    "headline": "Rotametr w ogrzewaniu podłogowym – jak działa wskaźnik przepływu i jak go ustawić?",
    "description": "Zrozum, jak działa rotametr w rozdzielaczu podłogówki. Poradnik regulacji wskaźników przepływu dla zapewnienia równowagi hydraulicznej i idealnego komfortu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-11-29",
    "dateModified": "2026-05-03"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#dataset",
    "name": "Zakresy przepływów hydraulicznych dla rotametrów w instalacjach płaszczyznowych",
    "description": "Zestawienie optymalnych oraz krytycznych wartości natężenia przepływu (w litrach na minutę) dla pętli ogrzewania podłogowego, służące do diagnozy i regulacji na rozdzielaczu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "rotametr",
      "jak ustawić rotametr w podłogówce",
      "regulacja rotametrów ogrzewania podłogowego",
      "brak przepływu na rotametrze",
      "wskaźnik przepływu podłogówka"
    ],
    "measurementTechnique": "Bezpośredni odczyt wizualny przemieszczenia pływaka względem skali pomiarowej na stożkowym korpusie rotametru.",
    "mainEntity": {
      "@type": "Thing",
      "name": "Wskaźnik natężenia przepływu cieczy"
    }
  }
]
</script>

<div class="premium-hero-box" id="hero-app-container">
    <div class="hero-content">
        
        <div class="hero-badge">
            <span>⚙️</span> Kompendium Hydrauliki
        </div>
        
        <h2>Rotametr: Serce Równowagi Twojej Podłogówki</h2>
        
        <div class="hero-tabs-container">
            <div class="hero-tab-buttons">
                <button class="hero-tab-btn active" data-tab="tab-definicja">
                    <span>📌</span> Czym jest rotametr?
                </button>
                <button class="hero-tab-btn" data-tab="tab-praktyka">
                    <span>💡</span> Dlaczego to ważne?
                </button>
            </div>
            
            <div class="hero-tab-panels">
                <div class="hero-tab-panel active" id="tab-definicja">
                    <p class="hero-text"><strong>Rotametr</strong>, często nazywany w profesjonalnej nomenklaturze wskaźnikiem przepływu, to niepozorne, przezroczyste urządzenie montowane na <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielaczu ogrzewania podłogowego</a>. Choć wydaje się tylko małą plastikową rurką ze skalą, bez niego <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/">prawidłowe działanie nowoczesnej instalacji HVAC</a> byłoby procesem chaotycznym i opartym wyłącznie na zgadywaniu.</p>
                </div>
                
                <div class="hero-tab-panel" id="tab-praktyka">
                    <p class="hero-text">Zastanawiasz się, <strong>jak ustawić rotametr w podłogówce</strong>, aby uniknąć niedogrzanych stref lub zbyt wysokich rachunków za prąd z pompy obiegowej? Prawidłowa <strong>regulacja rotametrów ogrzewania podłogowego</strong> to ostateczny szlif, który łączy założenia <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">profesjonalnego projektu OZC</a> z rzeczywistym zładem wody w Twoim domu. W tym wpisie pokażę Ci zasady działania tego elementu oraz sposób na rozwiązanie problemów, gdy zauważysz <strong>brak przepływu na rotametrze</strong>.</p>
                </div>
            </div>
        </div>

        <div class="hero-modules-title">W tym poradniku omówimy:</div>
        
        <div class="hero-grid">
            <div class="hero-card">
                <span class="hero-card-icon">🔍</span>
                <span class="hero-card-title">Fizyka działania rotametru w pigułce</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">⚖️</span>
                <span class="hero-card-title">Krok po kroku: Regulacja na rozdzielaczu</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">🛠️</span>
                <span class="hero-card-title">Diagnoza: Dlaczego pływak wibruje?</span>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- LOGIKA ZAKŁADEK (TABS) ---
    const tabBtns = document.querySelectorAll('.hero-tab-btn');
    const tabPanels = document.querySelectorAll('.hero-tab-panel');

    tabBtns.forEach(btn => {
        btn.addEventListener('click', () => {
            // Usuń aktywną klasę z przycisków i paneli
            tabBtns.forEach(b => b.classList.remove('active'));
            tabPanels.forEach(p => p.classList.remove('active'));

            // Dodaj aktywną klasę do klikniętego przycisku i odpowiedniego panelu
            btn.classList.add('active');
            const targetId = btn.getAttribute('data-tab');
            document.getElementById(targetId).classList.add('active');
        });
    });

    // --- 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: #e0f2fe; color: #0284c7; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 300px; font-family: sans-serif;">
                    <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                    <div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona prawem autorskim</div>
                    <p style="font-size: 16px; max-width: 500px; color: #0369a1; line-height: 1.5;">Ten 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: #0284c7; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #0ea5e9; /* Kolor niebieski z suwaka i wartości na obrazku */
    --accent-hover: #0284c7;
    --text-main: #334155;
    --text-muted: #64748b;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
    
    /* Status Colors */
    --status-ok-bg: #dcfce7;
    --status-ok-text: #16a34a;
    --status-warn-bg: #ffedd5;
    --status-warn-text: #ea580c;
    --status-err-bg: #fee2e2;
    --status-err-text: #dc2626;
}

.article-section {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--text-main);
    line-height: 1.8;
}

.article-section h2 {
    font-size: 28px;
    font-weight: 800;
    color: var(--primary);
    margin-bottom: 20px;
    letter-spacing: -0.5px;
}

.article-section h3 {
    font-size: 22px;
    font-weight: 700;
    color: var(--primary);
    margin-top: 40px;
    margin-bottom: 15px;
}

.article-section p {
    font-size: 17px;
    margin-bottom: 20px;
}

.article-section a {
    color: var(--accent);
    text-decoration: none;
    font-weight: 600;
    border-bottom: 1px solid transparent;
    transition: border-color 0.2s;
}

.article-section a:hover {
    border-color: var(--accent);
}

.article-section ul {
    list-style-type: none;
    padding: 0;
    margin-bottom: 30px;
}

.article-section ul li {
    position: relative;
    padding-left: 28px;
    margin-bottom: 12px;
    font-size: 16px;
}

.article-section ul li::before {
    content: "✔️";
    position: absolute;
    left: 0;
    top: 2px;
    font-size: 14px;
    color: var(--accent);
}

/* Interaktywny Widget / Aplikacja */
.app-container {
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 24px;
    padding: 40px;
    margin: 40px 0;
    box-shadow: 0 10px 40px -10px rgba(0,0,0,0.05);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.app-header {
    text-align: center;
    margin-bottom: 40px;
}

.app-title {
    font-size: 22px;
    font-weight: 800;
    color: var(--primary);
    margin-bottom: 8px;
}

.app-subtitle {
    font-size: 15px;
    color: var(--text-muted);
}

.app-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    max-width: 500px;
}

/* Wizualizacja Rotametru */
.rotameter-mockup {
    position: relative;
    width: 100px;
    height: 300px;
    background: #f8fafc;
    border: 2px solid #cbd5e1;
    border-radius: 16px;
    box-shadow: inset 0 4px 10px rgba(0,0,0,0.03), 0 10px 25px -5px rgba(0,0,0,0.05);
    margin-bottom: 35px;
    display: flex;
    justify-content: center;
}

.rotameter-scale {
    position: absolute;
    left: 10px;
    top: 25px;
    bottom: 25px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    font-size: 12px;
    font-weight: 700;
    color: #64748b;
}

.rotameter-glass {
    position: absolute;
    bottom: 25px;
    top: 25px;
    width: 32px;
    background: rgba(14, 165, 233, 0.08); /* Lekko niebieska woda */
    border-radius: 4px;
    border-bottom: 3px solid var(--accent);
}

.rotameter-float-wrapper {
    position: absolute;
    bottom: 0%;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    height: 100%;
    transition: bottom 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}

.rotameter-float {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 26px;
    height: 22px;
    background: linear-gradient(to bottom, #ef4444 0%, #dc2626 100%); /* Czerwony grzybek */
    border-radius: 14px 14px 0 0;
    box-shadow: 0 4px 6px -1px rgba(220, 38, 38, 0.4);
}

/* Sekcja kontrolek */
.controls-section {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.status-badge {
    padding: 8px 16px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 30px;
    transition: all 0.3s ease;
    align-self: flex-start;
}

.status-ok { background: var(--status-ok-bg); color: var(--status-ok-text); }
.status-warn { background: var(--status-warn-bg); color: var(--status-warn-text); }
.status-err { background: var(--status-err-bg); color: var(--status-err-text); }

.slider-wrapper {
    width: 100%;
    margin-bottom: 25px;
}

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

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

.slider-value {
    font-size: 16px;
    color: var(--accent);
}

/* Custom Input Range */
input[type=range].custom-slider {
    -webkit-appearance: none;
    width: 100%;
    background: transparent;
}
input[type=range].custom-slider:focus { outline: none; }
input[type=range].custom-slider::-webkit-slider-runnable-track {
    width: 100%;
    height: 8px;
    cursor: pointer;
    background: #e2e8f0;
    border-radius: 4px;
}
input[type=range].custom-slider::-webkit-slider-thumb {
    height: 24px;
    width: 24px;
    border-radius: 50%;
    background: var(--accent);
    border: 3px solid #ffffff;
    box-shadow: 0 2px 6px rgba(0,0,0,0.2);
    cursor: pointer;
    -webkit-appearance: none;
    margin-top: -8px;
    transition: transform 0.1s;
}
input[type=range].custom-slider::-webkit-slider-thumb:active {
    transform: scale(1.15);
}

.dynamic-description {
    font-size: 14px;
    color: var(--text-muted);
    line-height: 1.6;
    text-align: left;
    width: 100%;
    min-height: 60px;
}

@media (max-width: 600px) {
    .app-container { padding: 25px 15px; }
    .status-badge { align-self: center; text-align: center; }
    .dynamic-description { text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#article2",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/"
    },
    "headline": "Czym dokładnie jest rotametr i jak działa? Zasada fizyczna w pigułce.",
    "description": "Szczegółowa analiza budowy i zasady działania rotametru w instalacjach płaszczyznowych. Dowiedz się jak siły wyporu i oporu cieczy wpływają na regulację przepływu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-11-29",
    "dateModified": "2026-05-03"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#dataset2",
    "name": "Budowa i dynamika fizyczna rotametru grzewczego",
    "description": "Dane opisujące elementy składowe wskaźnika przepływu oraz zjawiska fizyczne odpowiedzialne za jego prawidłowe działanie w układzie hydraulicznym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jak działa rotametr",
      "budowa rotametru",
      "wskaźnik przepływu zasada fizyczna",
      "rotametry na rozdzielaczu",
      "przepływomierz podłogówka"
    ],
    "measurementTechnique": "Wykorzystanie równowagi sił: wyporu, ciężkości i oporu cieczy w stożkowej rurce pomiarowej.",
    "mainEntity": {
      "@type": "Thing",
      "name": "Elementy konstrukcyjne rotametru hydraulicznego"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#webapp2",
    "name": "Aplikacja: Symulacja Działania Wskaźnika Przepływu (Rotametru)",
    "description": "Aplikacja edukacyjna pozwalająca wizualizować zmianę położenia pływaka rotametru w zależności od natężenia przepływu cieczy.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5"
  }
]
</script>

<div class="article-section" id="rotameter-module-container">
    <h2>Czym dokładnie jest rotametr i jak działa? Zasada fizyczna w pigułce.</h2>
    
    <p>W kontekście inżynierii instalacji grzewczych, <strong>rotametr</strong> zalicza się do grupy precyzyjnych przyrządów zwanych przepływomierzami o zmiennym przekroju. Jego zadanie z pozoru jest proste: ma wizualnie, w sposób ciągły, wskazywać ilość czynnika grzewczego (najczęściej jest to woda lub <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/">odpowiednio przygotowana woda demineralizowana</a>) przepływającą w danej chwili przez konkretny obwód grzewczy, czyli pętlę rury ukrytą w wylewce betonowej.</p>
    
    <p>Zasada działania opiera się na genialnych w swej prostocie prawach fizyki, a konkretnie na dynamicznej równowadze trzech sił działających na pływak znajdujący się w strumieniu płynącej cieczy:</p>
    <ul>
        <li><strong>Siła wyporu</strong> – zgodnie z prawem Archimedesa, zawsze skierowana ku górze, wypychająca pływak.</li>
        <li><strong>Siła ciężkości (grawitacji)</strong> – stała siła ciągnąca masę pływaka w dół.</li>
        <li><strong>Siła oporu hydrodynamicznego cieczy</strong> – to zmienna zależna od prędkości. Im szybszy przepływ generuje <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompa obiegowa</a>, tym większa siła działająca na pływak od dołu.</li>
    </ul>

    <p>Pływak porusza się wewnątrz stożkowej (rozszerzającej się ku górze), przezroczystej rurki. Gdy przepływ wynosi równe zero, pływak grawitacyjnie opada na sam dół. Kiedy system startuje i woda zaczyna płynąć, siła oporu unosi pływak do momentu, aż siły się zrównoważą. Im większe <strong>natężenie przepływu</strong>, tym wyżej pływak musi się unieść, by zwiększyć przekrój przepływu wokół siebie i zrównoważyć siły. Odczyt to po prostu zlokalizowanie, na jakiej wartości na nadrukowanej skali znajduje się jego krawędź.</p>

    <div class="app-container">
        <div class="app-header">
            <div class="app-title">Symulator Wskaźnika Przepływu (Rotametru)</div>
            <div class="app-subtitle">Ustaw natężenie przepływu dla pętli grzewczej</div>
        </div>

        <div class="app-content">
            <div class="rotameter-mockup">
                <div class="rotameter-scale">
                    <span>3.0</span>
                    <span>2.0</span>
                    <span>1.0</span>
                    <span>0.0</span>
                </div>
                <div class="rotameter-glass">
                    <div class="rotameter-float-wrapper" id="simFloatWrapper">
                        <div class="rotameter-float"></div>
                    </div>
                </div>
            </div>

            <div class="controls-section">
                <div id="simBadge" class="status-badge status-ok">Zakres optymalny</div>
                
                <div class="slider-wrapper">
                    <div class="slider-info">
                        <span class="slider-label">Przepływ:</span>
                        <span class="slider-value" id="simValue">1.6 l/min</span>
                    </div>
                    <input type="range" class="custom-slider" id="simSlider" min="0" max="3" step="0.1" value="1.6">
                </div>

                <div class="dynamic-description" id="simDesc">
                    Najczęstszy, optymalny zakres przepływu wg projektów. Zapewnia równomierne nagrzewanie przy optymalnym zużyciu energii przez pompę.
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- Logika Aplikacji ---
    const slider = document.getElementById('simSlider');
    const floatWrap = document.getElementById('simFloatWrapper');
    const valText = document.getElementById('simValue');
    const badge = document.getElementById('simBadge');
    const desc = document.getElementById('simDesc');

    function updateSimulator() {
        const val = parseFloat(slider.value);
        valText.innerText = val.toFixed(1) + ' l/min';
        
        // Zabezpieczenie przed wyjściem pływaka poza rurkę.
        // max to 100% wysokości kontenera szklanego
        const percent = (val / 3.0) * 100;
        floatWrap.style.bottom = percent + '%';

        // Warunki statusów i opisów na podstawie obrazka i wiedzy
        badge.className = 'status-badge';
        if (val === 0) {
            badge.classList.add('status-err');
            badge.innerText = 'Brak przepływu';
            desc.innerHTML = 'Obwód jest zamknięty. Brak wymiany ciepła. Jeśli zawór jest otwarty, wskazuje to na <strong>poważne zapowietrzenie</strong> lub zablokowanie pętli.';
        } else if (val > 0 && val < 0.6) {
            badge.classList.add('status-warn');
            badge.innerText = 'Niski przepływ';
            desc.innerHTML = 'Przepływ może być niewystarczający do usunięcia pęcherzyków powietrza z instalacji, co grozi niedogrzaniem strefy.';
        } else if (val >= 0.6 && val <= 2.2) {
            badge.classList.add('status-ok');
            badge.innerText = 'Zakres optymalny';
            desc.innerHTML = 'Najczęstszy, optymalny zakres przepływu wg projektów. Zapewnia równomierne nagrzewanie przy optymalnym zużyciu energii przez pompę.';
        } else {
            badge.classList.add('status-warn');
            badge.innerText = 'Zbyt wysoki przepływ';
            desc.innerHTML = 'Zbyt szybki obieg wody generuje <strong>szumy w instalacji</strong> i niepotrzebnie przeciąża pompę obiegową bez realnych korzyści cieplnych.';
        }
    }

    slider.addEventListener('input', updateSimulator);
    // Inicjalizacja startowa żeby zgadzało się z ustawieniem slidera
    updateSimulator();


    // --- Zabezpieczenie domenowe (Domain Lock) ---
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(domain)) {
        const container = document.getElementById('rotameter-module-container');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 20px; text-align: center; background: #fee2e2; border: 2px solid #ef4444; border-radius: 16px; margin: 40px 0; font-family: sans-serif;">
                    <div style="font-size: 50px; margin-bottom: 15px;">⚠️</div>
                    <div style="font-size: 20px; font-weight: 800; color: #b91c1c; margin-bottom: 10px;">Naruszenie Praw Autorskich</div>
                    <div style="font-size: 16px; color: #7f1d1d; margin-bottom: 25px;">Treść i interaktywne narzędzia na tej stronie zostały skopiowane nielegalnie z serwisu <strong>Projekt-Ogrzewania.pl</strong>.</div>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 12px 24px; background: #dc2626; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">Wróć do źródła</a>
                </div>
            `;
        }
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #0284c7;
    --accent-hover: #0369a1;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
    --glass-bg: rgba(255, 255, 255, 0.95);
    --brass: #d4af37;
    --plastic: #1e293b;
}

.anatomy-section {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: #334155;
    line-height: 1.8;
}

.anatomy-hero-box {
    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;
    position: relative;
    padding: 45px 50px;
}

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

.content-wrapper {
    position: relative;
    z-index: 1;
}

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

.anatomy-section h2 {
    font-size: 28px;
    font-weight: 800;
    color: var(--primary);
    margin-bottom: 20px;
    letter-spacing: -0.5px;
    line-height: 1.2;
}

.anatomy-section h3 {
    font-size: 20px;
    font-weight: 700;
    color: var(--primary);
    margin-top: 35px;
    margin-bottom: 15px;
}

.anatomy-section p {
    font-size: 17px;
    margin-bottom: 20px;
}

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

.anatomy-section a:hover {
    color: var(--accent-hover);
}

/* Interaktywny Eksplorator Anatomii */
.anatomy-app {
    background: var(--bg-light);
    border: 1px solid var(--border-color);
    border-radius: 20px;
    padding: 30px;
    margin: 40px 0;
    display: flex;
    gap: 40px;
    align-items: flex-start;
    box-shadow: inset 0 2px 10px rgba(0,0,0,0.02);
}

.anatomy-visual {
    flex: 0 0 200px;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 16px;
    padding: 20px;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
}

/* SVG Styling */
.svg-rotameter {
    width: 120px;
    height: auto;
    overflow: visible;
}

.svg-part {
    transition: all 0.3s ease;
    cursor: pointer;
}

.svg-part:hover {
    filter: drop-shadow(0 0 8px rgba(2, 132, 199, 0.4));
}

.svg-part.active {
    filter: drop-shadow(0 0 12px rgba(2, 132, 199, 0.6));
    stroke: var(--accent);
    stroke-width: 2px;
}

.anatomy-controls {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.app-title-small {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: #94a3b8;
    letter-spacing: 1px;
    margin-bottom: 5px;
}

.anatomy-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 15px;
}

.part-btn {
    background: #ffffff;
    border: 1px solid var(--border-color);
    padding: 10px 16px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 600;
    color: #475569;
    cursor: pointer;
    transition: all 0.2s;
    display: flex;
    align-items: center;
    gap: 8px;
}

.part-btn:hover {
    border-color: var(--accent);
    color: var(--accent);
}

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

.info-card {
    background: #ffffff;
    border-left: 4px solid var(--accent);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    box-shadow: 0 4px 15px rgba(0,0,0,0.03);
    min-height: 160px;
}

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

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

@media (max-width: 800px) {
    .anatomy-hero-box { padding: 30px 20px; }
    .anatomy-app { flex-direction: column; align-items: center; gap: 25px; padding: 20px;}
    .anatomy-visual { width: 100%; max-width: 250px; }
    .anatomy-buttons { justify-content: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#budowa",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/"
    },
    "headline": "Budowa rotametru – z czego składa się wskaźnik przepływu?",
    "description": "Szczegółowa analiza komponentów rotametru: rurka pomiarowa, pływak, gwint mosiężny, uszczelka O-ring i filtr. Interaktywny model budowy urządzenia.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/11/Rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-11-29",
    "dateModified": "2026-05-03"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#dataset-czesci",
    "name": "Specyfikacja techniczna i wykaz części rotametru do ogrzewania płaszczyznowego",
    "description": "Baza materiałowa i konstrukcyjna elementów wskaźnika przepływu: poliwęglan (rurka), mosiądz (gwint), EPDM (O-ring) oraz tworzywa sztuczne (pływak, obejma).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "budowa rotametru",
      "części rotametru ogrzewanie podłogowe",
      "wskaźnik przepływu podłogówka budowa",
      "uszczelka O-ring w rotametrze",
      "filtr siatkowy rotametru"
    ],
    "measurementTechnique": "Analiza inżynieryjna komponentów hydraulicznych rozdzielacza mosiężnego/nierdzewnego.",
    "mainEntity": {
      "@type": "Thing",
      "name": "Komponenty budowy rotametru"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#webapp-budowa",
    "name": "Interaktywny Eksplorator Anatomii Rotametru",
    "description": "Aplikacja webowa z modułem SVG umożliwiająca interaktywne poznanie budowy wewnętrznej i zewnętrznej wskaźnika przepływu w ogrzewaniu podłogowym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, SVG, JavaScript"
  }
]
</script>

<div class="anatomy-section" id="anatomy-app-container">
    <div class="anatomy-hero-box">
        <div class="content-wrapper">
            
            <div class="anatomy-badge">
                <span>🔎</span> Anatomia Urządzenia
            </div>
            
            <h2>Budowa rotametru – z czego składa się wskaźnik przepływu?</h2>
            
            <p>Mimo prostej zasady działania opartej na fizyce, <strong>konstrukcja rotametru jest niezwykle przemyślana</strong>. To niewielkie urządzenie musi wytrzymywać stałe ciśnienie, wahania temperatur, a jednocześnie zapewniać wysoką przejrzystość przez wiele lat eksploatacji instalacji. Odpowiednia znajomość jego elementów to klucz nie tylko do regulacji, ale i do konserwacji – na przykład gdy zastanawiasz się, <a href="https://projekt-ogrzewania.pl/czym-napelnic-instalacje-ogrzewania-podlogowego/">jaki wpływ ma jakość czynnika grzewczego</a> na żywotność wskaźnika.</p>
            
            <p>Poniżej przygotowałem dla Ciebie interaktywny model. Pozwoli Ci on zrozumieć, co dokładnie wkręcasz w belkę rozdzielacza i dlaczego każdy z tych drobnych detali – od gwintu po małą uszczelkę odpowiadającą za <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">pomyślne przejście próby szczelności</a> – ma tak ogromne znaczenie.</p>

            <div class="anatomy-app">
                <div class="anatomy-visual">
                    <svg class="svg-rotameter" viewBox="0 0 100 240" xmlns="http://www.w3.org/2000/svg">
                        <defs>
                            <linearGradient id="glassGrad" x1="0%" y1="0%" x2="100%" y2="0%">
                                <stop offset="0%" stop-color="#f8fafc" stop-opacity="0.8"/>
                                <stop offset="50%" stop-color="#ffffff" stop-opacity="0.4"/>
                                <stop offset="100%" stop-color="#e2e8f0" stop-opacity="0.9"/>
                            </linearGradient>
                            <linearGradient id="brassGrad" x1="0%" y1="0%" x2="100%" y2="0%">
                                <stop offset="0%" stop-color="#b8860b"/>
                                <stop offset="50%" stop-color="#ffd700"/>
                                <stop offset="100%" stop-color="#daa520"/>
                            </linearGradient>
                        </defs>
                        
                        <g id="part-rurka" class="svg-part active">
                            <path d="M 35 15 L 65 15 L 75 140 L 25 140 Z" fill="url(#glassGrad)" stroke="#cbd5e1" stroke-width="2"/>
                            <line x1="30" y1="30" x2="40" y2="30" stroke="#64748b" stroke-width="1.5"/>
                            <line x1="30" y1="55" x2="35" y2="55" stroke="#64748b" stroke-width="1"/>
                            <line x1="30" y1="80" x2="40" y2="80" stroke="#64748b" stroke-width="1.5"/>
                            <line x1="30" y1="105" x2="35" y2="105" stroke="#64748b" stroke-width="1"/>
                            <line x1="30" y1="130" x2="40" y2="130" stroke="#64748b" stroke-width="1.5"/>
                        </g>

                        <g id="part-plywak" class="svg-part">
                            <path d="M 40 100 L 60 100 L 55 120 L 45 120 Z" fill="#ef4444"/>
                            <path d="M 45 120 L 55 120 L 50 135 Z" fill="#dc2626"/>
                        </g>

                        <g id="part-pokretlo" class="svg-part">
                            <rect x="20" y="140" width="60" height="20" rx="3" fill="#dc2626"/>
                            <rect x="22" y="142" width="56" height="16" rx="2" fill="#ef4444"/>
                            <line x1="30" y1="140" x2="30" y2="160" stroke="#b91c1c" stroke-width="2"/>
                            <line x1="50" y1="140" x2="50" y2="160" stroke="#b91c1c" stroke-width="2"/>
                            <line x1="70" y1="140" x2="70" y2="160" stroke="#b91c1c" stroke-width="2"/>
                        </g>

                        <g id="part-gwint" class="svg-part">
                            <rect x="28" y="160" width="44" height="25" fill="#1e293b"/>
                            <rect x="32" y="185" width="36" height="20" fill="url(#brassGrad)"/>
                            <path d="M 32 188 L 68 188 M 32 194 L 68 194 M 32 200 L 68 200" stroke="#b8860b" stroke-width="1.5"/>
                            <rect x="30" y="183" width="40" height="4" rx="2" fill="#000000"/>
                        </g>

                        <g id="part-filtr" class="svg-part">
                            <path d="M 38 205 L 62 205 L 58 230 L 42 230 Z" fill="#e2e8f0" stroke="#94a3b8" stroke-width="1.5"/>
                            <line x1="42" y1="210" x2="58" y2="210" stroke="#cbd5e1" stroke-width="1"/>
                            <line x1="44" y1="215" x2="56" y2="215" stroke="#cbd5e1" stroke-width="1"/>
                            <line x1="46" y1="220" x2="54" y2="220" stroke="#cbd5e1" stroke-width="1"/>
                        </g>
                    </svg>
                </div>

                <div class="anatomy-controls">
                    <div class="app-title-small">Wybierz element, aby poznać jego funkcję:</div>
                    
                    <div class="anatomy-buttons">
                        <button class="part-btn active" data-target="part-rurka">
                            Szklana rurka i skala
                        </button>
                        <button class="part-btn" data-target="part-plywak">
                            Pływak pomiarowy
                        </button>
                        <button class="part-btn" data-target="part-pokretlo">
                            Czerwona obejma (Regulacja)
                        </button>
                        <button class="part-btn" data-target="part-gwint">
                            Gwint i uszczelka O-ring
                        </button>
                        <button class="part-btn" data-target="part-filtr">
                            Wewnętrzny filtr
                        </button>
                    </div>

                    <div class="info-card" id="anatomy-info-card">
                        <h4>Szklana rurka pomiarowa i skala (L/min)</h4>
                        <p>Przezroczysty korpus wykonany zazwyczaj ze wzmocnionego poliwęglanu, odpornego na wysokie temperatury. Umożliwia ciągłą, wizualną obserwację przepływu. Nadrukowana na nim podziałka pozwala precyzyjnie odczytać wartość w litrach na minutę (L/min).</p>
                    </div>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Baza danych dla interaktywnego eksploratora
    const anatomyData = {
        'part-rurka': {
            title: 'Szklana rurka pomiarowa i skala (L/min)',
            desc: 'Przezroczysty korpus wykonany zazwyczaj ze wzmocnionego poliwęglanu, odpornego na wysokie temperatury. Umożliwia ciągłą, wizualną obserwację przepływu. Nadrukowana na nim podziałka pozwala precyzyjnie odczytać wartość w litrach na minutę (L/min).'
        },
        'part-plywak': {
            title: 'Pływak pomiarowy (stożkowy)',
            desc: 'Główny element pomiarowy. Unosi się w strumieniu cieczy pod wpływem oporu hydrodynamicznego wody z pompy obiegowej. To jego górna krawędź wyznacza odczyt przepływu na skali.'
        },
        'part-pokretlo': {
            title: 'Czerwona obejma (Regulacja przepływu)',
            desc: 'Pokrętło lub zintegrowany z korpusem zawór. Obracając je ręcznie, dławimy lub zwiększamy przekrój, ustawiając w ten sposób docelowy przepływ masowy dla konkretnej pętli ogrzewania podłogowego.'
        },
        'part-gwint': {
            title: 'Gwint montażowy (mosiądz) i uszczelka O-ring',
            desc: 'Metalowy element odpowiadający za mechaniczne i trwałe połączenie wskaźnika z mosiężną lub nierdzewną belką rozdzielacza. Czarny O-ring wykonany z gumy EPDM gwarantuje absolutną szczelność układu.'
        },
        'part-filtr': {
            title: 'Wewnętrzny filtr siatkowy',
            desc: 'Niezwykle ważny, lecz często niewidoczny z zewnątrz element. Zabezpiecza precyzyjny mechanizm pływaka przed mikrozanieczyszczeniami z instalacji, które mogłyby go zablokować na dnie lub przekłamać odczyt.'
        }
    };

    const buttons = document.querySelectorAll('.part-btn');
    const svgParts = document.querySelectorAll('.svg-part');
    const infoCard = document.getElementById('anatomy-info-card');

    function updateExplorer(targetId) {
        // Reset aktywnych stanów
        buttons.forEach(b => b.classList.remove('active'));
        svgParts.forEach(s => s.classList.remove('active'));

        // Aktywuj wybrane
        document.querySelector(`.part-btn[data-target="${targetId}"]`).classList.add('active');
        document.getElementById(targetId).classList.add('active');

        // Aktualizuj treść z małą animacją opacity
        infoCard.style.opacity = 0;
        setTimeout(() => {
            infoCard.innerHTML = `
                <p>${anatomyData[targetId].title}</p>
                <p>${anatomyData[targetId].desc}</p>
            `;
            infoCard.style.transition = 'opacity 0.3s ease';
            infoCard.style.opacity = 1;
        }, 150);
    }

    // Dodaj zdarzenia do przycisków
    buttons.forEach(btn => {
        btn.addEventListener('click', (e) => {
            updateExplorer(e.currentTarget.getAttribute('data-target'));
        });
    });

    // Dodaj zdarzenia do części SVG (umożliwia klikanie w rysunek)
    svgParts.forEach(part => {
        part.addEventListener('click', (e) => {
            updateExplorer(e.currentTarget.id);
        });
    });

    // --- 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('anatomy-app-container');
        if (container) {
            container.innerHTML = `
                <div style="padding: 60px 20px; text-align: center; background: #e0f2fe; color: #0284c7; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 48px; margin-bottom: 20px;">🔒</div>
                    <div style="font-size: 24px; font-weight: bold; margin-bottom: 10px;">Ochrona treści</div>
                    <p style="font-size: 16px; color: #0369a1; max-width: 500px; margin: 0 auto 25px auto;">
                        Ten interaktywny moduł edukacyjny stanowi własność intelektualną serwisu <strong>Projekt-Ogrzewania.pl</strong> i został osadzony bezprawnie.
                    </p>
                    <a href="https://projekt-ogrzewania.pl/" style="display:inline-block; padding: 12px 24px; background: #0284c7; color: #fff; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
        }
    }
});
</script>



<style>
:root {
    --mf-primary: #0f172a;
    --mf-panel: #ffffff;
    --mf-accent: #0ea5e9;
    --mf-accent-dark: #0284c7;
    --mf-text: #334155;
    --mf-muted: #64748b;
    --mf-border: #e2e8f0;
    --mf-danger: #ef4444;
    --mf-success: #10b981;
    --mf-brass: #d4af37;
    --mf-brass-dark: #b8860b;
}

.mf-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--mf-panel);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--mf-border);
    overflow: hidden;
    color: var(--mf-text);
}

/* FORMATOWANIE TEKSTU */
.mf-article-content {
    padding: 40px 50px 20px 50px;
}

.mf-article-content h2 {
    font-size: 28px;
    font-weight: 800;
    color: var(--mf-primary);
    margin-bottom: 25px;
    letter-spacing: -0.5px;
}

.mf-article-content h3 {
    font-size: 22px;
    font-weight: 800;
    color: var(--mf-primary);
    margin-top: 35px;
    margin-bottom: 20px;
}

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

.mf-article-content a:hover {
    color: #0c4a6e;
}

.mf-lead-text {
    font-size: 17px;
    line-height: 1.8;
    color: var(--mf-text);
    margin-bottom: 25px;
    border-left: 4px solid var(--mf-accent);
    padding-left: 20px;
}

.mf-info-box {
    background: #f8fafc;
    border: 1px solid var(--mf-border);
    border-radius: 16px;
    padding: 20px 25px;
    display: flex;
    gap: 18px;
    align-items: flex-start;
    margin-bottom: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.mf-info-icon {
    font-size: 28px;
    flex-shrink: 0;
    line-height: 1;
}

.mf-info-box p {
    margin: 0;
    font-size: 16px;
    line-height: 1.7;
}

.mf-compare-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 10px;
}

.mf-compare-card {
    padding: 25px;
    border-radius: 16px;
    border: 1px solid;
}

.mf-danger-card {
    background: #fef2f2;
    border-color: #fecaca;
}

.mf-success-card {
    background: #f0fdf4;
    border-color: #bbf7d0;
}

.mf-card-title {
    font-size: 16px;
    font-weight: 800;
    margin-bottom: 12px;
}

.mf-danger-card .mf-card-title { color: #991b1b; }
.mf-success-card .mf-card-title { color: #166534; }

.mf-compare-card p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: #3f3f46;
}

/* APLIKACJA ROZDZIELACZA */
.mf-app {
    background: #f8fafc;
    border-top: 1px solid var(--mf-border);
    padding: 40px 50px;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.mf-app-header {
    text-align: center;
}

.mf-app-title {
    font-size: 20px;
    font-weight: 900;
    color: var(--mf-primary);
    margin-bottom: 8px;
}

.mf-app-subtitle {
    font-size: 14px;
    color: var(--mf-muted);
}

/* WIZUALIZACJA SVG */
.mf-visual-panel {
    background: #ffffff;
    border: 1px solid var(--mf-border);
    border-radius: 20px;
    padding: 30px 20px;
    box-shadow: inset 0 2px 10px rgba(0,0,0,0.02);
    display: flex;
    justify-content: center;
}

.mf-manifold-svg {
    width: 100%;
    max-width: 700px;
    height: auto;
    overflow: visible;
}

.mf-glass { fill: #f1f5f9; stroke: #cbd5e1; stroke-width: 2; }
.mf-water { fill: #0ea5e9; transition: height 0.5s cubic-bezier(0.25, 1, 0.5, 1), y 0.5s cubic-bezier(0.25, 1, 0.5, 1); }
.mf-float { fill: #ef4444; transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1); }
.mf-scale-line { stroke: #94a3b8; stroke-width: 1; }

/* KONTROLKI */
.mf-controls-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 20px;
}

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

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

.mf-zone-name {
    font-weight: 800;
    font-size: 14px;
    color: var(--mf-primary);
    display: flex;
    align-items: center;
    gap: 6px;
}

.mf-zone-value {
    background: #e0f2fe;
    color: var(--mf-accent-dark);
    padding: 4px 10px;
    border-radius: 8px;
    font-weight: 800;
    font-size: 13px;
}

.mf-slider {
    -webkit-appearance: none;
    width: 100%;
    background: transparent;
}
.mf-slider:focus { outline: none; }
.mf-slider::-webkit-slider-runnable-track {
    width: 100%;
    height: 6px;
    cursor: pointer;
    background: #cbd5e1;
    border-radius: 4px;
}
.mf-slider::-webkit-slider-thumb {
    height: 20px;
    width: 20px;
    border-radius: 50%;
    background: var(--mf-accent);
    cursor: pointer;
    -webkit-appearance: none;
    margin-top: -7px;
    border: 3px solid #ffffff;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}

/* PANEL STATUSU I PRZYCISK */
.mf-action-panel {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #fffbeb;
    border: 1px solid #fde68a;
    padding: 20px 30px;
    border-radius: 16px;
    margin-top: 10px;
    transition: 0.4s;
}

.mf-action-panel.balanced {
    background: #f0fdf4;
    border-color: #bbf7d0;
}

.mf-status-text { max-width: 65%; }

.mf-status-title {
    font-size: 18px;
    font-weight: 900;
    color: #92400e;
    margin-bottom: 5px;
}
.mf-action-panel.balanced .mf-status-title { color: #166534; }

.mf-status-desc {
    font-size: 14px;
    color: #b45309;
    line-height: 1.5;
}
.mf-action-panel.balanced .mf-status-desc { color: #15803d; }

.mf-toggle-btn {
    background: var(--mf-primary);
    color: #ffffff;
    border: none;
    padding: 16px 28px;
    border-radius: 12px;
    font-weight: 800;
    font-size: 15px;
    cursor: pointer;
    transition: 0.3s;
    box-shadow: 0 4px 15px rgba(15, 23, 42, 0.2);
}

.mf-toggle-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(15, 23, 42, 0.3);
}

.mf-toggle-btn.active {
    background: var(--mf-success);
}

@media (max-width: 800px) {
    .mf-article-content { padding: 30px 25px 10px 25px; }
    .mf-compare-grid { grid-template-columns: 1fr; }
    .mf-app { padding: 30px 20px; }
    .mf-action-panel { flex-direction: column; text-align: center; gap: 20px; }
    .mf-status-text { max-width: 100%; }
    .mf-toggle-btn { width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#rownowazenie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/"
    },
    "headline": "Równoważenie hydrauliczne instalacji – najważniejsze zadanie rotametru",
    "description": "Zobacz na interaktywnym symulatorze rozdzielacza 5-obwodowego, jak rozregulowane przepływy niszczą wydajność układu oraz jak prawidłowo wyregulować rotametry.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-11-29",
    "dateModified": "2026-05-03"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#dataset-przeplywy",
    "name": "Rozkład przepływów hydraulicznych w 5-sekcyjnym rozdzielaczu ogrzewania podłogowego",
    "description": "Zestawienie zmian natężenia przepływu przed i po zastosowaniu kryzowania (regulacji rotametrami) dla typowych pomieszczeń domowych: Salon, Kuchnia, Łazienka, Sypialnia, Korytarz.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "równoważenie hydrauliczne",
      "jak wyregulować rotametry ogrzewanie podłogowe",
      "przepływ wody w podłogówce",
      "regulacja pętli ogrzewania",
      "opory hydrauliczne podłogówka"
    ],
    "measurementTechnique": "Symulacja obliczeniowa oporów przepływu (wielkość przepływu odwrotnie proporcjonalna do długości rury PEX/PERT) przy stałym wydatku pompy obiegowej.",
    "mainEntity": {
      "@type": "Thing",
      "name": "Proces równoważenia hydraulicznego rozdzielacza"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#webapp-hydraulika",
    "name": "Zaawansowany Symulator Rozdzielacza 5-obwodowego",
    "description": "Aplikacja webowa symulująca przepływy w instalacji podłogowej. Wskazuje jak różnica w długości pętli w poszczególnych pomieszczeniach powoduje niedogrzanie jednych i przegrzanie innych stref.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5, SVG"
  }
]
</script>

<div class="mf-container" id="app-manifold-balancing">
    <div class="mf-article-content">
        <h2>Rola rotametru: Równoważenie hydrauliczne całego domu</h2>
        
        <div class="mf-lead-text">
            Wielu inwestorów zastanawia się, czy rotametry są absolutnie konieczne, czy stanowią jedynie zbędny, podnoszący koszty dodatek. Prawda jest brutalna: <strong>bez rotametrów profesjonalne wyregulowanie ogrzewania podłogowego jest w 100% niemożliwe</strong>. To tak, jakby próbować nastroić fortepian bez zmysłu słuchu.
        </div>

        <div class="mf-info-box">
            <span class="mf-info-icon">💧</span>
            <p>W typowym domu pętle grzewcze rzadko są idealnie równe. Masz przecież rozległy <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">salon wymagający ogromnej ilości rur</a> (np. 110 metrów) i maleńki korytarz lub toaletę z pętlą zaledwie 30-metrową. Fizyka cieczy jest nieubłagana – woda w instalacji zachowuje się jak „leniwy uczeń”. Zawsze wybiera drogę o najmniejszym oporze hydraulicznym.</p>
        </div>

        <h3>Co się dzieje bez regulacji? (Zjawisko kradzieży przepływu)</h3>
        
        <div class="mf-compare-grid">
            <div class="mf-compare-card mf-danger-card">
                <div class="mf-card-title">❌ Brak regulacji (Szum i zimno)</div>
                <p>Gdybyś otworzył wszystkie obwody na rozdzielaczu na 100%, ciśnienie z pompy uciekłoby niemal w całości przez najkrótsze pętle. W efekcie w korytarzu i małej łazience miałbyś &#8222;piekarnik&#8221; i niepokojący szum wody, a w kluczowym dla komfortu salonie – <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">zimną podłogę</a>, ponieważ przez 100-metrową rurę woda po prostu nie miałaby siły popłynąć.</p>
            </div>
            
            <div class="mf-compare-card mf-success-card">
                <div class="mf-card-title">✅ Rotametr jako precyzyjny dławik</div>
                <p>To właśnie tutaj wkracza rotametr. Działa on jak precyzyjny dławik. Poprzez ręczne wkręcanie czerwonej obejmy <strong>sztucznie zwiększamy opór na krótkich pętlach</strong>. Zmuszamy w ten sposób wodę do pokonania dłuższego dystansu i zasilenia największych pomieszczeń, tak aby zrównać system z założeniami z <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektu OZC</a>.</p>
            </div>
        </div>
    </div>

    <div class="mf-app">
        <div class="mf-app-header">
            <div class="mf-app-title">Symulator Równoważenia Rozdzielacza (5 Stref)</div>
            <div class="mf-app-subtitle">Ustaw długości pętli i zobacz, jak &#8222;leniwa&#8221; woda omija najdłuższe z nich.</div>
        </div>

        <div class="mf-visual-panel">
            <svg class="mf-manifold-svg" viewBox="0 0 600 250" xmlns="http://www.w3.org/2000/svg">
                <rect x="20" y="200" width="560" height="40" rx="5" fill="url(#brassGrad)"/>
                <path d="M 20 210 L 580 210 M 20 230 L 580 230" stroke="#b8860b" stroke-width="1" opacity="0.5"/>
                
                <defs>
                    <linearGradient id="brassGrad" x1="0%" y1="0%" x2="0%" y2="100%">
                        <stop offset="0%" stop-color="#ffd700"/>
                        <stop offset="50%" stop-color="#daa520"/>
                        <stop offset="100%" stop-color="#b8860b"/>
                    </linearGradient>
                </defs>

                <g transform="translate(70, 20)">
                    <rect class="mf-glass" x="-20" y="0" width="40" height="170" rx="4"/>
                    <line class="mf-scale-line" x1="-15" y1="20" x2="-5" y2="20"/><text x="-2" y="24" font-size="10" fill="#64748b">3.0</text>
                    <line class="mf-scale-line" x1="-15" y1="65" x2="-5" y2="65"/><text x="-2" y="69" font-size="10" fill="#64748b">2.0</text>
                    <line class="mf-scale-line" x1="-15" y1="110" x2="-5" y2="110"/><text x="-2" y="114" font-size="10" fill="#64748b">1.0</text>
                    <line class="mf-scale-line" x1="-15" y1="155" x2="-5" y2="155"/><text x="-2" y="159" font-size="10" fill="#64748b">0.0</text>
                    <rect id="water-1" class="mf-water" x="-18" y="165" width="36" height="0"/>
                    <path id="float-1" class="mf-float" d="M -10 165 L 10 165 L 6 155 L -6 155 Z"/>
                    <rect x="-24" y="170" width="48" height="15" fill="#dc2626" rx="2"/> <text x="0" y="-10" font-size="12" font-weight="bold" fill="#334155" text-anchor="middle">SALON</text>
                    <text id="val-1" x="0" y="260" font-size="14" font-weight="900" fill="#0284c7" text-anchor="middle">0.0 l/min</text>
                </g>

                <g transform="translate(170, 20)">
                    <rect class="mf-glass" x="-20" y="0" width="40" height="170" rx="4"/>
                    <line class="mf-scale-line" x1="-15" y1="20" x2="-5" y2="20"/>
                    <line class="mf-scale-line" x1="-15" y1="65" x2="-5" y2="65"/>
                    <line class="mf-scale-line" x1="-15" y1="110" x2="-5" y2="110"/>
                    <line class="mf-scale-line" x1="-15" y1="155" x2="-5" y2="155"/>
                    <rect id="water-2" class="mf-water" x="-18" y="165" width="36" height="0"/>
                    <path id="float-2" class="mf-float" d="M -10 165 L 10 165 L 6 155 L -6 155 Z"/>
                    <rect x="-24" y="170" width="48" height="15" fill="#dc2626" rx="2"/>
                    <text x="0" y="-10" font-size="12" font-weight="bold" fill="#334155" text-anchor="middle">KUCHNIA</text>
                    <text id="val-2" x="0" y="260" font-size="14" font-weight="900" fill="#0284c7" text-anchor="middle">0.0 l/min</text>
                </g>

                <g transform="translate(270, 20)">
                    <rect class="mf-glass" x="-20" y="0" width="40" height="170" rx="4"/>
                    <line class="mf-scale-line" x1="-15" y1="20" x2="-5" y2="20"/>
                    <line class="mf-scale-line" x1="-15" y1="65" x2="-5" y2="65"/>
                    <line class="mf-scale-line" x1="-15" y1="110" x2="-5" y2="110"/>
                    <line class="mf-scale-line" x1="-15" y1="155" x2="-5" y2="155"/>
                    <rect id="water-3" class="mf-water" x="-18" y="165" width="36" height="0"/>
                    <path id="float-3" class="mf-float" d="M -10 165 L 10 165 L 6 155 L -6 155 Z"/>
                    <rect x="-24" y="170" width="48" height="15" fill="#dc2626" rx="2"/>
                    <text x="0" y="-10" font-size="12" font-weight="bold" fill="#334155" text-anchor="middle">ŁAZIENKA</text>
                    <text id="val-3" x="0" y="260" font-size="14" font-weight="900" fill="#0284c7" text-anchor="middle">0.0 l/min</text>
                </g>

                <g transform="translate(370, 20)">
                    <rect class="mf-glass" x="-20" y="0" width="40" height="170" rx="4"/>
                    <line class="mf-scale-line" x1="-15" y1="20" x2="-5" y2="20"/>
                    <line class="mf-scale-line" x1="-15" y1="65" x2="-5" y2="65"/>
                    <line class="mf-scale-line" x1="-15" y1="110" x2="-5" y2="110"/>
                    <line class="mf-scale-line" x1="-15" y1="155" x2="-5" y2="155"/>
                    <rect id="water-4" class="mf-water" x="-18" y="165" width="36" height="0"/>
                    <path id="float-4" class="mf-float" d="M -10 165 L 10 165 L 6 155 L -6 155 Z"/>
                    <rect x="-24" y="170" width="48" height="15" fill="#dc2626" rx="2"/>
                    <text x="0" y="-10" font-size="12" font-weight="bold" fill="#334155" text-anchor="middle">SYPIALNIA</text>
                    <text id="val-4" x="0" y="260" font-size="14" font-weight="900" fill="#0284c7" text-anchor="middle">0.0 l/min</text>
                </g>

                <g transform="translate(470, 20)">
                    <rect class="mf-glass" x="-20" y="0" width="40" height="170" rx="4"/>
                    <line class="mf-scale-line" x1="-15" y1="20" x2="-5" y2="20"/>
                    <line class="mf-scale-line" x1="-15" y1="65" x2="-5" y2="65"/>
                    <line class="mf-scale-line" x1="-15" y1="110" x2="-5" y2="110"/>
                    <line class="mf-scale-line" x1="-15" y1="155" x2="-5" y2="155"/>
                    <rect id="water-5" class="mf-water" x="-18" y="165" width="36" height="0"/>
                    <path id="float-5" class="mf-float" d="M -10 165 L 10 165 L 6 155 L -6 155 Z"/>
                    <rect x="-24" y="170" width="48" height="15" fill="#dc2626" rx="2"/>
                    <text x="0" y="-10" font-size="12" font-weight="bold" fill="#334155" text-anchor="middle">KORYTARZ</text>
                    <text id="val-5" x="0" y="260" font-size="14" font-weight="900" fill="#0284c7" text-anchor="middle">0.0 l/min</text>
                </g>
            </svg>
        </div>

        <div class="mf-action-panel" id="mf-status-box">
            <div class="mf-status-text">
                <div class="mf-status-title" id="mf-status-title">⚠️ System ROZREGULOWANY!</div>
                <div class="mf-status-desc" id="mf-status-desc">Wszystkie rotametry są całkowicie otwarte (0 dławienia). Ciśnienie z pompy ucieka z najmniejszym oporem przez krótkie pętle (Łazienka, Korytarz). Salon pozostaje lodowaty!</div>
            </div>
            <button class="mf-toggle-btn" id="mf-toggle-btn">
                <span>🔧</span> WŁĄCZ REGULACJĘ ROTAMETRAMI
            </button>
        </div>

        <div class="mf-controls-grid">
            <div class="mf-zone-card">
                <div class="mf-zone-header">
                    <span class="mf-zone-name">📺 Salon (Długa)</span>
                    <span class="mf-zone-value"><span id="l-val-1">110</span> m</span>
                </div>
                <input type="range" class="mf-slider" id="l-input-1" min="40" max="130" step="5" value="110">
            </div>
            <div class="mf-zone-card">
                <div class="mf-zone-header">
                    <span class="mf-zone-name">🍳 Kuchnia (Średnia)</span>
                    <span class="mf-zone-value"><span id="l-val-2">70</span> m</span>
                </div>
                <input type="range" class="mf-slider" id="l-input-2" min="30" max="100" step="5" value="70">
            </div>
            <div class="mf-zone-card">
                <div class="mf-zone-header">
                    <span class="mf-zone-name">🛁 Łazienka (Krótka)</span>
                    <span class="mf-zone-value"><span id="l-val-3">35</span> m</span>
                </div>
                <input type="range" class="mf-slider" id="l-input-3" min="20" max="80" step="5" value="35">
            </div>
            <div class="mf-zone-card">
                <div class="mf-zone-header">
                    <span class="mf-zone-name">🛏️ Sypialnia (Średnia)</span>
                    <span class="mf-zone-value"><span id="l-val-4">60</span> m</span>
                </div>
                <input type="range" class="mf-slider" id="l-input-4" min="30" max="100" step="5" value="60">
            </div>
            <div class="mf-zone-card">
                <div class="mf-zone-header">
                    <span class="mf-zone-name">🚪 Korytarz (Bardzo krótka)</span>
                    <span class="mf-zone-value"><span id="l-val-5">25</span> m</span>
                </div>
                <input type="range" class="mf-slider" id="l-input-5" min="20" max="70" step="5" value="25">
            </div>
        </div>
        
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- DOMAIN LOCK ---
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        const container = document.getElementById('app-manifold-balancing');
        if (container) {
            container.innerHTML = `<div style="padding:40px;text-align:center;background:#0f172a;color:#fff;border-radius:24px;"><p>🔒 Narzędzie Chronione</p><p>Symulator Równoważenia 5-obwodowego należy do <strong>Projekt-Ogrzewania.pl</strong>.</p></div>`;
            return;
        }
    }

    let isBalanced = false;
    const totalPumpFlow = 10.0;
    const multipliers = [0.018, 0.020, 0.040, 0.015, 0.025]; 

    const inputs = [
        document.getElementById('l-input-1'),
        document.getElementById('l-input-2'),
        document.getElementById('l-input-3'),
        document.getElementById('l-input-4'),
        document.getElementById('l-input-5')
    ];
    
    const valDisplays = [
        document.getElementById('l-val-1'),
        document.getElementById('l-val-2'),
        document.getElementById('l-val-3'),
        document.getElementById('l-val-4'),
        document.getElementById('l-val-5')
    ];

    const waterRects = [
        document.getElementById('water-1'),
        document.getElementById('water-2'),
        document.getElementById('water-3'),
        document.getElementById('water-4'),
        document.getElementById('water-5')
    ];
    
    const floats = [
        document.getElementById('float-1'),
        document.getElementById('float-2'),
        document.getElementById('float-3'),
        document.getElementById('float-4'),
        document.getElementById('float-5')
    ];

    const flowReadouts = [
        document.getElementById('val-1'),
        document.getElementById('val-2'),
        document.getElementById('val-3'),
        document.getElementById('val-4'),
        document.getElementById('val-5')
    ];

    const toggleBtn = document.getElementById('mf-toggle-btn');
    const statusBox = document.getElementById('mf-status-box');
    const statusTitle = document.getElementById('mf-status-title');
    const statusDesc = document.getElementById('mf-status-desc');

    function calculateFlows() {
        const lengths = inputs.map(input => parseFloat(input.value));
        lengths.forEach((len, i) => { valDisplays[i].textContent = len; });

        let flows = [0,0,0,0,0];

        if (isBalanced) {
            flows = lengths.map((len, i) => {
                let optimal = len * multipliers[i];
                return Math.min(optimal, 3.2); 
            });
            
            statusBox.className = 'mf-action-panel balanced';
            statusTitle.innerHTML = '✅ UKŁAD IDEALNIE ZBILANSOWANY';
            statusDesc.innerHTML = 'Rotametry zostały prawidłowo zdławione według projektu. Największy opór stawiany jest krótkim pętlom (Korytarz, Łazienka), wymuszając przepływ w Salonie. Cały dom grzeje równomiernie.';
            toggleBtn.innerHTML = '<span>🔓</span> Otwórz zawory na 100% (Zepsuj)';
            toggleBtn.classList.add('active');

        } else {
            let conductances = lengths.map(len => 1 / len);
            let sumConductance = conductances.reduce((a, b) => a + b, 0);
            
            flows = conductances.map(c => totalPumpFlow * (c / sumConductance));
            
            statusBox.className = 'mf-action-panel';
            statusTitle.innerHTML = '⚠️ System ROZREGULOWANY!';
            statusDesc.innerHTML = 'Wszystkie rotametry są całkowicie otwarte (0 dławienia). Ciśnienie ucieka z najmniejszym oporem przez krótkie pętle (Łazienka, Korytarz). Salon pozostaje lodowaty!';
            toggleBtn.innerHTML = '<span>🔧</span> WŁĄCZ REGULACJĘ ROTAMETRAMI';
            toggleBtn.classList.remove('active');
        }

        flows.forEach((flow, i) => {
            let displayFlow = Math.min(flow, 3.2);
            let pxHeight = (displayFlow / 3.2) * 145; 
            
            waterRects[i].setAttribute('height', pxHeight);
            waterRects[i].setAttribute('y', 165 - pxHeight);
            floats[i].style.transform = `translateY(-${pxHeight}px)`;

            flowReadouts[i].textContent = `${flow.toFixed(1)} l/min`;
            if (!isBalanced && (flow > 2.5 || flow < 0.6)) {
                flowReadouts[i].setAttribute('fill', '#dc2626'); 
            } else {
                flowReadouts[i].setAttribute('fill', '#0284c7'); 
            }
        });
    }

    inputs.forEach(input => {
        input.addEventListener('input', () => {
            isBalanced = false;
            calculateFlows();
        });
    });

    toggleBtn.addEventListener('click', () => {
        isBalanced = !isBalanced;
        calculateFlows();
    });

    calculateFlows();
});
</script>



<style>
:root {
    --diag-primary: #0f172a;
    --diag-panel: #ffffff;
    --diag-accent: #0284c7;
    --diag-accent-light: #e0f2fe;
    --diag-text: #334155;
    --diag-muted: #64748b;
    --diag-border: #e2e8f0;
    --diag-danger: #ef4444;
    --diag-warning: #f59e0b;
    --diag-success: #10b981;
}

.diag-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--diag-text);
}

/* WSTĘP */
.diag-intro {
    background: linear-gradient(135deg, #ffffff, var(--diag-accent-light));
    padding: 35px 40px;
    border-radius: 24px;
    border: 1px solid var(--diag-border);
    margin-bottom: 30px;
    box-shadow: 0 10px 30px -10px rgba(2, 132, 199, 0.1);
}

.diag-intro h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--diag-primary);
    margin-bottom: 15px;
    letter-spacing: -0.5px;
    line-height: 1.3;
}

.diag-intro p {
    font-size: 17px;
    line-height: 1.7;
    margin: 0;
}

/* KARTY FUNKCJI (Zamiast ściany tekstu) */
.diag-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-bottom: 40px;
}

.diag-card {
    background: var(--diag-panel);
    border: 1px solid var(--diag-border);
    border-radius: 20px;
    padding: 25px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    transition: transform 0.3s, box-shadow 0.3s;
}

.diag-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 25px -5px rgba(0,0,0,0.05);
    border-color: #bae6fd;
}

.diag-card-icon {
    font-size: 32px;
    margin-bottom: 15px;
    display: block;
}

.diag-card h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--diag-primary);
    margin-top: 0;
    margin-bottom: 15px;
    line-height: 1.3;
}

.diag-card p {
    font-size: 14.5px;
    line-height: 1.6;
    color: #475569;
    margin-bottom: 15px;
}

.diag-card ul {
    padding-left: 20px;
    margin: 0;
    font-size: 14px;
    color: #475569;
}

.diag-card li { margin-bottom: 6px; }

.diag-link {
    color: var(--diag-accent);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: 0.2s;
}
.diag-link:hover { border-color: var(--diag-accent); color: #0369a1; }

/* SYMULATOR DIAGNOSTYCZNY */
.diag-app {
    background: var(--diag-panel);
    border: 1px solid var(--diag-border);
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 20px 40px -10px rgba(0,0,0,0.05);
    display: flex;
}

.diag-app-sidebar {
    width: 35%;
    background: #f8fafc;
    padding: 30px;
    border-right: 1px solid var(--diag-border);
}

.diag-app-main {
    width: 65%;
    padding: 30px 40px;
    display: flex;
    align-items: center;
    gap: 40px;
}

.diag-btn {
    width: 100%;
    text-align: left;
    background: #ffffff;
    border: 1px solid var(--diag-border);
    padding: 15px 20px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 700;
    color: var(--diag-text);
    margin-bottom: 12px;
    cursor: pointer;
    transition: 0.2s;
    display: flex;
    align-items: center;
    gap: 10px;
}

.diag-btn:hover { border-color: var(--diag-accent); }
.diag-btn.active {
    background: var(--diag-accent);
    color: #ffffff;
    border-color: var(--diag-accent);
    box-shadow: 0 4px 12px rgba(2, 132, 199, 0.3);
}

/* SVG ROTAMETR ANIMACJE */
.diag-svg-container {
    width: 120px;
    height: 280px;
    flex-shrink: 0;
}

.svg-glass { fill: #f1f5f9; stroke: #cbd5e1; stroke-width: 2; }
.svg-water { fill: rgba(14, 165, 233, 0.15); }
.svg-float { fill: #ef4444; transition: transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1); }

/* Animacje stanów */
.state-normal .svg-float { transform: translateY(-70px); }
.state-zero .svg-float { transform: translateY(0px); }
.state-jump .svg-float { animation: jumpAnim 0.8s infinite alternate ease-in-out; }
@keyframes jumpAnim {
    0% { transform: translateY(-40px); }
    100% { transform: translateY(-80px); }
}

/* Bąbelki powietrza */
.svg-bubble { fill: #ffffff; opacity: 0; }
.state-jump .svg-bubble { animation: bubbleRise 1.5s infinite linear; }
.state-jump .svg-bubble:nth-child(2) { animation-delay: 0.5s; }
.state-jump .svg-bubble:nth-child(3) { animation-delay: 1s; }
@keyframes bubbleRise {
    0% { transform: translateY(140px); opacity: 0; }
    20% { opacity: 0.8; }
    100% { transform: translateY(20px); opacity: 0; }
}

.diag-result {
    flex-grow: 1;
}

.diag-badge {
    display: inline-block;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    margin-bottom: 15px;
}
.badge-ok { background: #dcfce7; color: #166534; }
.badge-warn { background: #fef3c7; color: #92400e; }
.badge-err { background: #fee2e2; color: #991b1b; }

.diag-result h4 {
    font-size: 20px;
    font-weight: 900;
    color: var(--diag-primary);
    margin: 0 0 10px 0;
}

.diag-result p {
    font-size: 15px;
    color: #475569;
    line-height: 1.6;
}

@media (max-width: 900px) {
    .diag-grid { grid-template-columns: 1fr; }
    .diag-app { flex-direction: column; }
    .diag-app-sidebar { width: 100%; border-right: none; border-bottom: 1px solid var(--diag-border); }
    .diag-app-main { width: 100%; flex-direction: column; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#diagnostyka",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/"
    },
    "headline": "Rola rotametru: Równoważenie, kontrola i diagnostyka ogrzewania podłogowego",
    "description": "Zrozum 3 fundamentalne funkcje wskaźnika przepływu. Naucz się diagnozować awarię pompy, zapowietrzenie obiegów i brak przepływu na rotametrze dzięki interaktywnej aplikacji.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-03",
    "dateModified": "2026-05-03"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#dataset-symptomy",
    "name": "Symptomy i diagnoza pracy obiegów grzewczych na podstawie rotametrów",
    "description": "Wizualna obserwacja zachowania pływaka rotametru pod obciążeniem hydraulicznym. Baza danych objawów zapowietrzenia i awarii pompy.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "brak przepływu na rotametrze",
      "skaczący rotametr podłogówka",
      "diagnoza ogrzewania podłogowego",
      "wskaźnik przepływu na zerze",
      "jak wyregulować podłogówkę rotametrami"
    ],
    "measurementTechnique": "Bezpośrednia obserwacja dynamiki wskaźnika pływakowego na belce rozdzielacza w stosunku do wydajności pompy obiegowej.",
    "mainEntity": {
      "@type": "Thing",
      "name": "Diagnostyka hydrauliczna instalacji"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#webapp-diagnosta",
    "name": "Interaktywny Diagnosta Rotametrów",
    "description": "Narzędzie symulujące stany awaryjne wskaźnika przepływu. Pozwala wizualnie zidentyfikować zapowietrzenie pętli lub usterki mechaniczne systemu na podstawie zachowania rotametru.",
    "applicationCategory": "DiagnosticApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5, SVG Animations"
  }
]
</script>

<div class="diag-wrapper" id="app-diagnostics-module">
    
    <div class="diag-intro">
        <h2>Więcej niż wskaźnik: Trzy filary rotametru</h2>
        <p>Wielu inwestorów zastanawia się, czy rotametr na rozdzielaczu to tylko zbędny gadżet podnoszący wycenę instalatora. Prawda jest taka, że bez nich <strong>profesjonalne i energooszczędne wyregulowanie instalacji jest po prostu fizycznie niemożliwe</strong>. To &#8222;oczy i uszy&#8221; Twojego systemu HVAC, pełniące 3 fundamentalne role.</p>
    </div>

    <div class="diag-grid">
        <div class="diag-card">
            <span class="diag-card-icon">⚖️</span>
            <h3>1. Równoważenie hydrauliczne</h3>
            <p>To najważniejsze zadanie. W domu pętle mają różną długość: np. łazienka 70m, salon 100m, sypialnia 60m. <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/" class="diag-link">Dłuższa pętla stawia większy opór</a>.</p>
            <p>Gdyby pętle były w pełni otwarte, woda wybrałaby najkrótszą drogę. W efekcie łazienka byłaby przegrzana, a salon lodowaty. Rotametr pozwala &#8222;przykręcić&#8221; krótkie obwody i zrównoważyć dostarczaną energię.</p>
        </div>

        <div class="diag-card">
            <span class="diag-card-icon">🩺</span>
            <h3>2. Ciągła diagnoza systemu</h3>
            <p>Rotametry to niezawodne &#8222;pulsomierze&#8221; instalacji. Wystarczy jeden rzut oka na belkę rozdzielacza, aby w kilka sekund zlokalizować awarię układu.</p>
            <ul>
                <li><strong>Leży na dnie:</strong> Blokada lub silne zapowietrzenie.</li>
                <li><strong>Drga i skacze:</strong> Powietrze w rurach.</li>
                <li><strong>Wszystkie na 0:</strong> Prawdopodobna awaria <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/" class="diag-link">pompy obiegowej</a>.</li>
            </ul>
        </div>

        <div class="diag-card">
            <span class="diag-card-icon">🚀</span>
            <h3>3. Narzędzie przy rozruchu</h3>
            <p>Podczas pierwszego uruchomienia i <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/" class="diag-link">próby ciśnieniowej</a>, rozbieżności między projektem a odczytem rotametru to czerwona flaga.</p>
            <p>Mogą one wskazywać na fizyczne załamanie rury w wylewce, zbyt mocne zaciśnięcie złączki lub błąd w wykonaniu długości pętli. Z kolei w eksploatacji powolny spadek przepływu to sygnał o zamuleniu (zanieczyszczeniu) zładu wody.</p>
        </div>
    </div>

    <div class="diag-app">
        <div class="diag-app-sidebar">
            <div class="diag-app-title">Symulator Diagnosty</div>
            <div class="diag-app-subtitle" style="margin-bottom: 25px;">Kliknij w objaw, który obserwujesz na swojej instalacji:</div>
            
            <button class="diag-btn active" data-state="normal">
                <span>✅</span> Stabilny odczyt
            </button>
            <button class="diag-btn" data-state="jump">
                <span>⚠️</span> Pływak &#8222;skacze&#8221; / drga
            </button>
            <button class="diag-btn" data-state="zero-one">
                <span>❌</span> Jeden pływak na dnie
            </button>
            <button class="diag-btn" data-state="zero-all">
                <span>🚨</span> Wszystkie pływaki na 0
            </button>
        </div>
        
        <div class="diag-app-main">
            <div class="diag-svg-container state-normal" id="diag-svg">
                <svg viewBox="0 0 60 160" width="100%" height="100%">
                    <rect class="svg-glass" x="10" y="10" width="40" height="140" rx="4"/>
                    <line x1="12" y1="30" x2="20" y2="30" stroke="#94a3b8"/><text x="23" y="33" font-size="8" fill="#64748b">3.0</text>
                    <line x1="12" y1="60" x2="20" y2="60" stroke="#94a3b8"/><text x="23" y="63" font-size="8" fill="#64748b">2.0</text>
                    <line x1="12" y1="90" x2="20" y2="90" stroke="#94a3b8"/><text x="23" y="93" font-size="8" fill="#64748b">1.0</text>
                    <line x1="12" y1="120" x2="20" y2="120" stroke="#94a3b8"/><text x="23" y="123" font-size="8" fill="#64748b">0.0</text>
                    
                    <rect class="svg-water" x="12" y="12" width="36" height="136" rx="2"/>
                    
                    <path class="svg-float" d="M 20 135 L 40 135 L 36 125 L 24 125 Z"/>
                    
                    <circle class="svg-bubble" cx="25" cy="0" r="2"/>
                    <circle class="svg-bubble" cx="35" cy="0" r="3"/>
                    <circle class="svg-bubble" cx="30" cy="0" r="1.5"/>
                    
                    <rect x="5" y="140" width="50" height="12" rx="2" fill="#ef4444"/>
                </svg>
            </div>
            
            <div class="diag-result" id="diag-result-content">
                <span class="diag-badge badge-ok">Stan Poprawny</span>
                <h4>Wszystko działa idealnie</h4>
                <p>Przepływ jest stabilny i zgadza się z wartościami z projektu. Pompa obiegowa tłoczy czynnik grzewczy bez zakłóceń, a w pętli nie ma korków gazowych. Podłoga powinna nagrzewać się równomiernie.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // --- DOMAIN LOCK (Bez h2/h3) ---
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        const container = document.getElementById('app-diagnostics-module');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #fff; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 10px;">🔒</div>
                    <div style="font-weight: 800; font-size: 22px; margin-bottom: 15px; color: #38bdf8;">Treść Chroniona</div>
                    <div style="font-size: 15px; color: #cbd5e1; margin-bottom: 20px;">Symulator Diagnostyczny stanowi własność serwisu Projekt-Ogrzewania.pl.</div>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 10px 20px; background: #0ea5e9; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">Przejdź do oryginału</a>
                </div>`;
            return;
        }
    }

    // --- LOGIKA DIAGNOSTY ---
    const btns = document.querySelectorAll('.diag-btn');
    const svgContainer = document.getElementById('diag-svg');
    const resultContent = document.getElementById('diag-result-content');

    const dataStates = {
        'normal': {
            class: 'state-normal',
            badge: '<span class="diag-badge badge-ok">Stan Poprawny</span>',
            title: 'Wszystko działa idealnie',
            desc: 'Przepływ jest stabilny i zgadza się z wartościami z projektu. Pompa obiegowa tłoczy czynnik grzewczy bez zakłóceń, a w pętli nie ma korków gazowych. Podłoga powinna nagrzewać się równomiernie.'
        },
        'jump': {
            class: 'state-jump',
            badge: '<span class="diag-badge badge-warn">Wymaga uwagi</span>',
            title: 'Obecność powietrza w instalacji',
            desc: 'Pływak "skacze", ponieważ strumień wody jest przerywany przez pęcherzyki gazu. Należy przeprowadzić <a href="https://projekt-ogrzewania.pl/objawy-zapowietrzenia-ogrzewania-podlogowego/" class="diag-link">procedurę odpowietrzania pętli</a>. Ignorowanie tego stanu prowadzi do zimnych stref i głośnej pracy układu.'
        },
        'zero-one': {
            class: 'state-zero',
            badge: '<span class="diag-badge badge-err">Awaria pętli</span>',
            title: 'Brak przepływu w jednym obwodzie',
            desc: 'Zawór jest otwarty, ale pływak leży na dnie. Oznacza to całkowite zablokowanie pętli przez zanieczyszczenia (szlam, kamień kotłowy), zaciśnięcie rury pod wylewką, lub utworzenie się potężnego korka powietrznego, którego pompa nie potrafi przepchnąć.'
        },
        'zero-all': {
            class: 'state-zero',
            badge: '<span class="diag-badge badge-err">Awaria Systemowa</span>',
            title: 'Brak przepływu na rozdzielaczu',
            desc: 'Jeśli wszystkie rotametry na belce spadły do zera, problem jest globalny. Przyczyną jest najczęściej awaria pompy obiegowej, brak zasilania elektrycznego sterownika, lub zablokowanie głównego zaworu mieszającego przed rozdzielaczem.'
        }
    };

    btns.forEach(btn => {
        btn.addEventListener('click', () => {
            // Reset buttons
            btns.forEach(b => b.classList.remove('active'));
            btn.classList.add('active');

            const stateKey = btn.getAttribute('data-state');
            const stateData = dataStates[stateKey];

            // Update SVG CSS Class
            svgContainer.className = 'diag-svg-container ' + stateData.class;

            // Update Text with slight fade effect
            resultContent.style.opacity = '0';
            setTimeout(() => {
                resultContent.innerHTML = `
                    ${stateData.badge}
                    <hp>${stateData.title}</p>
                    <p>${stateData.desc}</p>
                `;
                resultContent.style.opacity = '1';
                resultContent.style.transition = 'opacity 0.3s ease';
            }, 150);
        });
    });
});
</script>



<style>
:root {
    --param-primary: #0f172a;
    --param-panel: #ffffff;
    --param-accent: #0ea5e9;
    --param-accent-dark: #0284c7;
    --param-text: #334155;
    --param-muted: #64748b;
    --param-border: #e2e8f0;
    --param-bg: #f8fafc;
    --param-danger: #ef4444;
    --param-warning: #f59e0b;
    --param-success: #10b981;
}

.param-module {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--param-text);
    line-height: 1.6;
}

.param-header-box {
    background: #ffffff;
    border: 1px solid var(--param-border);
    border-radius: 24px;
    padding: 40px 50px;
    box-shadow: 0 10px 30px -10px rgba(0,0,0,0.05);
    margin-bottom: 40px;
}

.param-header-box h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--param-primary);
    margin-bottom: 20px;
    letter-spacing: -0.5px;
    line-height: 1.2;
}

.param-header-box p {
    font-size: 16px;
    color: var(--param-text);
    margin-bottom: 30px;
}

/* ZAMIAST TABELI - GRID PARAMETRÓW */
.param-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.param-card {
    background: var(--param-bg);
    border: 1px solid var(--param-border);
    border-radius: 16px;
    padding: 20px;
    transition: all 0.3s ease;
}

.param-card:hover {
    background: #ffffff;
    border-color: var(--param-accent);
    box-shadow: 0 10px 20px -5px rgba(14, 165, 233, 0.1);
    transform: translateY(-3px);
}

.param-icon {
    font-size: 24px;
    margin-bottom: 10px;
    display: block;
}

.param-title {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--param-muted);
    letter-spacing: 0.5px;
    margin-bottom: 8px;
}

.param-value {
    font-size: 15px;
    font-weight: 700;
    color: var(--param-primary);
    margin-bottom: 5px;
}

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

/* INTERAKTYWNY ANALIZATOR PRZEPŁYWU */
.flow-analyzer {
    background: #ffffff;
    border: 1px solid var(--param-border);
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 20px 40px -10px rgba(0,0,0,0.08);
}

.flow-header {
    background: linear-gradient(to right, #f8fafc, #ffffff);
    padding: 30px 40px;
    border-bottom: 1px solid var(--param-border);
}

.flow-header h3 {
    font-size: 22px;
    font-weight: 800;
    color: var(--param-primary);
    margin: 0 0 10px 0;
}

.flow-header p {
    font-size: 15px;
    margin: 0;
    color: var(--param-muted);
}

.flow-workspace {
    display: flex;
    padding: 40px;
    gap: 40px;
    align-items: center;
}

.flow-controls {
    flex: 1;
}

/* Custom Slider */
.flow-slider-box {
    background: var(--param-bg);
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--param-border);
    margin-bottom: 25px;
}

.flow-val-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 15px;
}

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

.flow-val-current {
    font-size: 24px;
    font-weight: 900;
    color: var(--param-accent-dark);
    font-family: monospace;
}

.slider-styled {
    -webkit-appearance: none;
    width: 100%;
    background: transparent;
}
.slider-styled:focus { outline: none; }
.slider-styled::-webkit-slider-runnable-track {
    width: 100%;
    height: 8px;
    background: linear-gradient(to right, #fca5a5, #86efac, #fca5a5);
    border-radius: 4px;
    border: 1px solid #cbd5e1;
}
.slider-styled::-webkit-slider-thumb {
    height: 28px;
    width: 28px;
    border-radius: 50%;
    background: #ffffff;
    border: 4px solid var(--param-primary);
    cursor: pointer;
    -webkit-appearance: none;
    margin-top: -11px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.2);
    transition: transform 0.1s;
}
.slider-styled::-webkit-slider-thumb:active {
    transform: scale(1.15);
}

/* Dynamiczny status */
.flow-status-card {
    padding: 20px;
    border-radius: 16px;
    border: 2px solid transparent;
    transition: 0.3s ease;
}

.status-low { background: #fef2f2; border-color: #fecaca; }
.status-opt { background: #f0fdf4; border-color: #bbf7d0; }
.status-high { background: #fffbeb; border-color: #fde68a; }

.status-badge {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    margin-bottom: 10px;
}
.status-low .status-badge { background: #fee2e2; color: #991b1b; }
.status-opt .status-badge { background: #dcfce7; color: #166534; }
.status-high .status-badge { background: #fef3c7; color: #92400e; }

.status-title {
    font-size: 18px;
    font-weight: 900;
    margin-bottom: 8px;
    color: var(--param-primary);
}

.status-desc {
    font-size: 14px;
    line-height: 1.6;
    margin: 0;
}

.status-desc a {
    color: inherit;
    text-decoration: underline;
    font-weight: bold;
}

/* WIZUALIZACJA RURY SVG */
.flow-visual {
    width: 200px;
    height: 200px;
    display: flex;
    justify-content: center;
    align-items: center;
    background: var(--param-bg);
    border-radius: 50%;
    border: 1px solid var(--param-border);
    box-shadow: inset 0 4px 10px rgba(0,0,0,0.03);
    position: relative;
}

.pipe-svg { width: 140px; height: 140px; overflow: visible; }
.pipe-body { fill: none; stroke: #94a3b8; stroke-width: 8; stroke-linecap: round; }
.pipe-water { fill: none; stroke: var(--param-accent); stroke-width: 14; stroke-linecap: round; transition: stroke-dasharray 0.3s; }

/* Animacje wody */
.anim-slow { stroke-dasharray: 20 40; animation: flowAnim 3s linear infinite; stroke: #60a5fa; }
.anim-optimal { stroke-dasharray: 100 0; stroke: #34d399; }
.anim-fast { stroke-dasharray: 10 10; animation: flowAnim 0.3s linear infinite; stroke: #f87171; }

@keyframes flowAnim {
    to { stroke-dashoffset: -100; }
}

/* Bąbel w rurze (dla zbyt niskiego) */
.air-bubble { fill: #ffffff; stroke: #cbd5e1; stroke-width: 2; opacity: 0; transition: 0.3s; }
.show-bubble { opacity: 1; }

/* Fale dźwiękowe (dla zbyt wysokiego) */
.sound-wave { fill: none; stroke: #94a3b8; stroke-width: 3; stroke-linecap: round; opacity: 0; transition: 0.3s; }
.show-noise { opacity: 1; animation: noisePulse 0.5s alternate infinite; }

@keyframes noisePulse {
    from { transform: scale(0.9); stroke: #94a3b8; }
    to { transform: scale(1.1); stroke: #ef4444; }
}

@media (max-width: 900px) {
    .param-grid { grid-template-columns: repeat(2, 1fr); }
    .flow-workspace { flex-direction: column-reverse; padding: 25px; }
    .param-header-box { padding: 30px 25px; }
}
@media (max-width: 600px) {
    .param-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#parametry",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/"
    },
    "headline": "Parametry rotametru i optymalne wartości przepływu",
    "description": "Zestawienie techniczne rotametrów oraz interaktywny symulator skutków błędnego przepływu. Dowiedz się, dlaczego zły przepływ powoduje szumy i zapowietrzenie instalacji.",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-11-29",
    "dateModified": "2026-05-03"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#dataset-techniczny",
    "name": "Specyfikacja techniczna i zakresy robocze przepływomierzy",
    "description": "Parametry operacyjne rotametrów w systemach płaszczyznowych, w tym ciśnienie (do 6 bar), dokładność (±5%) oraz zjawiska fizyczne związane z brakiem złotego środka.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "rotametr specyfikacja",
      "optymalny przepływ podłogówki",
      "szum w instalacji podłogowej",
      "parametry rotametrów",
      "prawidłowa regulacja ogrzewania"
    ],
    "measurementTechnique": "Określenie parametrów na podstawie wytycznych dla systemów niskotemperaturowych, wskaźniki podane w litrach na minutę (L/min).",
    "mainEntity": {
      "@type": "Thing",
      "name": "Właściwości operacyjne wskaźnika przepływu"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#webapp-przeplyw",
    "name": "Analizator Skutków Przepływu Hydraulicznego",
    "description": "Kalkulator webowy ilustrujący wpływ zbyt niskiego (0.1-0.4 L/min) lub zbyt wysokiego (>1.5 L/min) natężenia przepływu wody na kulturę pracy pętli podłogowej.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, SVG Support"
  }
]
</script>

<div class="param-module" id="app-flow-analyzer">
    
    <div class="param-header-box">
        <h2>Rotametry w praktyce: Zestawienie kluczowych parametrów</h2>
        <p>Zrozumienie, czym fizycznie dysponujesz na swoim rozdzielaczu, to pierwszy krok do sukcesu. Poniżej zebrałem 6 najważniejszych aspektów technicznych wskaźników przepływu w kontekście bezpiecznej i długotrwałej pracy systemu ogrzewania podłogowego.</p>
        
        <div class="param-grid">
            <div class="param-card">
                <span class="param-icon">📏</span>
                <div class="param-title">Zakres pomiarowy</div>
                <div class="param-value">0,5 &#8211; 3,0 l/min</div>
                <div class="param-desc">Dobiera się go ściśle do projektowanych przepływów. Wyższe wartości są rzadkością w podłogówce domowej.</div>
            </div>
            
            <div class="param-card">
                <span class="param-icon">⚖️</span>
                <div class="param-title">Jednostka i Dokładność</div>
                <div class="param-value">Litry na minutę / ±5%</div>
                <div class="param-desc">Czasem podawane w m³/h. W warunkach domowych błąd rzędu 5% jest pomijalny przy finalnej regulacji.</div>
            </div>
            
            <div class="param-card">
                <span class="param-icon">💥</span>
                <div class="param-title">Ciśnienie robocze</div>
                <div class="param-value">Standardowo 6 bar</div>
                <div class="param-desc">Należy sprawdzić ich specyfikację, jeśli instalacja przechodzi rygorystyczne próby szczelności (często 1,5x wyższe ciśnienie).</div>
            </div>
            
            <div class="param-card">
                <span class="param-icon">🌡️</span>
                <div class="param-title">Temperatura robocza</div>
                <div class="param-value">Do 90°C &#8211; 110°C</div>
                <div class="param-desc">Wartość w pełni wystarczająca i bardzo bezpieczna, zważywszy, że podłogówka to system niskotemperaturowy.</div>
            </div>
            
            <div class="param-card">
                <span class="param-icon">🔧</span>
                <div class="param-title">Miejsce montażu</div>
                <div class="param-value">Wyłącznie Powrót</div>
                <div class="param-desc">Montaż na zasilaniu daje <strong>błędne odczyty</strong> ze względu na zmienną gęstość wody podgrzanej przez kocioł.</div>
            </div>
            
            <div class="param-card">
                <span class="param-icon">🧹</span>
                <div class="param-title">Konserwacja</div>
                <div class="param-desc" style="margin-top:5px;">Są praktycznie bezobsługowe. Jednak w przypadku ciężkiego zabrudzenia i utknięcia pływaka, mechanizm można zdemontować i wyczyścić.</div>
            </div>
        </div>
    </div>

    <div class="flow-analyzer">
        <div class="flow-header">
            <h3>Optymalne wartości – znajdź &#8222;złoty środek&#8221;</h3>
            <p>Prawidłowe ustawienie zależy od <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">długości pętli</a> oraz zapotrzebowania, ale jakie są skutki odchyleń od normy? Przesuń suwak i sprawdź.</p>
        </div>

        <div class="flow-workspace">
            <div class="flow-controls">
                
                <div class="flow-slider-box">
                    <div class="flow-val-row">
                        <div class="flow-val-label">Natężenie przepływu:</div>
                        <div class="flow-val-current" id="flow-display">1.2 l/min</div>
                    </div>
                    <input type="range" class="slider-styled" id="flow-slider" min="0.1" max="3.0" step="0.1" value="1.2">
                </div>

                <div class="flow-status-card status-opt" id="flow-status-card">
                    <span class="status-badge" id="flow-badge">Optymalnie</span>
                    <div class="status-title" id="flow-title">Cisza i wysoka wydajność</div>
                    <p class="status-desc" id="flow-desc">W typowych instalacjach mieszkaniowych przepływ wynosi od 0,5 do 1,5 l/min. To złoty środek: gwarantuje idealny transfer ciepła oraz <strong>energooszczędną</strong> pracę układu pompowego bez zbędnych przeciążeń.</p>
                </div>

            </div>

            <div class="flow-visual">
                <svg class="pipe-svg" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
                    <path class="pipe-body" d="M 10 90 Q 50 90, 50 50 T 90 10" />
                    <path id="svg-water-flow" class="pipe-water anim-optimal" d="M 10 90 Q 50 90, 50 50 T 90 10" />
                    
                    <circle id="svg-bubble" class="air-bubble" cx="50" cy="50" r="8" />
                    
                    <g id="svg-noise" class="sound-wave">
                        <path d="M 75 35 Q 85 25, 95 35" />
                        <path d="M 65 25 Q 80 10, 95 20" />
                    </g>
                </svg>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // --- DOMAIN LOCK (Brak nagłówków H2/H3) ---
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        const container = document.getElementById('app-flow-analyzer');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #fff; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">🔒</div>
                    <div style="font-weight: 900; font-size: 20px; margin-bottom: 10px; color: #38bdf8;">Zawartość Autorska</div>
                    <div style="font-size: 14px; color: #cbd5e1; margin-bottom: 20px;">Narzędzie "Analizator Przepływu" jest własnością intelektualną serwisu Projekt-Ogrzewania.pl.</div>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 10px 20px; background: #0ea5e9; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>`;
            return;
        }
    }

    // --- LOGIKA ANALIZATORA ---
    const slider = document.getElementById('flow-slider');
    const display = document.getElementById('flow-display');
    const card = document.getElementById('flow-status-card');
    const badge = document.getElementById('flow-badge');
    const title = document.getElementById('flow-title');
    const desc = document.getElementById('flow-desc');
    
    const svgWater = document.getElementById('svg-water-flow');
    const svgBubble = document.getElementById('svg-bubble');
    const svgNoise = document.getElementById('svg-noise');

    function updateFlowApp() {
        const val = parseFloat(slider.value);
        display.textContent = val.toFixed(1) + ' l/min';

        if (val < 0.5) {
            // ZBYT NISKI
            card.className = 'flow-status-card status-low';
            badge.textContent = 'Zbyt Niski';
            title.textContent = 'Ryzyko zimnych placów i zapowietrzenia';
            desc.innerHTML = 'Gdy strumień wody jest tak słaby, nie ma siły "wypchnąć" gazów uwięzionych w instalacji. Skutkuje to tworzeniem się korków powietrznych, utratą skutecznego transferu ciepła i <a href="https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/">brakiem odpowiedniego zładu wody</a> w sekcji.';
            
            svgWater.className.baseVal = 'pipe-water anim-slow';
            svgBubble.classList.add('show-bubble');
            svgNoise.classList.remove('show-noise');
        } 
        else if (val >= 0.5 && val <= 1.5) {
            // OPTYMALNIE
            card.className = 'flow-status-card status-opt';
            badge.textContent = 'Złoty środek';
            title.textContent = 'Cisza i wysoka wydajność';
            desc.innerHTML = 'W typowych instalacjach przepływ od 0,5 do 1,5 l/min gwarantuje idealny transfer ciepła oraz <strong><a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-jest-energooszczedne/">energooszczędną</a></strong> pracę pompy. System skutecznie uwalnia powietrze i pozostaje bezgłośny.';
            
            svgWater.className.baseVal = 'pipe-water anim-optimal';
            svgBubble.classList.remove('show-bubble');
            svgNoise.classList.remove('show-noise');
        } 
        else {
            // ZBYT WYSOKI
            card.className = 'flow-status-card status-high';
            badge.textContent = 'Zbyt Wysoki';
            title.textContent = 'Szum hydrauliczny i przeciążenie';
            desc.innerHTML = 'Nadmierny przepływ wywołuje uciążliwy <strong>szum hydrauliczny</strong> w rozdzielaczu i rurach. Drastycznie zwiększa się opór, co niepotrzebnie obciąża pompę obiegową i zużywa prąd – bez realnej poprawy w komforcie cieplnym.';
            
            svgWater.className.baseVal = 'pipe-water anim-fast';
            svgBubble.classList.remove('show-bubble');
            svgNoise.classList.add('show-noise');
        }
    }

    slider.addEventListener('input', updateFlowApp);
    // Init na starcie
    updateFlowApp();
});
</script>



<style>
:root {
    --prj-primary: #0f172a;
    --prj-panel: #ffffff;
    --prj-accent: #0284c7;
    --prj-accent-hover: #0369a1;
    --prj-cta: #ea580c; /* Kolor akcji dla sprzedaży */
    --prj-cta-hover: #c2410c;
    --prj-text: #334155;
    --prj-muted: #64748b;
    --prj-border: #e2e8f0;
    --prj-bg-light: #f8fafc;
    --prj-success: #10b981;
}

.prj-module {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--prj-text);
    line-height: 1.6;
}

/* NAGŁÓWEK I WSTĘP */
.prj-header {
    background: #ffffff;
    border: 1px solid var(--prj-border);
    border-radius: 24px;
    padding: 40px 50px;
    box-shadow: 0 10px 30px -10px rgba(0,0,0,0.05);
    margin-bottom: 30px;
}

.prj-header h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--prj-primary);
    margin-bottom: 20px;
    letter-spacing: -0.5px;
    line-height: 1.2;
}

.prj-header p {
    font-size: 17px;
    margin-bottom: 0;
}

.prj-header a {
    color: var(--prj-accent);
    font-weight: 700;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.prj-highlight {
    background: #fffbeb;
    border-left: 4px solid #f59e0b;
    padding: 15px 20px;
    border-radius: 0 12px 12px 0;
    margin-top: 20px;
    font-size: 15px;
    color: #92400e;
}

/* INTERAKTYWNA APLIKACJA */
.prj-app {
    background: var(--prj-bg-light);
    border: 1px solid var(--prj-border);
    border-radius: 24px;
    padding: 40px 50px;
    margin-bottom: 30px;
    display: flex;
    gap: 40px;
    align-items: center;
}

.prj-controls {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.prj-app-title {
    font-size: 20px;
    font-weight: 900;
    color: var(--prj-primary);
    margin-bottom: 5px;
}

.prj-app-desc {
    font-size: 14px;
    color: var(--prj-muted);
    margin-bottom: 10px;
}

/* Przełączniki (Tabs) */
.prj-switch-group {
    background: #ffffff;
    border: 1px solid var(--prj-border);
    border-radius: 12px;
    padding: 5px;
    display: flex;
    gap: 5px;
}

.prj-switch-btn {
    flex: 1;
    background: transparent;
    border: none;
    padding: 10px 15px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 700;
    color: var(--prj-muted);
    cursor: pointer;
    transition: 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.prj-switch-btn.active {
    background: var(--prj-primary);
    color: #ffffff;
    box-shadow: 0 4px 10px rgba(15, 23, 42, 0.15);
}

/* Suwak */
.prj-slider-wrap {
    background: #ffffff;
    border: 1px solid var(--prj-border);
    padding: 20px;
    border-radius: 16px;
}

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

.prj-slider {
    -webkit-appearance: none;
    width: 100%;
    background: transparent;
}
.prj-slider:focus { outline: none; }
.prj-slider::-webkit-slider-runnable-track {
    width: 100%;
    height: 8px;
    background: #e2e8f0;
    border-radius: 4px;
}
.prj-slider::-webkit-slider-thumb {
    height: 24px;
    width: 24px;
    border-radius: 50%;
    background: var(--prj-accent);
    cursor: pointer;
    -webkit-appearance: none;
    margin-top: -8px;
    border: 3px solid #ffffff;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    transition: 0.1s;
}
.prj-slider::-webkit-slider-thumb:active { transform: scale(1.15); }

/* WIZUALIZACJA WYNIKU SVG */
.prj-visual {
    width: 220px;
    background: #ffffff;
    border: 1px solid var(--prj-border);
    border-radius: 20px;
    padding: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
}

.prj-gauge {
    width: 140px;
    height: 140px;
    position: relative;
    margin-bottom: 20px;
}

.svg-gauge-bg { fill: none; stroke: #f1f5f9; stroke-width: 12; stroke-linecap: round; }
.svg-gauge-val { fill: none; stroke: var(--prj-accent); stroke-width: 12; stroke-linecap: round; transition: stroke-dasharray 0.5s ease-out; stroke-dasharray: 0 251; }

.prj-gauge-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
}

.prj-gauge-num {
    font-size: 26px;
    font-weight: 900;
    color: var(--prj-primary);
    line-height: 1;
}

.prj-gauge-unit {
    font-size: 12px;
    font-weight: 700;
    color: var(--prj-muted);
}

/* POTĘŻNE CTA */
.prj-cta-box {
    background: linear-gradient(135deg, var(--prj-primary), #1e293b);
    border-radius: 24px;
    padding: 45px 50px;
    text-align: center;
    color: #ffffff;
    position: relative;
    overflow: hidden;
    box-shadow: 0 20px 40px -10px rgba(15, 23, 42, 0.4);
}

.prj-cta-box::before {
    content: '';
    position: absolute;
    top: -50px;
    left: -50px;
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, rgba(234, 88, 12, 0.2) 0%, transparent 70%);
    border-radius: 50%;
}

.prj-cta-title {
    font-size: 26px;
    font-weight: 900;
    margin-bottom: 15px;
    position: relative;
    z-index: 1;
}

.prj-cta-desc {
    font-size: 16px;
    color: #cbd5e1;
    margin-bottom: 30px;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    z-index: 1;
}

.prj-btn-main {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: var(--prj-cta);
    color: #ffffff;
    text-decoration: none;
    padding: 16px 36px;
    border-radius: 14px;
    font-size: 17px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: all 0.3s;
    position: relative;
    z-index: 1;
    box-shadow: 0 8px 20px rgba(234, 88, 12, 0.3);
}

.prj-btn-main:hover {
    background: var(--prj-cta-hover);
    transform: translateY(-3px);
    box-shadow: 0 12px 25px rgba(234, 88, 12, 0.4);
}

@media (max-width: 800px) {
    .prj-app { flex-direction: column; padding: 30px 20px; }
    .prj-visual { width: 100%; }
    .prj-header, .prj-cta-box { padding: 30px 25px; }
    .prj-switch-group { flex-direction: column; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#projekt-ozc",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/"
    },
    "headline": "Projekt ogrzewania podłogowego a dobór przepływów – gdzie tkwi klucz?",
    "description": "Zobacz, dlaczego regulacja rotametrów bez projektu OZC to strzał w ciemno. Interaktywny symulator wpływu izolacji, rodzaju podłogi i temperatury na przepływ wody.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-11-29",
    "dateModified": "2026-05-03"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#dataset-projekt",
    "name": "Zmienne obliczeniowe dla równoważenia hydraulicznego",
    "description": "Dane wejściowe niezbędne do wyliczenia przepływów rotametrów, obejmujące OZC (straty ciepła budynku), opór cieplny okładzin podłogowych oraz temperaturę docelową pomieszczeń.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego",
      "dobór przepływów",
      "obliczenia OZC",
      "regulacja rotametrów ogrzewania podłogowego",
      "zapotrzebowanie na ciepło kalkulator"
    ],
    "measurementTechnique": "Przeliczenie oporów i strat cieplnych na wymagany przepływ masowy czynnika (l/min) dla obiegów.",
    "mainEntity": {
      "@type": "Thing",
      "name": "Parametry projektowe instalacji HVAC"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#webapp-projekt",
    "name": "Symulator Zmiennych Projektowych (OZC vs Przepływ)",
    "description": "Narzędzie pokazujące, jak zmiana przeznaczenia pokoju (temp.), materiału podłogi (np. panele vs płytki) oraz izolacji zmienia wynikowy strumień czynnika grzewczego na rotametrze.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, SVG Support"
  }
]
</script>

<div class="prj-module" id="app-project-flow">

    <div class="prj-header">
        <h2>Projekt podłogówki a rotametry – gdzie tkwi klucz?</h2>
        <p>Rotametr jest jedynie finalnym narzędziem. Bez profesjonalnego projektu instalacji opartego na <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obliczeniach OZC (Projektowe Obciążenie Cieplne)</a>, regulacja na rozdzielaczu to dosłownie <strong>&#8222;strzał na oślep&#8221;</strong>.</p>
        
        <div class="prj-highlight">
            Bez projektu ustawienie rotametrów jest arbitralne. Gwarantuje to przegrzewanie jednych pomieszczeń, niedogrzanie innych, a w konsekwencji – wysokie rachunki za prąd/gaz i stały dyskomfort.
        </div>
    </div>

    <div class="prj-app">
        <div class="prj-controls">
            <div class="prj-app-title">Kalkulator Zmiennych Projektowych</div>
            <div class="prj-app-desc">Sprawdź, jak różne parametry w Twoim domu wpływają na to, co instalator musi ostatecznie ustawić na skali rotametru.</div>
            
            <div>
                <div style="font-size:14px; font-weight:800; margin-bottom:8px;">1. Wymagana temperatura (Pomieszczenie)</div>
                <div class="prj-switch-group">
                    <button class="prj-switch-btn active" data-temp="20">Sypialnia (20°C)</button>
                    <button class="prj-switch-btn" data-temp="22">Salon (22°C)</button>
                    <button class="prj-switch-btn" data-temp="24">Łazienka (24°C)</button>
                </div>
            </div>

            <div>
                <div style="font-size:14px; font-weight:800; margin-bottom:8px;">2. Rodzaj wykończenia podłogi</div>
                <div class="prj-switch-group">
                    <button class="prj-switch-btn active" data-floor="1.0">Płytki / Gres (Dobry przewodnik)</button>
                    <button class="prj-switch-btn" data-floor="1.4">Panele / Drewno (Izolator)</button>
                </div>
            </div>

            <div class="prj-slider-wrap">
                <div class="prj-slider-header">
                    <span>3. Straty ciepła budynku (OZC)</span>
                    <span id="prj-heat-val" style="color:var(--prj-accent);">50 W/m² (Dobra izolacja)</span>
                </div>
                <input type="range" class="prj-slider" id="prj-heat-slider" min="30" max="100" step="5" value="50">
            </div>
        </div>

        <div class="prj-visual">
            <div style="font-size:13px; font-weight:800; color:#64748b; margin-bottom:15px; text-transform:uppercase;">Wymagany Przepływ</div>
            
            <div class="prj-gauge">
                <svg viewBox="0 0 100 100">
                    <path class="svg-gauge-bg" d="M 20 80 A 40 40 0 1 1 80 80" />
                    <path id="svg-gauge-fill" class="svg-gauge-val" d="M 20 80 A 40 40 0 1 1 80 80" style="stroke-dasharray: 0 251;" />
                </svg>
                <div class="prj-gauge-text">
                    <div class="prj-gauge-num" id="prj-flow-result">1.2</div>
                    <div class="prj-gauge-unit">L/MIN</div>
                </div>
            </div>
            
            <div style="font-size:12px; text-align:center; color:#94a3b8; line-height:1.4;">Tę wartość projektant wylicza z <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/" style="color:inherit;">długości pętli</a> i powyższych danych.</div>
        </div>
    </div>

    <div class="prj-cta-box">
        <div class="prj-cta-title">Nie zgaduj. Zbuduj system oparty na inżynierii.</div>
        <div class="prj-cta-desc">Zły przepływ to szumy, chłód i koszty. Zamów profesjonalny projekt instalacji ogrzewania podłogowego. Otrzymasz gotowe nastawy rotametrów dla każdego pomieszczenia, idealny rozstaw rur i gwarancję komfortu cieplnego.</div>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="prj-btn-main">
            📐 ZAMÓW PROJEKT PODŁOGÓWKI
        </a>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // --- DOMAIN LOCK ---
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        const container = document.getElementById('app-project-flow');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #fff; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">🔒</div>
                    <div style="font-weight: 900; font-size: 20px; margin-bottom: 10px; color: #38bdf8;">Treść Chroniona</div>
                    <div style="font-size: 14px; color: #cbd5e1;">Narzędzie Kalkulatora Projektowego stanowi własność serwisu Projekt-Ogrzewania.pl.</div>
                </div>`;
            return;
        }
    }

    // --- LOGIKA KALKULATORA ZMIENNYCH ---
    let currentTemp = 20;
    let currentFloor = 1.0;
    const slider = document.getElementById('prj-heat-slider');
    const heatValDisplay = document.getElementById('prj-heat-val');
    const flowResultDisplay = document.getElementById('prj-flow-result');
    const gaugeFill = document.getElementById('svg-gauge-fill');

    // Przyciski Temperatury
    const tempBtns = document.querySelectorAll('button[data-temp]');
    tempBtns.forEach(btn => {
        btn.addEventListener('click', (e) => {
            tempBtns.forEach(b => b.classList.remove('active'));
            e.currentTarget.classList.add('active');
            currentTemp = parseFloat(e.currentTarget.getAttribute('data-temp'));
            calculateFlow();
        });
    });

    // Przyciski Podłogi
    const floorBtns = document.querySelectorAll('button[data-floor]');
    floorBtns.forEach(btn => {
        btn.addEventListener('click', (e) => {
            floorBtns.forEach(b => b.classList.remove('active'));
            e.currentTarget.classList.add('active');
            currentFloor = parseFloat(e.currentTarget.getAttribute('data-floor'));
            calculateFlow();
        });
    });

    // Suwak Strat Ciepła
    slider.addEventListener('input', (e) => {
        const val = e.target.value;
        let desc = "";
        if(val < 50) desc = "(Dom Pasywny)";
        else if(val < 75) desc = "(Standard WT2021)";
        else desc = "(Słaba izolacja)";
        
        heatValDisplay.textContent = `${val} W/m² ${desc}`;
        calculateFlow();
    });

    function calculateFlow() {
        const heatLoss = parseFloat(slider.value);
        
        // BARDZO UPROSZCZONY WZÓR do celów demonstracyjnych aplikacji
        // Baza: 50W/m2 przy temp 20C na płytkach = ok 1.0 l/min dla pętli referencyjnej
        // Im wyższa temp oczekiwana, tym wyższy przepływ
        const tempFactor = 1 + ((currentTemp - 20) * 0.15); 
        
        // Im większe straty ciepła, tym wyższy przepływ
        const heatFactor = heatLoss / 50;
        
        // Obliczenie l/min
        let flow = 1.0 * heatFactor * tempFactor * currentFloor;
        
        // Ograniczenia dla realizmu skali (0.5 do 3.0)
        if(flow < 0.5) flow = 0.5;
        if(flow > 3.0) flow = 3.0;

        flowResultDisplay.textContent = flow.toFixed(1);

        // Aktualizacja Gauge SVG
        // Długość łuku (arc length) to około 188px.
        // Chcemy mapować wartość 0.5 - 3.0 na dasharray 0 do 188.
        const percent = (flow - 0.5) / 2.5; // od 0 do 1
        const dashVal = percent * 188;
        gaugeFill.style.strokeDasharray = `${dashVal} 251`;
        
        // Zmiana koloru ostrzegawczego przy krytycznych wartościach
        if(flow > 2.5) {
            gaugeFill.style.stroke = '#ef4444'; // Czerwony (za dużo)
        } else {
            gaugeFill.style.stroke = 'var(--prj-accent)'; // Niebieski (ok)
        }
    }

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



<style>
:root {
    --tip-primary: #0f172a;
    --tip-accent: #0284c7;
    --tip-accent-light: #e0f2fe;
    --tip-danger: #ef4444;
    --tip-danger-light: #fee2e2;
    --tip-success: #10b981;
    --tip-success-light: #d1fae5;
    --tip-bg: #f8fafc;
    --tip-border: #e2e8f0;
}

.expert-tip-wrapper {
    max-width: 950px;
    margin: 50px auto 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
}

.expert-tip-wrapper h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--tip-primary);
    margin: 0 0 25px 0;
    text-align: center;
    letter-spacing: -0.5px;
}

.expert-tip-container {
    background: #ffffff;
    border-radius: 24px;
    padding: 35px 40px;
    border: 1px solid var(--tip-border);
    box-shadow: 0 15px 35px -10px rgba(0,0,0,0.05);
    display: flex;
    flex-direction: column;
    gap: 25px;
}

/* Interaktywny przełącznik Mit / Fakt */
.tip-switch-wrap {
    display: flex;
    background: var(--tip-bg);
    border: 1px solid var(--tip-border);
    border-radius: 12px;
    padding: 6px;
    gap: 6px;
    align-self: center;
    width: 100%;
    max-width: 500px;
}

.tip-switch-btn {
    flex: 1;
    border: none;
    background: transparent;
    padding: 12px 20px;
    font-size: 15px;
    font-weight: 800;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.3s ease;
    color: #64748b;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.tip-switch-btn:hover {
    color: var(--tip-primary);
}

.tip-switch-btn.active[data-type="myth"] {
    background: var(--tip-danger);
    color: #ffffff;
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.2);
}

.tip-switch-btn.active[data-type="fact"] {
    background: var(--tip-accent);
    color: #ffffff;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.2);
}

/* Sekcja cytatu i zdjęcia */
.tip-content-area {
    display: flex;
    gap: 30px;
    align-items: center;
    background: var(--tip-bg);
    border-radius: 20px;
    padding: 30px;
    border-left: 6px solid var(--tip-accent);
    transition: all 0.4s ease;
}

.tip-content-area.state-myth {
    border-left-color: var(--tip-danger);
    background: var(--tip-danger-light);
}

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

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

.tip-icon-badge {
    position: absolute;
    bottom: -5px;
    right: -5px;
    background: #ffffff;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    box-shadow: 0 4px 8px rgba(0,0,0,0.15);
    transition: 0.3s;
}

.state-myth .tip-icon-badge { color: var(--tip-danger); }
.state-fact .tip-icon-badge { color: var(--tip-accent); }

.tip-text-body {
    flex-grow: 1;
}

.tip-label {
    display: block;
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 10px;
    transition: 0.3s;
}

.state-myth .tip-label { color: var(--tip-danger); }
.state-fact .tip-label { color: var(--tip-accent); }

.tip-quote {
    font-size: 17px;
    line-height: 1.7;
    color: var(--tip-primary);
    font-style: italic;
    margin: 0 0 15px 0;
    position: relative;
}

.tip-quote a {
    color: inherit;
    font-weight: 700;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.tip-quote a:hover {
    color: var(--tip-accent);
}

.tip-signature {
    display: block;
    font-size: 14px;
    font-weight: 700;
    color: #475569;
}

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#ekspert",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/"
    },
    "headline": "Robert Kucharski o prawidłowej regulacji wskaźników przepływu",
    "description": "Ekspert obala najczęstszy mit dotyczący rotametrów. Dowiedz się, dlaczego ustawianie przepływu 'po równo' niszczy komfort cieplny.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-11-29",
    "dateModified": "2026-05-03"
  },
  {
    "@context": "https://schema.org",
    "@type": "Quotation",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#cytat",
    "license": "https://projekt-ogrzewania.pl/",
    "text": "Wielu pseudofachowców kończy pracę mówiąc: 'ustawiłem panu wszystkie rotametry równo na 1.5 litra, będzie grzało'. To najgorsza z możliwych metod regulacji.",
    "spokenByCharacter": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "jobTitle": "Główny Projektant HVAC",
      "url": "https://projekt-ogrzewania.pl/"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#dataset-mity",
    "name": "Mity instalacyjne vs Prawda inżynierska: Regulacja przepływów",
    "description": "Analiza błędnych założeń empirycznych podczas ręcznego ustawiania rotametrów w stosunku do precyzyjnych obliczeń inżynierskich.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "regulacja rotametrów na oko",
      "najczęstsze błędy przy montażu ogrzewania podłogowego",
      "jak nie ustawiać podłogówki",
      "mity ogrzewanie podłogowe przepływ",
      "równe ustawienie rotametrów błąd"
    ],
    "measurementTechnique": "Weryfikacja wydajności instalacji skalibrowanej empirycznie (na oko) vs skalibrowanej zgodnie z wartościami obliczeniowymi OZC.",
    "mainEntity": {
      "@type": "Thing",
      "name": "Najlepsze praktyki inżynierii instalacyjnej"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#webapp-ekspert",
    "name": "Interaktywny Demaskator Mitów Instalacyjnych",
    "description": "Mini-aplikacja edukacyjna pozwalająca na bezpośrednie skonfrontowanie popularnego mitu hydraulicznego z odpowiedzią inżyniera.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript"
  }
]
</script>

<div class="expert-tip-wrapper" id="app-expert-quote">
    <h2><span style="margin-right:10px">⚖️</span>Praktyka vs Inżynieria</h2>
    
    <div class="expert-tip-container">
        
        <div class="tip-switch-wrap">
            <button class="tip-switch-btn" data-type="myth" id="btn-myth">
                <span>❌</span> Częsty Mit
            </button>
            <button class="tip-switch-btn active" data-type="fact" id="btn-fact">
                <span>✅</span> Prawda Inżynierska
            </button>
        </div>

        <div class="tip-content-area state-fact" id="tip-content-box">
            <div class="tip-photo-wrap">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski ekspert HVAC" class="tip-photo" loading="lazy">
                <div class="tip-icon-badge" id="tip-icon">📐</div>
            </div>
            
            <div class="tip-text-body">
                <span class="tip-label" id="tip-label">Wskazówka od Głównego Projektanta</span>
                <p class="tip-quote" id="tip-quote-text">
                    &#8222;Rotametr to nie kran, który można odkręcić i zapomnieć. Prawidłowa regulacja polega na drastycznym tłumieniu przepływu w <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">krótkich pętlach</a> po to, aby sztucznie zmusić czynnik grzewczy do zasilenia dużego, wychłodzonego salonu. Ustawienie na podstawie <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektu OZC</a> to jedyny sposób na to, by pompa obiegowa pracowała lekko i energooszczędnie.&#8221;
                </p>
                <span class="tip-signature">— Robert Kucharski, CEO Projekt-Ogrzewania.pl</span>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- OCHRONA DOMENOWA (Bez H2/H3 w fallbacku) ---
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-expert-quote');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 20px; border: 2px solid #dc2626; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 20px; font-weight: bold; margin-bottom: 10px;">Moduł autorski chroniony</div>
                    <p style="font-size: 15px; color: #7f1d1d;">Cytaty i interaktywne porady inżynierskie Roberta Kucharskiego są własnością serwisu Projekt-Ogrzewania.pl. Kopiowanie skryptów bez zgody jest zabronione.</p>
                </div>
            `;
            return;
        }
    }

    // --- LOGIKA PRZEŁĄCZNIKA MIT VS FAKT ---
    const btnMyth = document.getElementById('btn-myth');
    const btnFact = document.getElementById('btn-fact');
    const contentBox = document.getElementById('tip-content-box');
    const iconBadge = document.getElementById('tip-icon');
    const label = document.getElementById('tip-label');
    const quoteText = document.getElementById('tip-quote-text');

    const data = {
        myth: {
            class: 'state-myth',
            icon: '⚠️',
            label: 'Co mówi "Pan Józek" na budowie?',
            text: '"Słuchaj kierowniku, ja od 20 lat robię podłogówkę. Ustawiłem panu wszystkie rotametry na rozdzielaczu na równe 1.5 litra. Wszędzie popłynie tyle samo wody, więc w każdym pokoju będzie elegancko grzało, nie ma się co martwić." <br><br><strong><span style="font-size:14px;color:#ef4444;">(Poważny błąd grożący przegrzaniem małych pokoi i niedogrzaniem salonu!)</span></strong>'
        },
        fact: {
            class: 'state-fact',
            icon: '📐',
            label: 'Wskazówka od Głównego Projektanta',
            text: '"Rotametr to nie kran, który można odkręcić i zapomnieć. Prawidłowa regulacja polega na drastycznym tłumieniu przepływu w <a href=\\"https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/\\">krótkich pętlach</a> po to, aby sztucznie zmusić czynnik grzewczy do zasilenia dużego, wychłodzonego salonu. Ustawienie na podstawie <a href=\\"https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/\\">projektu OZC</a> to jedyny sposób na to, by pompa obiegowa pracowała lekko i energooszczędnie."'
        }
    };

    function switchState(type) {
        // Zmiana aktywnych przycisków
        btnMyth.classList.remove('active');
        btnFact.classList.remove('active');
        
        if (type === 'myth') btnMyth.classList.add('active');
        else btnFact.classList.add('active');

        // Animacja opacity dla miękkiego przejścia
        quoteText.style.opacity = 0;
        
        setTimeout(() => {
            contentBox.className = 'tip-content-area ' + data[type].class;
            iconBadge.textContent = data[type].icon;
            label.textContent = data[type].label;
            quoteText.innerHTML = data[type].text;
            
            quoteText.style.transition = 'opacity 0.3s ease';
            quoteText.style.opacity = 1;
        }, 200);
    }

    btnMyth.addEventListener('click', () => switchState('myth'));
    btnFact.addEventListener('click', () => switchState('fact'));
});
</script>



<style>
:root {
    --cs-primary: #0f172a;
    --cs-accent: #0ea5e9;
    --cs-accent-dark: #0284c7;
    --cs-wood: #b45309; 
    --cs-tiles: #0891b2; 
    --cs-bg: #f8fafc;
    --cs-border: #e2e8f0;
    --cs-text: #475569;
}

.case-study-module {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--cs-border);
    overflow: hidden;
    color: var(--cs-text);
}

/* ================= HEADER I METRYCZKA ================= */
.cs-header-wrapper {
    background: var(--cs-primary);
    color: #ffffff;
    padding: 40px 50px;
    position: relative;
    overflow: hidden;
}

.cs-header-wrapper::after {
    content: '';
    position: absolute;
    top: -50px;
    right: -50px;
    width: 250px;
    height: 250px;
    background: radial-gradient(circle, rgba(14, 165, 233, 0.25) 0%, rgba(255,255,255,0) 70%);
    border-radius: 50%;
}

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

.cs-header-wrapper h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 25px 0;
    line-height: 1.3;
    color: #ffffff;
    position: relative;
    z-index: 2;
    letter-spacing: -0.5px;
}

.cs-stats-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    position: relative;
    z-index: 2;
}

.cs-stat-box {
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 15px;
    border-radius: 12px;
    backdrop-filter: blur(4px);
}

.cs-stat-label {
    display: block;
    font-size: 11px;
    color: #94a3b8;
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 5px;
}

.cs-stat-value {
    display: block;
    font-size: 16px;
    font-weight: 900;
    color: #ffffff;
}

/* ================= OPIS WYZWANIA ================= */
.cs-content-section {
    padding: 40px 50px 30px 50px;
    background: #ffffff;
}

.cs-lead-text {
    font-size: 17px;
    line-height: 1.8;
    color: var(--cs-text);
    margin: 0 0 25px 0;
}

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

.cs-author-box {
    background: #f0f9ff;
    border-left: 4px solid var(--cs-accent);
    padding: 20px;
    border-radius: 0 16px 16px 0;
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 10px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.cs-author-photo {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid #ffffff;
    box-shadow: 0 4px 10px rgba(14, 165, 233, 0.2);
    flex-shrink: 0;
}

.cs-author-box p {
    margin: 0;
    font-size: 15px;
    color: #0f172a;
    line-height: 1.6;
}

.cs-author-box a {
    color: var(--cs-accent-dark);
    font-weight: 800;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    transition: 0.2s;
}

.cs-author-box a:hover {
    color: #0369a1;
}

/* ================= INTERAKTYWNE WYZWANIE ================= */
.cs-interactive-section {
    padding: 0 50px 40px 50px;
}

.cs-interactive-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--cs-primary);
    margin-bottom: 20px;
}

.cs-split-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

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

.cs-split-card:not(.active) {
    opacity: 0.6;
    transform: scale(0.98);
}

.cs-split-card:hover:not(.active) {
    opacity: 0.8;
}

.cs-split-card.wood.active {
    border-color: var(--cs-wood);
    background: #fffbeb;
    box-shadow: 0 10px 25px rgba(180, 83, 9, 0.1);
    opacity: 1;
    transform: scale(1);
}

.cs-split-card.tiles.active {
    border-color: var(--cs-tiles);
    background: #ecfeff;
    box-shadow: 0 10px 25px rgba(8, 145, 178, 0.1);
    opacity: 1;
    transform: scale(1);
}

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

/* Elementy SVG */
.cs-svg-icon {
    width: 45px;
    height: 45px;
    flex-shrink: 0;
}

.svg-floor { fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.wood .svg-floor { stroke: var(--cs-wood); }
.tiles .svg-floor { stroke: var(--cs-tiles); }

.svg-heat-wave { fill: none; stroke-width: 2; stroke-linecap: round; opacity: 0; transition: 0.3s; }
.wood .svg-heat-wave { stroke: #d97706; }
.tiles .svg-heat-wave { stroke: #0ea5e9; }

.cs-split-card.active .svg-heat-wave {
    opacity: 1;
    animation: heatRise 2s infinite ease-in-out alternate;
}
.cs-split-card.active .svg-heat-wave:nth-child(2) { animation-delay: 0.5s; }
.cs-split-card.active .svg-heat-wave:nth-child(3) { animation-delay: 1s; }

@keyframes heatRise {
    0% { transform: translateY(5px); opacity: 0.3; }
    100% { transform: translateY(-5px); opacity: 1; }
}

.cs-card-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--cs-primary);
    margin: 0;
}

.cs-card-desc {
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--cs-text);
    margin: 0;
}

.cs-card-solution {
    margin-top: 15px;
    padding-top: 15px;
    border-top: 1px solid rgba(0,0,0,0.1);
    font-size: 14px;
    line-height: 1.6;
    display: none;
}

.cs-split-card.wood .cs-card-solution { color: #78350f; }
.cs-split-card.tiles .cs-card-solution { color: #164e63; }

.cs-split-card.active .cs-card-solution {
    display: block;
    animation: csFadeIn 0.4s ease forwards;
}

.cs-solution-badge {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 6px;
    font-weight: 900;
    font-size: 12px;
    margin-bottom: 8px;
    color: #ffffff;
}

.wood .cs-solution-badge { background: var(--cs-wood); }
.tiles .cs-solution-badge { background: var(--cs-tiles); }

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

@media (max-width: 800px) {
    .cs-header-wrapper { padding: 35px 25px; }
    .cs-stats-grid { grid-template-columns: 1fr 1fr; gap: 10px;}
    .cs-content-section { padding: 30px 25px 20px 25px; }
    .cs-author-box { flex-direction: column; text-align: center; }
    .cs-interactive-section { padding: 0 25px 30px 25px; }
    .cs-split-container { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#case-study",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/"
    },
    "headline": "Studium Przypadku: Skutki braku regulacji rotametrów",
    "description": "Zobacz na przykładzie z życia wziętym, dlaczego pozostawienie rotametrów w ustawieniu fabrycznym prowadzi do niedogrzania salonu i przegrzania łazienki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-11-29",
    "dateModified": "2026-05-03"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#dataset-case-study",
    "name": "Parametry hydrauliczne z realizacji - Dom Marka",
    "description": "Zestawienie błędnych i poprawnych nastaw przepływu (l/min) dla posadzek o skrajnie różnym oporze cieplnym (drewno vs płytki).",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Przepływ Salon (Drewno)",
        "value": "Wymagane zdławienie do 2.2 l/min",
        "description": "Zwiększenie przepływu ze względu na wysoki opór cieplny deski barlineckiej."
      },
      {
        "@type": "PropertyValue",
        "name": "Przepływ Łazienka (Gres)",
        "value": "Wymagane zdławienie do 0.8 l/min",
        "description": "Mocne przykręcenie rotametru w celu zapobieżenia kradzieży przepływu z dłuższych pętli."
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#webapp-case-study",
    "name": "Panel Analizy Realizacji: Błędy regulacji",
    "description": "Interaktywny moduł edukacyjny typu Split-Card prezentujący fizykę zachowania się posadzki w zależności od nastaw na wskaźnikach przepływu.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5, SVG"
  }
]
</script>

<div class="case-study-module" id="app-case-study-rotameter">

    <div class="cs-header-wrapper">
        <div class="cs-badge">🔍 Studium Przypadku</div>
        <h2>Skutki braku regulacji przepływów na rozdzielaczu</h2>
        <div class="cs-stats-grid">
            <div class="cs-stat-box">
                <span class="cs-stat-label">Termin weryfikacji</span>
                <span class="cs-stat-value">Styczeń 2026</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Lokalizacja</span>
                <span class="cs-stat-value">Warszawa</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Problem główny</span>
                <span class="cs-stat-value">Zimny Salon</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Źródło błędu</span>
                <span class="cs-stat-value">Brak kryzowania</span>
            </div>
        </div>
    </div>

    <div class="cs-content-section">
        <p class="cs-lead-text">Zimą 2026 roku zgłosił się do nas Pan Artur, posiadający nowo wybudowany dom o powierzchni 150 m². Pomimo pracującej na 100% pompy ciepła, w domu panował całkowity <strong>rozstrój termiczny</strong>. Podczas audytu rozdzielacza problem okazał się banalny: instalator uruchomił układ i zostawił wszystkie rotametry fabrycznie odkręcone na maksimum.</p>
        
        <div class="cs-author-box">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski ekspert ogrzewania" class="cs-author-photo" loading="lazy">
            <p><strong><a href="https://projekt-ogrzewania.pl/author/admin3399/">Robert Kucharski</a>:</strong> &#8222;Fizyka to nie magia. Woda w instalacji jest leniwa. Ponieważ rotametry nie zostały wyregulowane, potężna ilość ciepła uciekała najkrótszą drogą do małej łazienki z płytkami, całkowicie głodząc hydraulicznie długą pętlę pod dębowym parkietem w salonie.&#8221;</p>
        </div>
    </div>

    <div class="cs-interactive-section">
        <div class="cs-interactive-title">Kliknij, aby zobaczyć inżynierskie rozwiązanie:</div>
        
        <div class="cs-split-container">
            
            <div class="cs-split-card wood active" id="cs-card-wood">
                <div class="cs-card-header">
                    <svg class="cs-svg-icon" viewBox="0 0 50 50" xmlns="http://www.w3.org/2000/svg">
                        <path class="svg-floor" d="M 5 40 L 45 40 M 15 40 L 15 45 M 35 40 L 35 45 M 5 32 L 45 32 M 25 32 L 25 40"/>
                        <path class="svg-heat-wave" d="M 15 25 Q 10 15 15 5"/>
                        <path class="svg-heat-wave" d="M 25 25 Q 20 15 25 5"/>
                        <path class="svg-heat-wave" d="M 35 25 Q 30 15 35 5"/>
                    </svg>
                    <h3 class="cs-card-title">Salon: Długa pętla i parkiet</h3>
                </div>
                <p class="cs-card-desc"><strong>Objaw przed regulacją:</strong> Pętla o długości 110 metrów stawiała ogromny opór hydrauliczny. Dodatkowo dębowa deska izolowała oddawanie ciepła. Rotametr wskazywał zaledwie <strong>0.3 l/min</strong>. Salon był lodowaty.</p>
                <div class="cs-card-solution">
                    <span class="cs-solution-badge">DZIAŁANIE NA ROTAMETRZE</span><br>
                    Na podstawie <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektu OZC</a>, pozostawiliśmy ten obwód maksymalnie otwarty, dławiąc jednocześnie pozostałe strefy w domu. Wymusiło to przepływ wody przez salon z prędkością <strong>2.2 l/min</strong>, pokonując opór długiej rury i izolacji drewna.
                </div>
            </div>

            <div class="cs-split-card tiles" id="cs-card-tiles">
                <div class="cs-card-header">
                    <svg class="cs-svg-icon" viewBox="0 0 50 50" xmlns="http://www.w3.org/2000/svg">
                        <path class="svg-floor" d="M 5 40 L 45 40 M 15 40 L 15 30 L 5 30 M 25 40 L 25 30 L 35 30 L 35 40 M 45 30 L 35 30"/>
                        <path class="svg-heat-wave" d="M 15 20 Q 20 10 15 5"/>
                        <path class="svg-heat-wave" d="M 25 20 Q 30 10 25 5"/>
                        <path class="svg-heat-wave" d="M 35 20 Q 40 10 35 5"/>
                    </svg>
                    <h3 class="cs-card-title">Łazienka: Krótka pętla i gres</h3>
                </div>
                <p class="cs-card-desc"><strong>Objaw przed regulacją:</strong> Pętla miała tylko 35 metrów. Woda pędziła tamtędy bez żadnego oporu w ilości ponad <strong>3.0 l/min</strong>, powodując nieznośny szum na belce i przegrzewając płytki (zjawisko kradzieży przepływu).</p>
                <div class="cs-card-solution">
                    <span class="cs-solution-badge">DZIAŁANIE NA ROTAMETRZE</span><br>
                    Drastyczne &#8222;przykręcenie&#8221; czerwonej obejmy w dół. Zdławiliśmy przepływ tej krótkiej pętli do bezpiecznego poziomu <strong>0.8 l/min</strong>. Uspokoiło to pracę <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">pompy obiegowej</a> i &#8222;oddało&#8221; ciśnienie do wychłodzonego salonu.
                </div>
            </div>

        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie domenowe (Hard lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-case-study-rotameter');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 25px; text-align: center; background: #0f172a; color: #fff; border-radius: 24px; font-family: sans-serif;">
                    <div style="font-size: 50px; margin-bottom: 15px;">🔒</div>
                    <div style="font-weight: 900; font-size: 24px; margin-bottom: 10px; color: #38bdf8;">Treść Chroniona Prawem Autorskim</div>
                    <p style="font-size: 15px; color: #cbd5e1; margin-bottom: 25px;">Moduł "Studium Przypadku" jest własnością Projekt-Ogrzewania.pl.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 12px 25px; background: #0ea5e9; color: white; text-decoration: none; border-radius: 8px; font-weight: 800;">Wróć do źródła</a>
                </div>
            `;
            return;
        }
    }

    // Logika przełączania kart Case Study (Accordions style)
    const cardWood = document.getElementById('cs-card-wood');
    const cardTiles = document.getElementById('cs-card-tiles');

    function toggleCards(activeCard, inactiveCard) {
        if (!activeCard.classList.contains('active')) {
            activeCard.classList.add('active');
            inactiveCard.classList.remove('active');
        }
    }

    if (cardWood && cardTiles) {
        cardWood.addEventListener('click', () => toggleCards(cardWood, cardTiles));
        cardTiles.addEventListener('click', () => toggleCards(cardTiles, cardWood));
    }
});
</script>



<style>
:root {
    --faq-primary: #0f172a;
    --faq-accent: #0ea5e9;
    --faq-accent-dark: #0284c7;
    --faq-bg-light: #f8fafc;
    --faq-border: #e2e8f0;
    --faq-text: #334155;
    --faq-muted: #64748b;
    --faq-danger: #ef4444;
    --faq-success: #10b981;
}

.faq-expert-module {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--faq-text);
}

.faq-header-box {
    background: linear-gradient(135deg, var(--faq-primary), #1e293b);
    border-radius: 24px 24px 0 0;
    padding: 40px 50px;
    color: #ffffff;
    position: relative;
    overflow: hidden;
}

.faq-header-box::after {
    content: '?';
    position: absolute;
    right: 20px;
    top: -20px;
    font-size: 150px;
    font-weight: 900;
    color: rgba(255, 255, 255, 0.05);
    line-height: 1;
    font-family: serif;
}

.faq-header-box h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 10px 0;
    color: #ffffff;
    position: relative;
    z-index: 1;
    letter-spacing: -0.5px;
}

.faq-header-box p {
    font-size: 16px;
    color: #cbd5e1;
    margin: 0;
    max-width: 600px;
    position: relative;
    z-index: 1;
    line-height: 1.6;
}

.faq-accordion-wrapper {
    background: #ffffff;
    border: 1px solid var(--faq-border);
    border-top: none;
    border-radius: 0 0 24px 24px;
    padding: 30px 40px;
    box-shadow: 0 20px 40px -10px rgba(0,0,0,0.05);
}

.faq-item {
    border: 1px solid var(--faq-border);
    border-radius: 16px;
    margin-bottom: 15px;
    overflow: hidden;
    transition: all 0.3s ease;
    background: #ffffff;
}

.faq-item:last-child {
    margin-bottom: 0;
}

.faq-item.active {
    border-color: var(--faq-accent);
    box-shadow: 0 10px 25px -5px rgba(14, 165, 233, 0.15);
}

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

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

.faq-item.active .faq-question {
    background: var(--faq-bg-light);
    color: var(--faq-accent-dark);
}

/* SVG Ikony w pytaniach */
.faq-icon-wrap {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: #e0f2fe;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--faq-accent-dark);
}

.faq-item.active .faq-icon-wrap {
    background: var(--faq-accent);
    color: #ffffff;
}

.faq-svg {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Animowany znak +/- */
.faq-toggle-icon {
    margin-left: auto;
    width: 20px;
    height: 20px;
    position: relative;
    flex-shrink: 0;
}

.faq-toggle-icon::before,
.faq-toggle-icon::after {
    content: '';
    position: absolute;
    background: var(--faq-muted);
    border-radius: 2px;
    transition: transform 0.3s ease, background 0.3s ease;
}

.faq-toggle-icon::before { top: 9px; left: 0; width: 20px; height: 2px; }
.faq-toggle-icon::after { top: 0; left: 9px; width: 2px; height: 20px; }

.faq-item.active .faq-toggle-icon::after { transform: rotate(90deg); }
.faq-item.active .faq-toggle-icon::before,
.faq-item.active .faq-toggle-icon::after { background: var(--faq-accent-dark); }

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

.faq-answer-content {
    padding: 0 25px 25px 85px; /* Wcięcie omijające ikonę */
    font-size: 15px;
    line-height: 1.7;
    color: var(--faq-text);
}

.faq-answer-content p {
    margin: 0 0 15px 0;
}
.faq-answer-content p:last-child {
    margin-bottom: 0;
}

.faq-answer-content a {
    color: var(--faq-accent-dark);
    font-weight: 700;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    transition: color 0.2s;
}

.faq-answer-content a:hover {
    color: #0c4a6e;
}

.faq-answer-content ul {
    margin: 0 0 15px 0;
    padding-left: 20px;
}

.faq-answer-content li {
    margin-bottom: 5px;
}

.faq-highlight-box {
    background: #fffbeb;
    border-left: 3px solid var(--faq-warning);
    padding: 12px 15px;
    border-radius: 0 8px 8px 0;
    margin: 15px 0;
    font-size: 14px;
    color: #92400e;
}

@media (max-width: 768px) {
    .faq-header-box { padding: 30px 25px; }
    .faq-accordion-wrapper { padding: 25px; }
    .faq-question { padding: 15px; font-size: 15px; gap: 15px; }
    .faq-answer-content { padding: 0 15px 20px 15px; } /* Usunięto duże wcięcie na mobile */
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#faq-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/"
    },
    "headline": "5 najczęściej zadawanych pytań o rotametry i przepływy (FAQ)",
    "description": "Rozbudowane kompendium wiedzy. Odpowiadamy m.in. na jakiej wysokości pływaka czytać przepływ, dlaczego rotametry montuje się na powrocie i co oznacza skaczący wskaźnik.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-03",
    "dateModified": "2026-05-03"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Do czego dokładnie służy rotametr w ogrzewaniu podłogowym i czy jest on w ogóle niezbędny?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Rotametr (przepływomierz) służy do wizualnej kontroli i fizycznej regulacji (dławienia) ilości wody płynącej przez daną pętlę. Jest absolutnie niezbędny do przeprowadzenia równoważenia hydraulicznego. Bez niego woda popłynęłaby najkrótszą drogą, powodując przegrzanie małych pomieszczeń i drastyczne niedogrzanie tych dużych."
        }
      },
      {
        "@type": "Question",
        "name": "W jaki sposób prawidłowo odczytywać wartość ze skali? Gdzie powinna znajdować się krawędź pływaka?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Prawidłowy odczyt zawsze wykonuje się na górnej, płaskiej krawędzi pływaka (najczęściej jest to czerwony grzybek). To ona musi pokrywać się z linią na skali wyrażoną w litrach na minutę (L/min). Należy pamiętać, aby odczytu i regulacji dokonywać wyłącznie przy włączonej pompie obiegowej."
        }
      },
      {
        "@type": "Question",
        "name": "Jakie są optymalne przepływy dla typowej pętli podłogówki? Kiedy przepływ jest zbyt duży?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "W standardowych instalacjach domowych optymalny przepływ mieści się w granicach od 0,5 do 1,5 L/min (maksymalnie do 2.0 L/min dla bardzo długich pętli). Przepływ zbyt niski (<0.5) grozi brakiem możliwości usunięcia pęcherzyków powietrza. Z kolei przepływ zbyt wysoki (>2.0) wywołuje szumy hydrauliczne i nadmiernie obciąża pompę."
        }
      },
      {
        "@type": "Question",
        "name": "Dlaczego rotametry instaluje się na belce powrotnej rozdzielacza, a zawory termostatyczne na zasilaniu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Rotametry są wrażliwe na temperaturę. Woda na zasilaniu jest najgorętsza, co zmienia jej gęstość i lepkość, a to zniekształcałoby odczyty siły wyporu pływaka. Dodatkowo, powrót jest miejscem chłodniejszym, co wydłuża żywotność elementów z tworzywa sztucznego i przezroczystej rurki pomiarowej."
        }
      },
      {
        "@type": "Question",
        "name": "Co oznacza sytuacja, w której pływak w rotametrze skacze, drga lub uparcie leży na samym dnie?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Skaczący lub wibrujący pływak to w 99% przypadków objaw mocnego zapowietrzenia pętli. Z kolei pływak leżący na dnie (przy otwartym zaworze) sygnalizuje całkowity brak przepływu – może to być wina zablokowania rury, zanieczyszczenia filtra w rotametrze lub, jeśli dotyczy to wszystkich rotametrów, awarii pompy obiegowej."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#dataset-faq",
    "name": "Baza Wiedzy: Rozwiązywanie problemów z przepływami w systemach płaszczyznowych",
    "description": "Zestawienie najczęstszych problemów i parametrów diagnostycznych układów pompowych, odczytów skali oraz lokalizacji elementów hydraulicznych na rozdzielaczu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jak czytać rotametr",
      "skaczący rotametr",
      "gdzie montować rotametr zasilanie czy powrót",
      "optymalny przepływ w podłogówce",
      "brak przepływu w rotametrze"
    ],
    "measurementTechnique": "Analiza odpowiedzi diagnostycznych opartych na odczytach wizualnych (0.0 - 3.0 l/min) oraz zachowaniu hydrodynamiki w obwodach grzewczych.",
    "mainEntity": {
      "@type": "Thing",
      "name": "Diagnostyka hydrauliczna na bazie FAQs"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#webapp-faq",
    "name": "Interaktywny Eksplorator Wiedzy (FAQ Panel)",
    "description": "Dynamiczny komponent interfejsu (Accordion UI) ułatwiający szybkie wyszukiwanie i przyswajanie eksperckich odpowiedzi na trudne pytania instalacyjne bez przeładowania poznawczego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript for accordion state management"
  }
]
</script>

<div class="faq-expert-module" id="app-faq-module">

    <div class="faq-header-box">
        <h2>Pytania i Odpowiedzi (FAQ)</h2>
        <p>Rozwiewamy najczęstsze wątpliwości inwestorów i młodych instalatorów dotyczące działania, diagnostyki i poprawnej regulacji rotametrów w nowoczesnych systemach grzewczych.</p>
    </div>

    <div class="faq-accordion-wrapper">
        
        <div class="faq-item">
            <button class="faq-question">
                <div class="faq-icon-wrap">
                    <svg class="faq-svg" viewBox="0 0 24 24"><path d="M3 21h18M5 21V7l7-4 7 4v14M9 11v6M15 11v6"/></svg>
                </div>
                Do czego dokładnie służy rotametr w ogrzewaniu podłogowym i czy jest on w ogóle niezbędny?
                <div class="faq-toggle-icon"></div>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-content">
                    <p>Rotametr (profesjonalnie: przepływomierz o zmiennym przekroju) służy do dwóch rzeczy: <strong>wizualnej kontroli</strong> ilości płynącej wody oraz jej <strong>fizycznej regulacji</strong> (poprzez dławienie zaworu, na którym jest osadzony).</p>
                    <p>Odpowiadając na drugą część pytania: <strong>Tak, jest absolutnie niezbędny</strong>. Zgodnie z zasadami fizyki, ciecz zawsze wybiera drogę najmniejszego oporu. Bez rotametrów i możliwości precyzyjnego kryzowania (dławienia) krótkich pętli, <a href="https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/">woda ominęłaby długie obwody</a> (np. w salonie), powodując skrajne niedogrzanie największych pomieszczeń i przegrzanie tych małych. Równoważenie hydrauliczne bez rotametrów jest po prostu niemożliwe.</p>
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <div class="faq-icon-wrap">
                    <svg class="faq-svg" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><path d="M12 16v-4M12 8h.01"/></svg>
                </div>
                W jaki sposób prawidłowo odczytywać wartość ze skali? Gdzie powinna znajdować się krawędź pływaka?
                <div class="faq-toggle-icon"></div>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-content">
                    <p>Wielu początkujących instalatorów popełnia błąd, próbując uśredniać pozycję całego pływaka (czerwonego &#8222;grzybka&#8221;). Prawidłowy odczyt zawsze wykonuje się na <strong>najszerszej, górnej płaskiej krawędzi pływaka</strong>.</p>
                    <p>To właśnie ta pozioma linia musi pokrywać się z wyznaczoną wartością na skali nadrukowanej na szklanej/plastikowej rurce (np. na linii 1.5 l/min).</p>
                    <div class="faq-highlight-box">
                        <strong>Ważna uwaga:</strong> Odczytu i samej regulacji dokonujemy zawsze na &#8222;żywym organizmie&#8221;, czyli przy włączonej na docelowy bieg <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">pompie obiegowej</a> oraz całkowicie otwartych siłownikach termoelektrycznych.
                    </div>
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <div class="faq-icon-wrap">
                    <svg class="faq-svg" viewBox="0 0 24 24"><path d="M12 22A10 10 0 1 0 12 2a10 10 0 0 0 0 20zM12 16v-4M12 8h.01"/></svg>
                </div>
                Jakie są optymalne przepływy dla typowej pętli podłogówki? Kiedy przepływ jest zbyt duży?
                <div class="faq-toggle-icon"></div>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-content">
                    <p>Dla standardowych instalacji mieszkalnych realizowanych rurą 16&#215;2.0, optymalny przepływ (zakładając projektowe różnice temperatur ΔT) mieści się w granicach <strong>od 0,5 do 1,5 L/min</strong>. W wyjątkowych sytuacjach dla najdłuższych pętli może to być 2.0 &#8211; 2.5 L/min.</p>
                    <ul>
                        <li><strong>Zbyt niski (< 0.5 l/min):</strong> Woda płynie tak wolno, że nie ma siły wypchnąć powietrza do odpowietrzników. Powstają korki gazowe.</li>
                        <li><strong>Zbyt wysoki (> 2.0 l/min):</strong> Skutkuje to zjawiskiem szumu hydraulicznego (piszczenie/syczenie w rurach i rozdzielaczu). Dodatkowo opór układu rośnie w kwadracie, co drastycznie zwiększa zużycie prądu przez pompę ciepła, nie dając już realnych zysków w przekazywaniu ciepła do wylewki.</li>
                    </ul>
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <div class="faq-icon-wrap">
                    <svg class="faq-svg" viewBox="0 0 24 24"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"/></svg>
                </div>
                Dlaczego rotametry instaluje się na belce powrotnej rozdzielacza, a nie na zasilaniu?
                <div class="faq-toggle-icon"></div>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-content">
                    <p>To kwestia precyzji fizycznej i trwałości materiałów. Rotametry są niezwykle wrażliwe na zmiany parametrów fizycznych cieczy. Woda wchodząca z kotła na zasilanie jest najgorętsza (np. 45°C), co zmienia jej gęstość i lepkość kinmatyczną w stosunku do chłodniejszej wody na powrocie (np. 35°C).</p>
                    <p>Montaż na zasilaniu mógłby <strong>zniekształcać odczyty siły wyporu</strong> pływaka. Drugim powodem jest żywotność: przezroczyste tworzywo sztuczne i elementy mechaniczne rotametru wolniej degradują, gdy pracują w strumieniu o niższej, ustabilizowanej po przejściu przez posadzkę temperaturze powrotu.</p>
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <div class="faq-icon-wrap">
                    <svg class="faq-svg" viewBox="0 0 24 24"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0zM12 9v4M12 17h.01"/></svg>
                </div>
                Co oznacza sytuacja, w której pływak w rotametrze skacze, drga lub uparcie leży na dnie?
                <div class="faq-toggle-icon"></div>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-content">
                    <p>Takie zachowanie wskaźnika to idealna diagnoza kondycji Twojej instalacji:</p>
                    <ul>
                        <li><strong>Pływak skacze i wibruje:</strong> Strumień wody omywający pływak jest niejednorodny. Przerywają go pęcherzyki gazu. Jest to w 99% przypadków dowód na silne <a href="https://projekt-ogrzewania.pl/objawy-zapowietrzenia-ogrzewania-podlogowego/">zapowietrzenie danej pętli grzewczej</a>. Należy zamknąć pozostałe pętle i &#8222;przepchnąć&#8221; tę jedną na najwyższym biegu pompy.</li>
                        <li><strong>Pływak leży na dnie (przy odkręconym zaworze):</strong> Oznacza całkowity brak przepływu (0 l/min). Jeśli inne rotametry działają, przyczyna leży w tej konkretnej pętli – może być to fizyczne załamanie rury (zgniecenie przy zalewaniu jastrychu), mocne zabrudzenie filtra wewnętrznego lub uszkodzenie iglicy zaworu. Jeśli wszystkie pływaki nagle spadły na dno, oznacza to awarię źródła tłoczenia (np. zablokowanie pompy obiegowej).</li>
                    </ul>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // --- OCHRONA DOMENOWA (Bez H2/H3 w fallbacku) ---
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-faq-module');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 20px; text-align: center; background: #0f172a; color: #ffffff; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 20px; font-weight: 900; margin-bottom: 10px; color: #38bdf8;">Zabezpieczenie Treści</div>
                    <p style="font-size: 15px; color: #cbd5e1; margin-bottom: 25px;">Ten interaktywny moduł FAQ jest własnością intelektualną serwisu Projekt-Ogrzewania.pl.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 12px 24px; background: #0ea5e9; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
            return;
        }
    }

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

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

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

            // Zamykamy wszystkie inne (opcjonalne, w stylu akordeonu)
            faqItems.forEach(otherItem => {
                otherItem.classList.remove('active');
                otherItem.querySelector('.faq-answer').style.maxHeight = null;
            });

            // Jeśli nie był aktywny, otwieramy ten kliknięty
            if (!isActive) {
                item.classList.add('active');
                // Ustawiamy maxHeight na tyle ile faktycznie potrzebuje treść by animacja zadziałała
                answerDiv.style.maxHeight = answerDiv.scrollHeight + 50 + "px"; 
            }
        });
    });
});
</script>



<style>
:root {
    --sum-primary: #0f172a;
    --sum-accent: #0ea5e9;
    --sum-accent-dark: #0284c7;
    --sum-bg: #f8fafc;
    --sum-panel: #ffffff;
    --sum-border: #e2e8f0;
    --sum-text: #475569;
    --sum-success: #10b981;
    --sum-warning: #f59e0b;
}

.summary-module {
    max-width: 950px;
    margin: 60px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--sum-panel);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--sum-border);
    overflow: hidden;
    color: var(--sum-text);
}

.sum-header {
    background: linear-gradient(to right, var(--sum-primary), #1e293b);
    padding: 40px 50px;
    color: #ffffff;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.sum-header::before {
    content: '';
    position: absolute;
    left: -50px;
    top: -50px;
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, rgba(14, 165, 233, 0.2) 0%, transparent 70%);
    border-radius: 50%;
}

.sum-badge {
    display: inline-block;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    padding: 6px 16px;
    border-radius: 50px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #bae6fd;
    margin-bottom: 15px;
}

.sum-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 10px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
}

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

/* INTERAKTYWNY UKŁAD */
.sum-workspace {
    display: flex;
    padding: 0;
    min-height: 400px;
}

.sum-nav {
    width: 35%;
    background: var(--sum-bg);
    border-right: 1px solid var(--sum-border);
    padding: 30px 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.sum-nav-btn {
    background: transparent;
    border: 1px solid transparent;
    padding: 15px 20px;
    border-radius: 12px;
    text-align: left;
    font-size: 14px;
    font-weight: 800;
    color: var(--sum-primary);
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 12px;
}

.sum-nav-btn:hover {
    background: #ffffff;
    border-color: var(--sum-border);
    color: var(--sum-accent-dark); /* Wymuszenie koloru na wypadek konfliktu z głównym motywem strony */
}

.sum-nav-btn.active {
    background: #ffffff;
    border-color: var(--sum-accent);
    box-shadow: 0 4px 15px rgba(14, 165, 233, 0.15);
    color: var(--sum-accent-dark);
}

.sum-nav-icon {
    font-size: 20px;
    background: #f1f5f9;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    transition: 0.3s;
}

.sum-nav-btn.active .sum-nav-icon {
    background: #e0f2fe;
}

.sum-content-area {
    width: 65%;
    padding: 40px 50px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
}

.sum-panel {
    display: none;
    animation: fadeInSum 0.4s ease forwards;
}

.sum-panel.active {
    display: block;
}

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

/* Wizualizacje SVG */
.sum-visual-box {
    height: 160px;
    margin-bottom: 25px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--sum-bg);
    border: 1px solid var(--sum-border);
    border-radius: 16px;
    box-shadow: inset 0 2px 10px rgba(0,0,0,0.02);
}

.sum-svg { width: 120px; height: 120px; overflow: visible; }

/* Animacje SVG */
.anim-float { animation: floatUpDown 2s infinite ease-in-out alternate; }
@keyframes floatUpDown {
    0% { transform: translateY(5px); }
    100% { transform: translateY(-5px); }
}

.anim-flow-path {
    stroke-dasharray: 10 10;
    animation: dashFlow 1s linear infinite;
}
@keyframes dashFlow {
    to { stroke-dashoffset: -20; }
}

.anim-pulse { animation: pulseScale 2s infinite ease-in-out alternate; }
@keyframes pulseScale {
    0% { transform: scale(0.95); opacity: 0.8; }
    100% { transform: scale(1.05); opacity: 1; }
}

/* Teksty w panelach */
.sum-panel h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--sum-primary);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.sum-panel p {
    font-size: 15px;
    line-height: 1.7;
    margin: 0 0 15px 0;
}

.sum-panel a {
    color: var(--sum-accent-dark);
    font-weight: 700;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    transition: 0.2s;
}

.sum-panel a:hover {
    color: #0369a1;
}

@media (max-width: 800px) {
    .sum-workspace { flex-direction: column; }
    .sum-nav { width: 100%; border-right: none; border-bottom: 1px solid var(--sum-border); padding: 25px; flex-direction: row; flex-wrap: wrap; }
    .sum-nav-btn { flex: 1 1 calc(50% - 10px); justify-content: center; text-align: center; flex-direction: column; gap: 8px; padding: 10px;}
    .sum-content-area { width: 100%; padding: 30px 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/"
    },
    "headline": "Podsumowanie: Najważniejsze zasady regulacji rotametrów",
    "description": "Zwięzłe pigułki wiedzy o wskaźnikach przepływu. Działanie, równoważenie, optymalne wartości i kluczowa rola projektu OZC w jednym interaktywnym panelu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-03",
    "dateModified": "2026-05-03"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#dataset-podsumowanie",
    "name": "Kluczowe tezy instalacyjne - Rotametry i Przepływy",
    "description": "Zbiór ostatecznych wytycznych inżynierskich dotyczących działania, balansu hydraulicznego i zależności projektowych dla rozdzielaczy ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "podsumowanie rotametry",
      "najważniejsze zasady ogrzewania podłogowego",
      "regulacja podłogówki krok po kroku",
      "projekt OZC a przepływy",
      "prawidłowe ustawienie wskaźników przepływu"
    ],
    "measurementTechnique": "Synteza wniosków z analizy hydrodynamiki obwodów zasilających i powrotnych w instalacjach płaszczyznowych.",
    "mainEntity": {
      "@type": "Thing",
      "name": "Zasady optymalizacji ogrzewania płaszczyznowego"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#webapp-podsumowanie",
    "name": "Pigułka Wiedzy: Panel Wniosków Końcowych",
    "description": "Aplikacja podsumowująca kluczowe zagadnienia artykułu za pomocą wizualizacji wektorowych (SVG) ilustrujących fizykę układów pompowych i zasady projektowe.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, CSS Animations, SVG"
  }
]
</script>

<div class="summary-module" id="app-summary-hub">

    <div class="sum-header">
        <div class="sum-badge">💡 Pigułka Wiedzy</div>
        <h2>Zapamiętaj te 4 zasady</h2>
        <p>Nie masz czasu czytać całego artykułu ponownie? Oto esencja inżynierskiej wiedzy o rotametrach, którą musisz znać przed uruchomieniem swojej instalacji.</p>
    </div>

    <div class="sum-workspace">
        <div class="sum-nav">
            <button class="sum-nav-btn active" data-sum="sum-1">
                <span class="sum-nav-icon">🔍</span> 1. Fundament Działania
            </button>
            <button class="sum-nav-btn" data-sum="sum-2">
                <span class="sum-nav-icon">⚖️</span> 2. Równoważenie Układu
            </button>
            <button class="sum-nav-btn" data-sum="sum-3">
                <span class="sum-nav-icon">🎯</span> 3. Optymalne Przepływy
            </button>
            <button class="sum-nav-btn" data-sum="sum-4">
                <span class="sum-nav-icon">📐</span> 4. Podstawa Projektowa
            </button>
        </div>

        <div class="sum-content-area">
            
            <div class="sum-panel active" id="sum-1">
                <div class="sum-visual-box">
                    <svg class="sum-svg" viewBox="0 0 100 100">
                        <rect x="35" y="10" width="30" height="80" rx="4" fill="#f1f5f9" stroke="#cbd5e1" stroke-width="2"/>
                        <rect x="35" y="40" width="30" height="50" fill="#bae6fd"/>
                        <path class="anim-float" d="M 40 40 L 60 40 L 55 50 L 45 50 Z" fill="#ef4444"/>
                        <line x1="30" y1="25" x2="35" y2="25" stroke="#94a3b8" stroke-width="2"/>
                        <line x1="30" y1="50" x2="35" y2="50" stroke="#94a3b8" stroke-width="2"/>
                        <line x1="30" y1="75" x2="35" y2="75" stroke="#94a3b8" stroke-width="2"/>
                    </svg>
                </div>
                <h3>Wizualna kontrola fizyki</h3>
                <p>Rotametr to proste, ale precyzyjne urządzenie. Wykorzystuje siłę oporu wody tłoczonej przez <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">pompę obiegową</a>, aby unieść pływak.</p>
                <p>Odczyt zawsze wykonujemy na <strong>górnej krawędzi pływaka</strong>. Pamiętaj, że ze względu na dokładność pomiarową, rotametry montuje się zawsze na chłodniejszej belce powrotnej rozdzielacza.</p>
            </div>

            <div class="sum-panel" id="sum-2">
                <div class="sum-visual-box">
                    <svg class="sum-svg" viewBox="0 0 100 100">
                        <rect x="10" y="45" width="30" height="10" fill="#e2e8f0"/>
                        <line x1="10" y1="50" x2="35" y2="50" class="anim-flow-path" stroke="#0ea5e9" stroke-width="4"/>
                        <path d="M 40 50 Q 50 50 50 30 L 50 15" fill="none" stroke="#e2e8f0" stroke-width="10"/>
                        <path d="M 35 50 Q 50 50 50 30 L 50 15" fill="none" class="anim-flow-path" stroke="#0ea5e9" stroke-width="4"/>
                        <path d="M 40 50 Q 50 50 50 70 L 50 85" fill="none" stroke="#e2e8f0" stroke-width="10"/>
                        <path d="M 35 50 Q 50 50 50 70 L 50 85" fill="none" class="anim-flow-path" stroke="#0ea5e9" stroke-width="4"/>
                        <circle cx="50" cy="30" r="8" fill="#ef4444"/>
                        <circle cx="50" cy="70" r="8" fill="#10b981"/>
                    </svg>
                </div>
                <h3>Konieczność równoważenia</h3>
                <p>Woda to &#8222;leniwe medium&#8221;, które zawsze ucieka pętlami o najmniejszym oporze (najkrótszymi). Jeśli nie zastosujesz rotametrów, Twój układ będzie całkowicie rozregulowany.</p>
                <p>Główną rolą wskaźnika jest <strong>sztuczne zdławienie (kryzowanie) krótkich obwodów</strong>, aby wymusić przepływ wody przez długie rury w dużych pomieszczeniach.</p>
            </div>

            <div class="sum-panel" id="sum-3">
                <div class="sum-visual-box">
                    <svg class="sum-svg anim-pulse" viewBox="0 0 100 100">
                        <circle cx="50" cy="50" r="40" fill="none" stroke="#e2e8f0" stroke-width="8"/>
                        <path d="M 20 50 A 30 30 0 0 1 80 50" fill="none" stroke="#10b981" stroke-width="8" stroke-linecap="round"/>
                        <line x1="50" y1="50" x2="50" y2="25" stroke="#0f172a" stroke-width="4" stroke-linecap="round"/>
                        <circle cx="50" cy="50" r="6" fill="#0f172a"/>
                        <text x="50" y="80" font-size="14" font-weight="bold" fill="#0284c7" text-anchor="middle">1.2 l/min</text>
                    </svg>
                </div>
                <h3>Złoty środek w nastawach</h3>
                <p>Optymalny zakres przepływu na pętlę to zazwyczaj <strong>od 0.5 do 1.5 l/min</strong>. To kompromis, który gwarantuje cichą pracę i efektywne oddawanie ciepła.</p>
                <p>Zbyt niskie wartości grożą zapowietrzeniem instalacji. Zbyt wysokie (otwarcie zaworów &#8222;na full&#8221;) powodują uciążliwy <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">szum w rozdzielaczu</a> i bezsensownie pożerają prąd napędzający pompę.</p>
            </div>

            <div class="sum-panel" id="sum-4">
                <div class="sum-visual-box">
                    <svg class="sum-svg" viewBox="0 0 100 100">
                        <rect x="25" y="10" width="50" height="70" rx="4" fill="#ffffff" stroke="#cbd5e1" stroke-width="3"/>
                        <line x1="35" y1="25" x2="65" y2="25" stroke="#94a3b8" stroke-width="3" stroke-linecap="round"/>
                        <line x1="35" y1="40" x2="55" y2="40" stroke="#94a3b8" stroke-width="3" stroke-linecap="round"/>
                        <line x1="35" y1="55" x2="60" y2="55" stroke="#94a3b8" stroke-width="3" stroke-linecap="round"/>
                        <path class="anim-pulse" d="M 45 75 L 55 85 L 80 50" fill="none" stroke="#10b981" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
                    </svg>
                </div>
                <h3>Bez projektu to zgadywanie</h3>
                <p>Rotametr jest zaledwie mechanicznym wykonawcą poleceń. To <strong><a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obliczenia inżynierskie (OZC)</a></strong> mówią nam, jaka wartość powinna znaleźć się na jego skali.</p>
                <p>Projektant uwzględnia w nich różnice w izolacji podłóg (panele vs gres), stratach cieplnych okien i docelowej temperaturze. Ustawianie &#8222;wszystkiego po równo&#8221; to błąd w sztuce!</p>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // --- OCHRONA DOMENOWA (Bez użycia H-tagów) ---
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('app-summary-hub');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 20px; text-align: center; background: #0f172a; color: #ffffff; border-radius: 24px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 22px; font-weight: 900; margin-bottom: 10px; color: #38bdf8;">Zawartość Chroniona Autorsko</div>
                    <p style="font-size: 15px; color: #cbd5e1; margin-bottom: 25px;">Moduł "Pigułka Wiedzy" jest własnością serwisu Projekt-Ogrzewania.pl.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 12px 24px; background: #0ea5e9; color: white; text-decoration: none; border-radius: 8px; font-weight: bold;">Wróć do oryginału</a>
                </div>
            `;
            return;
        }
    }

    // --- LOGIKA PRZEŁĄCZANIA PANELU WIEDZY ---
    const navBtns = document.querySelectorAll('.sum-nav-btn');
    const panels = document.querySelectorAll('.sum-panel');

    navBtns.forEach(btn => {
        btn.addEventListener('click', (e) => {
            // Zresetuj wszystkie przyciski i panele
            navBtns.forEach(b => b.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

            // Aktywuj kliknięty
            e.currentTarget.classList.add('active');
            const targetId = e.currentTarget.getAttribute('data-sum');
            const targetPanel = document.getElementById(targetId);
            
            if(targetPanel) {
                // Mały trick by zresetować animację CSS przy każdym kliknięciu
                targetPanel.style.animation = 'none';
                targetPanel.offsetHeight; /* trigger reflow */
                targetPanel.style.animation = null; 
                
                targetPanel.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --dl-primary: #0f172a;
    --dl-accent: #0ea5e9;
    --dl-accent-dark: #0284c7;
    --dl-bg: #f8fafc;
    --dl-border: #e2e8f0;
    --dl-text: #334155;
    --dl-white: #ffffff;
}

.download-hub-container {
    max-width: 950px;
    margin: 60px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--dl-white);
    border-radius: 24px;
    border: 1px solid var(--dl-border);
    box-shadow: 0 20px 40px -10px rgba(0,0,0,0.05);
    overflow: hidden;
}

/* NAGŁÓWEK SEKCI */
.dl-header {
    background: linear-gradient(135deg, var(--dl-primary) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: var(--dl-white);
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
}

.dl-header-content { position: relative; z-index: 2; max-width: 60%; }

.dl-badge {
    display: inline-block;
    background: rgba(14, 165, 233, 0.2);
    border: 1px solid rgba(14, 165, 233, 0.3);
    color: #7dd3fc;
    padding: 6px 12px;
    border-radius: 50px;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.dl-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 10px 0;
    letter-spacing: -0.5px;
}

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

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

.dl-pdf-icon-svg {
    width: 80px;
    height: auto;
    filter: drop-shadow(0 10px 15px rgba(0,0,0,0.3));
    animation: floatIcon 3s infinite ease-in-out alternate;
}

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

/* GŁÓWNY WORKSPACE */
.dl-workspace {
    display: flex;
    padding: 40px 50px;
    gap: 40px;
    background: var(--dl-white);
}

.dl-preview-box {
    flex: 1;
    background: var(--dl-bg);
    border: 1px solid var(--dl-border);
    border-radius: 16px;
    padding: 10px;
    position: relative;
    cursor: zoom-in;
    transition: transform 0.3s;
}

.dl-preview-box:hover {
    transform: scale(1.02);
}

.dl-preview-img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    display: block;
}

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

.dl-feature-list {
    list-style: none;
    padding: 0;
    margin: 0 0 30px 0;
}

.dl-feature-item {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 15px;
    font-size: 15px;
    font-weight: 600;
    color: var(--dl-text);
}

.dl-check-svg {
    width: 20px;
    height: 20px;
    color: var(--dl-accent);
    flex-shrink: 0;
}

/* PRZYCISK POBIERANIA */
.dl-main-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--dl-accent);
    color: var(--dl-white);
    text-decoration: none !important;
    padding: 18px 30px;
    border-radius: 14px;
    font-weight: 800;
    font-size: 16px;
    transition: all 0.3s;
    box-shadow: 0 10px 20px -5px rgba(14, 165, 233, 0.4);
}

.dl-main-btn:hover {
    background: var(--dl-accent-dark);
    transform: translateY(-3px);
    box-shadow: 0 15px 30px -5px rgba(14, 165, 233, 0.5);
}

.dl-main-btn span { font-size: 20px; }

/* STOPKA MODUŁU */
.dl-footer {
    padding: 20px 50px;
    background: var(--dl-bg);
    border-top: 1px solid var(--dl-border);
    font-size: 13px;
    color: var(--dl-muted);
    text-align: center;
}

.dl-footer a {
    color: var(--dl-accent-dark);
    font-weight: 700;
    text-decoration: none;
}

@media (max-width: 800px) {
    .dl-header { flex-direction: column; text-align: center; padding: 30px 20px; }
    .dl-header-content { max-width: 100%; margin-bottom: 25px; }
    .dl-workspace { flex-direction: column; padding: 30px 20px; }
    .dl-preview-box { margin-bottom: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#infografika-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/"
    },
    "headline": "Rotametr – Instrukcja i Tabela Nastaw (Infografika PDF)",
    "description": "Pobierz inżynierskie zestawienie nastaw przepływu dla ogrzewania podłogowego. Kompletny poradnik regulacji rotametrów w formacie PDF i WEBP.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-11-29",
    "dateModified": "2026-05-03"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#dataset-tabela",
    "name": "Tabela inżynierska: Długość pętli vs Zalecany przepływ l/min",
    "description": "Zbiór danych określający optymalne natężenie przepływu wody dla rur PEX/PERT 16x2.0 w zależności od długości obwodu (od 50m do 120m).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "tabela nastaw rotametrów",
      "ile l/min na podłogówkę",
      "przepływ 100m rury",
      "regulacja rozdzielacza instrukcja PDF",
      "optymalny przepływ w pętli"
    ],
    "measurementTechnique": "Obliczenia hydrauliczne dla ΔT=5-8K przy standardowym obciążeniu cieplnym budynku jednorodzinnego.",
    "mainEntity": {
      "@type": "Thing",
      "name": "Parametry nastawcze rozdzielacza"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/#download-app",
    "name": "Centrum Pobierania Wiedzy: Rotametr",
    "description": "Interaktywny moduł umożliwiający wizualizację i pobranie dokumentacji technicznej dotyczącej wskaźników przepływu.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5"
  }
]
</script>

<div class="download-hub-container" id="app-rotameter-dl">
    
    <div class="dl-header">
        <div class="dl-header-content">
            <div class="dl-badge">Darmowe Materiały</div>
            <h2>Pobierz Kompletny Poradnik</h2>
            <p>Zabierz inżynierską wiedzę na budowę. Tabela nastaw, schemat budowy i diagnostyka błędów w jednym pliku PDF.</p>
        </div>
        <div class="dl-header-visual">
            <svg class="dl-pdf-icon-svg" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path d="M14 2H6C4.89543 2 4 2.89543 4 4V20C4 21.1046 4.89543 22 6 22H18C19.1046 22 20 21.1046 20 20V8L14 2Z" fill="#ef4444" stroke="#ffffff" stroke-width="1"/>
                <path d="M14 2V8H20" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/>
                <text x="7" y="18" fill="white" font-size="5" font-weight="900" font-family="sans-serif">PDF</text>
            </svg>
        </div>
    </div>

    <div class="dl-workspace">
        
        <div class="dl-preview-box" onclick="window.open('https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego.webp', '_blank')">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego.webp" alt="Infografika Rotametr - wskaźnik przepływu w rozdzielaczu ogrzewania podłogowego" class="dl-preview-img" loading="lazy">
            <div style="position:absolute; bottom:20px; right:20px; background:rgba(0,0,0,0.6); color:white; padding:8px 12px; border-radius:8px; font-size:12px; font-weight:700;">🔍 Kliknij, aby powiększyć</div>
        </div>

        <div class="dl-info-side">
            <ul class="dl-feature-list">
                <li class="dl-feature-item">
                    <svg class="dl-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Tabela: Przepływ vs Długość pętli
                </li>
                <li class="dl-feature-item">
                    <svg class="dl-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Schemat budowy 1:1
                </li>
                <li class="dl-feature-item">
                    <svg class="dl-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Checklista: 3 najczęstsze błędy
                </li>
                <li class="dl-feature-item">
                    <svg class="dl-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Optymalizacja pod smartfony
                </li>
            </ul>

            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego.pdf" class="dl-main-btn" target="_blank">
                <span>📥</span> POBIERZ INSTRUKCJĘ (PDF)
            </a>
            
            <p style="margin-top: 20px; font-size: 13px; color: var(--dl-muted); line-height: 1.4;">
                Potrzebujesz precyzyjnych danych dla swojego domu? <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" style="color:var(--dl-accent-dark); font-weight:800;">Zamów projekt podłogówki</a> z gotowymi nastawami rotametrów.
            </p>
        </div>

    </div>

    <div class="dl-footer">
        © 2026 Projekt-Ogrzewania.pl | Autor: <strong>Robert Kucharski</strong>. Udostępnianie dozwolone z zachowaniem linku do źródła.
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- OCHRONA DOMENOWA ---
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(domain)) {
        const container = document.getElementById('app-rotameter-dl');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fee2e2; border: 2px solid #dc2626; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 10px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 800; color: #991b1b;">Zasoby Chronione</div>
                    <p style="color: #b91c1c; font-size: 14px;">Ta infografika i dokumentacja PDF są własnością serwisu Projekt-Ogrzewania.pl. Pobieranie z zewnętrznych serwerów jest zabronione.</p>
                </div>
            `;
        }
    }
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">Rotametr (wskaźnik przepływu) w rozdzielaczu 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/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Instalacja ogrzewania podłogowego w układzie meandrowym.</title>
		<link>https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 11 May 2025 15:30:59 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje budowlane]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Projekty instalacji]]></category>
		<category><![CDATA[Remont domu]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[instalacja grzewcza]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[koszty instalacji]]></category>
		<category><![CDATA[montaż podłogówki]]></category>
		<category><![CDATA[normy ogrzewania]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[rozdzielacz]]></category>
		<category><![CDATA[rury grzewcze]]></category>
		<category><![CDATA[rury pex]]></category>
		<category><![CDATA[strefy brzegowe]]></category>
		<category><![CDATA[układ meandrowy]]></category>
		<category><![CDATA[wylewka]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2575</guid>

					<description><![CDATA[<p>Chcesz cieszyć się ciepłem w domu przez cały rok? Poznaj zalety instalacji ogrzewania podłogowego w układzie meandrowym – prostego i efektywnego systemu grzewczego. Dowiedz się, jak zaplanować montaż, dobrać rury i okładziny oraz uniknąć błędów. Sprawdź praktyczne porady, koszty i przykłady zastosowań, aby stworzyć komfortowy i energooszczędny dom. Zainspiruj się i zacznij działać już dziś!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/">Instalacja ogrzewania podłogowego w układzie meandrowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-navy: #1e293b;
    --rk-intro-blue: #0284c7;
    --rk-intro-blue-light: #f0f9ff;
    --rk-intro-accent: #10b981; /* Zielony inżynierski */
    --rk-intro-accent-light: #ecfdf5;
    --rk-intro-gray: #475569;
    --rk-intro-bg: #ffffff;
    --rk-intro-border: #e2e8f0;
}

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

/* Sekcja Hook (Mocne otwarcie) */
.rk-intro-hook-box {
    background: linear-gradient(135deg, var(--rk-intro-dark) 0%, var(--rk-intro-navy) 100%);
    padding: 40px 45px;
    color: white;
    border-bottom: 5px solid var(--rk-intro-blue);
    display: flex;
    align-items: flex-start;
    gap: 25px;
}

.rk-intro-hook-icon {
    background: rgba(255, 255, 255, 0.1);
    padding: 15px;
    border-radius: 12px;
    flex-shrink: 0;
}

.rk-intro-hook-icon svg {
    width: 32px;
    height: 32px;
    color: #38bdf8;
}

.rk-intro-hook-content h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 12px 0;
    line-height: 1.3;
    color: white;
}

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

/* Szybka Odpowiedź (Featured Snippet) */
.rk-intro-quick-answer {
    padding: 45px;
    background: var(--rk-intro-bg);
}

.rk-intro-qa-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--rk-intro-blue-light);
    color: var(--rk-intro-blue);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 20px;
    border: 1px solid #bae6fd;
}

.rk-intro-quick-answer h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    margin: 0 0 15px 0;
}

.rk-intro-quick-answer p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-intro-gray);
    margin: 0 0 15px 0;
}

.rk-intro-quick-answer p:last-child {
    margin-bottom: 0;
}

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

.rk-intro-quick-answer a:hover {
    color: var(--rk-intro-dark);
    background: var(--rk-intro-blue-light);
}

/* Zapowiedź Narzędzi Interaktywnych (Teaser) */
.rk-intro-teaser-section {
    background: #f8fafc;
    border-top: 1px solid var(--rk-intro-border);
    padding: 45px;
}

.rk-intro-teaser-header {
    text-align: center;
    margin-bottom: 30px;
}

.rk-intro-teaser-header h4 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    margin: 0 0 10px 0;
}

.rk-intro-teaser-header p {
    font-size: 15px;
    color: var(--rk-intro-gray);
    margin: 0;
}

.rk-intro-tools-grid {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-intro-tool-btn {
    background: white;
    border: 1px solid var(--rk-intro-border);
    padding: 20px;
    border-radius: 12px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 20px;
    text-align: left;
}

.rk-intro-tool-btn:hover {
    background: var(--rk-intro-accent-light);
    border-color: #a7f3d0;
}

.rk-intro-tool-btn.active {
    background: var(--rk-intro-accent-light);
    border-color: var(--rk-intro-accent);
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.1);
}

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

.rk-intro-tool-btn.active .rk-intro-tool-icon {
    background: var(--rk-intro-accent);
    color: white;
}

.rk-intro-tool-text h5 {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-intro-dark);
    margin: 0 0 5px 0;
}

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

/* Moduł Wyniku Teasera */
.rk-intro-tool-preview {
    background: white;
    border: 1px solid var(--rk-intro-border);
    border-radius: 12px;
    padding: 25px;
    margin-top: 15px;
    display: none; /* Sterowane z JS, brak animacji */
}

.rk-intro-tool-preview.show {
    display: block;
}

.rk-intro-tool-preview p {
    font-size: 15px;
    color: var(--rk-intro-dark);
    margin: 0;
    line-height: 1.6;
    font-weight: 600;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-intro-hook-box { flex-direction: column; padding: 30px 25px; gap: 20px; text-align: center; align-items: center; }
    .rk-intro-quick-answer { padding: 30px 25px; }
    .rk-intro-teaser-section { padding: 30px 25px; }
    .rk-intro-tool-btn { flex-direction: column; text-align: center; gap: 15px; padding: 20px 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Instalacja ogrzewania podłogowego w układzie meandrowym – Zrozumieć fizykę ciepła",
    "description": "Definicja i charakterystyka instalacji ogrzewania podłogowego w układzie meandrowym. Zrozum liniowy spadek temperatury czynnika grzewczego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-definicja",
    "name": "Parametry definicyjne układu meandrowego",
    "description": "Podstawowe cechy i właściwości termodynamiczne płaszczyznowego układu meandrowego, determinujące różnicowanie wydajności cieplnej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "instalacja ogrzewania podłogowego meander",
      "liniowy spadek temperatury czynnika",
      "układ równoległy rur grzewczych",
      "profil temperatur jastrychu",
      "niskotemperaturowy system płaszczyznowy"
    ],
    "measurementTechnique": "Określenie zjawisk fizycznych i geometrycznych w obrębie wylewki jastrychowej przy równoległym trasowaniu przewodów grzewczych o kącie zwrotu 180 stopni.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Geometria: Rury układane równolegle z nawrotami o 180 stopni.",
        "Termodynamika: Liniowy spadek temperatury czynnika wzdłuż pętli.",
        "Cel: Zróżnicowanie wydajności cieplnej (kompensacja strat stref brzegowych)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-spis-narzedzi",
    "name": "Eksplorator Narzędzi Artykułu",
    "description": "Zestawienie interaktywnych modułów obliczeniowych i edukacyjnych dostępnych w dalszej części publikacji, dotyczących układu meandrowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="meander-intro">
    
    <div class="rk-intro-hook-box">
        <div class="rk-intro-hook-icon">
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
        </div>
        <div class="rk-intro-hook-content">
            <h2>Płacisz tysiące za pompę ciepła, a podłoga przy oknie i tak jest lodowata?</h2>
            <p>Zainwestowałeś w nowoczesne źródło ciepła, ale w salonie brakuje komfortu? Błąd niemal zawsze leży w geometrii rur i braku zrozumienia termodynamiki. Układ meandrowy, choć trudniejszy w obliczeniach, to jedyna tarcza obronna przed wychłodzeniem.</p>
        </div>
    </div>

    <div class="rk-intro-quick-answer">
        <div class="rk-intro-qa-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg>
            Szybka odpowiedź eksperta
        </div>
        <h3>Czym jest instalacja ogrzewania podłogowego w układzie meandrowym?</h3>
        <p>
            Instalacja ogrzewania podłogowego w układzie meandrowym to niskotemperaturowy system płaszczyznowy, w którym rury grzewcze są układane równolegle względem siebie w kształt jednostronnych pętli z zakrętami o 180 stopni. Rozwiązanie to charakteryzuje się liniowym spadkiem temperatury czynnika grzewczego wzdłuż pętli, co pozwala na celowe różnicowanie wydajności cieplnej w obrębie jednego pomieszczenia.
        </p>
        <p>
            Jako system płaszczyznowy, instalacja ta zapewnia pionowy profil temperatur zbliżony do idealnego dla organizmu człowieka, eliminując <a href="https://projekt-ogrzewania.pl/zalety-ogrzewania-podlogowego-w-porownaniu-do-tradycyjnych-grzejnikow/">tradycyjne grzejniki konwekcyjne</a>. Prawidłowo zaprojektowany układ meandrowy redukuje koszty eksploatacyjne budynku przy współpracy z <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">pompami ciepła</a>.
        </p>
    </div>

    <div class="rk-intro-teaser-section">
        <div class="rk-intro-teaser-header">
            <h4>Co jeszcze odkryjesz w tym kompendium?</h4>
            <p>Ten artykuł to nie tylko sucha teoria. Przewiń w dół, aby skorzystać z zaawansowanych, interaktywnych narzędzi inżynierskich przygotowanych specjalnie dla Ciebie.</p>
        </div>

        <div class="rk-intro-tools-grid" id="teaserTabs">
            <button class="rk-intro-tool-btn" data-tool="calc">
                <div class="rk-intro-tool-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="2" width="16" height="20" rx="2" ry="2"></rect><line x1="8" y1="6" x2="16" y2="6"></line><line x1="16" y1="14" x2="16.01" y2="14"></line><line x1="12" y1="14" x2="12.01" y2="14"></line><line x1="8" y1="14" x2="8.01" y2="14"></line><line x1="16" y1="18" x2="16.01" y2="18"></line><line x1="12" y1="18" x2="12.01" y2="18"></line><line x1="8" y1="18" x2="8.01" y2="18"></line></svg>
                </div>
                <div class="rk-intro-tool-text">
                    <h5>Kalkulator przepływów i strat</h5>
                    <p>Oblicz na żywo nastawy dla rotametrów na podstawie mocy cieplnej.</p>
                </div>
            </button>

            <button class="rk-intro-tool-btn" data-tool="sim">
                <div class="rk-intro-tool-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                </div>
                <div class="rk-intro-tool-text">
                    <h5>Symulatory termodynamiki EN 1264</h5>
                    <p>Sprawdź wizualnie, co się stanie przy błędnym trasowaniu meandru.</p>
                </div>
            </button>

            <button class="rk-intro-tool-btn" data-tool="case">
                <div class="rk-intro-tool-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg>
                </div>
                <div class="rk-intro-tool-text">
                    <h5>Interaktywne Case Study z budowy</h5>
                    <p>Rozwiązanie problemu braku nośności stropu w domu z lat 70.</p>
                </div>
            </button>
        </div>

        <div class="rk-intro-tool-preview" id="teaserPreviewBox">
            </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = document.querySelectorAll('.rk-intro-tool-btn');
    var previewBox = document.getElementById('teaserPreviewBox');

    var teaserData = {
        "calc": "Zastosowaliśmy precyzyjne algorytmy fizyczne. Suwaki pozwolą Ci od razu zobaczyć, czy Twoja pętla nie stawia zbyt dużych oporów hydraulicznych i nie zadławi pracy całego rozdzielacza.",
        "sim": "Graficzne heatmapy oparte na wytycznych PN-EN pokażą Ci różnicę pomiędzy powstawaniem bezpiecznej kurtyny termicznej, a przekroczeniem dopuszczalnych 29°C w salonie.",
        "case": "Krok po kroku przeprowadzimy Cię przez proces decyzyjny inżyniera, który uratował drewniany strop przed zawaleniem ciężką wylewką, stosując system suchy w układzie meandrowym."
    };

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var isActive = this.classList.contains('active');

            // Resetowanie wszystkich
            btns.forEach(function(b) { b.classList.remove('active'); });

            if (isActive === false) {
                this.classList.add('active');
                var tool = this.getAttribute('data-tool');
                var text = teaserData[tool];

                if (text !== undefined) {
                    previewBox.innerHTML = '<p>' + text + '</p>';
                    previewBox.classList.add('show');
                }
            } else {
                // Jesli kliknieto aktywny - zwiń (bezpieczna logika bez operators logicznych negacji zlozonych)
                previewBox.classList.remove('show');
            }
        });
    });
});
</script>



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

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

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

.rk-en-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.4;
    color: white;
}

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

/* Interfejs Single-Column */
.rk-en-body {
    padding: 35px 40px;
    background: var(--rk-en-light);
}

/* Moduł Sterowania Symulacją */
.rk-en-controls {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    justify-content: center;
    flex-wrap: wrap;
}

.rk-en-btn {
    background: white;
    border: 2px solid var(--rk-en-border);
    padding: 16px 20px;
    border-radius: 12px;
    cursor: pointer;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-en-gray);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 260px;
    justify-content: center;
}

.rk-en-btn:hover {
    border-color: #bae6fd;
    background: #f0f9ff;
}

.rk-en-btn.active[data-layout="random"] {
    border-color: var(--rk-en-red);
    background: #fef2f2;
    color: var(--rk-en-red);
    box-shadow: 0 8px 20px -5px rgba(239, 68, 68, 0.3);
}

.rk-en-btn.active[data-layout="engineered"] {
    border-color: var(--rk-en-blue);
    background: #f0f9ff;
    color: var(--rk-en-blue);
    box-shadow: 0 8px 20px -5px rgba(2, 132, 199, 0.3);
}

.rk-en-btn svg {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
}

/* Moduł Wizualizacji SVG */
.rk-en-vis-box {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-en-border);
    padding: 30px;
    margin-bottom: 30px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.02);
}

.rk-en-svg-wrapper {
    width: 100%;
    height: 220px;
    background: #f1f5f9;
    border-radius: 12px;
    border: 1px dashed #cbd5e1;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

.rk-en-status {
    display: flex;
    justify-content: space-between;
    margin-top: 20px;
    padding: 15px 20px;
    border-radius: 10px;
    font-weight: 800;
    font-size: 15px;
    transition: all 0.3s ease;
}

.status-danger {
    background: #fef2f2;
    color: var(--rk-en-red);
    border: 1px solid #fca5a5;
}

.status-safe {
    background: #f0f9ff;
    color: var(--rk-en-blue);
    border: 1px solid #bae6fd;
}

/* Sekcja Tekstowa */
.rk-en-content-box {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-en-border);
    padding: 35px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.02);
}

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

.rk-en-content-box h3::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 24px;
    background: var(--rk-en-blue);
    border-radius: 4px;
}

.rk-en-content-box p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 15px 0;
}

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

.rk-en-content-box a:hover {
    color: var(--rk-en-dark);
    background: #e0f2fe;
}

.rk-tech-val {
    font-weight: 800;
    color: var(--rk-en-dark);
    background: #e2e8f0;
    padding: 2px 6px;
    border-radius: 4px;
    white-space: nowrap;
}

/* Animacje zawartości */
.fade-in {
    animation: fadeIn 0.4s ease-out forwards;
}

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

/* Animacje SVG (Pulsująca fala ciepła) */
.heat-wave {
    stroke-dasharray: 15;
    animation: flowHeat 1s linear infinite;
}

@keyframes flowHeat {
    to { stroke-dashoffset: -30; }
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-en-header, .rk-en-body { padding: 25px 20px; }
    .rk-en-controls { flex-direction: column; gap: 10px; }
    .rk-en-btn { width: 100%; justify-content: flex-start; padding: 16px 20px; }
    .rk-en-content-box { padding: 25px 20px; }
    .rk-en-status { flex-direction: column; gap: 10px; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-en1264",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Jak działa ogrzewanie podłogowe w układzie meandrowym w odniesieniu do normy EN 1264?",
    "description": "Analiza termodynamiki układu meandrowego. Jak zapobiec pękaniu płytek i dyskomfortowi gorących stóp, przestrzegając granicznej temperatury 29 stopni Celsjusza.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-en1264",
    "name": "Wymogi termiczne ogrzewania podłogowego wg PN-EN 1264-2",
    "description": "Ograniczenia fizyczne dla systemów płaszczyznowych definiujące maksymalną gęstość strumienia cieplnego względem komfortu ludzkiego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "norma PN-EN 1264 podłogówka",
      "maksymalna temperatura podłogi 29C",
      "spadek temperatury podłogówka",
      "pękanie płytek na ogrzewaniu podłogowym",
      "wymiana ciepła promieniowanie konwekcja",
      "gęstość strumienia cieplnego podłogówka"
    ],
    "measurementTechnique": "Analiza rozkładu temperatur (delta T 5-8K) na podstawie normy PN-EN 1264-2 w odniesieniu do stref stałego przebywania ludzi.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Maksymalna temperatura posadzki: 29°C (w strefie stałego przebywania domowników).",
        "Wymiana ciepła: Przeważa promieniowanie nad konwekcją swobodną.",
        "Delta T (Spadek temperatury): Standardowo wynosi od 5K do 8K pomiędzy zasilaniem a powrotem, powodując ryzyko powstania stref niedogrzanych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-en1264",
    "name": "Symulator Rozkładu Temperatur Meandru wg EN 1264",
    "description": "Interaktywne narzędzie obrazujące zjawisko powstawania stref niedogrzanych oraz przegrzewania posadzki powyżej 29 stopni Celsjusza w wyniku błędnego trasowania rur.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-en-container" id="norm-en1264-sim">
    <div class="rk-en-header">
        <h2>Jak działa meander w odniesieniu do normy EN 1264?</h2>
        <p>Ignorowanie fizyki to najkrótsza droga do popękanych płytek i lodowatych stóp. Przetestuj, jak ułożenie pętli względem okna wpływa na legalną temperaturę podłogi.</p>
    </div>

    <div class="rk-en-body">
        
        <div class="rk-en-controls" id="enTabs">
            <button class="rk-en-btn active" data-layout="random">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Układ Przypadkowy (Błąd)
            </button>
            <button class="rk-en-btn" data-layout="engineered">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                Układ Inżynierski (Poprawny)
            </button>
        </div>

        <div class="rk-en-vis-box fade-in" id="enVisBox">
            
            <div class="rk-en-svg-wrapper" id="enSvgBox">
                <svg width="400" height="180" viewBox="0 0 400 180" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round">
                    <rect x="20" y="20" width="15" height="140" fill="#bae6fd" stroke="#0ea5e9" stroke-width="2"/> <rect x="280" y="50" width="100" height="80" rx="10" fill="#cbd5e1" stroke="#64748b" stroke-width="2"/> <defs>
                        <linearGradient id="gradBad" x1="100%" y1="0%" x2="0%" y2="0%">
                            <stop offset="0%" stop-color="#dc2626"/>
                            <stop offset="100%" stop-color="#38bdf8"/>
                        </linearGradient>
                    </defs>
                    <path d="M300 140 L50 140 L50 110 L350 110 L350 80 L50 80 L50 50 L300 50" stroke="url(#gradBad)" stroke-width="8" class="heat-wave"/>
                    <text x="320" y="165" font-size="12" fill="#dc2626" stroke="none" font-weight="bold">> 32°C (Dyskomfort)</text>
                    <text x="50" y="165" font-size="12" fill="#0ea5e9" stroke="none" font-weight="bold">< 22°C (Chłód)</text>
                </svg>
            </div>

            <div class="rk-en-status status-danger" id="enStatusBox">
                <span>Strefa bytowa: <strong>Przegrzana (> 29°C)</strong></span>
                <span>Strefa okna: <strong>Niedogrzana</strong></span>
            </div>

        </div>

        <div class="rk-en-content-box fade-in" id="enContentBox">
            <h3 id="enTitle">Brak balansu i ryzyko dla posadzki</h3>
            <div id="enText">
                <p>
                    <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/">Instalacja ogrzewania podłogowego</a> w układzie meandrowym działa na zasadzie wymiany ciepła przez promieniowanie oraz konwekcję swobodną. Zgodnie z bezwzględną normą <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">PN-EN 1264-2</a>, maksymalna gęstość strumienia cieplnego (<strong>q</strong>) nie może przekroczyć wartości granicznych. Są one determinowane przez maksymalną temperaturę podłogi wynoszącą <span class="rk-tech-val">29°C</span> w strefie stałego przebywania ludzi.
                </p>
                <p>
                    Czynnik grzewczy wpływa do pętli z określoną temperaturą zasilania <strong>Tz</strong> (najczęściej 35°C–45°C), a oddając ciepło do jastrychu, schładza się liniowo aż do osiągnięcia temperatury powrotu przy rozdzielaczu. Standardowy spadek temperatury medium (<strong>ΔT = 5K do 8K</strong>) powoduje proporcjonalne obniżenie mocy cieplnej na każdym metrze bieżącym rury.
                </p>
                <p>
                    Ból inwestora polega na tym, że bez przeprowadzenia <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/">bilansu cieplnego budynku</a> i znajomości fizyki, pierwsza część pokoju będzie nieprzyjemnie gorąca, a druga zimna. Układ ułożony bez planu wygeneruje strefy o zbyt wysokiej temperaturze na początku zasilania (powyżej 29°C). Skutkuje to efektem &#8222;gorących stóp&#8221;, a co gorsza – miejscowymi naprężeniami termicznymi prowadzącymi do pękania okładzin ceramicznych i mikropęknięć w jastrychu.
                </p>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = document.querySelectorAll('.rk-en-btn');
    var visBox = document.getElementById('enVisBox');
    var contentBox = document.getElementById('enContentBox');
    var svgBox = document.getElementById('enSvgBox');
    var statusBox = document.getElementById('enStatusBox');
    var enTitle = document.getElementById('enTitle');
    var enText = document.getElementById('enText');

    var layoutData = {
        "random": {
            statusClass: "status-danger",
            statusHtml: '<span>Strefa bytowa: <strong>Przegrzana (> 29°C)</strong></span><span>Strefa okna: <strong>Niedogrzana</strong></span>',
            svg: '<svg width="400" height="180" viewBox="0 0 400 180" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><rect x="20" y="20" width="15" height="140" fill="#bae6fd" stroke="#0ea5e9" stroke-width="2"/><rect x="280" y="50" width="100" height="80" rx="10" fill="#cbd5e1" stroke="#64748b" stroke-width="2"/><defs><linearGradient id="gradBad" x1="100%" y1="0%" x2="0%" y2="0%"><stop offset="0%" stop-color="#dc2626"/><stop offset="100%" stop-color="#38bdf8"/></linearGradient></defs><path d="M300 140 L50 140 L50 110 L350 110 L350 80 L50 80 L50 50 L300 50" stroke="url(#gradBad)" stroke-width="8" class="heat-wave"/><text x="320" y="165" font-size="12" fill="#dc2626" stroke="none" font-weight="bold">> 32°C (Dyskomfort)</text><text x="50" y="165" font-size="12" fill="#0ea5e9" stroke="none" font-weight="bold">< 22°C (Chłód)</text></svg>',
            title: "Brak balansu i ryzyko dla posadzki",
            html: '<p><a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/">Instalacja ogrzewania podłogowego</a> w układzie meandrowym działa na zasadzie wymiany ciepła przez promieniowanie oraz konwekcję swobodną. Zgodnie z bezwzględną normą <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">PN-EN 1264-2</a>, maksymalna gęstość strumienia cieplnego (<strong>q</strong>) nie może przekroczyć wartości granicznych. Są one determinowane przez maksymalną temperaturę podłogi wynoszącą <span class="rk-tech-val">29°C</span> w strefie stałego przebywania ludzi.</p><p>Czynnik grzewczy wpływa do pętli z określoną temperaturą zasilania <strong>Tz</strong> (najczęściej 35°C–45°C), a oddając ciepło do jastrychu, schładza się liniowo aż do osiągnięcia temperatury powrotu przy rozdzielaczu. Standardowy spadek temperatury medium (<strong>ΔT = 5K do 8K</strong>) powoduje proporcjonalne obniżenie mocy cieplnej na każdym metrze bieżącym rury.</p><p>Ból inwestora polega na tym, że bez przeprowadzenia <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/">bilansu cieplnego budynku</a> i znajomości fizyki, pierwsza część pokoju będzie nieprzyjemnie gorąca, a druga zimna. Układ ułożony bez planu wygeneruje strefy o zbyt wysokiej temperaturze na początku zasilania (powyżej 29°C). Skutkuje to efektem "gorących stóp", a co gorsza – miejscowymi naprężeniami termicznymi prowadzącymi do pękania okładzin ceramicznych i mikropęknięć w jastrychu.</p>'
        },
        "engineered": {
            statusClass: "status-safe",
            statusHtml: '<span>Strefa bytowa: <strong>Normatywna (26-28°C)</strong></span><span>Strefa okna: <strong>Chroniona (35°C)</strong></span>',
            svg: '<svg width="400" height="180" viewBox="0 0 400 180" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><rect x="20" y="20" width="15" height="140" fill="#bae6fd" stroke="#0ea5e9" stroke-width="2"/><rect x="280" y="50" width="100" height="80" rx="10" fill="#cbd5e1" stroke="#64748b" stroke-width="2"/><defs><linearGradient id="gradGood" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#dc2626"/><stop offset="100%" stop-color="#f59e0b"/></linearGradient></defs><path d="M50 140 L350 140 L350 110 L50 110 L50 80 L350 80 L350 50 L50 50" stroke="url(#gradGood)" stroke-width="8" class="heat-wave"/><text x="50" y="165" font-size="12" fill="#dc2626" stroke="none" font-weight="bold">MAX 35°C (Dozwolone)</text><text x="300" y="165" font-size="12" fill="#0284c7" stroke="none" font-weight="bold">26-28°C (Komfort)</text></svg>',
            title: "Inteligentna kompensacja infiltracji",
            html: '<p>Aby zapobiec niszczeniu wylewek i dyskomfortowi domowników, inżynierowie wypracowali metodę układania meandru w sposób ściśle ukierunkowany. Rura zasilająca wprowadzana jest zawsze najpierw pod przegrody o najwyższych stratach ciepła, czyli bezpośrednio pod szyby tarasowe i ściany zewnętrzne.</p><p>Pozwala to zrównoważyć profil temperatur w pomieszczeniach o podwyższonych stratach. Norma PN-EN 1264 dopuszcza w strefie brzegowej (czyli wąskim pasie przy ścianie, gdzie nie przebywamy stale) temperaturę posadzki aż do <span class="rk-tech-val">35°C</span>. Przez to najgorętsza woda oddaje swój potężny ładunek tam, gdzie jest on najbardziej potrzebny do walki z infiltracją zimnego powietrza.</p><p>Gdy czynnik grzewczy dociera w głąb salonu (pod strefę wypoczynkową), jego temperatura w naturalny sposób spada do pożądanego i w pełni bezpiecznego poziomu, zapewniając domownikom <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">zdrowy komfort cieplny bez negatywnych skutków ubocznych</a>.</p>'
        }
    };

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

            var layout = this.getAttribute('data-layout');
            var data = layoutData[layout];

            // Bezpieczne wstrzyknięcie zawartości
            if (data !== undefined) {
                // Restart animacji CSS
                visBox.classList.remove('fade-in');
                contentBox.classList.remove('fade-in');
                void visBox.offsetWidth; // Wymuszony reflow przeglądarki
                void contentBox.offsetWidth;
                visBox.classList.add('fade-in');
                contentBox.classList.add('fade-in');

                // Aktualizacja Statusu
                statusBox.className = "rk-en-status " + data.statusClass;
                statusBox.innerHTML = data.statusHtml;

                // Aktualizacja SVG i Tekstu
                svgBox.innerHTML = data.svg;
                enTitle.textContent = data.title;
                enText.innerHTML = data.html;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-mnd-dark: #0f172a;
    --rk-mnd-blue: #0284c7;
    --rk-mnd-blue-light: #e0f2fe;
    --rk-mnd-red: #dc2626;
    --rk-mnd-red-light: #fee2e2;
    --rk-mnd-gray: #64748b;
    --rk-mnd-bg: #ffffff;
    --rk-mnd-border: #e2e8f0;
}

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

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

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

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

/* Interfejs */
.rk-mnd-body {
    padding: 35px 40px;
    background: #f8fafc;
}

/* Przełączniki (Toggles) */
.rk-mnd-toggles {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    justify-content: center;
    flex-wrap: wrap;
}

.rk-mnd-btn {
    background: white;
    border: 2px solid var(--rk-mnd-border);
    padding: 16px 24px;
    border-radius: 14px;
    cursor: pointer;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-mnd-gray);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 240px;
    justify-content: center;
}

.rk-mnd-btn:hover {
    border-color: #bae6fd;
    background: var(--rk-mnd-blue-light);
}

.rk-mnd-btn.active {
    border-color: var(--rk-mnd-blue);
    background: var(--rk-mnd-blue);
    color: white;
    box-shadow: 0 8px 20px -5px rgba(2, 132, 199, 0.4);
}

.rk-mnd-btn svg {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
}

/* Wizualizacja SVG (Heatmapa) */
.rk-mnd-visual-box {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-mnd-border);
    padding: 30px;
    margin-bottom: 30px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.02);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rk-mnd-svg-wrapper {
    width: 100%;
    max-width: 450px;
    height: 280px;
    background: #f1f5f9;
    border-radius: 12px;
    border: 1px dashed #cbd5e1;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

.rk-mnd-gradient-bar {
    width: 100%;
    max-width: 450px;
    height: 12px;
    border-radius: 6px;
    margin-top: 20px;
    background: linear-gradient(to right, #dc2626, #f59e0b, #38bdf8, #2563eb);
    position: relative;
}

.rk-mnd-grad-labels {
    display: flex;
    justify-content: space-between;
    width: 100%;
    max-width: 450px;
    margin-top: 8px;
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-mnd-gray);
}

/* Tekst i Wyjaśnienie */
.rk-mnd-content-box {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-mnd-border);
    padding: 35px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.02);
}

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

.rk-mnd-content-box h3::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 24px;
    background: var(--rk-mnd-red);
    border-radius: 4px;
}

.rk-mnd-content-box p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 15px 0;
}

.rk-mnd-content-box p:last-child {
    margin-bottom: 0;
}

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

.rk-mnd-content-box a:hover {
    color: var(--rk-mnd-dark);
    background: var(--rk-mnd-blue-light);
}

.rk-tech-hl {
    background: var(--rk-mnd-red-light);
    color: var(--rk-mnd-red);
    padding: 2px 8px;
    border-radius: 4px;
    font-weight: 800;
    white-space: nowrap;
}

/* Animacje */
.fade-in {
    animation: fadeIn 0.4s ease-out forwards;
}

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

/* SVG Path Animations */
.path-flow {
    stroke-dasharray: 18;
    animation: flowDash 1.2s linear infinite;
}

@keyframes flowDash {
    to { stroke-dashoffset: -36; }
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-mnd-header, .rk-mnd-body { padding: 25px 20px; }
    .rk-mnd-toggles { flex-direction: column; gap: 10px; }
    .rk-mnd-btn { width: 100%; justify-content: flex-start; padding: 16px 20px; }
    .rk-mnd-content-box { padding: 25px 20px; }
    .rk-mnd-svg-wrapper { height: 200px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-rodzaje",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Układ meander a podwójny meander – rzetelne wyjaśnienie różnic",
    "description": "Fizyczne i techniczne zestawienie różnic pomiędzy meandrem pojedynczym a podwójnym. Analiza promieni gięcia rur i kompensacji strat ciśnienia w podłogówce.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-meander-rodzaje",
    "name": "Rozkład temperatur i fizyka gięcia rur w układach meandrowych",
    "description": "Zestawienie profilu spadku temperatury czynnika grzewczego na powierzchni posadzki bez efektu krzyżowania się rur PEX.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "meander podwójny a pojedynczy różnice",
      "układ wężykowy podłogówki",
      "równoległe układanie rur podłogówka",
      "jak nie krzyżować rur ogrzewania",
      "rozkład temperatury podłogówki meander",
      "spadek temperatury czynnika zasilania"
    ],
    "measurementTechnique": "Algorytmiczna wizualizacja równoległego prowadzenia czynnika zasilającego i powrotnego bez nakładania się osi przewodów.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Meander Pojedynczy: System kierunkowy z silnym, odczuwalnym gradientem. Zasilanie oddaje ciepło jednostronnie.",
        "Meander Podwójny: Układ bezkolizyjny, gdzie rura zasilająca i powrotna wymieniają się promieniami gięcia na nawrotach, stabilizując średnią temperaturę."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-meander-rodzaje",
    "name": "Symulator Fizyki Pętli Meandrowych",
    "description": "Narzędzie webowe precyzyjnie obrazujące trasowanie rur zasilających i powrotnych w celu osiągnięcia pożądanego balansu termicznego jastrychu.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-mnd-container" id="meander-types-sim">
    <div class="rk-mnd-header">
        <h2>Układ meander a podwójny meander – rzetelne wyjaśnienie różnic</h2>
        <p>Wybór między klasycznym wężykiem a bezkolizyjnym meandrem podwójnym to matematyczna decyzja o tym, czy Twoja podłoga będzie miała gorące strefy brzegowe, czy perfekcyjnie zbilansowaną temperaturę.</p>
    </div>

    <div class="rk-mnd-body">
        
        <div class="rk-mnd-toggles" id="mndTabs">
            <button class="rk-mnd-btn active" data-type="single">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M4 6h16M4 12h16M4 18h16"></path></svg>
                Meander Pojedynczy
            </button>
            <button class="rk-mnd-btn" data-type="double">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path></svg>
                Meander Podwójny
            </button>
        </div>

        <div class="rk-mnd-visual-box fade-in" id="mndVisBox">
            <div class="rk-mnd-svg-wrapper">
                <svg width="300" height="200" viewBox="0 0 300 200" fill="none" stroke-width="6" stroke-linejoin="round" id="mndSvg">
                    <defs>
                        <linearGradient id="gradSingle" x1="0%" y1="0%" x2="0%" y2="100%">
                            <stop offset="0%" stop-color="#dc2626" />
                            <stop offset="50%" stop-color="#f59e0b" />
                            <stop offset="100%" stop-color="#2563eb" />
                        </linearGradient>
                    </defs>
                    <path d="M20 25 L280 25 L280 50 L20 50 L20 75 L280 75 L280 100 L20 100 L20 125 L280 125 L280 150 L20 150" stroke="url(#gradSingle)" class="path-flow"/>
                </svg>
            </div>
            <div class="rk-mnd-gradient-bar"></div>
            <div class="rk-mnd-grad-labels">
                <span>Strefa Zasilania (Gorąca)</span>
                <span>Strefa Powrotu (Chłodna)</span>
            </div>
        </div>

        <div class="rk-mnd-content-box fade-in" id="mndContent">
            <h3 id="mndTitle">Meander Pojedynczy: Precyzyjny strumień kierunkowy</h3>
            <div id="mndText">
                <p>
                    W meandrze pojedynczym rura zasilająca układana jest od jednej ściany, zygzakiem (wężykiem) pokonując całe pomieszczenie, aż do punktu powrotu. Taka trasa skutkuje twardym zjawiskiem fizycznym zwanym <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">spadkiem temperatury czynnika (ΔT)</a>. Woda na początku pętli ma najwyższy parametr energetyczny, a systematycznie pokrywając metry kwadratowe jastrychu, mocno się wychładza.
                </p>
                <p>
                    <strong>Kiedy stosować?</strong> Ten klasyczny układ celowo wykorzystuje się tam, gdzie inżynier projektuje zróżnicowany profil temperatury podłogi. Sprawdza się znakomicie jako tarcza termiczna pod olbrzymimi oknami tarasowymi. W ten sposób <span class="rk-tech-hl">najgorętsza woda uderza w strefy największych strat ciepła</span>, a przyjemnie schłodzony powrót trafia na środek salonu, nie przegrzewając domowników.
                </p>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = document.querySelectorAll('.rk-mnd-btn');
    var visBox = document.getElementById('mndVisBox');
    var contentBox = document.getElementById('mndContent');
    var mndSvg = document.getElementById('mndSvg');
    var mndTitle = document.getElementById('mndTitle');
    var mndText = document.getElementById('mndText');

    // Baza danych ze zoptymalizowanymi ścieżkami (Brak krzyżowania się rur)
    var typeData = {
        "single": {
            title: "Meander Pojedynczy: Precyzyjny strumień kierunkowy",
            html: '<p>W meandrze pojedynczym rura zasilająca układana jest od jednej ściany, zygzakiem (wężykiem) pokonując całe pomieszczenie, aż do punktu powrotu. Taka trasa skutkuje twardym zjawiskiem fizycznym zwanym <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">spadkiem temperatury czynnika (ΔT)</a>. Woda na początku pętli ma najwyższy parametr energetyczny, a systematycznie pokrywając metry kwadratowe jastrychu, mocno się wychładza.</p><p><strong>Kiedy stosować?</strong> Ten klasyczny układ celowo wykorzystuje się tam, gdzie inżynier projektuje zróżnicowany profil temperatury podłogi. Sprawdza się znakomicie jako tarcza termiczna pod olbrzymimi oknami tarasowymi. W ten sposób <span class="rk-tech-hl">najgorętsza woda uderza w strefy największych strat ciepła</span>, a przyjemnie schłodzony powrót trafia na środek salonu, nie przegrzewając domowników.</p>',
            svg: '<defs><linearGradient id="gradSingle" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" stop-color="#dc2626" /><stop offset="50%" stop-color="#f59e0b" /><stop offset="100%" stop-color="#2563eb" /></linearGradient></defs><path d="M20 25 L280 25 L280 50 L20 50 L20 75 L280 75 L280 100 L20 100 L20 125 L280 125 L280 150 L20 150" stroke="url(#gradSingle)" class="path-flow"/>'
        },
        "double": {
            title: "Meander Podwójny: Mistrzowski bilans (bez kolizji)",
            html: '<p>Meander podwójny to techniczna odpowiedź na wady pojedynczego wężyka, stosowana gdy zależy nam na równomiernej podłodze bez stref chłodu. W tym wariancie rura zasilająca (najgorętsza) prowadzona jest <span class="rk-tech-hl">idealnie równolegle obok rury powrotnej</span> (najchłodniejszej). Oznacza to, że każdy metr podłogi grzeje identyczną średnią mocą.</p><p>Co najważniejsze – rury się nie krzyżują. Na nawrotach przy ścianach, rura idąca po zewnętrznym łuku naturalnie "zawija się" i wchodzi na tor wewnętrzny, omijając bezkolizyjnie sąsiedni przewód. <a href="https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/">Decyzja o wdrożeniu tego rozwiązania</a> ratuje długie korytarze i skomplikowane salony, w których ułożenie standardowego "ślimaka" jest architektonicznie niemożliwe, a inwestor kategorycznie żąda zbalansowanej, ciepłej podłogi.</p>',
            svg: '<defs><linearGradient id="gradDoubleZas" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#dc2626" /><stop offset="100%" stop-color="#f59e0b" /></linearGradient><linearGradient id="gradDoublePow" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#2563eb" /><stop offset="100%" stop-color="#f59e0b" /></linearGradient></defs><path d="M20 25 L280 25 L280 100 L40 100 L40 125 L280 125 L280 137.5" stroke="url(#gradDoubleZas)" class="path-flow"/><path d="M280 137.5 L280 150 L20 150 L20 75 L260 75 L260 50 L20 50" stroke="url(#gradDoublePow)" class="path-flow" style="animation-direction: reverse;"/>'
        }
    };

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

            var type = this.getAttribute('data-type');
            var data = typeData[type];

            // Bezpieczne ładowanie danych
            if (data !== undefined) {
                // Restart animacji CSS
                visBox.classList.remove('fade-in');
                contentBox.classList.remove('fade-in');
                void visBox.offsetWidth; // Wymuszenie reflow w przeglądarce
                void contentBox.offsetWidth;
                visBox.classList.add('fade-in');
                contentBox.classList.add('fade-in');

                // Aktualizacja drzewa DOM
                mndSvg.innerHTML = data.svg;
                mndTitle.innerHTML = data.title;
                mndText.innerHTML = data.html;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-wood-dark: #271c19;
    --rk-wood-amber: #d97706;
    --rk-wood-amber-light: #fef3c7;
    --rk-wood-brown: #78350f;
    --rk-wood-gray: #64748b;
    --rk-wood-bg: #ffffff;
    --rk-wood-border: #e2e8f0;
    --rk-wood-red: #dc2626;
    --rk-wood-green: #059669;
}

.rk-wood-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-wood-bg);
    border-radius: 20px;
    box-shadow: 0 15px 35px -10px rgba(120, 53, 15, 0.15);
    border: 1px solid #fcd34d;
    overflow: hidden;
}

/* Nagłówek */
.rk-wood-header {
    background: linear-gradient(135deg, var(--rk-wood-dark) 0%, var(--rk-wood-brown) 100%);
    padding: 40px;
    text-align: center;
    color: white;
    border-bottom: 4px solid var(--rk-wood-amber);
}

.rk-wood-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.4;
    color: white;
}

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

/* Interfejs Symulatora */
.rk-wood-interactive {
    padding: 40px;
    background: #f8fafc;
}

.rk-wood-tabs {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    justify-content: center;
}

.rk-wood-tab-btn {
    background: white;
    border: 2px solid var(--rk-wood-border);
    padding: 18px 25px;
    border-radius: 14px;
    cursor: pointer;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-wood-gray);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    max-width: 350px;
    justify-content: center;
}

.rk-wood-tab-btn:hover {
    border-color: #fcd34d;
    background: var(--rk-wood-amber-light);
}

.rk-wood-tab-btn.active {
    border-color: var(--rk-wood-amber);
    background: var(--rk-wood-amber);
    color: white;
    box-shadow: 0 8px 20px -5px rgba(217, 119, 6, 0.4);
}

.rk-wood-tab-btn svg {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
}

/* Wynik Symulacji Obciążenia */
.rk-wood-result-box {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-wood-border);
    padding: 30px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
}

.rk-wood-svg-panel {
    background: #f1f5f9;
    border-radius: 12px;
    height: 160px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 25px;
    border: 1px dashed #cbd5e1;
    overflow: hidden;
    position: relative;
}

.rk-weight-status {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 20px;
    border-radius: 10px;
    margin-bottom: 25px;
    font-weight: 800;
    font-size: 18px;
    transition: all 0.3s;
}

.status-danger {
    background: #fef2f2;
    color: var(--rk-wood-red);
    border: 1px solid #fca5a5;
}

.status-safe {
    background: #ecfdf5;
    color: var(--rk-wood-green);
    border: 1px solid #6ee7b7;
}

/* Blok tekstowy */
.rk-wood-text-content {
    text-align: left;
}

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

.rk-wood-text-content p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 15px 0;
}

.rk-wood-text-content p:last-child {
    margin-bottom: 0;
}

.rk-wood-text-content a {
    color: var(--rk-wood-amber);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: all 0.2s;
}

.rk-wood-text-content a:hover {
    color: var(--rk-wood-brown);
    background: var(--rk-wood-amber-light);
}

/* Animacje zawartości */
.fade-in-content {
    animation: fadeInContent 0.4s ease-out forwards;
}

@keyframes fadeInContent {
    0% { opacity: 0; transform: translateY(10px); }
    100% { opacity: 1; transform: translateY(0); }
}

/* Animacje SVG */
.anim-beam-bend {
    animation: bendBeam 2s infinite alternate ease-in-out;
    transform-origin: center;
}

@keyframes bendBeam {
    0% { transform: translateY(0) scaleY(1); }
    100% { transform: translateY(5px) scaleY(0.9); fill: #b91c1c; }
}

/* Responsywność - Mobile (pionowy układ, brak poziomego scrolla) */
@media (max-width: 768px) {
    .rk-wood-header, .rk-wood-interactive { padding: 25px 20px; }
    .rk-wood-tabs { flex-direction: column; gap: 10px; }
    .rk-wood-tab-btn { width: 100%; max-width: 100%; justify-content: flex-start; padding: 18px 20px; }
    .rk-weight-status { flex-direction: column; gap: 10px; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-strop-drewniany",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Układ meandrowy na stropach drewnianych: Idealne rozwiązanie dla domów szkieletowych",
    "description": "Techniczne uwarunkowania montażu ogrzewania podłogowego w układzie meandrowym na stropach drewnianych z wykorzystaniem systemów suchych bez ciężkiej wylewki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-obciazenie-stropu",
    "name": "Porównanie obciążenia stropów drewnianych: System mokry vs suchy",
    "description": "Zestawienie obciążeń statycznych generowanych przez wylewki betonowe oraz systemy suche ogrzewania podłogowego z lamelami aluminiowymi na 1 m2 stropu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ogrzewanie podłogowe na drewnianym stropie",
      "lekka podłogówka system suchy",
      "podłogówka w domu szkieletowym",
      "waga ogrzewania podłogowego m2",
      "brak wylewki betonowej na stropie",
      "układ meandrowy w systemie suchym"
    ],
    "measurementTechnique": "Szacunkowe obliczenia wagi m2 jastrychu cementowego (grubość ok 6 cm) w porównaniu do płyt systemowych XPS z radiatorem aluminiowym.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System Tradycyjny (Mokry): Waga od 120 do 150 kg/m2, wysokie ryzyko dla konstrukcji drewnianych.",
        "System Lekki (Suchy meander): Waga poniżej 15-20 kg/m2, w pełni bezpieczny dla stropów w domach szkieletowych i drewnianych z bali."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-strop",
    "name": "Symulator Obciążenia Stropu Drewnianego",
    "description": "Aplikacja webowa pomagająca inwestorom zrozumieć zagrożenia konstrukcyjne wynikające z błędnego doboru technologii ogrzewania podłogowego na stropach o lekkiej konstrukcji.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-wood-container" id="wood-ceiling-sim">
    <div class="rk-wood-header">
        <h2>Układ meandrowy na stropach drewnianych: Bezpieczne rozwiązanie bez wylewki</h2>
        <p>Wielu inwestorów remontujących stare domy lub budujących w technologii szkieletowej porzuca marzenia o podłogówce w obawie przed zarwaniem stropu. Tymczasem układ meandrowy to klucz do zastosowania ultra-lekkich systemów suchych.</p>
    </div>

    <div class="rk-wood-interactive">
        
        <div class="rk-wood-tabs" id="woodTabs">
            <button class="rk-wood-tab-btn" data-system="wet">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                System Mokry (Wylewka)
            </button>
            <button class="rk-wood-tab-btn active" data-system="dry">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                System Suchy (Lekki)
            </button>
        </div>

        <div class="rk-wood-result-box fade-in-content" id="woodContent">
            
            <div class="rk-weight-status status-safe" id="woodStatus">
                <span>Obciążenie: <strong>~ 15 kg/m²</strong></span>
                <span>Stan: <strong>W pełni bezpieczne dla drewna</strong></span>
            </div>

            <div class="rk-wood-svg-panel" id="woodSvgBox">
                <svg width="250" height="120" viewBox="0 0 250 120" fill="none" stroke="currentColor">
                    <rect x="20" y="80" width="210" height="20" fill="#d97706" stroke="#92400e" stroke-width="2"/>
                    <rect x="20" y="60" width="210" height="15" fill="#e2e8f0" stroke="#94a3b8" stroke-width="1"/>
                    <path d="M30 65 L220 65" stroke="#fcd34d" stroke-width="4"/>
                    <circle cx="60" cy="65" r="4" fill="#dc2626" stroke="none"/>
                    <circle cx="120" cy="65" r="4" fill="#dc2626" stroke="none"/>
                    <circle cx="180" cy="65" r="4" fill="#dc2626" stroke="none"/>
                    <text x="125" y="45" font-size="12" fill="#64748b" stroke="none" text-anchor="middle">Lekkie płyty z lamelami aluminiowymi</text>
                </svg>
            </div>

            <div class="rk-wood-text-content" id="woodTextBox">
                <h3>Idealna synergia meandru z lekką konstrukcją</h3>
                <p>
                    Zastosowanie tradycyjnej wylewki betonowej to dodatkowe obciążenie rzędu 120-150 kg na każdy metr kwadratowy podłogi. W przypadku starych budynków z bali lub nowoczesnych legarów to wyrok dla statyki. Dlatego <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/">ogrzewanie podłogowe na drewnianym stropie</a> wymaga całkowitego wyeliminowania masywnego betonu.
                </p>
                <p>
                    Tutaj z pomocą przychodzi <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">system lekki suchy</a>. Opiera się on na gotowych płytach systemowych (najczęściej z twardego styropianu EPS/XPS lub włókna drzewnego), które posiadają fabrycznie wyfrezowane rowki. Co kluczowe – te rowki niemal zawsze wymuszają prowadzenie rur właśnie w formie klasycznego meandru.
                </p>
                <p>
                    W rynienki wciska się rurę grzewczą wraz z profilami aluminiowymi (tzw. lamelami), które pełnią rolę radiatorów błyskawicznie rozprowadzających ciepło po posadzce. Taka instalacja <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-wodne-bez-wylewki/">wodnej podłogówki bez wylewki</a> redukuje obciążenie do zaledwie 15-20 kg/m², co czyni z meandru rozwiązanie bezkonkurencyjne w <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/">domach szkieletowych</a> oraz przy renowacji zabytkowych kamienic z drewnianymi stropami.
                </p>
            </div>

        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var tabs = document.querySelectorAll('.rk-wood-tab-btn');
    var contentBox = document.getElementById('woodContent');
    var statusBox = document.getElementById('woodStatus');
    var svgBox = document.getElementById('woodSvgBox');
    var textBox = document.getElementById('woodTextBox');

    var simData = {
        "wet": {
            statusClass: "status-danger",
            statusHtml: '<span>Obciążenie: <strong>120 - 150 kg/m²</strong></span><span>Stan: <strong>Krytyczne ryzyko dla stropu!</strong></span>',
            svg: '<svg width="250" height="120" viewBox="0 0 250 120" fill="none" stroke="currentColor"><rect x="20" y="80" width="210" height="20" fill="#d97706" stroke="#92400e" stroke-width="2" class="anim-beam-bend"/><rect x="20" y="20" width="210" height="60" fill="#cbd5e1" stroke="#64748b" stroke-width="1"/><circle cx="60" cy="65" r="4" fill="#dc2626" stroke="none"/><circle cx="120" cy="65" r="4" fill="#dc2626" stroke="none"/><circle cx="180" cy="65" r="4" fill="#dc2626" stroke="none"/><text x="125" y="45" font-size="12" fill="#1e293b" stroke="none" text-anchor="middle" font-weight="bold">Ciężka wylewka betonowa (6 cm)</text></svg>',
            title: "Masa niszcząca konstrukcje z drewna",
            html: '<p>Wylanie standardowego, mokrego jastrychu na elastyczny strop z legarów drewnianych to kardynalny błąd budowlany. Po pierwsze, wprowadzamy do budynku drewnianego setki litrów wilgoci technologicznej. Po drugie, potężna masa (dochodząca do 150 kg/m²) powoduje ugięcie belek nośnych.</p><p>Ugięcie drewna pod wpływem ciężaru wylewki prowadzi do błyskawicznego spękania samego betonu oraz uszkodzenia rur grzewczych ukrytych w jego wnętrzu. Nawet jeśli strop wytrzyma statycznie, drgania akustyczne będą przenosić się po całym budynku, a popękane płytki ceramiczne przypomną o błędnej decyzji inwestycyjnej.</p>'
        },
        "dry": {
            statusClass: "status-safe",
            statusHtml: '<span>Obciążenie: <strong>~ 15 kg/m²</strong></span><span>Stan: <strong>W pełni bezpieczne dla drewna</strong></span>',
            svg: '<svg width="250" height="120" viewBox="0 0 250 120" fill="none" stroke="currentColor"><rect x="20" y="80" width="210" height="20" fill="#d97706" stroke="#92400e" stroke-width="2"/><rect x="20" y="60" width="210" height="15" fill="#e2e8f0" stroke="#94a3b8" stroke-width="1"/><path d="M30 65 L220 65" stroke="#fcd34d" stroke-width="4"/><circle cx="60" cy="65" r="4" fill="#dc2626" stroke="none"/><circle cx="120" cy="65" r="4" fill="#dc2626" stroke="none"/><circle cx="180" cy="65" r="4" fill="#dc2626" stroke="none"/><text x="125" y="45" font-size="12" fill="#64748b" stroke="none" text-anchor="middle">Lekkie płyty z lamelami aluminiowymi</text></svg>',
            title: "Idealna synergia meandru z lekką konstrukcją",
            html: '<p>Zastosowanie tradycyjnej wylewki betonowej to dodatkowe obciążenie rzędu 120-150 kg na każdy metr kwadratowy podłogi. W przypadku starych budynków z bali lub nowoczesnych legarów to wyrok dla statyki. Dlatego <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/">ogrzewanie podłogowe na drewnianym stropie</a> wymaga całkowitego wyeliminowania masywnego betonu.</p><p>Tutaj z pomocą przychodzi <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">system lekki suchy</a>. Opiera się on na gotowych płytach systemowych (najczęściej z twardego styropianu EPS/XPS lub włókna drzewnego), które posiadają fabrycznie wyfrezowane rowki. Co kluczowe – te rowki niemal zawsze wymuszają prowadzenie rur właśnie w formie klasycznego meandru.</p><p>W rynienki wciska się rurę grzewczą wraz z profilami aluminiowymi (tzw. lamelami), które pełnią rolę radiatorów błyskawicznie rozprowadzających ciepło po posadzce. Taka instalacja <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-wodne-bez-wylewki/">wodnej podłogówki bez wylewki</a> redukuje obciążenie do zaledwie 15-20 kg/m², co czyni z meandru rozwiązanie bezkonkurencyjne w <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/">domach szkieletowych</a> oraz przy renowacji zabytkowych kamienic z drewnianymi stropami.</p>'
        }
    };

    tabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            // Zmiana klas w zakładkach
            tabs.forEach(function(t) { t.classList.remove('active'); });
            this.classList.add('active');

            var target = this.getAttribute('data-system');
            var data = simData[target];

            // Bezpieczna podmiana danych bez operacji logicznych na zmiennych
            if (data !== undefined) {
                // Restart animacji CSS
                contentBox.classList.remove('fade-in-content');
                void contentBox.offsetWidth; // Zabezpieczenie reflow
                contentBox.classList.add('fade-in-content');

                // Aktualizacja Statusu
                statusBox.className = "rk-weight-status " + data.statusClass;
                statusBox.innerHTML = data.statusHtml;

                // Aktualizacja SVG i Tekstu
                svgBox.innerHTML = data.svg;
                textBox.innerHTML = '<h3>' + data.title + '</h3>' + data.html;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-retro-dark: #1e293b;
    --rk-retro-orange: #ea580c;
    --rk-retro-orange-light: #ffedd5;
    --rk-retro-blue: #0284c7;
    --rk-retro-gray: #64748b;
    --rk-retro-bg: #ffffff;
    --rk-retro-border: #e2e8f0;
}

.rk-retro-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-retro-bg);
    border-radius: 20px;
    box-shadow: 0 15px 35px -10px rgba(234, 88, 12, 0.15);
    border: 1px solid #fdba74;
    overflow: hidden;
}

/* Nagłówek */
.rk-retro-header {
    background: linear-gradient(135deg, #7c2d12 0%, #9a3412 100%);
    padding: 35px 40px;
    color: white;
    text-align: center;
}

.rk-retro-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.4;
    color: white;
}

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

/* Interfejs */
.rk-retro-body {
    padding: 35px 40px;
    background: #f8fafc;
}

/* Przełącznik typów budynków */
.rk-retro-tabs {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    justify-content: center;
    flex-wrap: wrap;
}

.rk-retro-tab-btn {
    background: white;
    border: 2px solid var(--rk-retro-border);
    padding: 18px 24px;
    border-radius: 14px;
    cursor: pointer;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-retro-gray);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 250px;
    justify-content: center;
}

.rk-retro-tab-btn:hover {
    border-color: #fdba74;
    background: var(--rk-retro-orange-light);
}

.rk-retro-tab-btn.active {
    border-color: var(--rk-retro-orange);
    background: var(--rk-retro-orange);
    color: white;
    box-shadow: 0 8px 20px -5px rgba(234, 88, 12, 0.4);
}

.rk-retro-tab-btn svg {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
}

/* Główny kontener treści (Pionowy, tekstowy) */
.rk-retro-content-box {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-retro-border);
    padding: 40px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
    text-align: left;
}

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

.rk-retro-content-box h3::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 24px;
    background: var(--rk-retro-orange);
    border-radius: 4px;
}

.rk-retro-content-box p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 15px 0;
}

.rk-retro-content-box p:last-child {
    margin-bottom: 0;
}

.rk-retro-content-box a {
    color: var(--rk-retro-orange);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(234, 88, 12, 0.2);
    transition: all 0.2s;
}

.rk-retro-content-box a:hover {
    border-bottom-color: var(--rk-retro-orange);
    background: var(--rk-retro-orange-light);
}

.rk-keyword-highlight {
    font-weight: 700;
    color: var(--rk-retro-dark);
    background: var(--rk-retro-orange-light);
    padding: 2px 6px;
    border-radius: 4px;
}

/* Animacje zawartości */
.fade-in-up {
    animation: fadeInUp 0.4s ease-out forwards;
}

@keyframes fadeInUp {
    0% { opacity: 0; transform: translateY(10px); }
    100% { opacity: 1; transform: translateY(0); }
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-retro-header, .rk-retro-body { padding: 25px 20px; }
    .rk-retro-tabs { flex-direction: column; gap: 10px; }
    .rk-retro-tab-btn { width: 100%; justify-content: flex-start; padding: 16px 20px; }
    .rk-retro-content-box { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-stare-budownictwo",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Układ meandrowy w starym budownictwie: Ratunek dla domów ze słabą izolacją",
    "description": "Dlaczego ogrzewanie podłogowe w domach z lat 60. i 70. bez izolacji ścian wymaga zastosowania układu meandrowego do kompensacji strat ciepła rzędu 130 W/m2.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-stare-budownictwo",
    "name": "Wpływ braku izolacji na dynamikę ogrzewania płaszczyznowego",
    "description": "Dane obrazujące zapotrzebowanie na moc grzewczą w strefach brzegowych nieocieplonych budynków z lat 1960-1980.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ogrzewanie podłogowe w starym domu",
      "brak ocieplenia a straty ciepła W/m2",
      "straty ciepła stare budownictwo",
      "współczynnik przenikania ciepła starych ścian",
      "kompensacja strat ciepła ściana zewnętrzna",
      "domy z lat 70 podłogówka"
    ],
    "measurementTechnique": "Analiza szacunkowych wartości współczynnika przenikania ciepła U dla starych murów oraz przelicznik jednostkowego zapotrzebowania na moc grzewczą w W/m2.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stare budownictwo bez izolacji: Wymaga mocy grzewczej rzędu 130-150 W/m2.",
        "Domy modernizowane (izolacja 10-15 cm): Zapotrzebowanie spada do poziomu 70-80 W/m2.",
        "Rozwiązanie meandrowe: Najgorętszy czynnik zasilania kompensuje chłód przenikający przez stare mury z pustaka żużlowego."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-stare-budownictwo",
    "name": "Symulator Termiki Budynków Retro",
    "description": "Aplikacja edukacyjna objaśniająca wpływ termoizolacji na dobór i konfigurację pętli ogrzewania podłogowego w budownictwie wznoszonym w latach 1960-1980.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-retro-container" id="retro-heating-sim">
    <div class="rk-retro-header">
        <h2>Układ meandrowy w starym budownictwie: Ratunek dla domów ze słabą izolacją</h2>
        <p>Wielu uważa, że podłogówka w nieocieplonych domach z PRL-u nie ma racji bytu. Tymczasem to właśnie celowy spadek temperatury w meandrze pozwala zbudować zaporę dla chłodu ciągnącego od starych murów.</p>
    </div>

    <div class="rk-retro-body">
        
        <div class="rk-retro-tabs" id="retroTabs">
            <button class="rk-retro-tab-btn active" data-build="old">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 21h18"></path><path d="M4 21v-4"></path><path d="M20 21v-4"></path><path d="M8 8v9"></path><path d="M16 8v9"></path><path d="M12 4v13"></path><path d="M2 10l10-8 10 8"></path></svg>
                Stary dom (lata 60. i 70.)
            </button>
            <button class="rk-retro-tab-btn" data-build="new">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="2" width="16" height="20" rx="2" ry="2"></rect><line x1="12" y1="18" x2="12.01" y2="18"></line><line x1="8" y1="12" x2="16" y2="12"></line><line x1="8" y1="8" x2="16" y2="8"></line></svg>
                Dom docieplony / Nowy
            </button>
        </div>

        <div class="rk-retro-content-box fade-in-up" id="retroContent">
            
            <h3 id="retroTitle">Termiczna kurtyna dla nieocieplonych murów</h3>
            <div id="retroText">
                <p>Instalacja ogrzewania podłogowego w budynkach wznoszonych między rokiem 1960 a 1980 stanowi gigantyczne wyzwanie termiczne. Ze względu na <span class="rk-keyword-highlight">brak ocieplenia ścian zewnętrznych</span> budowanych często z pustaka żużlowego lub pełnej cegły, stary mur działa jak potężny radiator. <span class="rk-keyword-highlight">Współczynnik przenikania ciepła (U)</span> takich przegród może przekraczać 1,2 W/(m²·K), co oznacza gigantyczne wysysanie energii z wnętrza i zapotrzebowanie rzędu 130 &#8211; 150 W/m² powierzchni.</p>
                <p>To właśnie tutaj układ meandrowy staje się najlepszym ratunkiem. <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/">Planując ogrzewanie w starym domu</a>, projektant wykorzystuje rury ułożone w meander jako tarcze dla <span class="rk-keyword-highlight">kompensacji strat ciepła przy ścianie zewnętrznej</span>. Zasilanie (najgorętszą wodę, np. 45°C) kieruje się w zagęszczonym rozstawie co 10 cm bezpośrednio pod przemarzające przegrody. Czynnik oddaje tam najwięcej energii, blokując &#8222;ciągnięcie chłodu&#8221;, a w miarę przepływu w stronę środka pokoju bezpiecznie traci temperaturę.</p>
                <p>Zanim zdecydujesz się na <a href="https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/">frezowanie ogrzewania podłogowego w starym budynku</a>, powinieneś bezwzględnie przeliczyć rzeczywiste ubytki energetyczne, wykorzystując <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">kalkulator strat ciepła</a>. Pokaże on, z jakim wyzwaniem będzie musiała się zmierzyć posadzka.</p>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    var tabs = document.querySelectorAll('.rk-retro-tab-btn');
    var contentBox = document.getElementById('retroContent');
    var retroTitle = document.getElementById('retroTitle');
    var retroText = document.getElementById('retroText');

    var buildData = {
        "old": {
            title: "Termiczna kurtyna dla nieocieplonych murów",
            html: '<p>Instalacja ogrzewania podłogowego w budynkach wznoszonych między rokiem 1960 a 1980 stanowi gigantyczne wyzwanie termiczne. Ze względu na <span class="rk-keyword-highlight">brak ocieplenia ścian zewnętrznych</span> budowanych często z pustaka żużlowego lub pełnej cegły, stary mur działa jak potężny radiator. <span class="rk-keyword-highlight">Współczynnik przenikania ciepła (U)</span> takich przegród może przekraczać 1,2 W/(m²·K), co oznacza gigantyczne wysysanie energii z wnętrza i zapotrzebowanie rzędu 130 - 150 W/m² powierzchni.</p><p>To właśnie tutaj układ meandrowy staje się najlepszym ratunkiem. <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/">Planując ogrzewanie w starym domu</a>, projektant wykorzystuje rury ułożone w meander jako tarcze dla <span class="rk-keyword-highlight">kompensacji strat ciepła przy ścianie zewnętrznej</span>. Zasilanie (najgorętszą wodę, np. 45°C) kieruje się w zagęszczonym rozstawie co 10 cm bezpośrednio pod przemarzające przegrody. Czynnik oddaje tam najwięcej energii, blokując "ciągnięcie chłodu", a w miarę przepływu w stronę środka pokoju bezpiecznie traci temperaturę.</p><p>Zanim zdecydujesz się na <a href="https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/">frezowanie ogrzewania podłogowego w starym budynku</a>, powinieneś bezwzględnie przeliczyć rzeczywiste ubytki energetyczne, wykorzystując <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">kalkulator strat ciepła</a>. Pokaże on, z jakim wyzwaniem będzie musiała się zmierzyć posadzka.</p>'
        },
        "new": {
            title: "Termomodernizacja a rozstaw meandru",
            html: '<p>Sytuacja zmienia się drastycznie po dodaniu na elewację 15 cm lub 20 cm styropianu. W <span class="rk-keyword-highlight">domu zmodernizowanym</span>, przenikalność cieplna murów radykalnie spada, a całkowite <span class="rk-keyword-highlight">straty ciepła starego budownictwa</span> po ociepleniu potrafią obniżyć się do bezpiecznego pułapu około 70 - 80 W/m².</p><p>W budynku po termomodernizacji, ściany zewnętrzne stają się swoistym termosem dla domowników. Oznacza to, że zjawisko "ciągnięcia chłodu" niemal znika, co pozwala na rozluźnienie układu pętli. Nie musimy już gęsto pompować czynnika o temperaturze 45°C pod przegrody z lat 70., lecz możemy zastosować szerszy, 15-centymetrowy rozstaw, obniżając <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">opory cieplne i hydrauliczne</a>. Taka stabilna konfiguracja w ocieplonym domu jest idealnym punktem wyjścia do późniejszego montażu efektywnej pompy ciepła.</p>'
        }
    };

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

            var target = this.getAttribute('data-build');
            var data = buildData[target];

            // Bezpieczne wstrzyknięcie danych
            if (data !== undefined) {
                // Restart animacji CSS
                contentBox.classList.remove('fade-in-up');
                void contentBox.offsetWidth; // Force reflow (bezpieczny hack)
                contentBox.classList.add('fade-in-up');

                // Aktualizacja DOM - Tylko mocny, bogaty tekst
                retroTitle.textContent = data.title;
                retroText.innerHTML = data.html;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-edge-dark: #0f172a;
    --rk-edge-blue: #0284c7;
    --rk-edge-cold: #38bdf8;
    --rk-edge-warm: #ef4444;
    --rk-edge-warm-light: #fef2f2;
    --rk-edge-gray: #64748b;
    --rk-edge-bg: #ffffff;
    --rk-edge-border: #e2e8f0;
}

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

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

.rk-edge-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.4;
    color: white;
}

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

/* Interfejs */
.rk-edge-body {
    padding: 35px 40px;
    background: #f8fafc;
}

/* Kontrolki (Toggles) */
.rk-edge-toggles {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    justify-content: center;
    flex-wrap: wrap;
}

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

.rk-edge-btn:hover {
    border-color: #bae6fd;
    background: #f0f9ff;
}

.rk-edge-btn.active[data-state="bad"] {
    border-color: var(--rk-edge-cold);
    background: #f0f9ff;
    color: var(--rk-edge-dark);
    box-shadow: 0 8px 20px -5px rgba(56, 189, 248, 0.4);
}

.rk-edge-btn.active[data-state="good"] {
    border-color: var(--rk-edge-warm);
    background: var(--rk-edge-warm-light);
    color: var(--rk-edge-dark);
    box-shadow: 0 8px 20px -5px rgba(239, 68, 68, 0.4);
}

.rk-edge-btn svg {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
}

/* Moduł Wyświetlania (Pionowy) */
.rk-edge-content-box {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-edge-border);
    padding: 35px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
}

.rk-edge-svg-panel {
    background: #f1f5f9;
    border-radius: 12px;
    height: 220px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 25px;
    border: 1px dashed #cbd5e1;
    overflow: hidden;
    position: relative;
}

/* Pasek Statusu / Wyniku */
.rk-edge-status-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 20px;
    border-radius: 10px;
    margin-bottom: 25px;
    font-weight: 800;
    font-size: 16px;
    transition: all 0.3s;
}

.status-cold {
    background: #e0f2fe;
    color: #0369a1;
    border: 1px solid #bae6fd;
}

.status-hot {
    background: #fef2f2;
    color: #b91c1c;
    border: 1px solid #fca5a5;
}

/* Tekst merytoryczny */
.rk-edge-text-area h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-edge-dark);
    margin: 0 0 15px 0;
}

.rk-edge-text-area p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 15px 0;
}

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

.rk-edge-text-area a:hover {
    color: var(--rk-edge-dark);
    background: #e0f2fe;
}

.rk-tech-val {
    font-weight: 800;
    color: var(--rk-edge-dark);
    background: #f1f5f9;
    padding: 2px 6px;
    border-radius: 4px;
    white-space: nowrap;
}

/* Sekcja Błędów */
.rk-edge-warnings {
    margin-top: 25px;
    border-top: 1px solid var(--rk-edge-border);
    padding-top: 20px;
}

.rk-edge-warnings h4 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-edge-warm);
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-warning-item {
    background: #fff5f5;
    border-left: 4px solid var(--rk-edge-warm);
    padding: 12px 15px;
    margin-bottom: 10px;
    border-radius: 0 8px 8px 0;
    font-size: 14px;
    line-height: 1.6;
    color: #475569;
}

.rk-warning-item strong {
    color: var(--rk-edge-dark);
}

/* Animacje zawartości */
.fade-in {
    animation: fadeIn 0.4s ease-out forwards;
}

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

/* Animacje SVG */
.anim-cold-drop {
    animation: dropCold 2s infinite ease-in;
}

@keyframes dropCold {
    0% { transform: translateY(-20px); opacity: 0; }
    20% { opacity: 0.8; }
    80% { opacity: 0.8; }
    100% { transform: translateY(60px); opacity: 0; }
}

.anim-heat-rise {
    animation: riseHeat 2s infinite ease-out;
}

@keyframes riseHeat {
    0% { transform: translateY(20px); opacity: 0; }
    20% { opacity: 0.9; }
    80% { opacity: 0.9; }
    100% { transform: translateY(-50px); opacity: 0; }
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-edge-header, .rk-edge-body { padding: 25px 20px; }
    .rk-edge-toggles { flex-direction: column; gap: 10px; }
    .rk-edge-btn { width: 100%; justify-content: flex-start; padding: 16px 20px; }
    .rk-edge-content-box { padding: 25px 20px; }
    .rk-edge-status-bar { flex-direction: column; gap: 10px; text-align: center; }
    .rk-edge-svg-panel { height: 180px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-strefa-brzegowa",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Jaki rozstaw rur wybrać w strefie brzegowej instalacji meandrowej przy oknach?",
    "description": "Techniczne zasady projektowania stref brzegowych przy dużych przeszkleniach. Analiza kurtyny termicznej, kondensacji pary wodnej i norm PN-EN 1264.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-strefa-brzegowa",
    "name": "Parametry strefy brzegowej w ogrzewaniu podłogowym",
    "description": "Zestawienie wytycznych i limitów temperaturowych dla stref brzegowych przy przeszkleniach tarasowych zgodnie z normą PN-EN 1264.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "strefa brzegowa w ogrzewaniu podłogowym",
      "rozstaw rur przy oknach tarasowych",
      "kondensacja pary na oknach podłogówka",
      "moc grzewcza z m2 strefy brzegowej",
      "temperatura posadzki norma PN-EN 1264",
      "izolacja brzegowa i dylatacje"
    ],
    "measurementTechnique": "Obliczenia szacunkowe mocy cieplnej i temperatury posadzki w oparciu o wytyczne normy europejskiej PN-EN 1264 dla wodnych systemów płaszczyznowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Szerokość strefy: Od 0,5 m do 1,0 m od przegrody zewnętrznej (od okna).",
        "Zalecany rozstaw rur: 10 cm (dopuszczalne 7,5 cm - 5 cm w trudnych warunkach).",
        "Limit temperatury posadzki: Dopuszczalne 35 st C w strefie brzegowej.",
        "Generowana moc: Skompensowanie strat rzędu 100 - 150 W/m2."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-strefa-brzegowa",
    "name": "Symulator Strefy Brzegowej Ogrzewania Podłogowego",
    "description": "Narzędzie webowe obrazujące fizyczne zjawisko przenikania chłodu od okien oraz powstawanie termicznej kurtyny obronnej przy gęstym układzie meandrowym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-edge-container" id="edge-zone-sim">
    <div class="rk-edge-header">
        <h2>Jaki rozstaw rur wybrać w strefie brzegowej przy oknach?</h2>
        <p>Brak strefy brzegowej przy oknach tarasowych to najprostsza droga do zaparowanych szyb, wilgoci i lodowatych stóp w salonie. Sprawdź, jak meander zatrzymuje chłód.</p>
    </div>

    <div class="rk-edge-body">
        
        <div class="rk-edge-toggles" id="edgeTabs">
            <button class="rk-edge-btn" data-state="bad">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                Błąd: Rozstaw 20 cm (Brak strefy)
            </button>
            <button class="rk-edge-btn active" data-state="good">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                Poprawnie: Rozstaw 10 cm (Meander)
            </button>
        </div>

        <div class="rk-edge-content-box fade-in" id="edgeContentBox">
            
            <div class="rk-edge-status-bar status-hot" id="edgeStatus">
                <span>Skuteczność blokowania chłodu: <strong>Wysoka</strong></span>
                <span>Moc strefy: <strong>~ 150 W/m²</strong></span>
            </div>

            <div class="rk-edge-svg-panel" id="edgeSvgBox">
                <svg width="250" height="200" viewBox="0 0 250 200" fill="none" stroke="currentColor">
                    <rect x="20" y="20" width="10" height="140" fill="#bae6fd" stroke="#0ea5e9" stroke-width="2"/>
                    <path d="M40 40 Q 60 90 40 140" stroke="#38bdf8" stroke-width="3" fill="none" stroke-dasharray="4 4"/>
                    <rect x="30" y="160" width="200" height="30" fill="#e2e8f0" stroke="#94a3b8" stroke-width="2"/>
                    <circle cx="50" cy="175" r="5" fill="#dc2626" stroke="none"/>
                    <circle cx="70" cy="175" r="5" fill="#dc2626" stroke="none"/>
                    <circle cx="90" cy="175" r="5" fill="#dc2626" stroke="none"/>
                    <circle cx="110" cy="175" r="5" fill="#dc2626" stroke="none"/>
                    <circle cx="130" cy="175" r="5" fill="#dc2626" stroke="none"/>
                    <path d="M50 150 L50 80" stroke="#ef4444" stroke-width="4" class="anim-heat-rise"/>
                    <path d="M80 150 L80 60" stroke="#ef4444" stroke-width="4" class="anim-heat-rise" style="animation-delay: 0.5s;"/>
                    <path d="M110 150 L110 90" stroke="#ef4444" stroke-width="4" class="anim-heat-rise" style="animation-delay: 1s;"/>
                    <text x="50" y="15" font-size="12" fill="#0ea5e9" stroke="none">Zimne Okno HS</text>
                    <text x="140" y="110" font-size="12" fill="#ef4444" stroke="none" font-weight="bold">Kurtyna Termiczna</text>
                </svg>
            </div>

            <div class="rk-edge-text-area" id="edgeTextBox">
                <h3>Potężna tarcza termiczna dla Twojego salonu</h3>
                <p>
                    Optymalny rozstaw rur w <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/">strefie brzegowej w ogrzewaniu podłogowym</a> przy oknach tarasowych i ścianach zewnętrznych wynosi <span class="rk-tech-val">10 cm</span> (z dopuszczalnym zagęszczeniem do 7,5 cm lub 5 cm w budynkach o słabej izolacji). Takie rozwiązanie pozwala na skompensowanie potężnych lokalnych strat ciepła dochodzących do <strong>100–150 W/m²</strong>, zgodnie z wytycznymi projektowymi normy <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">PN-EN 1264</a>. Zgodnie ze sztuką, zagęszczony pas brzegowy z meandru powinien obejmować szerokość od 0,5 m do 1,0 m od okna (zazwyczaj 4 do 6 nitek).
                </p>
                <p>
                    Okna, nawet te o rewelacyjnym współczynniku U<sub>w</sub> = 0,6–0,8 W/(m²K), generują kilkukrotnie większe straty ciepła niż izolowane ściany. Zmniejszenie rozstawu z 20 cm do 10 cm punktowo podnosi temperaturę podłogi o 3°C–4°C, tworząc <span class="rk-tech-val">skuteczną kurtynę termiczną</span>. Ponieważ norma pozwala w tej strefie na osiągnięcie posadzce aż 35°C (względem 29°C na środku pokoju), możemy wygenerować moc bez ryzyka przegrzania części bytowej salonu.
                </p>
            </div>

            <div class="rk-edge-warnings">
                <h4><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg> Konsekwencje błędów w strefie brzegowej:</h4>
                <div class="rk-warning-item">
                    <strong>Rozstaw rzadki (> 15 cm) przy oknach:</strong> Opadające zimne powietrze powoduje drastyczne wychłodzenie ramy. Dochodzi do osiągnięcia <a href="https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/">punktu rosy</a>, kondensacji pary wodnej na szybach i rozwoju pleśni przy podłodze.
                </div>
                <div class="rk-warning-item">
                    <strong>Zbyt długa pętla brzegowa wepchnięta do salonu:</strong> Wpuszczenie zasilania dedykowanego pod okno w głąb strefy bytowej skutkuje dyskomfortem &#8222;gorących stóp&#8221; i uszkodzeniem płytek przez rozszerzalność termiczną.
                </div>
                <div class="rk-warning-item">
                    <strong>Brak oddzielenia (dylatacji):</strong> Rezygnacja z <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">profilu dylatacyjnego</a> pomiędzy pasem zagęszczonym (gorącym) a strefą salonu (chłodniejszą) gwarantuje pęknięcie jastrychu na linii styku obu stref z powodu naprężeń ścinających.
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = document.querySelectorAll('.rk-edge-btn');
    var contentBox = document.getElementById('edgeContentBox');
    var statusBox = document.getElementById('edgeStatus');
    var svgBox = document.getElementById('edgeSvgBox');

    var simData = {
        "bad": {
            statusClass: "status-cold",
            statusHtml: '<span>Skuteczność blokowania chłodu: <strong>Brak (Roszenie)</strong></span><span>Moc strefy: <strong>~ 50 W/m²</strong></span>',
            svg: '<svg width="250" height="200" viewBox="0 0 250 200" fill="none" stroke="currentColor"><rect x="20" y="20" width="10" height="140" fill="#bae6fd" stroke="#0ea5e9" stroke-width="2"/><path d="M40 40 Q 80 90 60 160" stroke="#0ea5e9" stroke-width="4" fill="none" class="anim-cold-drop"/><path d="M30 30 Q 120 100 100 160" stroke="#38bdf8" stroke-width="3" fill="none" class="anim-cold-drop" style="animation-delay: 0.8s;"/><rect x="30" y="160" width="200" height="30" fill="#e2e8f0" stroke="#94a3b8" stroke-width="2"/><circle cx="50" cy="175" r="5" fill="#f59e0b" stroke="none"/><circle cx="110" cy="175" r="5" fill="#f59e0b" stroke="none"/><circle cx="170" cy="175" r="5" fill="#f59e0b" stroke="none"/><path d="M50 150 L50 130" stroke="#f59e0b" stroke-width="2" class="anim-heat-rise"/><path d="M110 150 L110 130" stroke="#f59e0b" stroke-width="2" class="anim-heat-rise" style="animation-delay: 1s;"/><text x="50" y="15" font-size="12" fill="#0ea5e9" stroke="none">Zimne Okno HS</text><text x="80" y="110" font-size="12" fill="#0ea5e9" stroke="none" font-weight="bold">Opada chłód (Brak kurtyny)</text></svg>'
        },
        "good": {
            statusClass: "status-hot",
            statusHtml: '<span>Skuteczność blokowania chłodu: <strong>Wysoka</strong></span><span>Moc strefy: <strong>~ 150 W/m²</strong></span>',
            svg: '<svg width="250" height="200" viewBox="0 0 250 200" fill="none" stroke="currentColor"><rect x="20" y="20" width="10" height="140" fill="#bae6fd" stroke="#0ea5e9" stroke-width="2"/><path d="M40 40 Q 60 90 40 140" stroke="#38bdf8" stroke-width="3" fill="none" stroke-dasharray="4 4"/><rect x="30" y="160" width="200" height="30" fill="#e2e8f0" stroke="#94a3b8" stroke-width="2"/><circle cx="50" cy="175" r="5" fill="#dc2626" stroke="none"/><circle cx="70" cy="175" r="5" fill="#dc2626" stroke="none"/><circle cx="90" cy="175" r="5" fill="#dc2626" stroke="none"/><circle cx="110" cy="175" r="5" fill="#dc2626" stroke="none"/><circle cx="130" cy="175" r="5" fill="#dc2626" stroke="none"/><path d="M50 150 L50 80" stroke="#ef4444" stroke-width="4" class="anim-heat-rise"/><path d="M80 150 L80 60" stroke="#ef4444" stroke-width="4" class="anim-heat-rise" style="animation-delay: 0.5s;"/><path d="M110 150 L110 90" stroke="#ef4444" stroke-width="4" class="anim-heat-rise" style="animation-delay: 1s;"/><text x="50" y="15" font-size="12" fill="#0ea5e9" stroke="none">Zimne Okno HS</text><text x="140" y="110" font-size="12" fill="#ef4444" stroke="none" font-weight="bold">Kurtyna Termiczna</text></svg>'
        }
    };

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

            var state = this.getAttribute('data-state');
            var data = simData[state];

            // Wstrzykiwanie danych z bezpiecznym zresetowaniem animacji
            if (data !== undefined) {
                contentBox.classList.remove('fade-in');
                void contentBox.offsetWidth; // Wymuszenie reflow
                contentBox.classList.add('fade-in');

                statusBox.className = "rk-edge-status-bar " + data.statusClass;
                statusBox.innerHTML = data.statusHtml;
                svgBox.innerHTML = data.svg;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-tbl-dark: #0f172a;
    --rk-tbl-blue: #0284c7;
    --rk-tbl-blue-light: #e0f2fe;
    --rk-tbl-blue-bg: #f0f9ff;
    --rk-tbl-gray: #64748b;
    --rk-tbl-bg: #ffffff;
    --rk-tbl-border: #e2e8f0;
}

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

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

.rk-tbl-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.4;
    color: white;
}

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

/* Interfejs wyboru */
.rk-tbl-body {
    padding: 30px 40px;
    background: #f8fafc;
}

.rk-tbl-tabs {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    justify-content: center;
    flex-wrap: wrap;
}

.rk-tbl-tab-btn {
    background: white;
    border: 2px solid var(--rk-tbl-border);
    padding: 18px 24px;
    border-radius: 14px;
    cursor: pointer;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-tbl-gray);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 220px;
    justify-content: center;
}

.rk-tbl-tab-btn:hover {
    border-color: #bae6fd;
    background: var(--rk-tbl-blue-light);
}

.rk-tbl-tab-btn.active {
    border-color: var(--rk-tbl-blue);
    background: var(--rk-tbl-blue);
    color: white;
    box-shadow: 0 8px 20px -5px rgba(2, 132, 199, 0.35);
}

.rk-tbl-tab-btn svg {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
    transition: transform 0.3s;
}

.rk-tbl-tab-btn.active svg {
    transform: scale(1.15);
}

/* Karta wyników */
.rk-tbl-content-box {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-tbl-border);
    padding: 30px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
}

.rk-tbl-content-box h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-tbl-dark);
    margin: 0 0 25px 0;
    text-align: center;
    padding-bottom: 20px;
    border-bottom: 1px dashed var(--rk-tbl-border);
}

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

.rk-param-item {
    background: var(--rk-tbl-blue-bg);
    border: 1px solid #bae6fd;
    border-radius: 12px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    transition: all 0.3s;
}

.rk-param-item:hover {
    background: #e0f2fe;
    transform: translateY(-2px);
}

.rk-param-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-tbl-blue);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-param-value {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-tbl-dark);
    line-height: 1.5;
}

.rk-highlight-text {
    color: #dc2626; /* Czerwony akcent dla ważnych liczb */
}

/* Animacje */
.fade-in {
    animation: fadeIn 0.4s ease-out forwards;
}

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

/* Responsywność */
@media (max-width: 768px) {
    .rk-tbl-header, .rk-tbl-body { padding: 25px 20px; }
    .rk-tbl-tabs { flex-direction: column; gap: 10px; }
    .rk-tbl-tab-btn { width: 100%; justify-content: flex-start; padding: 18px 20px; }
    .rk-tbl-content-box { padding: 20px 15px; }
    .rk-param-grid { grid-template-columns: 1fr; gap: 15px; } /* Pionowy stack dla mobile */
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-porownanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Porównanie parametrów technicznych: Układ meandrowy vs Ślimakowy vs Elektryczny",
    "description": "Zestawienie kluczowych parametrów eksploatacyjnych systemów płaszczyznowych. Analiza kosztów robocizny, oporów hydraulicznych i współpracy z pompami ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-porownanie",
    "name": "Zestawienie parametrów technicznych systemów ogrzewania podłogowego 2026",
    "description": "Tabela porównawcza parametrów technicznych dla ogrzewania wodnego i elektrycznego. Obejmuje zmienne termodynamiczne oraz średnie rynkowe koszty w PLN.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "porównanie podłogówki meander ślimak",
      "opory hydrauliczne pętli grzewczej",
      "koszty mat kapilarnych i elektrycznych m2",
      "rozkład temperatur jastrychu wodnego",
      "dobór ogrzewania do pompy ciepła COP"
    ],
    "measurementTechnique": "Zestawienie inżynierskie na bazie kart technologicznych rur PEX (promienie gięcia), normy PN-EN 1264 oraz średnich cen instalatorskich z rynku polskiego na rok 2026.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Układ Meandrowy: Koszt 18-28 PLN/m2, Liniowo opadający gradient temperatur (do 8K).",
        "Układ Ślimakowy: Koszt 22-32 PLN/m2, Jednorodny rozkład średni, Opór do 18 kPa.",
        "Maty Elektryczne: Koszt 70-130 PLN/m2, Brak czynnika wodnego, Stały profil temperaturowy."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-porownanie",
    "name": "Symulator Wyboru Systemu Grzewczego",
    "description": "Interaktywna macierz decyzyjna pozwalająca inwestorowi na błyskawiczne zbadanie wad i zalet poszczególnych układów grzewczych z poziomu urządzeń mobilnych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-tbl-container" id="system-comparison">
    <div class="rk-tbl-header">
        <h2>Porównanie parametrów technicznych: Układ meandrowy vs Ślimakowy vs Elektryczny</h2>
        <p>Klasyczne tabele na telefonach bywają nieczytelne. Poniższe interaktywne zestawienie ułatwi Ci dobór optymalnego rozwiązania na etapie koncepcji instalacyjnej. Wybierz technologię, aby sprawdzić jej profil.</p>
    </div>

    <div class="rk-tbl-body">
        
        <div class="rk-tbl-tabs" id="cmpTabs">
            <button class="rk-tbl-tab-btn active" data-sys="meander">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                Wodny Meander
            </button>
            <button class="rk-tbl-tab-btn" data-sys="snail">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2a10 10 0 1 0 10 10"></path><path d="M12 6a6 6 0 1 0 6 6"></path><path d="M12 10a2 2 0 1 0 2 2"></path></svg>
                Wodny Ślimak
            </button>
            <button class="rk-tbl-tab-btn" data-sys="electric">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"></path></svg>
                Maty Elektryczne
            </button>
        </div>

        <div class="rk-tbl-content-box fade-in" id="cmpContent">
            <h3 id="cmpTitle">Układ Meandrowy (Wodny)</h3>
            <div class="rk-param-grid" id="cmpGrid">
                
                <div class="rk-param-item">
                    <span class="rk-param-label">Profil temperatur podłogi</span>
                    <span class="rk-param-value">Liniowo opadający (gradient do <span class="rk-highlight-text">8K</span>)</span>
                </div>
                
                <div class="rk-param-item">
                    <span class="rk-param-label">Maksymalny opór hydrauliczny</span>
                    <span class="rk-param-value">Do <span class="rk-highlight-text">25 kPa</span> (przy pętli 100 m)</span>
                </div>
                
                <div class="rk-param-item">
                    <span class="rk-param-label">Średni koszt materiałów</span>
                    <span class="rk-param-value"><span class="rk-highlight-text">18 – 28 PLN/m²</span></span>
                </div>
                
                <div class="rk-param-item">
                    <span class="rk-param-label">Minimalny promień gięcia rury</span>
                    <span class="rk-param-value">5 x d_z (wymaga łuków prowadzących)</span>
                </div>
                
                <div class="rk-param-item">
                    <span class="rk-param-label">Zastosowanie w strefach brzegowych</span>
                    <span class="rk-param-value">Idealne (naturalna koncentracja mocy)</span>
                </div>
                
                <div class="rk-param-item">
                    <span class="rk-param-label">Współpraca z pompą ciepła (COP)</span>
                    <span class="rk-param-value">Bardzo dobra (przy Tz ≤ <span class="rk-highlight-text">35°C</span>)</span>
                </div>

            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var sysBtns = document.querySelectorAll('.rk-tbl-tab-btn');
    var cmpTitle = document.getElementById('cmpTitle');
    var cmpGrid = document.getElementById('cmpGrid');
    var cmpBox = document.getElementById('cmpContent');

    var sysData = {
        "meander": {
            title: "Układ Meandrowy (Wodny)",
            params: [
                { label: "Profil temperatur podłogi", value: 'Liniowo opadający (gradient do <span class="rk-highlight-text">8K</span>)' },
                { label: "Maksymalny opór hydrauliczny", value: 'Do <span class="rk-highlight-text">25 kPa</span> (przy pętli 100 m)' },
                { label: "Średni koszt materiałów", value: '<span class="rk-highlight-text">18 – 28 PLN/m²</span>' },
                { label: "Minimalny promień gięcia rury", value: "5 x d_z (wymaga łuków prowadzących)" },
                { label: "Zastosowanie w strefach brzegowych", value: "Idealne (naturalna koncentracja mocy)" },
                { label: "Współpraca z pompą ciepła (COP)", value: 'Bardzo dobra (przy Tz ≤ <span class="rk-highlight-text">35°C</span>)' }
            ]
        },
        "snail": {
            title: "Układ Ślimakowy (Wodny)",
            params: [
                { label: "Profil temperatur podłogi", value: 'Jednorodny (stała średnia temperatura)' },
                { label: "Maksymalny opór hydrauliczny", value: 'Do <span class="rk-highlight-text">18 kPa</span> (dzięki łagodnym łukom 90°)' },
                { label: "Średni koszt materiałów", value: '<span class="rk-highlight-text">22 – 32 PLN/m²</span>' },
                { label: "Minimalny promień gięcia rury", value: "8 x d_z (łagodne naturalne gięcie)" },
                { label: "Zastosowanie w strefach brzegowych", value: "Wymaga sztucznych zagęszczeń pętli pomocniczych" },
                { label: "Współpraca z pompą ciepła (COP)", value: "Optymalna (wymaga najniższych parametrów zasilania)" }
            ]
        },
        "electric": {
            title: "Maty Elektryczne (Suche)",
            params: [
                { label: "Profil temperatur podłogi", value: 'Jednorodny (całkowicie stały rozkład na siatce)' },
                { label: "Maksymalny opór hydrauliczny", value: 'Brak (system bez udziału medium płynnego)' },
                { label: "Średni koszt materiałów", value: '<span class="rk-highlight-text">70 – 130 PLN/m²</span>' },
                { label: "Minimalny promień gięcia rury", value: "Nie dotyczy (elastyczna siatka montażowa)" },
                { label: "Zastosowanie w strefach brzegowych", value: "Wymaga lokalnego gęstszego układania przewodu oporowego" },
                { label: "Współpraca z pompą ciepła (COP)", value: '<span class="rk-highlight-text">Brak bezpośredniej współpracy</span>' }
            ]
        }
    };

    sysBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Zarządzanie klasami
            sysBtns.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');

            var sysKey = this.getAttribute('data-sys');
            var data = sysData[sysKey];

            // Renderowanie HTML bez niebezpiecznych znaków JS (bez && / ||)
            if (data !== undefined) {
                // Restart CSS Animation
                cmpBox.classList.remove('fade-in');
                void cmpBox.offsetWidth; // Force reflow
                cmpBox.classList.add('fade-in');

                cmpTitle.textContent = data.title;
                
                var gridHTML = '';
                var i = 0;
                var totalParams = data.params.length;
                
                // Pętla while dla bezpieczeństwa, generująca poszczególne kafelki
                while (i < totalParams) {
                    var p = data.params[i];
                    gridHTML += '<div class="rk-param-item">' +
                                '<span class="rk-param-label">' + p.label + '</span>' +
                                '<span class="rk-param-value">' + p.value + '</span>' +
                                '</div>';
                    i++;
                }
                
                cmpGrid.innerHTML = gridHTML;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-blue: #0ea5e9;
    --rk-calc-blue-dark: #0369a1;
    --rk-calc-bg: #ffffff;
    --rk-calc-panel: #f8fafc;
    --rk-calc-border: #e2e8f0;
    --rk-calc-text: #334155;
    --rk-calc-highlight: #f0f9ff;
}

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

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

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

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

/* Sekcja Sterowania (Suwak) */
.rk-calc-controls {
    background: white;
    padding: 30px 40px;
    border-bottom: 1px solid var(--rk-calc-border);
    display: flex;
    flex-direction: column;
    align-items: center;
}

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

.rk-slider-wrapper {
    width: 100%;
    max-width: 500px;
    position: relative;
}

.rk-slider-info {
    display: flex;
    justify-content: space-between;
    margin-bottom: 10px;
    font-weight: 700;
    color: var(--rk-calc-blue-dark);
}

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

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

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

/* Ciało Kalkulatora - Kroki */
.rk-calc-body {
    padding: 40px;
    background: var(--rk-calc-panel);
}

.rk-step-box {
    background: white;
    border: 1px solid var(--rk-calc-border);
    border-radius: 16px;
    margin-bottom: 20px;
    overflow: hidden;
    transition: all 0.3s;
    box-shadow: 0 2px 5px rgba(0,0,0,0.02);
}

.rk-step-box:hover {
    border-color: #bae6fd;
    box-shadow: 0 5px 15px rgba(14, 165, 233, 0.08);
}

.rk-step-header {
    background: white;
    padding: 20px 25px;
    display: flex;
    align-items: center;
    gap: 20px;
    border-bottom: 1px solid transparent;
}

.rk-step-num {
    background: var(--rk-calc-dark);
    color: white;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    font-weight: 900;
    flex-shrink: 0;
}

.rk-step-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    margin: 0;
    line-height: 1.4;
}

.rk-step-content {
    padding: 0 25px 25px 85px;
}

.rk-formula {
    background: var(--rk-calc-dark);
    color: #e2e8f0;
    padding: 15px 20px;
    border-radius: 8px;
    font-family: monospace;
    font-size: 16px;
    margin: 15px 0;
    overflow-x: auto;
    border-left: 4px solid var(--rk-calc-blue);
}

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

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

.rk-result-box {
    background: var(--rk-calc-highlight);
    border: 1px dashed var(--rk-calc-blue);
    padding: 15px;
    border-radius: 8px;
    color: var(--rk-calc-dark);
    font-size: 15px;
}

.rk-val-highlight {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-calc-blue-dark);
    display: inline-block;
    margin: 0 5px;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-calc-header, .rk-calc-controls, .rk-calc-body { padding: 25px 20px; }
    .rk-step-header { padding: 15px; gap: 15px; }
    .rk-step-content { padding: 0 15px 20px 15px; }
    .rk-formula { font-size: 14px; padding: 12px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-kalkulator",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Kalkulator projektowy: Jak obliczyć przepływ i straty ciśnienia w układzie meandrowym?",
    "description": "5-etapowy algorytm inżynierski krok po kroku, pozwalający na precyzyjne wyliczenie oporów hydraulicznych i nastaw na rotametrach dla układu meandrowego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-kalkulator",
    "name": "Wzory Hydrauliczne i Termodynamiczne dla Ogrzewania Podłogowego",
    "description": "Zbiór danych i stałych fizycznych (ciepło właściwe wody, gęstość) niezbędnych do obliczania przepływów masowych i strat ciśnienia w rurach PEX 16mm.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wzór na przepływ podłogówki",
      "obliczenia OZC podłogówka",
      "straty ciśnienia w rurach pex",
      "rotametry regulacja przepływu",
      "opór miejscowy układ meandrowy",
      "współczynnik bezpieczeństwa ogrzewania"
    ],
    "measurementTechnique": "Zastosowanie algorytmów z normy PN-EN 12831 oraz praw mechaniki płynów do wyznaczenia całkowitych strat hydraulicznych pętli grzewczej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Ciepło właściwe wody (cw) = 4186 J/(kg·K)",
        "Gęstość wody przy 40 st C = 992 kg/m3",
        "Opór miejscowy łuku 180 st (xi) = 1,5",
        "Współczynnik strat do gruntu = 1,15"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-kalkulator",
    "name": "Interaktywny Kalkulator Algorytmu Meandrowego",
    "description": "Aplikacja webowa symulująca 5-stopniowy proces inżynierski obliczania przepływu i strat ciśnienia dla pętli grzewczej w czasie rzeczywistym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-container" id="meander-calculator">
    <div class="rk-calc-header">
        <h2>Kalkulator projektowy: Jak obliczyć przepływ i straty ciśnienia w układzie meandrowym?</h2>
        <p>Projektowanie pętli meandrowej wymaga dokładnego obliczenia przepływu masowego czynnika oraz całkowitych strat ciśnienia w celu prawidłowego doboru nastaw na rotametrach. Prześledź algorytm inżynierski krok po kroku.</p>
    </div>

    <div class="rk-calc-controls">
        <h3>Symulator Pętli: Wybierz zapotrzebowanie pokoju</h3>
        <div class="rk-slider-wrapper">
            <div class="rk-slider-info">
                <span>Zapotrzebowanie wyjściowe z OZC:</span>
                <span id="uiBaseQ">1043 W</span>
            </div>
            <input type="range" min="500" max="2000" step="50" value="1043" class="rk-range" id="simRange">
        </div>
    </div>

    <div class="rk-calc-body">
        
        <div class="rk-step-box">
            <div class="rk-step-header">
                <div class="rk-step-num">1</div>
                <h3 class="rk-step-title">Zapotrzebowanie na moc cieplną pętli (Q_pętli)</h3>
            </div>
            <div class="rk-step-content">
                <p class="rk-calc-desc">Moc pętli wyliczamy na podstawie jednostkowego zapotrzebowania na ciepło z <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">audytu OZC</a>, powiększonego o straty do gruntu.</p>
                <div class="rk-formula">
                    Q_pętli = Zapotrzebowanie OZC × 1.15
                </div>
                <div class="rk-result-box">
                    Gdzie 1.15 to współczynnik bezpieczeństwa. Dla wybranej wartości daje to:
                    <br>Wynik obliczeń: <span class="rk-val-highlight" id="resQ">1200 W</span> (1,2 kW)
                </div>
            </div>
        </div>

        <div class="rk-step-box">
            <div class="rk-step-header">
                <div class="rk-step-num">2</div>
                <h3 class="rk-step-title">Przepływ masowy czynnika (V)</h3>
            </div>
            <div class="rk-step-content">
                <p class="rk-calc-desc">Przepływ objętościowy wody w pętli, niezbędny do nastawy na <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrze rozdzielacza</a>.</p>
                <div class="rk-formula">
                    V [m3/h] = (Q_pętli / (c_w × ρ × ΔT)) × 3600
                </div>
                <div class="rk-calc-desc">
                    <strong>Stałe fizyczne (dla 40°C):</strong><br>
                    • c_w (ciepło właściwe) = 4186 J/(kg·K)<br>
                    • ρ (gęstość wody) = 992 kg/m³<br>
                    • ΔT (spadek temp.) = 5 K
                </div>
                <div class="rk-result-box">
                    Podstawiając do wzoru, uzyskujemy przepływ do ustawienia:
                    <br>Wynik obliczeń: <span class="rk-val-highlight" id="resV">3.46 l/min</span> (0,208 m³/h)
                </div>
            </div>
        </div>

        <div class="rk-step-box">
            <div class="rk-step-header">
                <div class="rk-step-num">3</div>
                <h3 class="rk-step-title">Liniowe straty ciśnienia (Δp_l)</h3>
            </div>
            <div class="rk-step-content">
                <p class="rk-calc-desc">Straty ciśnienia na skutek tarcia w rurze PEX 16&#215;2,0 mm na podstawie wyliczonego przepływu i szacunkowej długości pętli.</p>
                <div class="rk-formula">
                    Δp_l = R × L_całkowita
                </div>
                <div class="rk-calc-desc">
                    Przyjmujemy średni opór <strong>R = 140 Pa/m</strong> dla wyliczonego przepływu oraz długość pętli proporcjonalną do mocy (np. <span id="resLen">95 m</span>).
                </div>
                <div class="rk-result-box">
                    Tarcie samej rury na odcinkach prostych generuje opór:
                    <br>Wynik obliczeń: <span class="rk-val-highlight" id="resPl">13.30 kPa</span> (13300 Pa)
                </div>
            </div>
        </div>

        <div class="rk-step-box">
            <div class="rk-step-header">
                <div class="rk-step-num">4</div>
                <h3 class="rk-step-title">Opory miejscowe na zakrętach 180° (Δp_m)</h3>
            </div>
            <div class="rk-step-content">
                <p class="rk-calc-desc">Układ meandrowy generuje wysokie opory miejscowe ze względu na dużą liczbę ostrych zwrotów rury o 180 stopni.</p>
                <div class="rk-formula">
                    Δp_m = Σ(ξ) × (ρ × v²) / 2
                </div>
                <div class="rk-calc-desc">
                    Gdzie współczynnik oporu łuku 180° <strong>ξ = 1.5</strong>. Szacowana liczba łuków dla tej pętli to <span id="resBends">18</span>. Prędkość czynnika (v) dla rury 12mm wewnątrz to ok. <span id="resVel">0.51</span> m/s.
                </div>
                <div class="rk-result-box">
                    Same zakręty meandru stawiają wodzie opór:
                    <br>Wynik obliczeń: <span class="rk-val-highlight" id="resPm">3.48 kPa</span> (3482 Pa)
                </div>
            </div>
        </div>

        <div class="rk-step-box">
            <div class="rk-step-header">
                <div class="rk-step-num">5</div>
                <h3 class="rk-step-title">Całkowita strata ciśnienia (Δp_tot)</h3>
            </div>
            <div class="rk-step-content">
                <p class="rk-calc-desc">Finalna wartość, którą musi pokonać pompa obiegowa, aby zapewnić ciepło w układzie.</p>
                <div class="rk-formula">
                    Δp_tot = Δp_l + Δp_m
                </div>
                <div class="rk-result-box">
                    Całkowity opór hydrauliczny wybranej sekcji wynosi:
                    <br>Wynik ostateczny: <span class="rk-val-highlight" id="resTotal">16.78 kPa</span>
                    <br><small style="color:#64748b; margin-top:5px; display:block;" id="resStatus">Wartość ta mieści się w bezpiecznym limicie wynoszącym 20 kPa.</small>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var rangeInput = document.getElementById('simRange');
    
    // UI Elements
    var uiBaseQ = document.getElementById('uiBaseQ');
    var resQ = document.getElementById('resQ');
    var resV = document.getElementById('resV');
    var resLen = document.getElementById('resLen');
    var resPl = document.getElementById('resPl');
    var resBends = document.getElementById('resBends');
    var resVel = document.getElementById('resVel');
    var resPm = document.getElementById('resPm');
    var resTotal = document.getElementById('resTotal');
    var resStatus = document.getElementById('resStatus');

    // Constants
    var c_w = 4186;
    var rho = 992;
    var dT = 5;
    var safety_factor = 1.15;
    var mianownik = c_w * rho * dT; // 20762560
    var pipe_inner_area = Math.PI * Math.pow(0.006, 2); // promień 6mm w metrach kw.

    function calculateValues(baseQ) {
        uiBaseQ.textContent = Math.round(baseQ) + " W";
        
        // Krok 1
        var Q_petli = baseQ * safety_factor;
        resQ.textContent = Math.round(Q_petli) + " W";

        // Krok 2 (Przepływ w m3/h -> l/min)
        var V_m3h = (Q_petli / mianownik) * 3600;
        var V_lmin = V_m3h * (1000 / 60);
        resV.textContent = V_lmin.toFixed(2) + " l/min";

        // Krok 3 (Szacowanie długości: proporcjonalnie do mocy. 1200W = 95m)
        var length = (Q_petli / 1200) * 95;
        resLen.textContent = Math.round(length) + " m";
        
        // Szacowanie R proporcjonalnie do przepływu (w dużym uproszczeniu liniowym dla symulacji)
        // 3.46 l/min to ok 140 Pa. 
        var R_pa = (V_lmin / 3.46) * 140;
        var pl_pa = R_pa * length;
        var pl_kpa = pl_pa / 1000;
        resPl.textContent = pl_kpa.toFixed(2) + " kPa";

        // Krok 4 (Prędkość i opory miejscowe)
        var V_m3s = V_m3h / 3600;
        var v_ms = V_m3s / pipe_inner_area;
        resVel.textContent = v_ms.toFixed(2);

        var bends = Math.round((length / 95) * 18);
        resBends.textContent = bends;

        var pm_pa = bends * 1.5 * ((rho * Math.pow(v_ms, 2)) / 2);
        var pm_kpa = pm_pa / 1000;
        resPm.textContent = pm_kpa.toFixed(2) + " kPa";

        // Krok 5
        var total_kpa = pl_kpa + pm_kpa;
        resTotal.textContent = total_kpa.toFixed(2) + " kPa";

        // Status limitu (Zabezpieczenie JS)
        if (total_kpa <= 20) {
            resStatus.textContent = "Wartość ta mieści się w bezpiecznym limicie hydraulicznym wynoszącym 20 kPa.";
            resStatus.style.color = "#059669";
        }
        if (total_kpa > 20) {
            resStatus.textContent = "UWAGA: Wartość przekracza limit hydrauliczny (20 kPa). Konieczny podział na dwie pętle.";
            resStatus.style.color = "#ef4444";
        }
    }

    // Event listener bez znaków zagrażających
    rangeInput.addEventListener('input', function() {
        var val = parseFloat(this.value);
        calculateValues(val);
    });

    // Inicjalizacja stanu początkowego (dla dokładnej wartości 1200W całkowitej)
    var initialBase = 1200 / 1.15;
    rangeInput.value = initialBase;
    calculateValues(initialBase);
});
</script>



<style>
:root {
    --rk-proj-dark: #0f172a;
    --rk-proj-blue: #2563eb;
    --rk-proj-blue-light: #eff6ff;
    --rk-proj-gray: #64748b;
    --rk-proj-bg: #ffffff;
    --rk-proj-border: #e2e8f0;
}

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

/* Header */
.rk-proj-header {
    background: linear-gradient(145deg, var(--rk-proj-dark) 0%, #1e293b 100%);
    padding: 40px 30px;
    text-align: center;
    color: white;
}

.rk-proj-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.4;
    color: white;
}

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

/* Interfejs Single-Column */
.rk-proj-body {
    padding: 35px 40px;
    background: #f8fafc;
}

/* Nawigacja (Tabulatory poziome na desktop, pionowe na mobile) */
.rk-proj-tabs {
    display: flex;
    gap: 15px;
    margin-bottom: 25px;
    justify-content: center;
    flex-wrap: wrap;
}

.rk-proj-tab-btn {
    background: white;
    border: 2px solid var(--rk-proj-border);
    padding: 16px 20px;
    border-radius: 14px;
    cursor: pointer;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-proj-gray);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 220px;
    justify-content: center;
}

.rk-proj-tab-btn:hover {
    border-color: #bfdbfe;
    background: var(--rk-proj-blue-light);
}

.rk-proj-tab-btn.active {
    border-color: var(--rk-proj-blue);
    background: var(--rk-proj-blue);
    color: white;
    box-shadow: 0 8px 15px -5px rgba(37, 99, 235, 0.3);
}

.rk-proj-tab-btn svg {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
}

/* Kontener Treści (Ściśle 1-kolumnowy, oparty na gęstym tekście) */
.rk-proj-content-box {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-proj-border);
    padding: 40px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
    text-align: left; /* Czytelny układ dla dłuższych bloków tekstu */
}

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

.rk-proj-content-box h3::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 24px;
    background: var(--rk-proj-blue);
    border-radius: 4px;
}

.rk-proj-content-box p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 15px 0;
}

.rk-proj-content-box p:last-child {
    margin-bottom: 0;
}

/* Styl wyróżnień technicznych (zamiast LaTeX) */
.rk-tech-val {
    font-weight: 800;
    color: var(--rk-proj-blue);
    background: var(--rk-proj-blue-light);
    padding: 3px 8px;
    border-radius: 6px;
    white-space: nowrap;
}

.rk-keyword {
    font-weight: 700;
    color: var(--rk-proj-dark);
    border-bottom: 1px dashed var(--rk-proj-gray);
}

/* Animacje zawartości */
.fade-in-up {
    animation: fadeInUp 0.4s ease-out forwards;
}

@keyframes fadeInUp {
    0% { opacity: 0; transform: translateY(10px); }
    100% { opacity: 1; transform: translateY(0); }
}

/* Kreatywne CTA */
.rk-proj-cta {
    background: linear-gradient(to right, #eff6ff, #ffffff);
    padding: 40px;
    text-align: center;
    border-top: 2px dashed var(--rk-proj-border);
}

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

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

.rk-btn-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-proj-blue);
    color: white;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 40px;
    border-radius: 12px;
    text-decoration: none;
    box-shadow: 0 10px 20px -5px rgba(37, 99, 235, 0.4);
    transition: all 0.3s;
    border: 2px solid transparent;
}

.rk-btn-cta:hover {
    background: #1d4ed8;
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(37, 99, 235, 0.5);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-proj-header, .rk-proj-body, .rk-proj-content-box, .rk-proj-cta { padding: 25px 20px; }
    .rk-proj-tabs { flex-direction: column; gap: 10px; }
    .rk-proj-tab-btn { width: 100%; justify-content: flex-start; padding: 18px 20px; }
    .rk-btn-cta { width: 100%; text-align: center; font-size: 15px; padding: 16px 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-projekt",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Jak instalacja ogrzewania podłogowego w układzie meandrowym wpływa na projekt HVAC?",
    "description": "Szczegółowa analiza wpływu układu meandrowego na dobór pompy ciepła, regulację rotametrów i grubość wylewki jastrychowej. Optymalizacja pod kątem OZC.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-projekt",
    "name": "Parametry Projektowe Układu Meandrowego w HVAC",
    "description": "Baza danych powiązań między wyborem układu meandrowego a optymalizacją pracy układu hydraulicznego i źródła ciepła dla domów pasywnych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "dobór pompy ciepła do ogrzewania podłogowego",
      "krzywa grzewcza pompy ciepła",
      "równoważenie hydrauliczne rotametrów",
      "opory hydrauliczne instalacji podłogowej",
      "grubość wylewki betonowej na podłogówkę",
      "jastrych anhydrytowy a meander",
      "bezwładność cieplna podłogówki",
      "ustawienie przepływów na rotametrach"
    ],
    "measurementTechnique": "Weryfikacja parametrów projektowych na podstawie normy PN-EN 12831 oraz specyfikacji technicznych pomp obiegowych i źródeł ciepła.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Pompa Ciepła: Optymalizacja zasilania do Tz = 35°C w celu zapobiegania spadkowi wskaźnika SCOP na krzywej grzewczej.",
        "Hydraulika: Kompensacja strat miejscowych przez rygorystyczne równoważenie przepływów masowych na rotametrach.",
        "Jastrych: Kontrola bezwładności cieplnej poprzez jednorodną wylewkę 45-50 mm (beton) lub 35 mm (anhydryt)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-projekt",
    "name": "Eksplorator Założeń Projektowych OZC",
    "description": "Narzędzie interaktywne typu Single-Column eksplorujące techniczne konsekwencje zastosowania pętli meandrowych w profesjonalnym projekcie instalacji grzewczej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-proj-container" id="meander-design-impact">
    <div class="rk-proj-header">
        <h2>Wpływ układu meandrowego na projekt techniczny</h2>
        <p>Zastosowanie meandru ma diametralny wpływ na projekt HVAC, wymuszając ścisłą korelację pomiędzy audytem OZC a hydrauliczną strukturą rozdzielacza. Sprawdź, co ulegnie zmianie w instalacji.</p>
    </div>

    <div class="rk-proj-body">
        
        <div class="rk-proj-tabs" id="projTabs">
            <button class="rk-proj-tab-btn active" data-target="pompa">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><path d="M12 18v-6"></path><path d="M9 15h6"></path></svg>
                Pompa Ciepła (SCOP)
            </button>
            <button class="rk-proj-tab-btn" data-target="hydro">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
                Równoważenie Hydrauliki
            </button>
            <button class="rk-proj-tab-btn" data-target="screed">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="7" width="20" height="14" rx="2" ry="2"></rect><path d="M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"></path></svg>
                Termodynamika Jastrychu
            </button>
        </div>

        <div class="rk-proj-content-box fade-in-up" id="projContent">
            <h3>Korelacja z krzywą grzewczą pompy ciepła</h3>
            <p>
                Układ meandrowy generuje wyższe straty miejscowe na każdym zwrocie rury o 180 stopni. Ten fizyczny fakt ma bezpośredni wpływ na <span class="rk-keyword">dobór pompy ciepła do ogrzewania podłogowego</span>. Jeśli profesjonalny projekt na bazie audytu OZC zakłada <span class="rk-keyword">niskotemperaturowe ogrzewanie płaszczyznowe</span> z parametrem zasilania zredukowanym do poziomu <span class="rk-tech-val">Tz = 35°C</span>, rozstaw rur w meandrze musi być co do centymetra skalkulowany pod kątem lokalnych strat ciepła.
            </p>
            <p>
                Błąd w tym obszarze (np. zbyt rzadki rozstaw rur w strefie brzegowej) zmusza użytkownika do podnoszenia zadanej temperatury wody na <span class="rk-keyword">krzywej grzewczej pompy ciepła</span>. Każdy stopień zasilania w górę to drastyczny spadek sezonowego wskaźnika efektywności (SCOP), co z biegiem lat generuje tysiące złotych niepotrzebnych kosztów na rachunkach za prąd.
            </p>
        </div>

    </div>

    <div class="rk-proj-cta">
        <h4>Nie ryzykuj wysokich rachunków za ogrzewanie</h4>
        <p>Brak projektu OZC przy meandrze to gwarancja przewymiarowanej pompy i nierównego grzania. Skonsultuj swój budynek z inżynierem i zyskaj pełną kontrolę nad instalacją.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-cta">
            ZAMÓW PROJEKT INSTALACJI OGRZEWANIA PODŁOGOWEGO Z POMPĄ CIEPŁA
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var tabs = document.querySelectorAll('.rk-proj-tab-btn');
    var contentBox = document.getElementById('projContent');

    var projData = {
        "pompa": {
            title: "Korelacja z krzywą grzewczą pompy ciepła",
            html: '<p>Układ meandrowy generuje wyższe straty miejscowe na każdym zwrocie rury o 180 stopni. Ten fizyczny fakt ma bezpośredni wpływ na <span class="rk-keyword">dobór pompy ciepła do ogrzewania podłogowego</span>. Jeśli profesjonalny projekt na bazie audytu OZC zakłada <span class="rk-keyword">niskotemperaturowe ogrzewanie płaszczyznowe</span> z parametrem zasilania zredukowanym do poziomu <span class="rk-tech-val">Tz = 35°C</span>, rozstaw rur w meandrze musi być co do centymetra skalkulowany pod kątem lokalnych strat ciepła.</p><p>Błąd w tym obszarze (np. zbyt rzadki rozstaw rur w strefie brzegowej) zmusza użytkownika do podnoszenia zadanej temperatury wody na <span class="rk-keyword">krzywej grzewczej pompy ciepła</span>. Każdy stopień zasilania w górę to drastyczny spadek sezonowego wskaźnika efektywności (SCOP), co z biegiem lat generuje tysiące złotych niepotrzebnych kosztów na rachunkach za prąd.</p>'
        },
        "hydro": {
            title: "Hydrauliczne równoważenie przepływów",
            html: '<p>Z uwagi na konstrukcję, pętle meandrowe stawiają wodzie znaczny opór. Aby obieg funkcjonował poprawnie, kluczowe staje się <span class="rk-keyword">równoważenie hydrauliczne rotametrów</span> w szafce. W projekcie technicznym każda pętla otrzymuje konkretną, matematycznie wyliczoną nastawę wstępną podaną w litrach na minutę.</p><p>Ponieważ meander podbija <span class="rk-keyword">opory hydrauliczne instalacji podłogowej</span> w stosunku do układów ślimakowych, absolutnie niedopuszczalne jest projektowanie układów mieszanych (ślimak i meander) na jednym rozdzielaczu bez precyzyjnego wyregulowania dławików. Brak <span class="rk-keyword">ustawienia przepływów na rotametrach</span> na bazie projektu prowadzi do sytuacji, gdzie woda krąży tylko w najkrótszych pętlach ślimakowych, omijając gęsty meander pod oknem całkowicie.</p>'
        },
        "screed": {
            title: "Kontrola termodynamiki jastrychu",
            html: '<p>W meandrze temperatura wody spada liniowo od rozdzielacza do końca pętli, dlatego projektant musi perfekcyjnie zapanować nad strukturą budowlaną posadzki. Odpowiednia <span class="rk-keyword">grubość wylewki betonowej na podłogówkę</span> (zazwyczaj <span class="rk-tech-val">45–50 mm</span> nad górną krawędzią rury) to fundament zapobiegający pękaniu posadzki.</p><p>Alternatywnie, projekt może zakładać cieńszy <span class="rk-keyword">jastrych anhydrytowy</span> (około <span class="rk-tech-val">35 mm</span>), który lepiej znosi naprężenia zginające. Niezależnie od materiału, idealnie wyliczona masa termiczna jastrychu pozwala przewidzieć <span class="rk-keyword">bezwładność cieplną podłogówki</span>. Dzięki temu system sterowania szybciej reaguje na zyski słoneczne w pomieszczeniach z meandrem brzegowym, nie dopuszczając do szkodliwego przegrzewania wnętrz.</p>'
        }
    };

    tabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            // Zmiana klas w zakładkach
            tabs.forEach(function(t) { t.classList.remove('active'); });
            this.classList.add('active');

            var target = this.getAttribute('data-target');
            var data = projData[target];

            // Bezpieczne wstrzyknięcie danych (bez instrukcji logicznych && / || )
            if (data !== undefined) {
                // Restart animacji fade-in
                contentBox.classList.remove('fade-in-up');
                void contentBox.offsetWidth; // trigger reflow (bezpieczny hack)
                contentBox.classList.add('fade-in-up');

                // Aktualizacja DOM - Gęsty tekst, brak SVG
                contentBox.innerHTML = 
                    '<h3>' + data.title + '</h3>' + data.html;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-err-dark: #1e293b;
    --rk-err-blue: #0284c7;
    --rk-err-red: #ef4444;
    --rk-err-red-light: #fef2f2;
    --rk-err-orange: #f97316;
    --rk-err-bg: #ffffff;
    --rk-err-border: #e2e8f0;
    --rk-err-text: #475569;
}

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

/* Header */
.rk-err-header {
    background: linear-gradient(135deg, #7f1d1d 0%, #b91c1c 100%);
    padding: 35px 40px;
    color: white;
    text-align: left;
    display: flex;
    align-items: center;
    gap: 20px;
}

.rk-err-header-icon {
    background: rgba(255, 255, 255, 0.15);
    border-radius: 12px;
    padding: 15px;
    flex-shrink: 0;
}

.rk-err-header-content h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 8px 0;
    color: white;
}

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

/* Interactive Body */
.rk-err-interactive {
    padding: 30px 40px;
    background: #f8fafc;
}

.rk-err-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 30px;
    align-items: start;
}

/* Kafelki Błędów (Lewa strona) */
.rk-err-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-err-btn {
    background: white;
    border: 2px solid var(--rk-err-border);
    padding: 18px 20px;
    border-radius: 12px;
    cursor: pointer;
    text-align: left;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-err-btn:hover {
    border-color: #fca5a5;
    background: var(--rk-err-red-light);
}

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

.rk-err-icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #94a3b8;
    flex-shrink: 0;
    transition: all 0.3s;
}

.rk-err-btn.active .rk-err-icon {
    background: var(--rk-err-red);
    color: white;
}

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

/* Panel Diagnostyczny (Prawa strona) */
.rk-diag-panel {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-err-border);
    padding: 30px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    display: flex;
    flex-direction: column;
}

.rk-diag-svg-box {
    height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 25px;
    background: #f1f5f9;
    border-radius: 12px;
    border: 1px dashed #cbd5e1;
    overflow: hidden;
}

.rk-diag-content h4 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-err-red);
    margin: 0 0 10px 0;
}

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

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

/* Animacje SVG dla błędów */
.err-anim-pulse {
    animation: errPulse 1.5s infinite;
}

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

.err-anim-shake {
    animation: errShake 0.5s infinite;
}

@keyframes errShake {
    0% { transform: translateX(0); }
    25% { transform: translateX(-2px); }
    50% { transform: translateX(2px); }
    75% { transform: translateX(-2px); }
    100% { transform: translateX(0); }
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-err-header { flex-direction: column; text-align: center; padding: 25px 20px; }
    .rk-err-interactive { padding: 20px; }
    .rk-err-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-diag-panel { order: -1; } /* Panel z wynikiem na samej górze na mobile */
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Najczęstsze błędy wykonawcze przy instalacji meandrowej i ich konsekwencje",
    "description": "Katalog najpoważniejszych błędów hydraulicznych w układach meandrowych, od załamania rury PEX, przez zbyt długie pętle, aż po pułapki systemów suchych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-bledy",
    "name": "Analiza Błędów Instalacji Meandrowej",
    "description": "Zestawienie technologicznych konsekwencji błędnego wykonania wodnego ogrzewania podłogowego ze szczególnym uwzględnieniem promieni gięcia i rozstawów rur.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "załamanie rury pex podłogówka",
      "spadek ciśnienia w długiej pętli",
      "rozstaw rur w systemie suchym",
      "kierunek zasilania meandra",
      "błędy montażu ogrzewania płaszczyznowego"
    ],
    "measurementTechnique": "Wizualizacja skutków przekroczenia normatywnych promieni gięcia rur, ograniczeń długości pętli oraz analizy błędów kierunku przepływu wody grzewczej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Błąd promienia: Powoduje uszkodzenie warstwy aluminium, restrykcję przepływu i wycieki.",
        "Błąd zasilania: Prowadzi do niedogrzania stref brzegowych przy przeszkleniach.",
        "Błąd długości: Zbyt długa pętla powoduje potężne straty ciśnienia i brak możliwości regulacji.",
        "Błąd systemu suchego: Wymuszony rozstaw (10/20cm) zamiast zoptymalizowanego 15cm dla domów pasywnych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-diagnoza",
    "name": "Symulator Skutków Błędów Hydraulicznych",
    "description": "Interaktywny moduł edukacyjny dla inwestorów, pozwalający na symulację i zrozumienie fizycznych konsekwencji typowych błędów popełnianych przez instalatorów.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="error-simulator">
    <div class="rk-err-header">
        <div class="rk-err-header-icon">
            <svg width="36" height="36" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path>
                <line x1="12" y1="9" x2="12" y2="13"></line>
                <line x1="12" y1="17" x2="12.01" y2="17"></line>
            </svg>
        </div>
        <div class="rk-err-header-content">
            <h2>Najczęstsze błędy wykonawcze przy instalacji meandrowej</h2>
            <p>Jastrych betonowy zaleje wszystko. Odkryj, jakie bomby zegarowe zostawiają wykonawcy bez projektów i jak zniszczą one Twój komfort i portfel.</p>
        </div>
    </div>

    <div class="rk-err-interactive">
        <div class="rk-err-grid">
            
            <div class="rk-err-list">
                <button class="rk-err-btn active" data-error="bend">
                    <div class="rk-err-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg></div>
                    <h3>Zbyt ostry promień gięcia rur</h3>
                </button>
                <button class="rk-err-btn" data-error="flow">
                    <div class="rk-err-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M2 12h10"></path><path d="M9 4v16"></path><path d="M15 9l5 3-5 3"></path></svg></div>
                    <h3>Błędny kierunek zasilania</h3>
                </button>
                <button class="rk-err-btn" data-error="length">
                    <div class="rk-err-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="2" y="7" width="20" height="10" rx="2" ry="2"></rect><line x1="12" y1="7" x2="12" y2="17"></line></svg></div>
                    <h3>Zbyt długa pętla grzewcza</h3>
                </button>
                <button class="rk-err-btn" data-error="dry">
                    <div class="rk-err-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg></div>
                    <h3>Pułapka systemów suchych</h3>
                </button>
            </div>

            <div class="rk-diag-panel">
                <div class="rk-diag-svg-box" id="errSvgBox">
                    <svg width="100" height="100" viewBox="0 0 100 100" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round">
                        <path d="M20,50 L40,50" stroke="#94a3b8"></path>
                        <path d="M40,50 C45,50 48,53 50,60" stroke="#ef4444" class="err-anim-pulse"></path>
                        <path d="M50,60 L50,80" stroke="#94a3b8"></path>
                        <circle cx="48" cy="53" r="6" fill="#fef2f2" stroke="#ef4444" class="err-anim-shake"></circle>
                    </svg>
                </div>
                <div class="rk-diag-content" id="errContentBox">
                    <h4>Przewężenie i ryzyko pęknięcia</h4>
                    <p>Wykonawcy, próbując wymusić mały rozstaw rur (np. 10 cm) w meandrze pojedynczym, zginają rurę bez użycia narzędzi profilujących. Konsekwencją jest drastyczne przewężenie przekroju, gwałtowny wzrost oporów hydraulicznych, a w skrajnych przypadkach pęknięcie warstwy aluminium w rurze PEX. To po kilku latach skutkuje wyciekiem wody pod jastrych.</p>
                    <p>Dowiedz się więcej: <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">Jak unikać najczęstszych błędów montażu podłogówki?</a></p>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    var errBtns = document.querySelectorAll('.rk-err-btn');
    var svgBox = document.getElementById('errSvgBox');
    var contentBox = document.getElementById('errContentBox');

    var errData = {
        "bend": {
            svg: '<svg width="100" height="100" viewBox="0 0 100 100" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"><path d="M20,50 L40,50" stroke="#94a3b8"/><path d="M40,50 C45,50 48,53 50,60" stroke="#ef4444" class="err-anim-pulse"/><path d="M50,60 L50,80" stroke="#94a3b8"/><circle cx="48" cy="53" r="6" fill="#fef2f2" stroke="#ef4444" class="err-anim-shake"/></svg>',
            title: "Przewężenie i ryzyko pęknięcia",
            desc: "Wykonawcy, próbując wymusić mały rozstaw rur w meandrze pojedynczym, zginają rurę bez użycia narzędzi profilujących. Konsekwencją jest przewężenie przekroju, gwałtowny wzrost oporów hydraulicznych i pęknięcie warstwy aluminium, co gwarantuje wyciek wody pod jastrych.",
            link: '<a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">Jak unikać najczęstszych błędów montażu podłogówki?</a>'
        },
        "flow": {
            svg: '<svg width="100" height="100" viewBox="0 0 100 100" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"><rect x="10" y="20" width="10" height="60" fill="#38bdf8" stroke="none"/><path d="M80,30 L30,30 L30,45 L80,45" stroke="#ef4444" class="err-anim-pulse"/><path d="M80,60 L30,60 L30,75 L80,75" stroke="#94a3b8"/><text x="40" y="95" font-size="12" fill="#ef4444" stroke="none">Zimne okno</text></svg>',
            title: "Niedogrzane strefy brzegowe",
            desc: "Zasilanie prowadzone od strony ściany wewnętrznej, zamiast od najzimniejszej strefy przegrody zewnętrznej. Konsekwencje: nierównomierny rozkład temperatury, chłodniejsze miejsca przy oknach tarasowych i drastycznie niższy komfort cieplny w salonie.",
            link: '<a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/">Zasady projektowania strefy brzegowej.</a>'
        },
        "length": {
            svg: '<svg width="100" height="100" viewBox="0 0 100 100" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"><path d="M10,50 Q30,10 50,50 T90,50" stroke="#cbd5e1"/><path d="M10,50 Q30,10 50,50" stroke="#ef4444" class="err-anim-pulse"/><circle cx="50" cy="50" r="5" fill="#fef2f2" stroke="#ef4444"/><text x="15" y="80" font-size="11" fill="#ef4444" stroke="none">Spadek ciśnienia / Brak przepływu</text></svg>',
            title: "Hydrauliczny zawał pompy",
            desc: "Zbyt długa pętla grzewcza (powyżej limitów dla danej średnicy). Konsekwencje: potężne straty ciśnienia, zablokowany przepływ wody przez opory tarcia, brak ogrzewania w końcowej części pętli oraz całkowity brak możliwości wyregulowania rotametrów.",
            link: '<a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/">Co zrobić, gdy pętla podłogówki jest za długa?</a>'
        },
        "dry": {
            svg: '<svg width="100" height="100" viewBox="0 0 100 100" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><rect x="10" y="20" width="80" height="60" rx="4" stroke="#94a3b8"/><line x1="30" y1="20" x2="30" y2="80" stroke="#cbd5e1" stroke-dasharray="4 4"/><line x1="70" y1="20" x2="70" y2="80" stroke="#cbd5e1" stroke-dasharray="4 4"/><circle cx="30" cy="50" r="6" fill="#ef4444"/><circle cx="70" cy="50" r="6" fill="#ef4444"/><path d="M30,50 Q50,80 70,50" stroke="#ef4444" fill="none" class="err-anim-shake"/><text x="42" y="45" font-size="12" fill="#ef4444" stroke="none">Brak 15 cm!</text></svg>',
            title: "Sztywny rozstaw płyt systemowych",
            desc: "Niektórzy producenci systemów lekkich robią płyty z dedykowanym rozstawem rur tylko co 10 cm. Brak układu pośredniego jest problemem dla nowocześnie izolowanych budynków, gdzie OZC wymusza rozstaw 15 cm. Trzeba wybrać płyty systemowe, które pozwolą na rozstaw ściśle według projektu OZC.",
            link: '<a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">Systemy suche – jak dobierać materiały?</a>'
        }
    };

    errBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            
            // Zmiana klas
            errBtns.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');

            // Aktualizacja treści
            var errKey = this.getAttribute('data-error');
            var selectedData = errData[errKey];

            if (selectedData !== undefined) {
                svgBox.innerHTML = selectedData.svg;
                contentBox.innerHTML = '<h4>' + selectedData.title + '</h4>' +
                                       '<p>' + selectedData.desc + '</p>' +
                                       '<p>Dowiedz się więcej: ' + selectedData.link + '</p>';
            }
        });
    });
});
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-blue: #0284c7;
    --rk-case-blue-light: #f0f9ff;
    --rk-case-teal: #0f766e;
    --rk-case-teal-light: #ccfbf1;
    --rk-case-gray: #475569;
    --rk-case-bg: #ffffff;
    --rk-case-border: #e2e8f0;
}

.rk-case-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-case-bg);
    border-radius: 20px;
    box-shadow: 0 15px 35px -10px rgba(15, 118, 110, 0.15);
    border: 1px solid var(--rk-case-teal);
    overflow: hidden;
}

/* Nagłówek Case Study */
.rk-case-header {
    background: linear-gradient(135deg, var(--rk-case-dark) 0%, #134e4a 100%);
    padding: 40px 35px;
    display: flex;
    align-items: center;
    gap: 25px;
    color: white;
}

.rk-case-badge {
    background: rgba(204, 251, 241, 0.15);
    border: 1px solid rgba(204, 251, 241, 0.3);
    padding: 15px;
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-width: 100px;
}

.rk-case-badge span {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 800;
    color: #5eead4;
    margin-bottom: 5px;
}

.rk-case-badge svg {
    width: 32px;
    height: 32px;
    color: white;
}

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

.rk-case-title-box p {
    font-size: 15px;
    color: #99f6e4;
    margin: 0;
    line-height: 1.6;
}

/* Interfejs Single-Column */
.rk-case-body {
    padding: 35px 40px;
    background: #f8fafc;
}

/* Tabulatory Etapów */
.rk-case-tabs {
    display: flex;
    gap: 12px;
    margin-bottom: 30px;
    justify-content: center;
    flex-wrap: wrap;
}

.rk-case-tab-btn {
    background: white;
    border: 2px solid var(--rk-case-border);
    padding: 16px 20px;
    border-radius: 12px;
    cursor: pointer;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-case-gray);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1;
    min-width: 220px;
    justify-content: center;
}

.rk-case-tab-btn:hover {
    border-color: #99f6e4;
    background: var(--rk-case-teal-light);
}

.rk-case-tab-btn.active {
    border-color: var(--rk-case-teal);
    background: var(--rk-case-teal);
    color: white;
    box-shadow: 0 8px 20px -5px rgba(15, 118, 110, 0.4);
}

.rk-case-tab-btn svg {
    width: 20px;
    height: 20px;
}

/* Kontener Treści */
.rk-case-content-box {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-case-border);
    padding: 35px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.02);
}

.rk-case-data-bar {
    display: flex;
    justify-content: space-between;
    background: var(--rk-case-teal-light);
    border-left: 4px solid var(--rk-case-teal);
    padding: 15px 20px;
    border-radius: 8px;
    margin-bottom: 25px;
    font-size: 14px;
    font-weight: 700;
    color: #115e59;
}

.rk-case-svg-panel {
    background: #f1f5f9;
    border-radius: 12px;
    height: 220px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 25px;
    border: 1px dashed #cbd5e1;
    overflow: hidden;
}

.rk-case-content-box h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-case-dark);
    margin: 0 0 15px 0;
}

.rk-case-content-box p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 15px 0;
}

.rk-case-content-box a {
    color: var(--rk-case-teal);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: all 0.2s;
}

.rk-case-content-box a:hover {
    color: var(--rk-case-dark);
    background: var(--rk-case-teal-light);
}

/* Wyróżnienia Tech */
.rk-tech-pill {
    display: inline-block;
    background: var(--rk-case-dark);
    color: white;
    padding: 2px 8px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 700;
}

/* Animacje CSS */
.fade-in-content {
    animation: fadeIn 0.4s ease-out forwards;
}

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

.anim-crack {
    stroke-dasharray: 100;
    animation: crackDraw 1.5s forwards;
}

@keyframes crackDraw {
    from { stroke-dashoffset: 100; }
    to { stroke-dashoffset: 0; }
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-case-header { flex-direction: column; text-align: center; padding: 30px 20px; }
    .rk-case-body { padding: 25px 20px; }
    .rk-case-tabs { flex-direction: column; gap: 10px; }
    .rk-case-tab-btn { width: 100%; justify-content: flex-start; padding: 16px 20px; }
    .rk-case-data-bar { flex-direction: column; gap: 10px; text-align: center; }
    .rk-case-content-box { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-case-study",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Studium Przypadku: Ogrzewanie podłogowe na starym drewnianym stropie (Tarnowskie Góry)",
    "description": "Techniczna analiza modernizacji domu z lat 70. Jak układ meandrowy i system suchy uratowały drewniany strop przed zawaleniem ciężką wylewką.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-case-study",
    "name": "Porównanie obciążeń konstrukcyjnych przy modernizacji stropu",
    "description": "Zestawienie parametrów wagi oraz oporów cieplnych zastosowanych rozwiązań grzewczych w budynku z lat 70.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "podłogówka na drewnianym stropie",
      "waga wylewki betonowej m2",
      "lekki system suchy ogrzewanie",
      "remont domu z lat 70 podłogówka",
      "nośność stropu drewnianego wylewka",
      "układ meandrowy w systemie suchym"
    ],
    "measurementTechnique": "Szacunkowa inżynierska ocena wytrzymałości starych belek drewnianych na obciążenia statyczne generowane przez jastrych cementowy vs suchą zabudowę.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stan pierwotny: Strop drewniany z lat 70., dopuszczalne dodatkowe obciążenie krytyczne poniżej 50 kg/m2.",
        "Ryzyko (Wylewka betowa): 120-150 kg/m2 - ryzyko uszkodzenia konstrukcji nośnej.",
        "Wdrożone rozwiązanie (System suchy meander): 15-20 kg/m2 - pełne bezpieczeństwo statyczne przy zachowaniu wysokiej wydajności."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-case-study",
    "name": "Eksplorator Studium Przypadku: Remont Stropu",
    "description": "Narzędzie krok po kroku prezentujące proces inżynierskiego rozwiązywania problemu braku nośności stropu drewnianego pod instalację ogrzewania.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-container" id="case-study-module">
    <div class="rk-case-header">
        <div class="rk-case-badge">
            <span>Case Study</span>
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
        </div>
        <div class="rk-case-title-box">
            <h2>Ogrzewanie podłogowe na drewnianym stropie</h2>
            <p><strong>Lokalizacja:</strong> Tarnowskie Góry, woj. śląskie | <strong>Budynek:</strong> Dom z lat 70., 110 m² poddasza | <strong>Inwestor:</strong> Pan Tomasz</p>
        </div>
    </div>

    <div class="rk-case-body">
        
        <div class="rk-case-tabs" id="caseTabs">
            <button class="rk-case-tab-btn active" data-phase="problem">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                1. Diagnoza i Ryzyko
            </button>
            <button class="rk-case-tab-btn" data-phase="solution">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg>
                2. Rozwiązanie Inżynierskie
            </button>
            <button class="rk-case-tab-btn" data-phase="result">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                3. Efekt końcowy
            </button>
        </div>

        <div class="rk-case-content-box fade-in-content" id="caseContentBox">
            
            <div class="rk-case-data-bar" id="caseDataBar">
                <span>Zagrożenie: Zawalenie konstrukcji drewnianej</span>
                <span>Waga <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" style="color:#115e59;">wylewki betonowej</a>: <strong style="color:#ef4444;">150 kg/m²</strong></span>
            </div>

            <div class="rk-case-svg-panel" id="caseSvgBox">
                <svg width="300" height="150" viewBox="0 0 300 150" fill="none" stroke="currentColor">
                    <rect x="20" y="90" width="260" height="20" fill="#d97706" stroke="#92400e" stroke-width="2"/>
                    <rect x="20" y="30" width="260" height="60" fill="#94a3b8" stroke="none"/>
                    <text x="150" y="65" font-size="14" fill="#ffffff" font-weight="bold" stroke="none" text-anchor="middle">Beton (Masa 150 kg/m²)</text>
                    <path d="M120 90 L150 120 L180 90" stroke="#ef4444" stroke-width="3" fill="none" class="anim-crack"/>
                    <path d="M150 120 L150 150" stroke="#ef4444" stroke-width="3" class="anim-crack" style="animation-delay: 0.5s;"/>
                </svg>
            </div>

            <div id="caseTextBox">
                <h3>Problem: Ciężar, który niszczy drewno</h3>
                <p>
                    Pan Tomasz rozpoczął remont piętra w klasycznym, śląskim domu z lat 70. zwącym się potocznie &#8222;kostką&#8221;. Podłogę na poddaszu wspierał <span class="rk-tech-pill">stary strop z legarów drewnianych</span>. Inwestor marzył o pozbyciu się grzejników, ale napotkał twardą barierę architektoniczną.
                </p>
                <p>
                    <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/">Ogrzewanie podłogowe w remontowanym budynku</a> realizowane w tradycyjnym systemie &#8222;mokrym&#8221; wymaga zalania rur około 6-centymetrową warstwą wylewki jastrychowej. Taki beton to dodatkowe obciążenie na poziomie 120 &#8211; 150 kg na każdy metr kwadratowy. Położenie takiej masy na 50-letnie drewniane belki groziło drastycznym ugięciem stropu, spękaniem płyt gipsowo-kartonowych na parterze, a w skrajnym przypadku katastrofą budowlaną.
                </p>
            </div>

        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = document.querySelectorAll('.rk-case-tab-btn');
    var contentBox = document.getElementById('caseContentBox');
    var dataBar = document.getElementById('caseDataBar');
    var svgBox = document.getElementById('caseSvgBox');
    var textBox = document.getElementById('caseTextBox');

    var caseData = {
        "problem": {
            barHtml: '<span>Zagrożenie: Uszkodzenie konstrukcji nośnej</span><span>Waga tradycyjnej wylewki: <strong style="color:#ef4444;">150 kg/m²</strong></span>',
            svg: '<svg width="300" height="150" viewBox="0 0 300 150" fill="none" stroke="currentColor"><rect x="20" y="90" width="260" height="20" fill="#d97706" stroke="#92400e" stroke-width="2"/><rect x="20" y="30" width="260" height="60" fill="#94a3b8" stroke="none"/><text x="150" y="65" font-size="14" fill="#ffffff" font-weight="bold" stroke="none" text-anchor="middle">Beton (Masa 150 kg/m²)</text><path d="M120 90 L150 120 L180 90" stroke="#ef4444" stroke-width="3" fill="none" class="anim-crack"/><path d="M150 120 L150 150" stroke="#ef4444" stroke-width="3" class="anim-crack" style="animation-delay: 0.5s;"/></svg>',
            title: "Problem: Ciężar, który niszczy drewno",
            text: '<p>Pan Tomasz rozpoczął remont piętra w klasycznym, śląskim domu z lat 70. zwącym się potocznie "kostką". Podłogę na poddaszu wspierał <span class="rk-tech-pill">stary strop z legarów drewnianych</span>. Inwestor marzył o pozbyciu się grzejników, ale napotkał twardą barierę architektoniczną.</p><p><a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/">Ogrzewanie podłogowe w remontowanym budynku</a> realizowane w tradycyjnym systemie "mokrym" wymaga zalania rur około 6-centymetrową warstwą wylewki jastrychowej. Taki beton to dodatkowe obciążenie na poziomie 120 - 150 kg na każdy metr kwadratowy. Położenie takiej masy na 50-letnie drewniane belki groziło drastycznym ugięciem stropu, spękaniem sufitów na parterze, a w skrajnym przypadku katastrofą budowlaną.</p>'
        },
        "solution": {
            barHtml: '<span>Rozwiązanie: Płyty frezowane i lamele aluminiowe</span><span>Redukcja wagi o: <strong style="color:#0f766e;">85%</strong></span>',
            svg: '<svg width="300" height="150" viewBox="0 0 300 150" fill="none" stroke="currentColor"><rect x="20" y="90" width="260" height="20" fill="#d97706" stroke="#92400e" stroke-width="2"/><rect x="20" y="70" width="260" height="20" fill="#e2e8f0" stroke="#94a3b8" stroke-width="1"/><path d="M40 75 L260 75" stroke="#0ea5e9" stroke-width="4"/><circle cx="80" cy="75" r="4" fill="#dc2626" stroke="none"/><circle cx="150" cy="75" r="4" fill="#dc2626" stroke="none"/><circle cx="220" cy="75" r="4" fill="#dc2626" stroke="none"/><text x="150" y="55" font-size="12" fill="#475569" stroke="none" text-anchor="middle" font-weight="bold">Lekki system suchy (układ meandrowy)</text></svg>',
            title: "Meander wpisany w system suchy",
            text: '<p>Weryfikacja inżynierska wykazała, że jedyną w 100% bezpieczną metodą jest zastosowanie <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">systemu suchego ogrzewania podłogowego</a>. Opiera się on na dedykowanych płytach ze styropianu XPS lub twardego włókna drzewnego o wysokiej gęstości, w których fabrycznie wyfrezowano rowki. </p><p>Tutaj technologia narzuca kształt: te rowki wymuszają prowadzenie rur właśnie w <span class="rk-tech-pill">układzie meandrowym</span>. Rura układana jest równolegle, osadzana w specjalnych blachach aluminiowych (lamelach), które stanowią radiator odbierający ciepło z rury i oddający je bezpośrednio do ułożonych na nich paneli lub suchych płyt jastrychowych. Nie wylewamy tu ani grama wody i betonu.</p>'
        },
        "result": {
            barHtml: '<span>Efekt: Komfort cieplny z pompą ciepła</span><span>Nowe obciążenie stropu: <strong style="color:#0f766e;">15 kg/m²</strong></span>',
            svg: '<svg width="300" height="150" viewBox="0 0 300 150" fill="none" stroke="currentColor"><rect x="20" y="110" width="260" height="20" fill="#d97706" stroke="#92400e" stroke-width="2"/><rect x="20" y="90" width="260" height="20" fill="#e2e8f0" stroke="none"/><path d="M40 95 L260 95" stroke="#fcd34d" stroke-width="4"/><circle cx="80" cy="95" r="4" fill="#dc2626" stroke="none"/><circle cx="150" cy="95" r="4" fill="#dc2626" stroke="none"/><circle cx="220" cy="95" r="4" fill="#dc2626" stroke="none"/><rect x="20" y="80" width="260" height="10" fill="#fef3c7" stroke="#b45309" stroke-width="1"/><path d="M80 70 L80 30 M150 70 L150 30 M220 70 L220 30" stroke="#f59e0b" stroke-width="3" stroke-dasharray="4 4" class="anim-crack"/><text x="150" y="20" font-size="12" fill="#d97706" stroke="none" text-anchor="middle" font-weight="bold">Błyskawiczne oddawanie ciepła</text></svg>',
            title: "Uratowany strop i błyskawiczna reakcja",
            text: '<p>Decyzja o wdrożeniu meandru w systemie suchym pozwoliła na zredukowanie ciężaru instalacji z niszczących 150 kg do <span class="rk-tech-pill">zaledwie 15 kg na metr kwadratowy</span>. Strop drewniany z lat 70. odzyskał statyczną stabilność, a całą inwestycję można było zrealizować bez naruszania konstrukcji budynku.</p><p>Co więcej, bark grubej warstwy betonu całkowicie wyeliminował <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplną</a>. Posadzka nagrzewa się w kilkadziesiąt minut, a nie w kilkanaście godzin. Dzięki temu <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/">podłogówka na drewnianym stropie</a> u Pana Tomasza stała się systemem wysoce responsywnym, gotowym do precyzyjnej i oszczędnej współpracy z jego nową pompą ciepła.</p>'
        }
    };

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Zarządzanie stanami zakładek
            btns.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');

            var phase = this.getAttribute('data-phase');
            var data = caseData[phase];

            // Wstrzyknięcie danych (bez instrukcji &&)
            if (data !== undefined) {
                // Restart CSS fade-in
                contentBox.classList.remove('fade-in-content');
                void contentBox.offsetWidth; // Wymuszenie reflow w przeglądarce
                contentBox.classList.add('fade-in-content');

                // Aktualizacja drzewa DOM
                dataBar.innerHTML = data.barHtml;
                svgBox.innerHTML = data.svg;
                textBox.innerHTML = '<h3>' + data.title + '</h3>' + data.text;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-exp-dark: #0f172a;
    --rk-exp-navy: #1e293b;
    --rk-exp-blue: #0284c7;
    --rk-exp-gold: #b45309;
    --rk-exp-gold-light: #fef3c7;
    --rk-exp-gray: #475569;
    --rk-exp-bg: #ffffff;
    --rk-exp-border: #e2e8f0;
}

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

/* Nagłówek i Profil */
.rk-exp-header-section {
    background: var(--rk-exp-light);
    padding: 40px;
    display: grid;
    grid-template-columns: 180px 1fr;
    gap: 35px;
    align-items: center;
    border-bottom: 1px solid var(--rk-exp-border);
}

.rk-exp-photo-box {
    width: 180px;
    height: 180px;
    border-radius: 50%;
    overflow: hidden;
    border: 4px solid var(--rk-exp-bg);
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}

.rk-exp-photo-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.rk-exp-bio h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-exp-dark);
    margin: 0 0 10px 0;
    line-height: 1.2;
}

.rk-exp-bio p {
    font-size: 16px;
    color: var(--rk-exp-gray);
    line-height: 1.6;
    margin: 0 0 20px 0;
}

.rk-exp-socials {
    display: flex;
    gap: 15px;
}

.rk-exp-social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: var(--rk-exp-navy);
    color: white;
    border-radius: 8px;
    text-decoration: none;
}

.rk-exp-social-link:hover {
    background: var(--rk-exp-blue);
}

.rk-exp-social-link svg {
    width: 20px;
    height: 20px;
}

/* Interaktywny Manifest (Brak animacji) */
.rk-exp-interactive {
    padding: 40px;
    background: var(--rk-exp-bg);
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 40px;
}

.rk-exp-rules-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-exp-rule-btn {
    background: #f8fafc;
    border: 1px solid var(--rk-exp-border);
    padding: 16px 20px;
    border-radius: 8px;
    cursor: pointer;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-exp-dark);
    text-align: left;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* Stany bez przejść (brak animacji) */
.rk-exp-rule-btn:hover {
    background: #f1f5f9;
}

.rk-exp-rule-btn.active {
    background: var(--rk-exp-navy);
    color: white;
    border-color: var(--rk-exp-navy);
}

.rk-exp-rule-btn svg {
    width: 18px;
    height: 18px;
}

/* Obszar Tekstowy */
.rk-exp-content-area {
    background: #f8fafc;
    border-radius: 12px;
    padding: 35px;
    border: 1px dashed var(--rk-exp-border);
}

.rk-exp-content-area h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-exp-gold);
    margin: 0 0 20px 0;
}

.rk-exp-content-area p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-exp-dark);
    margin: 0 0 15px 0;
}

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

.rk-exp-content-area a:hover {
    color: var(--rk-exp-navy);
}

.rk-quote-mark {
    font-size: 60px;
    color: var(--rk-exp-gold-light);
    line-height: 0;
    display: block;
    margin-bottom: 20px;
    font-family: Georgia, serif;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-exp-header-section { grid-template-columns: 1fr; text-align: center; justify-items: center; padding: 30px 20px; }
    .rk-exp-socials { justify-content: center; }
    .rk-exp-interactive { grid-template-columns: 1fr; padding: 25px 20px; gap: 25px; }
    .rk-exp-content-area { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-ekspert",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Okiem eksperta: Robert Kucharski o projektowaniu instalacji meandrowych",
    "description": "Zestawienie autorskich zasad inżynierskich dotyczących unikania krytycznych wad wodnego ogrzewania podłogowego. Złote zasady samodzielnego montażu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-ekspert",
    "name": "Eksperckie wytyczne instalacyjne: Weryfikacja błędów montażowych",
    "description": "Zbiór żelaznych reguł hydraulicznych zabezpieczających inwestora przed kosztownymi poprawkami przy realizacji układów meandrowych i doborze automatyki.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wady wodnego ogrzewania podłogowego",
      "samodzielny montaż ogrzewania podłogowego",
      "sterowniki do ogrzewania podłogowego",
      "projekt ogrzewania podłogowego z głowy vs z obliczeniami",
      "opinia eksperta hvac",
      "robert kucharski projekt ogrzewania"
    ],
    "measurementTechnique": "Weryfikacja najczęściej popełnianych błędów wykonawczych w odniesieniu do obliczeń inżynierskich i normatywów budowlanych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zasada 1: Obliczenia zastępują zgadywanie. Różnica między projektem OZC a intuicją to tysiące złotych w rachunkach.",
        "Zasada 2: Automatyka to wtórny dodatek. Bez poprawnie rozplanowanego meandru, żaden sterownik nie naprawi hydrauliki.",
        "Zasada 3: Samodzielny montaż wymaga reżimu. Układanie rur bez zachowania reżimu promieni gięcia gwarantuje mikrouszkodzenia."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-ekspert",
    "name": "Interaktywny Manifest Instalatora HVAC",
    "description": "Narzędzie edukacyjne prezentujące bezpośrednie opinie i porady inżyniera Roberta Kucharskiego, ułatwiające weryfikację pracy firm wykonawczych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-exp-container" id="expert-opinion-module">
    <div class="rk-exp-header-section">
        <div class="rk-exp-photo-box">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Główny Inżynier Projekt-Ogrzewania.pl">
        </div>
        <div class="rk-exp-bio">
            <h2>Zdaniem eksperta: Robert Kucharski o układach meandrowych</h2>
            <p>CEO Projekt-Ogrzewania.pl. Posiada na swoim koncie ponad 1000 zrealizowanych projektów instalacji płaszczyznowych. Walczy z patologiami w branży instalacyjnej, promując twarde obliczenia inżynierskie zamiast wykonawstwa „na oko”.</p>
            <div class="rk-exp-socials">
                <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener noreferrer" class="rk-exp-social-link" aria-label="Facebook">
                    <svg viewBox="0 0 24 24" fill="currentColor"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
                </a>
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer" class="rk-exp-social-link" aria-label="LinkedIn">
                    <svg viewBox="0 0 24 24" fill="currentColor"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect x="2" y="9" width="4" height="12"></rect><circle cx="4" cy="4" r="2"></circle></svg>
                </a>
                <a href="https://x.com/Projekt_HVAC" target="_blank" rel="noopener noreferrer" class="rk-exp-social-link" aria-label="X Twitter">
                    <svg viewBox="0 0 24 24" fill="currentColor"><path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path></svg>
                </a>
            </div>
        </div>
    </div>

    <div class="rk-exp-interactive">
        <div class="rk-exp-rules-list" id="expertTabs">
            <button class="rk-exp-rule-btn active" data-rule="design">
                Złudzenie oszczędności na projekcie
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="9 18 15 12 9 6"></polyline></svg>
            </button>
            <button class="rk-exp-rule-btn" data-rule="diy">
                Ryzyko samodzielnego układania
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="9 18 15 12 9 6"></polyline></svg>
            </button>
            <button class="rk-exp-rule-btn" data-rule="auto">
                Mit magicznej automatyki
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="9 18 15 12 9 6"></polyline></svg>
            </button>
        </div>

        <div class="rk-exp-content-area">
            <span class="rk-quote-mark">&#8222;</span>
            <h3 id="expertTitle">Intuicja instalatora nie zastąpi kalkulatora</h3>
            <div id="expertText">
                <p>Jako inżynier widziałem setki instalacji robionych &#8222;na wyczucie&#8221;. Prawda jest brutalna: <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/">projekt ogrzewania podłogowego z głowy vs z obliczeniami</a> to różnica między komfortem a finansową katastrofą. Meander nie wybacza błędów w długości pętli. Jeśli instalator układając rury nie uwzględni precyzyjnych strat ciśnienia, zapłacisz za przewymiarowaną pompę ciepła, a i tak część pokoju będzie zimna.</p>
                <p>Nigdy nie oszczędzaj na audycie OZC, bo ta rzekoma &#8222;oszczędność&#8221; odbije się czkawką już podczas pierwszego sezonu grzewczego. Twarde dane projektowe to jedyna polisa ubezpieczeniowa, jaką posiadasz przed zalaniem posadzki betonem.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = document.querySelectorAll('.rk-exp-rule-btn');
    var expTitle = document.getElementById('expertTitle');
    var expText = document.getElementById('expertText');

    var ruleData = {
        "design": {
            title: "Intuicja instalatora nie zastąpi kalkulatora",
            html: '<p>Jako inżynier widziałem setki instalacji robionych "na wyczucie". Prawda jest brutalna: <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/">projekt ogrzewania podłogowego z głowy vs z obliczeniami</a> to różnica między komfortem a finansową katastrofą. Meander nie wybacza błędów w długości pętli. Jeśli instalator układając rury nie uwzględni precyzyjnych strat ciśnienia, zapłacisz za przewymiarowaną pompę ciepła, a i tak część pokoju będzie zimna.</p><p>Nigdy nie oszczędzaj na audycie OZC, bo ta rzekoma "oszczędność" odbije się czkawką już podczas pierwszego sezonu grzewczego. Twarde dane projektowe to jedyna polisa ubezpieczeniowa, jaką posiadasz przed zalaniem posadzki betonem.</p>'
        },
        "diy": {
            title: "Meander nie wybacza zagiętych rur na kolanie",
            html: '<p>Często otrzymuję pytania, czy <a href="https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/">samodzielny montaż ogrzewania podłogowego</a> ma sens. Owszem, można to zrobić, jeśli masz wiedzę. Ale pamiętaj: <a href="https://projekt-ogrzewania.pl/wady-wodnego-ogrzewania-podlogowego-na-co-zwrocic-uwage-przed-instalacja/">wady wodnego ogrzewania podłogowego</a> ujawniają się dopiero po latach. Głównym błędem "złotych rączek" przy układzie meandrowym jest łamanie struktury aluminium w rurach PEX podczas wymuszania zbyt wąskich promieni gięcia przy oknach.</p><p>Jeśli decydujesz się na montaż własnymi rękami, absolutnie nie pomijaj ciśnieniowej próby szczelności z protokołem. To Twoja jedyna gwarancja, że zgięty przed chwilą nawrót meandru nie będzie puszczał wody pod jastrychem.</p>'
        },
        "auto": {
            title: "Sterownik nie naprawi zepsutej hydrauliki",
            html: '<p>Inwestorzy często pytają mnie, <a href="https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/">czy warto montować sterowniki do ogrzewania podłogowego</a>, mając nadzieję, że droga elektronika wyrówna niedociągnięcia instalacyjne. To najdroższy mit w tej branży. Żaden, nawet najbardziej zaawansowany siłownik termoelektryczny na rozdzielaczu nie przepchnie ciepłej wody przez zbyt długą, źle zrotametrowaną pętlę meandrową.</p><p>Automatyka strefowa to wspaniały dodatek podnoszący komfort i oszczędności, ale tylko i wyłącznie w sytuacji, gdy fundament – czyli rury, rozstawy i wyliczone opory hydrauliczne – jest wykonany bezbłędnie. Zaczynaj od inżynierii, kończ na gadżetach.</p>'
        }
    };

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

            var target = this.getAttribute('data-rule');
            var data = ruleData[target];

            // Bezpieczne wstrzyknięcie zawartości bez operatorów && / ||
            if (data !== undefined) {
                if (data !== null) {
                    // Natychmiastowa podmiana tekstu (brak animacji CSS)
                    expTitle.innerHTML = data.title;
                    expText.innerHTML = data.html;
                }
            }
        });
    });
});
</script>



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

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

/* Nagłówek FAQ */
.rk-faq-header {
    background: linear-gradient(to right, var(--rk-faq-dark), #1e293b);
    padding: 35px 40px;
    color: white;
    display: flex;
    align-items: center;
    gap: 20px;
}

.rk-faq-header-icon {
    background: rgba(255, 255, 255, 0.1);
    padding: 15px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-faq-header-content h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 5px 0;
    color: white;
}

.rk-faq-header-content p {
    font-size: 15px;
    color: #94a3b8;
    margin: 0;
}

/* Sekcja Akordeonu */
.rk-faq-body {
    padding: 30px 40px;
    background: #f8fafc;
}

.rk-accordion-item {
    background: white;
    border: 1px solid var(--rk-faq-border);
    border-radius: 12px;
    margin-bottom: 15px;
    transition: all 0.3s ease;
    box-shadow: 0 2px 4px rgba(0,0,0,0.01);
}

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

.rk-accordion-item.active {
    border-color: var(--rk-faq-blue);
    box-shadow: 0 4px 15px rgba(2, 132, 199, 0.1);
}

.rk-accordion-btn {
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    padding: 20px 25px;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 15px;
}

.rk-accordion-btn h3 {
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-faq-text-dark);
    margin: 0;
    line-height: 1.4;
    transition: color 0.3s;
}

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

/* Ikona SVG Plusa/Minusa */
.rk-faq-icon {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    position: relative;
    color: var(--rk-faq-blue);
}

.rk-faq-icon svg {
    position: absolute;
    top: 0;
    left: 0;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-icon-plus { opacity: 1; transform: rotate(0deg); }
.rk-icon-minus { opacity: 0; transform: rotate(-90deg); }

.rk-accordion-item.active .rk-icon-plus { opacity: 0; transform: rotate(90deg); }
.rk-accordion-item.active .rk-icon-minus { opacity: 1; transform: rotate(0deg); }

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

.rk-accordion-inner {
    padding: 0 25px 25px 25px;
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-faq-text);
}

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

.rk-accordion-inner a:hover {
    border-bottom-color: var(--rk-faq-blue);
    background: var(--rk-faq-blue-light);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-faq-header { flex-direction: column; text-align: center; padding: 30px 20px; }
    .rk-faq-body { padding: 20px; }
    .rk-accordion-btn { padding: 15px 20px; }
    .rk-accordion-btn h3 { font-size: 15px; }
    .rk-accordion-inner { padding: 0 20px 20px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "FAQ – Najczęściej zadawane pytania dotyczące układu meandrowego",
    "description": "Techniczne kompendium wiedzy odpowiadające na pytania inwestorów dotyczące układu meandrowego, kosztów robocizny, doboru wylewki oraz zasilania z rozdzielacza.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czym różni się układ meandrowy od ślimakowego w ogrzewaniu podłogowego?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Układ meandrowy prowadzi rury równolegle w formie węża, co generuje liniowy spadek temperatury czynnika i wyższe opory hydrauliczne. Układ ślimakowy prowadzi rury spiralnie (zasilanie obok powrotu), co zapewnia w pełni równomierny rozkład temperatur na całej powierzchni podłogi."
        }
      },
      {
        "@type": "Question",
        "name": "Jaki jest maksymalny koszt robocizny za ułożenie meandru podłogówki?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Średni koszt samej robocizny waha się w granicach 25 – 35 PLN/m², w zależności od stopnia skomplikowania architektury pomieszczeń. Do tej kwoty należy doliczyć koszt materiałów instalacyjnych oraz montażu szafki rozdzielacza."
        }
      },
      {
        "@type": "Question",
        "name": "Czy w układzie meandrowym można stosować panele podłogowe?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, pod warunkiem że panele posiadają atest producenta potwierdzający opór termiczny R ≤ 0,15 m²K/W dla całego systemu posadzkowego. Ze względu na gradient temperatur w meandrze, zaleca się stosowanie paneli montowanych na klej, co poprawia transfer ciepła."
        }
      },
      {
        "@type": "Question",
        "name": "Jaka jest optymalna grubość wylewki betonowej nad rurą meandrową?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Optymalna grubość warstwy jastrychu betonowego nad zewnętrzną ścianką rury grzewczej wynosi 45 – 50 mm (całkowita grubość wylewki to ok. 65 mm). Dla jastrychów anhydrytowych, dzięki wyższej wytrzymałości na zginanie, grubość nad rurą można zmniejszyć do 35 mm."
        }
      },
      {
        "@type": "Question",
        "name": "Ile pętli meandrowych można podłączyć pod jeden rozdzielacz?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Standardowe rozdzielacze obsługują od 2 do 12 pętli (sekcji). Maksymalna liczba pętli zależy od wydajności pompy obiegowej oraz średnicy kolektora głównego rozdzielacza (standard to 1 cal), który przy pełnym obciążeniu nie powinien generować prędkości przepływu większej niż 0,4 m/s."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-faq",
    "name": "Kluczowe Parametry Wykonawcze Układu Meandrowego",
    "description": "Zbiór danych technicznych obejmujący ceny robocizny, limity grubości jastrychu oraz maksymalną dopuszczalną ilość pętli na jednym rozdzielaczu mosiężnym lub INOX.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "cena robocizny podłogówki m2",
      "grubość wylewki na podłogówkę",
      "maksymalna ilość pętli rozdzielacza",
      "panele na ogrzewanie podłogowe opór",
      "różnica meander a ślimak"
    ],
    "measurementTechnique": "Dane oparte na normach PN-EN 1264, charakterystykach pomp obiegowych oraz uśrednionych stawkach instalatorskich na rok 2026.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Robocizna: 25 - 35 PLN/m2",
        "Opór cieplny paneli: max 0,15 m2K/W",
        "Wylewka betonowa nad rurą: 45 - 50 mm",
        "Maksymalna ilość pętli: 12 na rozdzielacz 1 cal"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-faq",
    "name": "Interaktywna Baza Wiedzy FAQ",
    "description": "Dynamiczny komponent akordeonowy umożliwiający inwestorom szybkie przeglądanie najważniejszych pytań technicznych bez konieczności przeładowywania strony.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-container" id="faq-meander">
    <div class="rk-faq-header">
        <div class="rk-faq-header-icon">
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <circle cx="12" cy="12" r="10"></circle>
                <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
                <line x1="12" y1="17" x2="12.01" y2="17"></line>
            </svg>
        </div>
        <div class="rk-faq-header-content">
            <h2>FAQ – Najczęściej zadawane pytania dotyczące układu meandrowego</h2>
            <p>Konkretne odpowiedzi na pytania, które decydują o komforcie i kosztach eksploatacji Twojego domu.</p>
        </div>
    </div>

    <div class="rk-faq-body" id="rkFaqWrapper">
        
        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <h3>Czym różni się układ meandrowy od ślimakowego w ogrzewaniu podłogowym?</h3>
                <div class="rk-faq-icon">
                    <svg class="rk-icon-plus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                    <svg class="rk-icon-minus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content">
                <div class="rk-accordion-inner">
                    Układ meandrowy prowadzi rury równolegle w formie węża, co generuje liniowy spadek temperatury czynnika i wyższe opory hydrauliczne. <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/">Układ ślimakowy</a> prowadzi rury spiralnie (zasilanie obok powrotu), co zapewnia w pełni równomierny rozkład temperatur na całej powierzchni podłogi.
                </div>
            </div>
        </div>

        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <h3>Jaki jest maksymalny koszt robocizny za ułożenie meandru podłogówki?</h3>
                <div class="rk-faq-icon">
                    <svg class="rk-icon-plus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                    <svg class="rk-icon-minus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content">
                <div class="rk-accordion-inner">
                    Średni <a href="https://projekt-ogrzewania.pl/podlogowka-cena-za-m%c2%b2-robocizny/">koszt samej robocizny</a> waha się w granicach <strong>25 – 35 PLN/m²</strong>, w zależności od stopnia skomplikowania architektury pomieszczeń. Do tej kwoty należy doliczyć koszt materiałów instalacyjnych oraz montażu szafki rozdzielacza.
                </div>
            </div>
        </div>

        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <h3>Czy w układzie meandrowym można stosować panele podłogowe?</h3>
                <div class="rk-faq-icon">
                    <svg class="rk-icon-plus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                    <svg class="rk-icon-minus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content">
                <div class="rk-accordion-inner">
                    Tak, pod warunkiem że panele posiadają atest producenta potwierdzający opór termiczny <strong>R ≤ 0,15 m²K/W</strong> dla całego systemu posadzkowego. Ze względu na gradient temperatur w meandrze, zaleca się stosowanie <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/">paneli montowanych na klej</a>, co drastycznie poprawia transfer ciepła.
                </div>
            </div>
        </div>

        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <h3>Jaka jest optymalna grubość wylewki betonowej nad rurą meandrową?</h3>
                <div class="rk-faq-icon">
                    <svg class="rk-icon-plus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                    <svg class="rk-icon-minus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content">
                <div class="rk-accordion-inner">
                    Optymalna grubość warstwy <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">jastrychu betonowego</a> nad zewnętrzną ścianką rury grzewczej wynosi <strong>45 – 50 mm</strong> (całkowita grubość wylewki to ok. 65 mm). Dla jastrychów anhydrytowych, dzięki wyższej wytrzymałości na zginanie, grubość nad rurą można zmniejszyć do 35 mm.
                </div>
            </div>
        </div>

        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <h3>Ile pętli meandrowych można podłączyć pod jeden rozdzielacz?</h3>
                <div class="rk-faq-icon">
                    <svg class="rk-icon-plus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                    <svg class="rk-icon-minus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content">
                <div class="rk-accordion-inner">
                    Standardowe <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielacze do podłogówki</a> obsługują od 2 do 12 pętli (sekcji). Maksymalna liczba pętli zależy od wydajności <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompy obiegowej</a> oraz średnicy kolektora głównego rozdzielacza (standard to 1 cal), który przy pełnym obciążeniu nie powinien generować prędkości przepływu większej niż 0,4 m/s.
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var accBtns = document.querySelectorAll('.rk-accordion-btn');

    accBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var item = this.parentElement;
            var content = this.nextElementSibling;
            
            // Check if clicked item is currently active
            var isActive = item.classList.contains('active');

            // Close all items
            var allItems = document.querySelectorAll('.rk-accordion-item');
            allItems.forEach(function(el) {
                el.classList.remove('active');
                var elBtn = el.querySelector('.rk-accordion-btn');
                if (elBtn) {
                    elBtn.setAttribute('aria-expanded', 'false');
                }
                var elContent = el.querySelector('.rk-accordion-content');
                if (elContent) {
                    elContent.style.maxHeight = null;
                }
            });

            // If it wasn't active, open it (safe JS logic)
            if (isActive === false) {
                item.classList.add('active');
                this.setAttribute('aria-expanded', 'true');
                content.style.maxHeight = content.scrollHeight + "px";
            }
        });
    });
});
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-navy: #1e293b;
    --rk-dl-blue: #0284c7;
    --rk-dl-blue-light: #f0f9ff;
    --rk-dl-gray: #475569;
    --rk-dl-gray-light: #f1f5f9;
    --rk-dl-bg: #ffffff;
    --rk-dl-border: #e2e8f0;
}

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

/* Header */
.rk-dl-header {
    background: var(--rk-dl-navy);
    padding: 35px 40px;
    color: white;
    border-bottom: 4px solid var(--rk-dl-blue);
}

.rk-dl-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 10px 0;
    color: white;
    display: flex;
    align-items: center;
    gap: 12px;
}

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

/* Interfejs 2-kolumnowy (Desktop) */
.rk-dl-body {
    padding: 40px;
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 40px;
    background: var(--rk-dl-bg);
    align-items: center;
}

/* Miniatura Infografiki */
.rk-dl-thumb-wrapper {
    background: var(--rk-dl-gray-light);
    border: 1px solid var(--rk-dl-border);
    border-radius: 12px;
    padding: 15px;
    position: relative;
    cursor: pointer;
}

.rk-dl-thumb-wrapper img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    display: block;
    border: 1px solid var(--rk-dl-border);
}

.rk-dl-zoom-hint {
    position: absolute;
    bottom: 25px;
    right: 25px;
    background: var(--rk-dl-dark);
    color: white;
    padding: 8px 12px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 800;
    display: flex;
    align-items: center;
    gap: 6px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.2);
}

.rk-dl-zoom-hint svg {
    width: 16px;
    height: 16px;
}

/* Akcje i Opis */
.rk-dl-actions-box h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-dl-dark);
    margin: 0 0 15px 0;
}

.rk-dl-actions-box p {
    font-size: 15px;
    color: var(--rk-dl-gray);
    line-height: 1.7;
    margin: 0 0 25px 0;
}

.rk-dl-buttons {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

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

/* Brak animacji / przejść */
.rk-btn-primary {
    background: var(--rk-dl-blue);
    color: white;
}

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

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

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

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

/* Nota Prawna / Copyright */
.rk-dl-footer {
    background: var(--rk-dl-gray-light);
    padding: 20px 40px;
    border-top: 1px solid var(--rk-dl-border);
    font-size: 13px;
    line-height: 1.6;
    color: var(--rk-dl-gray);
    text-align: center;
}

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

/* Modal do podglądu (Brak animacji, pojawia się natychmiast) */
.rk-modal {
    display: none;
    position: fixed;
    z-index: 99999;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(15, 23, 42, 0.95);
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.rk-modal-content {
    max-width: 90vw;
    max-height: 90vh;
    border-radius: 8px;
    border: 2px solid var(--rk-dl-gray);
}

.rk-modal-close {
    position: absolute;
    top: 20px;
    right: 30px;
    color: white;
    font-size: 40px;
    font-weight: bold;
    cursor: pointer;
    line-height: 1;
}

.rk-modal-close:hover {
    color: var(--rk-dl-blue);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-dl-header { padding: 30px 20px; }
    .rk-dl-body { grid-template-columns: 1fr; padding: 25px 20px; gap: 30px; }
    .rk-dl-footer { padding: 20px; }
    .rk-btn { width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Kompendium wiedzy: Pobierz infografikę techniczną instalacji meandrowej",
    "description": "Profesjonalna infografika w formacie PDF i WebP podsumowująca 8 najważniejszych kroków i parametrów dla instalacji ogrzewania podłogowego w układzie meandrowym.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Infografika-Instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-infografika",
    "name": "Infografika techniczna: Instalacja ogrzewania podłogowego w układzie meandrowym",
    "description": "Ustrukturyzowany zbiór wytycznych projektowych obejmujący m.in. rozstawy rur, długości pętli, temperatury zasilania oraz najczęstsze błędy wykonawcze.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika podłogówka meander",
      "schemat układu meandrowego pdf",
      "pobierz schemat podłogówki",
      "robert kucharski materiały techniczne",
      "parametry instalacji podłogowej pdf",
      "instrukcja montażu ogrzewania płaszczyznowego"
    ],
    "measurementTechnique": "Ekstrakcja kluczowych danych liczbowych (np. rozstaw 10-20 cm, pętla max 80-100 m) do zwięzłej formy graficznej i dokumentu PDF.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Format pliku: PDF (Wysoka rozdzielczość do druku).",
        "Format pliku: WebP (Optymalizacja cyfrowa).",
        "Zawartość: 8 kluczowych bloków wiedzy inżynierskiej, parametry instalacji, zestawienie korzyści i najczęstszych błędów."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-repozytorium",
    "name": "Interaktywne Repozytorium Materiałów Inżynierskich",
    "description": "Aplikacyjny moduł służący do bezpiecznego podglądu bezpośredniego oraz pobierania autorskich opracowań inżynierskich w formatach bezstratnych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-container" id="engineering-materials">
    <div class="rk-dl-header">
        <h2>
            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="12" y1="18" x2="12" y2="12"></line><line x1="9" y1="15" x2="12" y2="18"></line><line x1="15" y1="15" x2="12" y2="18"></line></svg>
            Materiały dla Inwestora i Wykonawcy
        </h2>
        <p>Zabrałeś z tego artykułu mnóstwo wiedzy. Pobierz teraz techniczną infografikę, wydrukuj ją i zabierz na budowę, aby kontrolować poprawność wykonywanych prac instalacyjnych.</p>
    </div>

    <div class="rk-dl-body">
        
        <div class="rk-dl-thumb-wrapper" id="openImageBtn">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Infografika-Instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym.webp" alt="Infografika - Instalacja ogrzewania podłogowego w układzie meandrowym">
            <div class="rk-dl-zoom-hint">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                Powiększ
            </div>
        </div>

        <div class="rk-dl-actions-box">
            <h3>Techniczne podsumowanie na 1 stronie</h3>
            <p>Zestawienie parametrów brzegowych, twardych danych dotyczących długości pętli, rozstawów oraz krytycznych błędów. Plik PDF został zoptymalizowany do bezstratnego wydruku w formacie A4.</p>
            
            <div class="rk-dl-buttons">
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Infografika-Instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym.pdf" target="_blank" rel="noopener noreferrer" class="rk-btn rk-btn-primary">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
                    Pobierz dokument PDF
                </a>
                <button class="rk-btn rk-btn-secondary" id="viewImageBtn">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path><circle cx="12" cy="12" r="3"></circle></svg>
                    Wyświetl pełną grafikę
                </button>
            </div>
        </div>

    </div>

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

<div id="imageModal" class="rk-modal">
    <span class="rk-modal-close" id="closeModalBtn">&times;</span>
    <img decoding="async" class="rk-modal-content" src="https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Infografika-Instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym.webp" alt="Pełny podgląd infografiki meander">
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var modal = document.getElementById("imageModal");
    var openBtn1 = document.getElementById("openImageBtn");
    var openBtn2 = document.getElementById("viewImageBtn");
    var closeBtn = document.getElementById("closeModalBtn");

    function openModal() {
        modal.style.display = "flex";
    }

    function closeModal() {
        modal.style.display = "none";
    }

    // Podpięcie zdarzeń
    openBtn1.addEventListener("click", openModal);
    openBtn2.addEventListener("click", openModal);
    closeBtn.addEventListener("click", closeModal);

    // Zamknięcie modala po kliknięciu w czarne tło (bezpieczny JS bez znaków || oraz &&)
    modal.addEventListener("click", function(event) {
        if (event.target === modal) {
            closeModal();
        }
    });
});
</script>



<style>
:root {
    --rk-end-dark: #0f172a;
    --rk-end-blue: #0284c7;
    --rk-end-blue-light: #e0f2fe;
    --rk-end-green: #059669;
    --rk-end-green-bg: #d1fae5;
    --rk-end-red: #dc2626;
    --rk-end-bg: #ffffff;
    --rk-end-border: #e2e8f0;
    --rk-end-text: #334155;
}

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

/* Header */
.rk-end-header {
    background: var(--rk-end-dark);
    padding: 40px;
    color: white;
    text-align: center;
    border-bottom: 4px solid var(--rk-end-blue);
}

.rk-end-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: white;
}

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

/* Interactive Section */
.rk-end-interactive {
    padding: 40px;
    background: #f8fafc;
}

.rk-end-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: stretch;
}

/* Accordion Buttons */
.rk-step-list {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-step-btn {
    background: white;
    border: 2px solid var(--rk-end-border);
    padding: 20px;
    border-radius: 12px;
    cursor: pointer;
    text-align: left;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-step-btn:hover {
    border-color: #bae6fd;
    background: #f0f9ff;
}

.rk-step-btn.active {
    border-color: var(--rk-end-blue);
    background: var(--rk-end-blue-light);
    box-shadow: 0 4px 12px rgba(2, 132, 199, 0.1);
}

.rk-step-num {
    background: var(--rk-end-dark);
    color: white;
    font-weight: 900;
    font-size: 18px;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    flex-shrink: 0;
}

.rk-step-btn.active .rk-step-num {
    background: var(--rk-end-blue);
}

.rk-step-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-end-text);
    margin: 0;
}

/* Visual Result Panel */
.rk-viz-panel {
    background: white;
    border-radius: 16px;
    padding: 30px;
    border: 1px solid var(--rk-end-border);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-viz-svg-container {
    width: 120px;
    height: 120px;
    margin-bottom: 20px;
}

.rk-viz-title {
    font-size: 20px;
    font-weight: 800;
    margin: 0 0 10px 0;
    color: var(--rk-end-dark);
}

.rk-viz-desc {
    font-size: 15px;
    color: #475569;
    line-height: 1.6;
    margin: 0;
}

/* Animacje SVG */
.rk-path-anim {
    stroke-dasharray: 1000;
    stroke-dashoffset: 1000;
    animation: drawPath 1.5s forwards ease-in-out;
}

@keyframes drawPath {
    to { stroke-dashoffset: 0; }
}

/* Artykuł Text */
.rk-end-text-content {
    padding: 0 40px 30px;
    background: #f8fafc;
}

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

.rk-end-text-content p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-end-text);
    margin: 0 0 15px 0;
}

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

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

/* Tagi */
.rk-end-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 30px;
    padding-top: 30px;
    border-top: 1px dashed var(--rk-end-border);
}

.rk-mat-tag {
    background: #e2e8f0;
    color: #475569;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    cursor: default;
    transition: background 0.2s;
}

.rk-mat-tag:hover {
    background: var(--rk-end-blue);
    color: white;
}

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

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

.rk-end-cta p {
    font-size: 16px;
    color: #64748b;
    margin: 0 auto 25px auto;
    max-width: 600px;
}

.rk-btn-final {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-end-dark);
    color: white;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 40px;
    border-radius: 12px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.4);
    transition: all 0.3s;
    border: 2px solid transparent;
}

.rk-btn-final:hover {
    background: var(--rk-end-blue);
    transform: translateY(-4px);
    box-shadow: 0 15px 30px -5px rgba(2, 132, 199, 0.5);
}

/* Responsive */
@media (max-width: 768px) {
    .rk-end-header, .rk-end-interactive, .rk-end-text-content, .rk-end-cta { padding: 30px 20px; }
    .rk-end-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-btn-final { width: 100%; font-size: 16px; padding: 18px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Podsumowanie: Meander - Inżynieria vs Oszczędności",
    "description": "Interaktywne podsumowanie zasad montażu instalacji ogrzewania podłogowego w układzie meandrowym. Analiza limitów pętli i zrównoważenia hydraulicznego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-zasady",
    "name": "Parametry Krytyczne dla Układu Meandrowego",
    "description": "Dane z norm technicznych określające limity wykonawcze układu meandrowego gwarantujące bezawaryjną pracę na dekady.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna długość pętli ogrzewania podłogowego",
      "regulacja przepływu na rotametrach",
      "ciśnieniowa próba szczelności podłogówki",
      "betonowanie ogrzewania podłogowego",
      "wylewka betonowa na ogrzewanie"
    ],
    "measurementTechnique": "Weryfikacja parametrów hydraulicznych z wytycznymi EN 1264 oraz PN-EN 12831.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Reguła 1: Maksymalna długość pojedynczej pętli to 100m dla rury PEX 16mm.",
        "Reguła 2: Konieczność kalibracji przepływu masowego na rotametrach (Hydronic Balancing).",
        "Reguła 3: Obligatoryjna próba ciśnieniowa wodą (6 bar) przed zabetonowaniem rur."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-weryfikator",
    "name": "Symulator Zasad Bezpieczeństwa Instalacji Meandrowej",
    "description": "Interaktywny panel weryfikujący poprawność wdrożenia 3 najważniejszych filarów inżynierskich przy budowie płaszczyznowego ogrzewania meandrowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-end-container" id="meander-summary">
    <div class="rk-end-header">
        <h2>Podsumowanie: Fundament podłogówki na dekady</h2>
        <p>Inżynieria nie znosi kompromisów. Wybierz jeden z filarów bezpieczeństwa instalacji meandrowej poniżej, aby sprawdzić, co decyduje o sukcesie lub finansowej katastrofie Twojej budowy.</p>
    </div>

    <div class="rk-end-interactive">
        <div class="rk-end-grid">
            
            <div class="rk-step-list" id="ruleButtons">
                <button class="rk-step-btn active" data-rule="1">
                    <div class="rk-step-num">1</div>
                    <h4 class="rk-step-title">Limit 100 metrów pętli</h4>
                </button>
                <button class="rk-step-btn" data-rule="2">
                    <div class="rk-step-num">2</div>
                    <h4 class="rk-step-title">Kalibracja rotametrów</h4>
                </button>
                <button class="rk-step-btn" data-rule="3">
                    <div class="rk-step-num">3</div>
                    <h4 class="rk-step-title">Ciśnienie przed betonem</h4>
                </button>
            </div>

            <div class="rk-viz-panel" id="ruleVizBox">
                <div class="rk-viz-svg-container" id="svgContainer">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="width:100%; height:100%; stroke:#0284c7;">
                        <circle cx="12" cy="12" r="10" class="rk-path-anim"></circle>
                        <line x1="12" y1="8" x2="12" y2="12" class="rk-path-anim"></line>
                        <line x1="12" y1="16" x2="12.01" y2="16" class="rk-path-anim"></line>
                    </svg>
                </div>
                <h4 class="rk-viz-title" id="ruleTitle">Żelazna zasada hydrauliki</h4>
                <p class="rk-viz-desc" id="ruleDesc">
                    Przekroczenie bariery 100 metrów dla rury 16&#215;2.0 mm to wyrok dla pompy obiegowej. Wzrost oporów tarcia zablokuje przepływ masowy czynnika.
                </p>
            </div>

        </div>
    </div>

    <div class="rk-end-text-content">
        <h3>Meander: Precyzja, nie schemat</h3>
        <p>Instalacja ogrzewania podłogowego w układzie meandrowym to wysoce efektywne, inżynierskie rozwiązanie grzewcze, o ile zostanie wdrożone na podstawie precyzyjnych obliczeń hydraulicznych, a nie ogólnych schematów wykonawczych. Zdolność meandru do naturalnego koncentrowania mocy cieplnej w strefach brzegowych czyni go niezastąpionym komponentem nowoczesnego budownictwa energooszczędnego z dużymi przeszkleniami.</p>
        
        <p>Warunkiem bezwzględnym bezawaryjnej pracy przez kilkadziesiąt lat jest rygorystyczne przestrzeganie <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">limitów długości pętli</a> (maksymalnie 100 m dla rury PEX/PERT 16 mm), prawidłowe zrównoważenie przepływów masowych na <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrach</a> oraz bezkompromisowe wykonanie ciśnieniowej próby szczelności przed <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">etapem betonowania</a> wylewki.</p>
        
        <p>Każda próba chodzenia na skróty w tym obszarze, omijanie projektów i testów ciśnieniowych, generuje gigantyczne <a href="https://projekt-ogrzewania.pl/kompleksowa-wycena-ogrzewania-podlogowego-wodnego-na-co-przygotowac-budzet/">koszty naprawcze</a> na etapie wykończeniowym budynku (kucie gotowych płytek i jastrychu).</p>

        <div class="rk-end-tags">
            <span class="rk-mat-tag"># maksymalna długość pętli ogrzewania podłogowego</span>
            <span class="rk-mat-tag"># regulacja przepływu na rotametrach</span>
            <span class="rk-mat-tag"># układ meandrowy strefy brzegowe</span>
            <span class="rk-mat-tag"># ciśnieniowa próba szczelności podłogówki</span>
            <span class="rk-mat-tag"># ogrzewanie energooszczędne duże przeszklenia</span>
            <span class="rk-mat-tag"># koszty awarii ogrzewania podłogowego</span>
            <span class="rk-mat-tag"># hydrauliczne równoważenie instalacji</span>
            <span class="rk-mat-tag"># betonowanie ogrzewania podłogowego</span>
            <span class="rk-mat-tag"># wylewka betonowa na ogrzewanie</span>
            <span class="rk-mat-tag"># schemat układu meandrowego</span>
        </div>
    </div>

    <div class="rk-end-cta">
        <h4>Przestań tracić pieniądze na błędy wykonawców</h4>
        <p>Kucie jastrychu kosztuje dziesiątki tysięcy złotych. Dobry projekt i potężna wiedza inżynierska uchronią Cię przed najgorszym koszmarem inwestora.</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-final">
            ODKRYJ BAZĘ WIEDZY EKSKLUZYWNEJ I ZABEZPIECZ BUDOWĘ
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-step-btn');
    const svgContainer = document.getElementById('svgContainer');
    const ruleTitle = document.getElementById('ruleTitle');
    const ruleDesc = document.getElementById('ruleDesc');

    // Baza danych widoków (Bezpieczne dane bez instrukcji warunkowych &&)
    const ruleData = {
        "1": {
            title: "Żelazna zasada hydrauliki",
            desc: "Przekroczenie bariery 100 metrów dla rury 16x2.0 mm to wyrok dla pompy obiegowej. Wzrost oporów tarcia zablokuje przepływ masowy czynnika w pętli.",
            color: "#0284c7",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="width:100%; height:100%; stroke:#0284c7;"><path class="rk-path-anim" d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>'
        },
        "2": {
            title: "Równoważenie układu",
            desc: "Każdy obieg ma inną długość i inne straty. Przepływy na rotametrach muszą być wyliczone na bazie projektu OZC, a nie ustawione równo 'na dwójkę'.",
            color: "#eab308",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="width:100%; height:100%; stroke:#eab308;"><circle cx="12" cy="12" r="10" class="rk-path-anim"></circle><polyline points="12 6 12 12 16 14" class="rk-path-anim"></polyline></svg>'
        },
        "3": {
            title: "Zero litości dla usterek",
            desc: "Zalewanie jastrychem betonu bez utrzymania instalacji pod 6 barowym ciśnieniem próbnym to igranie z ogniem. Nieszczelność pętli = kucie całej podłogi.",
            color: "#dc2626",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="width:100%; height:100%; stroke:#dc2626;"><path class="rk-path-anim" d="M12 2v20"></path><path class="rk-path-anim" d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>'
        }
    };

    function updateView(ruleKey) {
        // Zabezpieczenie przed błędem
        let data = ruleData[ruleKey];
        if (data) {
            svgContainer.innerHTML = data.svg;
            ruleTitle.textContent = data.title;
            ruleDesc.textContent = data.desc;
            ruleTitle.style.color = data.color;
        }
    }

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Reset klas aktywnych
            btns.forEach(function(b) {
                b.classList.remove('active');
            });
            
            // Dodanie klasy aktywnej
            this.classList.add('active');
            
            // Pobranie danych
            let ruleVal = this.getAttribute('data-rule');
            updateView(ruleVal);
        });
    });
});
</script>



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

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

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

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

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

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