<?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 Materiały budowlane - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/category/materialy-budowlane/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/category/materialy-budowlane/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Tue, 29 Sep 2026 09:38:59 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa Materiały budowlane - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/category/materialy-budowlane/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Jak porównać wyceny ogrzewania podłogowego? Oferty wykonawców krok po kroku</title>
		<link>https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/</link>
					<comments>https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#respond</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 29 Sep 2026 09:37:47 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Instalacja ogrzewania podłogowego]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Koszty inwestycji]]></category>
		<category><![CDATA[Koszty ogrzewania]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Ogrzewanie domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradnik inwestora]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Projekt instalacji grzewczej]]></category>
		<category><![CDATA[Projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[budowa domu ogrzewanie]]></category>
		<category><![CDATA[cena podłogówki]]></category>
		<category><![CDATA[jak porównać wyceny ogrzewania podłogowego]]></category>
		<category><![CDATA[koszt instalacji podłogowej]]></category>
		<category><![CDATA[koszt ogrzewania podłogowego]]></category>
		<category><![CDATA[koszt wykonania podłogówki]]></category>
		<category><![CDATA[materiały do ogrzewania podłogowego]]></category>
		<category><![CDATA[oferta instalatora]]></category>
		<category><![CDATA[oferta na podłogówkę]]></category>
		<category><![CDATA[ogrzewanie podłogowe cena]]></category>
		<category><![CDATA[pętle ogrzewania podłogowego]]></category>
		<category><![CDATA[porównanie ofert wykonawców]]></category>
		<category><![CDATA[próba szczelności podłogówki]]></category>
		<category><![CDATA[projekt podłogówki]]></category>
		<category><![CDATA[regulacja ogrzewania podłogowego]]></category>
		<category><![CDATA[robocizna ogrzewania podłogowego]]></category>
		<category><![CDATA[rozdzielacz ogrzewania podłogowego]]></category>
		<category><![CDATA[wycena instalacji grzewczej]]></category>
		<category><![CDATA[wycena ogrzewania podłogowego]]></category>
		<category><![CDATA[wykonawca ogrzewania podłogowego]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=7769</guid>

					<description><![CDATA[<p>Porównujesz dwie lub trzy oferty na podłogówkę i każda wygląda zupełnie inaczej? Sama cena końcowa niewiele mówi, jeśli wykonawcy przyjęli różny zakres robót, liczbę pętli, materiały, sposób wykonania próby szczelności czy zakres uruchomienia instalacji. W tym poradniku pokazujemy, **jak porównać wyceny ogrzewania podłogowego**, aby sprawdzić, za co rzeczywiście płacisz i gdzie mogą pojawić się dodatkowe koszty. Znajdziesz tu praktyczną listę kontrolną, przykłady różnic między ofertami oraz interaktywne narzędzia pomagające uporządkować wyceny i przygotować jednakowe zapytanie do wykonawców.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/">Jak porównać wyceny ogrzewania podłogowego? Oferty wykonawców krok po kroku</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-quote-guide {
    --rq-ink: #102c3e;
    --rq-copy: #39576a;
    --rq-muted: #637c8a;
    --rq-navy: #0b2536;
    --rq-mid: #164257;
    --rq-cyan: #23bfd2;
    --rq-cyan-ink: #076c80;
    --rq-orange: #ff6846;
    --rq-green: #1b8f6d;
    --rq-border: #d2e3e9;
    --rq-soft: #f2f8fa;
    --rq-white: #fff;
    color: var(--rq-ink);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 16px;
    line-height: 1.65;
    margin: 0 auto;
    max-width: 1360px;
    overflow-wrap: anywhere;
    width: 100%;
  }
  #rk-quote-guide, #rk-quote-guide * { box-sizing: border-box; min-width: 0; }
  #rk-quote-guide a { color: #087996; text-decoration-thickness: 1px; text-underline-offset: 3px; }
  #rk-quote-guide a:hover { color: #d84d31; }
  #rk-quote-guide img { display: block; height: auto; max-width: 100%; }
  #rk-quote-guide button, #rk-quote-guide input, #rk-quote-guide select, #rk-quote-guide textarea { font: inherit; }
  #rk-quote-guide :is(a, button, input, select, textarea, summary):focus-visible {
    outline: 3px solid #19b9d4; outline-offset: 3px;
  }
  #rk-quote-guide .rq-shell {
    background: #fff; border: 1px solid var(--rq-border);
    box-shadow: 0 18px 56px rgba(12, 39, 55, .10); overflow: hidden;
  }
  #rk-quote-guide .rq-hero {
    background: radial-gradient(circle at 95% 108%, rgba(35,191,210,.22) 0 19%, transparent 19.2%),
      linear-gradient(122deg, #0b2536, #164257 65%, #0e6879);
    color: white; padding: 64px 58px 58px;
  }
  #rk-quote-guide .rq-kicker, #rk-quote-guide .rq-eyebrow {
    color: #61e4ef; display: block; font-size: .77rem; font-weight: 900;
    letter-spacing: .12em; margin: 0 0 16px; text-transform: uppercase;
  }
  #rk-quote-guide .rq-hero-title, #rk-quote-guide .rq-section h2, #rk-quote-guide .rq-author h2 {
    font-weight: 900; letter-spacing: -.035em; line-height: 1.1; margin: 0;
  }
  #rk-quote-guide .rq-hero-title { font-size: clamp(2.35rem, 5.9vw, 5.1rem); max-width: 1120px; }
  #rk-quote-guide .rq-hero-title span { color: #79e8f1; }
  #rk-quote-guide .rq-hero p { color: #e0eff4; font-size: clamp(1.03rem, 1.9vw, 1.4rem); margin: 23px 0 0; max-width: 1010px; }
  #rk-quote-guide .rq-tags, #rk-quote-guide .rq-meta, #rk-quote-guide .rq-nav { display: flex; flex-wrap: wrap; }
  #rk-quote-guide .rq-tags { gap: 9px; margin-top: 26px; }
  #rk-quote-guide .rq-tags span {
    border: 1px solid rgba(255,255,255,.28); border-radius: 99px;
    color: white; font-size: .82rem; font-weight: 800; padding: 7px 12px;
  }
  #rk-quote-guide .rq-meta { color: #d3e5eb; font-size: .82rem; gap: 12px 23px; margin-top: 32px; }
  #rk-quote-guide .rq-meta strong { color: white; }
  #rk-quote-guide .rq-nav { align-items: center; border-bottom: 1px solid var(--rq-border); gap: 8px; padding: 19px 29px; }
  #rk-quote-guide .rq-nav-label { font-size: .74rem; font-weight: 900; letter-spacing: .08em; margin-right: 5px; text-transform: uppercase; }
  #rk-quote-guide .rq-nav a {
    background: #eff6f8; border-radius: 30px; color: var(--rq-ink); font-size: .78rem;
    font-weight: 800; line-height: 1.3; padding: 8px 12px; text-decoration: none;
  }
  #rk-quote-guide .rq-nav a:hover { background: #dff7fa; color: #075a70; }
  #rk-quote-guide .rq-section, #rk-quote-guide .rq-author { padding: 61px 58px; }
  #rk-quote-guide .rq-section + .rq-section, #rk-quote-guide .rq-author { border-top: 1px solid var(--rq-border); }
  #rk-quote-guide .rq-section.rq-soft { background: var(--rq-soft); }
  #rk-quote-guide .rq-eyebrow { color: var(--rq-cyan-ink); margin-bottom: 11px; }
  #rk-quote-guide .rq-section h2, #rk-quote-guide .rq-author h2 { font-size: clamp(2rem, 3.9vw, 3.55rem); }
  #rk-quote-guide .rq-lead { color: var(--rq-copy); font-size: clamp(1.02rem, 1.6vw, 1.21rem); line-height: 1.7; margin: 20px 0 0; max-width: 1100px; }
  #rk-quote-guide .rq-copy { color: var(--rq-copy); margin: 20px 0 0; }
  #rk-quote-guide .rq-section h3 { color: var(--rq-ink); font-size: 1.29rem; line-height: 1.3; margin: 29px 0 12px; }
  #rk-quote-guide .rq-grid { display: grid; gap: 17px; margin-top: 26px; }
  #rk-quote-guide .rq-grid-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
  #rk-quote-guide .rq-grid-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
  #rk-quote-guide .rq-card { background: white; border: 1px solid var(--rq-border); border-radius: 17px; padding: 22px; }
  #rk-quote-guide .rq-card h3 { font-size: 1.11rem; margin: 0 0 10px; }
  #rk-quote-guide .rq-card p, #rk-quote-guide .rq-card li { color: var(--rq-copy); }
  #rk-quote-guide .rq-card p { margin: 0; }
  #rk-quote-guide .rq-num {
    align-items: center; background: #dff8fa; border-radius: 10px; color: #086b80;
    display: inline-flex; font-size: .8rem; font-weight: 900; justify-content: center;
    min-height: 36px; min-width: 36px; padding: 5px 9px; margin-bottom: 14px;
  }
  #rk-quote-guide .rq-answer { background: #e8f9fc; border: 1px solid #a6dfe7; border-left: 6px solid var(--rq-cyan); border-radius: 15px; margin-top: 25px; padding: 21px 24px; }
  #rk-quote-guide .rq-answer strong { display: block; font-size: 1.2rem; }
  #rk-quote-guide .rq-answer p { color: var(--rq-copy); margin: 8px 0 0; }
  #rk-quote-guide .rq-note { background: #fff5e6; border-left: 5px solid #eca927; border-radius: 12px; color: #614b20; margin-top: 24px; padding: 16px 20px; }
  #rk-quote-guide .rq-note p { margin: 0; }
  #rk-quote-guide .rq-note.rq-note-good { background: #eafaf4; border-color: #34c69b; color: #175e4c; }
  #rk-quote-guide .rq-list { color: var(--rq-copy); margin: 17px 0 0; padding-left: 22px; }
  #rk-quote-guide .rq-list li + li { margin-top: 8px; }
  #rk-quote-guide .rq-table-wrap { margin-top: 25px; overflow-x: auto; }
  #rk-quote-guide table { border-collapse: collapse; min-width: 740px; width: 100%; }
  #rk-quote-guide th { background: var(--rq-navy); color: white; font-size: .78rem; letter-spacing: .03em; padding: 14px; text-align: left; text-transform: uppercase; }
  #rk-quote-guide td { background: white; border: 1px solid var(--rq-border); color: var(--rq-copy); padding: 14px; vertical-align: top; }
  #rk-quote-guide td strong { color: var(--rq-ink); }
  #rk-quote-guide .rq-example { background: #102f41; border-radius: 20px; color: white; margin-top: 28px; padding: 26px; }
  #rk-quote-guide .rq-example h3 { color: white; margin-top: 0; }
  #rk-quote-guide .rq-example p { color: #dae8ed; }
  #rk-quote-guide .rq-example .rq-table-wrap { margin-top: 19px; }
  #rk-quote-guide .rq-small { color: var(--rq-muted); font-size: .82rem; line-height: 1.5; }
  #rk-quote-guide .rq-tool-wrap { background: #0b2536; color: #fff; margin-top: 29px; padding: 27px; border-radius: 21px; }
  #rk-quote-guide .rq-tool-wrap h3 { color: white; font-size: clamp(1.5rem,2.8vw,2.15rem); margin: 0; }
  #rk-quote-guide .rq-tool-wrap > p { color: #c5dce4; margin: 10px 0 0; }
  #rk-quote-guide .rq-tool-step {
    background: #163b4f; border: 1px solid #37657a; border-radius: 15px; margin-top: 16px; padding: 21px;
  }
  #rk-quote-guide .rq-tool-step h4 { color: #fff; font-size: 1.1rem; line-height: 1.3; margin: 0 0 15px; }
  #rk-quote-guide .rq-tool-step p, #rk-quote-guide .rq-tool-step small { color: #cfdee4; }
  #rk-quote-guide .rq-fields { display: grid; gap: 14px; grid-template-columns: repeat(2,minmax(0,1fr)); }
  #rk-quote-guide .rq-field, #rk-quote-guide .rq-offer-field { display: block; }
  #rk-quote-guide .rq-field > span, #rk-quote-guide .rq-offer-field > span {
    color: #e8f5f7; display: block; font-size: .82rem; font-weight: 800; line-height: 1.4; margin-bottom: 6px;
  }
  #rk-quote-guide .rq-field :is(select,input,textarea), #rk-quote-guide .rq-offer-field :is(select,input) {
    background: white; border: 1px solid #a9c2cf; border-radius: 9px; color: #102c3e; min-height: 46px; padding: 10px; width: 100%;
  }
  #rk-quote-guide .rq-field textarea { min-height: 130px; resize: vertical; }
  #rk-quote-guide .rq-field input::placeholder { color: #647887; opacity: 1; }
  #rk-quote-guide .rq-scope-grid { display: grid; gap: 9px; grid-template-columns: repeat(2,minmax(0,1fr)); }
  #rk-quote-guide .rq-checkline {
    align-items: flex-start; background: #225168; border: 1px solid #47748a;
    border-radius: 10px; color: #fff; display: flex; font-size: .86rem; gap: 9px;
    line-height: 1.4; padding: 11px; cursor: pointer;
  }
  #rk-quote-guide .rq-checkline input { accent-color: #28cad6; flex: 0 0 auto; height: 17px; margin: 2px 0 0; width: 17px; }
  #rk-quote-guide .rq-fixed-scope {
    background: #225168; border: 1px solid #71dce6; border-radius: 10px;
    color: #fff; font-size: .86rem; line-height: 1.4; padding: 11px;
  }
  #rk-quote-guide .rq-fixed-scope::before { color: #8ff0e9; content: "✓ "; font-weight: 900; }
  #rk-quote-guide .rq-offer-grid { display: grid; gap: 13px; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 16px; }
  #rk-quote-guide .rq-offer {
    background: #204b61; border: 1px solid #537b8e; border-radius: 12px;
    padding: 15px; 
  }
  #rk-quote-guide .rq-offer[hidden], #rk-quote-guide .rq-extra[hidden] { display: none; }
  #rk-quote-guide .rq-offer h5 { color: #fff; font-size: 1rem; margin: 0 0 13px; }
  #rk-quote-guide .rq-offer-field + .rq-offer-field { margin-top: 11px; }
  #rk-quote-guide .rq-item-grid { display: grid; gap: 13px; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 13px; }
  #rk-quote-guide .rq-item-name { color: #bff5f7; font-size: .91rem; font-weight: 900; line-height: 1.4; }
  #rk-quote-guide .rq-item-hint { color: #cbdee4; font-size: .81rem; line-height: 1.45; margin-top: 4px; }
  #rk-quote-guide .rq-scope-item { background: #214e63; border: 1px solid #426f82; border-radius: 13px; margin-top: 10px; padding: 15px; }
  #rk-quote-guide .rq-scope-item:first-child { margin-top: 0; }
  #rk-quote-guide .rq-scope-item .rq-offer-field { margin: 0; }
  #rk-quote-guide .rq-extra { margin-top: 9px; }
  #rk-quote-guide .rq-extra span { color: #e8f5f7; display: block; font-size: .76rem; font-weight: 800; margin-bottom: 3px; }
  #rk-quote-guide .rq-extra input { background: #fff; border: 1px solid #abc2cd; border-radius: 8px; color: #102c3e; min-height: 42px; padding: 8px; width: 100%; }
  #rk-quote-guide .rq-buttons { display: flex; flex-wrap: wrap; gap: 11px; margin-top: 20px; }
  #rk-quote-guide .rq-button {
    background: var(--rq-orange); border: 1px solid var(--rq-orange); border-radius: 10px;
    color: white; cursor: pointer; font-weight: 900; min-height: 48px; padding: 11px 17px;
  }
  #rk-quote-guide .rq-button:hover { background: #dd4f32; border-color: #dd4f32; }
  #rk-quote-guide .rq-button-outline { background: transparent; border-color: #83a5b4; }
  #rk-quote-guide .rq-button-outline:hover { background: #295166; border-color: #83a5b4; }
  #rk-quote-guide .rq-result { background: #fff; border-left: 6px solid #f0b43b; border-radius: 15px; color: var(--rq-ink); margin-top: 19px; padding: 21px; }
  #rk-quote-guide .rq-result.rq-result-good { border-left-color: #27bc93; }
  #rk-quote-guide .rq-result.rq-result-stop { border-left-color: var(--rq-orange); }
  #rk-quote-guide .rq-result h4 { color: var(--rq-ink); font-size: 1.36rem; line-height: 1.35; margin: 0; }
  #rk-quote-guide .rq-result p { color: var(--rq-copy); margin: 9px 0 0; }
  #rk-quote-guide .rq-result-grid { display: grid; gap: 12px; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 17px; }
  #rk-quote-guide .rq-result-col { background: #f1f7f9; border: 1px solid var(--rq-border); border-radius: 11px; padding: 14px; }
  #rk-quote-guide .rq-result-col h5 { color: #153246; font-size: .8rem; letter-spacing: .04em; margin: 0 0 8px; text-transform: uppercase; }
  #rk-quote-guide .rq-result-col ul { color: var(--rq-copy); font-size: .86rem; margin: 0; padding-left: 17px; }
  #rk-quote-guide .rq-result-col li + li { margin-top: 7px; }
  #rk-quote-guide .rq-result-col:first-child h5 { color: #168362; }
  #rk-quote-guide .rq-result-col:last-child h5 { color: #a14b2e; }
  #rk-quote-guide .rq-output { background: #fff; border: 1px solid #c5dce4; border-radius: 14px; color: var(--rq-ink); margin-top: 18px; padding: 18px; }
  #rk-quote-guide .rq-output label { color: var(--rq-ink); display: block; font-size: .91rem; font-weight: 900; margin-bottom: 8px; }
  #rk-quote-guide .rq-output textarea { background: #f5f9fa; border: 1px solid #b7d1dc; border-radius: 8px; color: var(--rq-ink); display: block; min-height: 280px; padding: 14px; resize: vertical; width: 100%; }
  #rk-quote-guide .rq-output .rq-button-outline { border-color: #538296; color: #103c50; }
  #rk-quote-guide .rq-output .rq-button-outline:hover { background: #e4f5f9; }
  #rk-quote-guide .rq-output [role="status"] { color: #1c6457; font-size: .85rem; margin-top: 8px; min-height: 1.4em; }
  #rk-quote-guide .rq-cta { background: linear-gradient(125deg,#0b2536,#18485d 73%,#116c78); border-radius: 20px; color: #fff; margin-top: 29px; padding: 32px; }
  #rk-quote-guide .rq-cta h3 { color: #fff; font-size: clamp(1.55rem,3vw,2.55rem); margin: 0; }
  #rk-quote-guide .rq-cta p { color: #daeaf0; margin: 14px 0 0; }
  #rk-quote-guide .rq-cta a.rq-cta-link {
    background: var(--rq-orange); border-radius: 10px; color: white;
    display: inline-block; font-weight: 900; margin-top: 19px; padding: 12px 18px;
    text-decoration: none;
  }
  #rk-quote-guide .rq-cta a.rq-cta-link:hover { background: white; color: #d94d30; }
  #rk-quote-guide .rq-cta small { color: #bdd6de; display: block; font-size: .76rem; margin-top: 10px; }
  #rk-quote-guide .rq-faq { display: grid; gap: 11px; margin-top: 26px; }
  #rk-quote-guide .rq-faq details { background: #fff; border: 1px solid var(--rq-border); border-radius: 12px; overflow: hidden; }
  #rk-quote-guide .rq-faq summary { color: var(--rq-ink); cursor: pointer; font-weight: 900; list-style: none; padding: 17px 48px 17px 19px; position: relative; }
  #rk-quote-guide .rq-faq summary::-webkit-details-marker { display: none; }
  #rk-quote-guide .rq-faq summary::after { color: var(--rq-cyan-ink); content: "+"; font-size: 1.5rem; position: absolute; right: 18px; top: 9px; }
  #rk-quote-guide .rq-faq details[open] summary::after { content: "−"; }
  #rk-quote-guide .rq-faq-answer { border-top: 1px solid var(--rq-border); color: var(--rq-copy); padding: 17px 19px; }
  #rk-quote-guide .rq-faq-answer p { margin: 0; }
  #rk-quote-guide .rq-sources { display: grid; gap: 14px; grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 23px; }
  #rk-quote-guide .rq-source { background: white; border: 1px solid var(--rq-border); border-radius: 13px; padding: 18px; }
  #rk-quote-guide .rq-source a { font-weight: 900; }
  #rk-quote-guide .rq-source p { color: var(--rq-copy); margin: 7px 0 0; }
  #rk-quote-guide .rq-author { background: #eaf4f7; }
  #rk-quote-guide .rq-author-layout { background: white; border: 1px solid var(--rq-border); border-radius: 18px; display: grid; grid-template-columns: 250px minmax(0,1fr); margin-top: 25px; overflow: hidden; }
  #rk-quote-guide .rq-author-side { align-items: center; background: #0b2536; color: white; display: flex; flex-direction: column; padding: 30px 19px; text-align: center; }
  #rk-quote-guide .rq-author-side img { border: 5px solid rgba(255,255,255,.22); border-radius: 50%; height: 145px; object-fit: cover; width: 145px; }
  #rk-quote-guide .rq-author-side strong { font-size: 1.15rem; margin-top: 17px; }
  #rk-quote-guide .rq-author-side p { color: #ccdee5; font-size: .83rem; margin: 8px 0 0; }
  #rk-quote-guide .rq-social { display: flex; gap: 9px; margin-top: 19px; }
  #rk-quote-guide .rq-social a { align-items: center; border: 1px solid #618299; border-radius: 50%; color: white; display: inline-flex; font-size: .85rem; font-weight: 900; height: 39px; justify-content: center; text-decoration: none; width: 39px; }
  #rk-quote-guide .rq-author-body { padding: 30px; }
  #rk-quote-guide .rq-author-body p { color: var(--rq-copy); margin: 0 0 15px; }
  #rk-quote-guide .rq-author-body blockquote { background: #eef8fa; border-left: 5px solid var(--rq-cyan); border-radius: 11px; color: var(--rq-ink); font-size: 1.05rem; font-style: italic; font-weight: 700; line-height: 1.65; margin: 0 0 18px; padding: 17px; }
  #rk-quote-guide .rq-sr-only { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
  @media(max-width:1000px) {
    #rk-quote-guide .rq-result-grid { grid-template-columns: 1fr; }
    #rk-quote-guide .rq-offer-grid, #rk-quote-guide .rq-item-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  }
  @media(max-width:760px) {
    #rk-quote-guide .rq-hero, #rk-quote-guide .rq-section, #rk-quote-guide .rq-author { padding-left: 25px; padding-right: 25px; }
    #rk-quote-guide .rq-grid-3, #rk-quote-guide .rq-author-layout { grid-template-columns: 1fr; }
    #rk-quote-guide .rq-offer-grid, #rk-quote-guide .rq-item-grid { grid-template-columns: 1fr; }
    #rk-quote-guide .rq-offer { margin-top: 2px; }
  }
  @media(max-width:580px) {
    #rk-quote-guide .rq-hero, #rk-quote-guide .rq-section, #rk-quote-guide .rq-author { padding: 43px 18px; }
    #rk-quote-guide .rq-nav { padding: 16px; }
    #rk-quote-guide .rq-grid-2, #rk-quote-guide .rq-fields, #rk-quote-guide .rq-scope-grid, #rk-quote-guide .rq-sources { grid-template-columns: 1fr; }
    #rk-quote-guide .rq-tool-wrap, #rk-quote-guide .rq-example, #rk-quote-guide .rq-cta { padding: 19px; }
    #rk-quote-guide .rq-tool-step { padding: 15px; }
    #rk-quote-guide .rq-buttons { flex-direction: column; }
    #rk-quote-guide .rq-button, #rk-quote-guide .rq-cta a.rq-cta-link { text-align: center; width: 100%; }
    #rk-quote-guide .rq-table-wrap { overflow: visible; }
    #rk-quote-guide table, #rk-quote-guide thead, #rk-quote-guide tbody, #rk-quote-guide tr, #rk-quote-guide td { display: block; min-width: 0; width: 100%; }
    #rk-quote-guide thead { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; width: 1px; }
    #rk-quote-guide tbody { display: grid; gap: 13px; }
    #rk-quote-guide tr { border: 1px solid var(--rq-border); border-radius: 12px; overflow: hidden; }
    #rk-quote-guide td { border: 0; border-bottom: 1px solid var(--rq-border); }
    #rk-quote-guide td:last-child { border-bottom: 0; }
    #rk-quote-guide td::before { color: var(--rq-cyan-ink); content: attr(data-label); display: block; font-size: .72rem; font-weight: 900; letter-spacing: .05em; margin-bottom: 4px; text-transform: uppercase; }
    #rk-quote-guide .rq-author-body { padding: 22px; }
  }
  @media(prefers-reduced-motion:reduce) { #rk-quote-guide *, #rk-quote-guide *::before, #rk-quote-guide *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; } }
</style>

<article id="rk-quote-guide" aria-labelledby="rq-hero-title">
  <div class="rq-shell">
    <header class="rq-hero">
      <span class="rq-kicker">Dwie lub trzy oferty · jedna decyzja inwestora</span>
      <div class="rq-hero-title" id="rq-hero-title">Jak porównać wyceny ogrzewania podłogowego? <span>Najpierw zakres, potem kwota</span></div>
      <p>Masz oferty od instalatorów, ale każda opiewa na inną sumę? Sprawdź, co zostało rzeczywiście wycenione, kto odpowiada za pominięte prace i czy wykonawcy proponują porównywalny układ ogrzewania.</p>
      <div class="rq-tags" aria-label="Zakres poradnika"><span>2–3 oferty</span><span>materiały i robocizna</span><span>pętle i rozdzielacze</span><span>dopłaty</span><span>pytania do wykonawców</span></div>
      <div class="rq-meta"><span>Autor: <strong>Robert Kucharski</strong></span><span>Opracowanie: <strong>27 września 2026 r.</strong></span><span>Narzędzia: <strong>porównywarka i generator zapytania</strong></span></div>
    </header>

    <nav class="rq-nav" aria-label="Na skróty — sekcje artykułu">
      <span class="rq-nav-label">Na skróty</span>
      <a href="#rq-odpowiedz">Szybka odpowiedź</a>
      <a href="#rq-zakresy">Zakres ofert</a>
      <a href="#rq-dane">Wspólne dane</a>
      <a href="#rq-technika">Parametry</a>
      <a href="#rq-tabela">Tabela kontroli</a>
      <a href="#rq-porownywarka">Porównywarka</a>
      <a href="#rq-przyklad">Przykład</a>
      <a href="#rq-doplaty">Dopłaty</a>
      <a href="#rq-granice">Granice prac</a>
      <a href="#rq-zapytanie">Generator zapytania</a>
      <a href="#rq-odstepstwa">Zmiany w ofertach</a>
      <a href="#rq-umowa">Przed podpisaniem</a>
      <a href="#rq-decyzja">Decyzja</a>
      <a href="#rq-faq">FAQ</a>
      <a href="#rq-zrodla">Źródła</a>
      <a href="#rq-autor">Autor</a>
    </nav>

    <section class="rq-section" id="rq-odpowiedz">
      <span class="rq-eyebrow">Odpowiedź w 60 sekund</span>
      <h2>Jak porównać dwie wyceny podłogówki?</h2>
      <p class="rq-lead">Poproś wykonawców o wycenę <strong>tego samego układu i tego samego zakresu prac</strong>. Oddziel pozycje zawarte w cenie od wyłączonych, opcjonalnych i nieopisanych. Dopiero po wyjaśnieniu różnic zestawiaj kwoty brutto, terminy i sposób odbioru.</p>
      <div class="rq-answer">
        <strong>Najważniejsze pytanie: co dokładnie dostanę za podaną kwotę?</strong>
        <p>Jeżeli jedna oferta obejmuje próbę szczelności, a druga o niej milczy, różnica cen nie mówi jeszcze, która firma jest tańsza. Brakująca pozycja może być wliczona, płatna osobno albo wykonywana przez inną ekipę — ustal to na piśmie.</p>
      </div>
      <div class="rq-grid rq-grid-3">
        <article class="rq-card"><span class="rq-num">01</span><h3>Ten sam budynek</h3><p>Przekaż wszystkim te same rzuty, zakres pomieszczeń, warstwy podłogi i dane o źródle ciepła.</p></article>
        <article class="rq-card"><span class="rq-num">02</span><h3>Ten sam punkt odniesienia</h3><p>Ustal obliczone pętle, rozstawy, przepływy i zakres dostawy. Odstępstwa wyceniaj osobno.</p></article>
        <article class="rq-card"><span class="rq-num">03</span><h3>Ta sama odpowiedzialność</h3><p>Zapisz, kto przygotuje podłoże, wykona próbę, uruchomi instalację i zabezpieczy ją przed wylewką.</p></article>
      </div>
      <p class="rq-copy">Jeżeli szukasz dopiero orientacyjnego budżetu, zacznij od osobnego poradnika <a href="https://projekt-ogrzewania.pl/ile-kosztuje-100-m%C2%B2-ogrzewania-podlogowego/">ile kosztuje 100 m² ogrzewania podłogowego</a>. Tutaj analizujemy oferty, które już otrzymałeś albo zamierzasz wysłać do konkretnych wykonawców.</p>
    </section>

    <section class="rq-section rq-soft" id="rq-zakresy">
      <span class="rq-eyebrow">Nie każda oferta dotyczy tego samego produktu</span>
      <h2>Cztery zakresy, które kryją się pod nazwą „wycena podłogówki”</h2>
      <div class="rq-grid rq-grid-2">
        <article class="rq-card"><span class="rq-num">A</span><h3>Same materiały</h3><p>Rury, rozdzielacze i osprzęt bez pracy instalatora. Sprawdź, czy zestaw dotyczy dokładnie zaplanowanego systemu i obejmuje drobne przyłącza.</p></article>
        <article class="rq-card"><span class="rq-num">B</span><h3>Sama robocizna</h3><p>Może oznaczać wyłącznie rozłożenie rur na gotowym podłożu albo większy zakres prac. Poproś o wypisanie etapów.</p></article>
        <article class="rq-card"><span class="rq-num">C</span><h3>Instalacja z próbą</h3><p>Materiały hydrauliczne, montaż, podłączenie i sprawdzenie szczelności. Ustal, czy wliczono uruchomienie i nastawy przepływów.</p></article>
        <article class="rq-card"><span class="rq-num">D</span><h3>Cała ogrzewana podłoga</h3><p>Może obejmować również izolację, dylatacje, jastrych i automatykę. Nigdy nie zakładaj pełnego zakresu na podstawie samego nagłówka.</p></article>
      </div>
      <p class="rq-copy">Porównanie <a href="https://projekt-ogrzewania.pl/podlogowka-cena-za-m%C2%B2-robocizny/">ceny robocizny za m²</a> ma sens dopiero po ustaleniu jej zakresu i powierzchni rozliczeniowej. Stawka za położenie rury na przygotowanym podłożu nie jest ceną wykonania całej instalacji.</p>
    </section>

    <section class="rq-section" id="rq-dane">
      <span class="rq-eyebrow">Wspólna podstawa zapytania</span>
      <h2>Co przekazać każdemu wykonawcy przed wyceną?</h2>
      <p class="rq-lead">Inna powierzchnia, inna podłoga lub inna liczba pętli dają inne ilości materiałów. Najłatwiej porównać oferty wtedy, gdy wykonawcy otrzymują identyczne dane, a proponowane odstępstwa opisują osobno.</p>
      <div class="rq-grid rq-grid-3">
        <article class="rq-card"><span class="rq-num">BUDYNEK</span><h3>Zakres pomieszczeń</h3><p>Rzuty, kondygnacje, planowane wykończenie podłóg, miejsca bez rur i warstwy podłogowe.</p></article>
        <article class="rq-card"><span class="rq-num">UKŁAD</span><h3>Założenia techniczne</h3><p>Obciążenie cieplne pomieszczeń, trasy, rozstaw, liczba pętli i rozdzielaczy oraz projektowe przepływy, jeżeli zostały wyznaczone.</p></article>
        <article class="rq-card"><span class="rq-num">ODPOWIEDZIALNOŚĆ</span><h3>Podział robót</h3><p>Zakres prac instalatora, ekipy przygotowującej podłoże i wykonawcy jastrychu oraz wymagane protokoły.</p></article>
      </div>
      <div class="rq-note"><p><strong>Bez projektu także można poprosić o wstępną ofertę.</strong> Wtedy trzeba wyraźnie zaznaczyć, że ilości rur, podział pętli i przepływy są założeniami poszczególnych oferentów. Uzyskane ceny nie potwierdzają równoważności technicznej.</p></div>
      <p class="rq-copy">Jeżeli chcesz sprawdzić, jakie informacje mogą być wspólną podstawą wyceny, zobacz poradnik <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">jak powinien wyglądać profesjonalny projekt podłogówki</a>.</p>
    </section>

    <section class="rq-section rq-soft" id="rq-technika">
      <span class="rq-eyebrow">Cena nie weryfikuje mocy i hydrauliki</span>
      <h2>Czy dwie oferty dotyczą tej samej instalacji?</h2>
      <p class="rq-lead">Porównaj nie tylko nazwy materiałów, lecz również założenia stojące za ich ilościami. Jeżeli jedna firma proponuje sześć pętli, a druga dziewięć, sama kwota nie rozstrzyga, który układ pokryje obciążenie pomieszczeń i będzie możliwy do wyregulowania.</p>
      <div class="rq-grid rq-grid-3">
        <article class="rq-card"><span class="rq-num">MOC</span><h3>Obciążenie pomieszczeń</h3><p>Sprawdź, na jakiej podstawie określono wymagane moce i czy uwzględniono planowane okładziny.</p></article>
        <article class="rq-card"><span class="rq-num">PĘTLE</span><h3>Trasy i długości</h3><p>Porównaj rozstawy, dobiegi, liczbę obwodów oraz usytuowanie rozdzielaczy.</p></article>
        <article class="rq-card"><span class="rq-num">PRZEPŁYW</span><h3>Uruchomienie</h3><p>Ustal, czy oferta przewiduje nastawy według obliczonych przepływów i ich zapis podczas odbioru.</p></article>
      </div>
      <p class="rq-copy">ISO 11855-3 dotyczy projektowania i wymiarowania instalacji ogrzewania płaszczyznowego, a ISO 11855-5 — jej instalowania. Sam wykaz materiałów w ofercie nie zastępuje ustalenia warunków projektowych ani zasad wykonania.</p>
    </section>

    <section class="rq-section" id="rq-tabela">
      <span class="rq-eyebrow">Lista kontrolna przed porównaniem cen</span>
      <h2>Jakie pozycje powinny zostać jednoznacznie opisane?</h2>
      <p class="rq-lead">Pozycja może być wliczona, wyceniona osobno albo świadomie powierzona innej ekipie. W każdej ofercie należy ustalić jej status, jeśli należy do planowanego zakresu inwestycji.</p>
      <div class="rq-table-wrap"><table>
        <thead><tr><th>Pozycja</th><th>O co zapytać?</th><th>Możliwa pomyłka</th></tr></thead>
        <tbody>
          <tr><td data-label="Pozycja"><strong>Rury i mocowanie</strong></td><td data-label="O co zapytać?">Typ, wymiar, ilość, dobiegi i sposób mocowania.</td><td data-label="Możliwa pomyłka">Metry rur policzone bez dojść do rozdzielacza.</td></tr>
          <tr><td data-label="Pozycja"><strong>Rozdzielacz i przyłącza</strong></td><td data-label="O co zapytać?">Liczba obwodów, szafka, wyposażenie, złączki i podłączenie.</td><td data-label="Możliwa pomyłka">Cena samej belki porównana z wyposażonym zestawem.</td></tr>
          <tr><td data-label="Pozycja"><strong>Podłoże i izolacja</strong></td><td data-label="O co zapytać?">Kto przygotuje podłoże, wykona izolację, taśmy i przejścia?</td><td data-label="Możliwa pomyłka">Prace budowlane domyślnie przypisane instalatorowi.</td></tr>
          <tr><td data-label="Pozycja"><strong>Próba i dokumentacja</strong></td><td data-label="O co zapytać?">Czy uwzględniono procedurę, protokół i zdjęcia przed zakryciem?</td><td data-label="Możliwa pomyłka">„Sprawdzenie” bez ustalonego odbioru.</td></tr>
          <tr><td data-label="Pozycja"><strong>Uruchomienie i nastawy</strong></td><td data-label="O co zapytać?">Kto ustawi przepływy i kiedy wykona uruchomienie?</td><td data-label="Możliwa pomyłka">Montaż zakończony bez regulacji obwodów.</td></tr>
          <tr><td data-label="Pozycja"><strong>Automatyka, jastrych, transport</strong></td><td data-label="O co zapytać?">Co konkretnie jest wliczone i jakie są wyłączenia?</td><td data-label="Możliwa pomyłka">Różne zakresy opisane jedną nazwą „podłogówka”.</td></tr>
        </tbody>
      </table></div>
      <p class="rq-copy">Materiały rozpisuję szerzej w osobnym poradniku <a href="https://projekt-ogrzewania.pl/jakie-materialy-sa-potrzebne-do-instalacji-ogrzewania-podlogowego/">jakie materiały są potrzebne do podłogówki</a>. Tutaj traktujemy je jako elementy ofert wymagające identyfikacji.</p>
    </section>

    <section class="rq-section rq-soft" id="rq-porownywarka">
      <span class="rq-eyebrow">Narzędzie 1 · ocena otrzymanych ofert</span>
      <h2>Porównywarka zakresu dwóch lub trzech wycen</h2>
      <p class="rq-lead">Wpisz informacje dokładnie tak, jak podano je w ofertach. „Nie wiadomo” jest uczciwszą odpowiedzią niż przypisanie pracy do ceny, w której nie została opisana.</p>
      <div class="rq-tool-wrap" id="rq-compare-tool">
        <h3>Czy wykonawcy wycenili to samo?</h3>
        <p>Wybierz zakres odniesienia, a następnie sprawdź status każdej pozycji. Dane pozostają w Twojej przeglądarce.</p>
        <form id="rq-compare-form" novalidate="">
          <div class="rq-tool-step">
            <h4>1. Wspólny punkt odniesienia</h4>
            <div class="rq-fields">
              <label class="rq-field"><span>Ile ofert porównujesz?</span><select id="rq-count"><option value="2">Dwie</option><option value="3">Trzy</option></select></label>
              <label class="rq-field"><span>Dokumentacja wspólna dla wykonawców</span><select id="rq-design"><option value="unknown">Nie wiem / brak danych</option><option value="yes">Ten sam projekt z obliczeniami</option><option value="partial">Tylko wspólne rzuty lub opis</option><option value="no">Każdy wykonawca przyjął własne założenia</option></select></label>
            </div>
            <p class="rq-small" style="color:#d8e8ec;margin:12px 0 0">Zaznacz prace, które chcesz uwzględnić w porównaniu. Świadome wyłączenie wspólne dla wszystkich ofert jest dopuszczalne, o ile wiadomo, kto za nie odpowiada.</p>
            <div class="rq-scope-grid" id="rq-scope-choices" aria-label="Pozycje do porównania">
              <label class="rq-checkline"><input type="checkbox" data-scope="pipes" checked=""><span>Rury i mocowanie</span></label>
              <label class="rq-checkline"><input type="checkbox" data-scope="manifold" checked=""><span>Rozdzielacze, szafki i złączki</span></label>
              <label class="rq-checkline"><input type="checkbox" data-scope="laying" checked=""><span>Układanie i podłączanie</span></label>
              <label class="rq-checkline"><input type="checkbox" data-scope="feeds" checked=""><span>Dobiegi i przyłącza</span></label>
              <label class="rq-checkline"><input type="checkbox" data-scope="test" checked=""><span>Próba szczelności i protokół</span></label>
              <label class="rq-checkline"><input type="checkbox" data-scope="balancing" checked=""><span>Uruchomienie i nastawy</span></label>
              <label class="rq-checkline"><input type="checkbox" data-scope="base"><span>Przygotowanie podłoża</span></label>
              <label class="rq-checkline"><input type="checkbox" data-scope="insulation"><span>Izolacja, folia i taśmy</span></label>
              <label class="rq-checkline"><input type="checkbox" data-scope="screed"><span>Jastrych</span></label>
              <label class="rq-checkline"><input type="checkbox" data-scope="controls"><span>Automatyka</span></label>
              <label class="rq-checkline"><input type="checkbox" data-scope="transport"><span>Transport i dojazd</span></label>
            </div>
          </div>
          <div class="rq-tool-step">
            <h4>2. Kwoty i założenia ofert</h4>
            <p style="margin:0 0 11px">Kwota podstawowa jest opcjonalna. Dopłatę wpisz tylko wtedy, gdy wykonawca podał jej konkretną cenę w tej samej podstawie podatkowej co oferta.</p>
            <div class="rq-offer-grid">
              <div class="rq-offer" data-offer="0">
                <h5>Oferta A</h5>
                <label class="rq-offer-field"><span>Kwota podstawowa [zł]</span><input type="text" inputmode="decimal" data-key="price" placeholder="np. 18000" aria-label="Kwota oferty A"></label>
                <label class="rq-offer-field"><span>Podstawa kwoty</span><select data-key="tax" aria-label="Podstawa kwoty oferty A"><option value="unknown">Nie wiem</option><option value="gross">Brutto</option><option value="net">Netto</option></select></label>
                <label class="rq-offer-field"><span>Powierzchnia podana w ofercie [m²]</span><input type="text" inputmode="decimal" data-key="area" aria-label="Powierzchnia oferty A" placeholder="opcjonalnie"></label>
                <label class="rq-offer-field"><span>Rodzaj powierzchni</span><select data-key="areaType" aria-label="Rodzaj powierzchni oferty A"><option value="unknown">Nie określono</option><option value="floor">Całkowita podłóg</option><option value="heated">Ogrzewana</option><option value="active">Czynna z rurami</option></select></label>
                <label class="rq-offer-field"><span>Układ i parametry</span><select data-key="tech" aria-label="Parametry techniczne oferty A"><option value="unknown">Niepotwierdzone</option><option value="yes">Zgodne z tą samą dokumentacją</option><option value="change">Proponowana zmiana układu</option></select></label>
              </div>
              <div class="rq-offer" data-offer="1">
                <h5>Oferta B</h5>
                <label class="rq-offer-field"><span>Kwota podstawowa [zł]</span><input type="text" inputmode="decimal" data-key="price" placeholder="np. 21000" aria-label="Kwota oferty B"></label>
                <label class="rq-offer-field"><span>Podstawa kwoty</span><select data-key="tax" aria-label="Podstawa kwoty oferty B"><option value="unknown">Nie wiem</option><option value="gross">Brutto</option><option value="net">Netto</option></select></label>
                <label class="rq-offer-field"><span>Powierzchnia podana w ofercie [m²]</span><input type="text" inputmode="decimal" data-key="area" aria-label="Powierzchnia oferty B" placeholder="opcjonalnie"></label>
                <label class="rq-offer-field"><span>Rodzaj powierzchni</span><select data-key="areaType" aria-label="Rodzaj powierzchni oferty B"><option value="unknown">Nie określono</option><option value="floor">Całkowita podłóg</option><option value="heated">Ogrzewana</option><option value="active">Czynna z rurami</option></select></label>
                <label class="rq-offer-field"><span>Układ i parametry</span><select data-key="tech" aria-label="Parametry techniczne oferty B"><option value="unknown">Niepotwierdzone</option><option value="yes">Zgodne z tą samą dokumentacją</option><option value="change">Proponowana zmiana układu</option></select></label>
              </div>
              <div class="rq-offer" data-offer="2" hidden="">
                <h5>Oferta C</h5>
                <label class="rq-offer-field"><span>Kwota podstawowa [zł]</span><input type="text" inputmode="decimal" data-key="price" placeholder="opcjonalnie" aria-label="Kwota oferty C"></label>
                <label class="rq-offer-field"><span>Podstawa kwoty</span><select data-key="tax" aria-label="Podstawa kwoty oferty C"><option value="unknown">Nie wiem</option><option value="gross">Brutto</option><option value="net">Netto</option></select></label>
                <label class="rq-offer-field"><span>Powierzchnia podana w ofercie [m²]</span><input type="text" inputmode="decimal" data-key="area" aria-label="Powierzchnia oferty C" placeholder="opcjonalnie"></label>
                <label class="rq-offer-field"><span>Rodzaj powierzchni</span><select data-key="areaType" aria-label="Rodzaj powierzchni oferty C"><option value="unknown">Nie określono</option><option value="floor">Całkowita podłóg</option><option value="heated">Ogrzewana</option><option value="active">Czynna z rurami</option></select></label>
                <label class="rq-offer-field"><span>Układ i parametry</span><select data-key="tech" aria-label="Parametry techniczne oferty C"><option value="unknown">Niepotwierdzone</option><option value="yes">Zgodne z tą samą dokumentacją</option><option value="change">Proponowana zmiana układu</option></select></label>
              </div>
            </div>
          </div>
          <div class="rq-tool-step">
            <h4>3. Co obejmuje każda oferta?</h4>
            <p style="margin:0 0 12px">Poniżej pojawią się wybrane wyżej pozycje. Dla każdej oferty wskaż status; kwotę dopłaty wpisz tylko wtedy, gdy jest znana.</p>
            <div id="rq-item-list"></div>
          </div>
          <div class="rq-buttons"><button type="submit" class="rq-button">Porównaj oferty</button><button type="reset" class="rq-button rq-button-outline">Wyczyść formularz</button></div>
        </form>
        <div class="rq-result" id="rq-compare-result" aria-live="polite">
          <h4 id="rq-compare-title" tabindex="-1">Wybierz zakres i uzupełnij oferty</h4>
          <p id="rq-compare-intro">Narzędzie oddzieli zgodny zakres, różnice i pytania do wykonawców. Brak kwoty lub opisu nie jest traktowany jako koszt zero.</p>
          <div class="rq-result-grid">
            <div class="rq-result-col"><h5>Co ustalono</h5><ul id="rq-result-known"><li>Porównanie nie zostało jeszcze wykonane.</li></ul></div>
            <div class="rq-result-col"><h5>Różnice zakresu</h5><ul id="rq-result-diff"><li>Wypełnij dane z ofert.</li></ul></div>
            <div class="rq-result-col"><h5>Co wyjaśnić</h5><ul id="rq-result-ask"><li>Przygotuj oferty lub zapytania do wykonawców.</li></ul></div>
          </div>
          <p class="rq-small">Porównywarka porządkuje odpowiedzi. Nie weryfikuje poprawności projektu, jakości wykonawcy, warunków umowy ani obowiązującej stawki podatku.</p>
        </div>
      </div>
      <div class="rq-cta" aria-label="Projekt jako wspólna podstawa wycen">
        <h3>Każdy wykonawca wycenił inny układ?</h3>
        <p>Jeżeli oferty różnią się liczbą pętli, rozstawami lub ilością materiałów, potrzebujesz wspólnych założeń do ponownego zapytania. Indywidualny projekt określa obciążenie pomieszczeń, przebieg pętli, przepływy i zestawienie materiałów. Tę samą dokumentację możesz przekazać wybranym wykonawcom.</p>
        <a class="rq-cta-link" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Sprawdź zakres projektu podłogówki</a>
        <small>Odnośnik prowadzi do płatnej usługi projektowej autora. Projekt nie obejmuje automatycznie audytu otrzymanych ofert robocizny.</small>
      </div>
    </section>

    <section class="rq-section" id="rq-przyklad">
      <span class="rq-eyebrow">Przykład edukacyjny · kwoty nie są cennikiem</span>
      <h2>Oferta za 18 000 zł i oferta za 21 000 zł: która jest tańsza?</h2>
      <p class="rq-lead">Na podstawie samych sum nie da się tego ustalić. Poniższe liczby i zakresy są wymyślonym przykładem służącym wyłącznie do pokazania sposobu porównania.</p>
      <div class="rq-example">
        <h3>Dwie oferty, różne informacje</h3>
        <div class="rq-table-wrap"><table><thead><tr><th>Pozycja</th><th>Oferta A · 18 000 zł</th><th>Oferta B · 21 000 zł</th></tr></thead><tbody>
          <tr><td data-label="Pozycja"><strong>Materiały i montaż pętli</strong></td><td data-label="Oferta A">Wliczone, bez opisu liczby pętli.</td><td data-label="Oferta B">Wliczone według przekazanego projektu.</td></tr>
          <tr><td data-label="Pozycja"><strong>Próba szczelności</strong></td><td data-label="Oferta A">Nie określono.</td><td data-label="Oferta B">Wliczona, z protokołem.</td></tr>
          <tr><td data-label="Pozycja"><strong>Izolacja podłogi</strong></td><td data-label="Oferta A">Wykonuje inna ekipa, koszt poza ofertą.</td><td data-label="Oferta B">Wykonuje inna ekipa, koszt poza ofertą.</td></tr>
          <tr><td data-label="Pozycja"><strong>Regulacja przepływów</strong></td><td data-label="Oferta A">Nie określono.</td><td data-label="Oferta B">Wliczona według projektu.</td></tr>
        </tbody></table></div>
        <p><strong>Wniosek:</strong> brakujących informacji w ofercie A nie można policzyć jako 0 zł. Wspólne wyłączenie izolacji nie musi utrudniać porównania cen instalatorów, ale inwestor powinien znać koszt i wykonawcę tej osobnej pracy.</p>
      </div>
    </section>

    <section class="rq-section rq-soft" id="rq-doplaty">
      <span class="rq-eyebrow">Kwoty bez zgadywania</span>
      <h2>Jak uwzględnić dopłaty i pozycje nieznane?</h2>
      <div class="rq-grid rq-grid-3">
        <article class="rq-card"><span class="rq-num">W CENIE</span><h3>Potwierdzone</h3><p>Wykonawca opisuje pracę lub materiał i jednoznacznie wskazuje, że należą do podanej ceny.</p></article>
        <article class="rq-card"><span class="rq-num">DODATEK</span><h3>Wycenione osobno</h3><p>Dodaj jedynie kwotę podaną przez wykonawcę, po upewnieniu się, że nie jest już zawarta w sumie podstawowej.</p></article>
        <article class="rq-card"><span class="rq-num">BRAK</span><h3>Do wyjaśnienia</h3><p>Nie wstawiaj 0 zł ani własnej prognozy. Poproś o informację, czy pozycja jest wliczona, płatna dodatkowo czy wyłączona.</p></article>
      </div>
      <p class="rq-copy">Kwoty netto i brutto najpierw sprowadź do jednej podstawy. Jeżeli otrzymałeś kwotę netto bez potwierdzenia końcowego rozliczenia, poproś wykonawcę o cenę brutto dla Twojego zakresu. Nie przyjmujemy w formularzu uniwersalnej stawki podatku.</p>
    </section>

    <section class="rq-section" id="rq-granice">
      <span class="rq-eyebrow">Prace na styku ekip</span>
      <h2>Kto odpowiada za podłoże, próbę i wylewkę?</h2>
      <p class="rq-lead">Prawidłowo określony zakres częściowy bywa korzystny. Trzeba jednak ustalić, co przekazuje każda ekipa następnej i w jakim stanie instalacja zostanie zakryta.</p>
      <div class="rq-grid rq-grid-3">
        <article class="rq-card"><span class="rq-num">PRZED</span><h3>Podłoże i izolacja</h3><p>Kto wyrówna podłoże, zapewni wymaganą izolację, taśmy i przejścia instalacyjne?</p></article>
        <article class="rq-card"><span class="rq-num">W TRAKCIE</span><h3>Ułożone pętle</h3><p>Kto chroni przewody podczas dalszych prac i kto usuwa uszkodzenie ujawnione przed zalaniem?</p></article>
        <article class="rq-card"><span class="rq-num">PO</span><h3>Próba i rozruch</h3><p>Kto sporządza protokół, odpowiada za uruchomienie oraz dokonuje wstępnych nastaw rozdzielacza?</p></article>
      </div>
      <p class="rq-copy">Zakres i moment badania instalacji omawia osobny poradnik o <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próbie szczelności ogrzewania podłogowego</a>. W ofercie warto wskazać zarówno wykonawcę próby, jak i sposób udokumentowania jej wyniku.</p>
    </section>

    <section class="rq-section rq-soft" id="rq-zapytanie">
      <span class="rq-eyebrow">Narzędzie 2 · wspólne zapytanie</span>
      <h2>Generator jednakowego zapytania do wykonawców</h2>
      <p class="rq-lead">Gdy otrzymane oferty są niejasne, wyślij wszystkim ten sam opis potrzeb. Narzędzie przygotuje treść e-maila; osobny przycisk otworzy WhatsApp do autora. Żadna wiadomość nie zostanie wysłana bez Twojego potwierdzenia.</p>
      <div class="rq-tool-wrap" id="rq-request-tool">
        <h3>Przygotuj opis prac bez pomijania granic zakresu</h3>
        <p>Podaj tylko informacje, które znasz. Puste pole lub brak projektu pozostanie w zapytaniu jawny.</p>
        <form id="rq-request-form" novalidate="">
          <div class="rq-tool-step">
            <h4>1. Budynek i dostępne dane</h4>
            <div class="rq-fields">
              <label class="rq-field"><span>Powierzchnia objęta planem [m²]</span><input id="rq-request-area" type="text" inputmode="decimal" placeholder="np. 120; opcjonalnie"></label>
              <label class="rq-field"><span>Kondygnacje z podłogówką</span><select id="rq-request-levels"><option value="unknown">Jeszcze nieustalone</option><option value="one">Jedna</option><option value="two">Dwie</option><option value="many">Trzy lub więcej</option></select></label>
              <label class="rq-field"><span>Projekt z obliczeniami</span><select id="rq-request-project"><option value="unknown">Nie mam / jeszcze nieustalone</option><option value="yes">Mam i dołączę ten sam projekt do zapytań</option></select></label>
              <label class="rq-field"><span>Technologia</span><select id="rq-request-tech"><option value="unspecified">Do określenia w ofertach</option><option value="wet">System mokry</option><option value="dry">System suchy</option><option value="retrofit">Modernizacja istniejącej podłogi</option></select></label>
              <label class="rq-field"><span>Źródło ciepła</span><select id="rq-request-source"><option value="unspecified">Nieustalone</option><option value="heatpump">Pompa ciepła</option><option value="boiler">Kocioł</option><option value="other">Inne / układ mieszany</option></select></label>
              <label class="rq-field"><span>Kiedy potrzebujesz wykonania?</span><input id="rq-request-date" type="text" maxlength="80" placeholder="np. listopad 2026; opcjonalnie"></label>
            </div>
          </div>
          <div class="rq-tool-step">
            <h4>2. Zakres do wycenienia</h4>
            <p>Zakres podstawowy — zawsze uwzględniony w zapytaniu:</p>
            <div class="rq-scope-grid">
              <div class="rq-fixed-scope">Projekt ogrzewania podłogowego — wykonanie albo weryfikacja i uzupełnienie posiadanej dokumentacji</div>
              <div class="rq-fixed-scope">Obliczenia OZC — wykonanie albo weryfikacja i aktualizacja posiadanych obliczeń</div>
            </div>
            <p>Zaznacz dodatkowe prace, które chcesz również uwzględnić w wycenie:</p>
            <div class="rq-scope-grid" id="rq-request-scope">
              <label class="rq-checkline"><input type="checkbox" value="dostawa rur, rozdzielaczy i osprzętu"><span>Dostawa materiałów instalacyjnych</span></label>
              <label class="rq-checkline"><input type="checkbox" value="ułożenie rur, przyłącza i montaż rozdzielaczy"><span>Montaż rur i rozdzielaczy</span></label>
              <label class="rq-checkline"><input type="checkbox" value="próba szczelności i protokół"><span>Próba i protokół</span></label>
              <label class="rq-checkline"><input type="checkbox" value="uruchomienie i nastawy przepływów"><span>Uruchomienie i nastawy</span></label>
              <label class="rq-checkline"><input type="checkbox" value="przygotowanie podłoża"><span>Przygotowanie podłoża</span></label>
              <label class="rq-checkline"><input type="checkbox" value="izolacja podłogi, folia, taśmy i dylatacje"><span>Izolacja i dylatacje</span></label>
              <label class="rq-checkline"><input type="checkbox" value="wykonanie jastrychu"><span>Jastrych</span></label>
              <label class="rq-checkline"><input type="checkbox" value="automatyka sterowania"><span>Automatyka</span></label>
            </div>
            <p class="rq-small" style="color:#d8e8ec">Projekt i OZC pozostają w zapytaniu. Dodatkowych prac nie zaznaczaj, jeśli nie chcesz ich zlecić. Tekst poprosi oferentów także o listę wyłączeń i opis prac powierzonych innym ekipom.</p>
          </div>
          <div class="rq-buttons"><button type="submit" class="rq-button">Przygotuj treść zapytania</button><button type="reset" class="rq-button rq-button-outline">Wyczyść odpowiedzi</button></div>
        </form>
        <div class="rq-output">
          <label for="rq-request-output">Przygotowana treść zapytania</label>
          <textarea id="rq-request-output" readonly="" placeholder="Uzupełnij formularz i wybierz „Przygotuj treść zapytania”."></textarea>
          <div class="rq-buttons">
            <button class="rq-button rq-button-outline" type="button" id="rq-email-request">Otwórz w aplikacji e-mail</button>
            <button class="rq-button rq-button-outline" type="button" id="rq-whatsapp-request">Otwórz WhatsApp do Roberta</button>
          </div>
          <p class="rq-small">E-mail otworzy szkic do biuro@projekt-ogrzewania.pl — możesz dopisać innych odbiorców. WhatsApp otworzy wiadomość wyłącznie do Roberta Kucharskiego: +48 794 358 367. W obu przypadkach samodzielnie zatwierdzasz wysyłkę.</p>
          <p role="status" aria-live="polite" id="rq-copy-status"></p>
        </div>
      </div>
      <div class="rq-note rq-note-good"><p><strong>Przy ponownym zapytaniu do firm:</strong> dołącz ten sam projekt i rzuty, jeżeli je masz. Jeżeli jedna firma proponuje wariant odmienny od projektu, poproś o jego osobne opisanie i wycenę.</p></div>
    </section>

    <section class="rq-section" id="rq-odstepstwa">
      <span class="rq-eyebrow">Inna propozycja może być wartościowa</span>
      <h2>Co zrobić, gdy wykonawca proponuje mniej pętli lub inny materiał?</h2>
      <p class="rq-lead">Nie odrzucaj automatycznie wariantu innego niż wyjściowy. Poproś o uzasadnienie, parametry, zakres zamienionych elementów oraz cenę dla rozwiązania bazowego i wariantu. Dzięki temu porównanie wariantów nie miesza się z konkurencją cenową przy tym samym zakresie.</p>
      <ul class="rq-list">
        <li>ustal, czy zmienią się temperatura pracy, możliwość pokrycia strat ciepła i opory obiegów,</li>
        <li>porównaj rzeczywistą średnicę i typ rury, liczbę pętli, rozstawy oraz wyposażenie rozdzielacza,</li>
        <li>potwierdź zgodność elementów i warunki wykonania według dokumentacji systemu,</li>
        <li>zapisz zmiany zaakceptowane przed zamówieniem materiałów i montażem.</li>
      </ul>
      <p class="rq-copy">Dlaczego szczegóły projektu mają znaczenie, pokazuje poradnik <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/">projekt z głowy czy projekt z obliczeniami</a>.</p>
    </section>

    <section class="rq-section rq-soft" id="rq-umowa">
      <span class="rq-eyebrow">Ustalenia przed rozpoczęciem prac</span>
      <h2>Co potwierdzić w ofercie i przy zleceniu?</h2>
      <div class="rq-grid rq-grid-3">
        <article class="rq-card"><span class="rq-num">ZAKRES</span><h3>Dokumenty i materiały</h3><p>Wersja projektu, lista prac i wyłączeń, specyfikacja wyrobów, odpowiedzialność za zakup oraz transport.</p></article>
        <article class="rq-card"><span class="rq-num">CENA</span><h3>Kwota i zmiany</h3><p>Kwota brutto, sposób rozliczenia prac dodatkowych i zasada potwierdzania zmian przed ich wykonaniem.</p></article>
        <article class="rq-card"><span class="rq-num">ODBIÓR</span><h3>Terminy i protokół</h3><p>Etapy prac, próba przed zakryciem, przekazanie dokumentacji oraz termin uruchomienia i regulacji.</p></article>
      </div>
      <p class="rq-copy">Sprawdź także <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">najczęstsze błędy przy montażu podłogówki</a>, aby wiedzieć, które ustalenia są szczególnie ważne przed wylewką.</p>
    </section>

    <section class="rq-section" id="rq-decyzja">
      <span class="rq-eyebrow">Wybór bez sztucznego rankingu</span>
      <h2>Kiedy możesz porównać ceny, a kiedy wrócić po wyjaśnienia?</h2>
      <div class="rq-grid rq-grid-2">
        <article class="rq-card"><span class="rq-num">MOŻESZ PORÓWNAĆ</span><h3>Zakres jest opisany</h3><p>Wiesz, co należy do ceny, jakie są wspólne wyłączenia, jakie dopłaty wyceniono oraz czy firmy korzystały ze wspólnych danych technicznych. Nadal samodzielnie oceniasz warunki realizacji.</p></article>
        <article class="rq-card"><span class="rq-num">WRÓĆ Z PYTANIAMI</span><h3>Brakuje podstaw</h3><p>Nieustalone pozostają zakres, końcowa cena, pętle, próba lub odpowiedzialność za etapy. Wyślij jednakowe pytania do oferentów i dopiero później wróć do zestawienia.</p></article>
      </div>
      <p class="rq-copy">Projekt może uporządkować część techniczną i materiałową, lecz nie zastępuje rozmowy o cenie robocizny, terminie ani zakresie odpowiedzialności konkretnego wykonawcy.</p>
      <div class="rq-cta">
        <h3>Chcesz wysłać wykonawcom tę samą dokumentację?</h3>
        <p>Projekt z obliczeniami, pętlami i zestawieniem materiałów daje wspólną podstawę do sporządzenia ofert. Przed zamówieniem sprawdź jego dokładny zakres oraz warunki usługi.</p>
        <a class="rq-cta-link" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zobacz indywidualny projekt podłogówki</a>
        <small>Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </div>
    </section>

    <section class="rq-section rq-soft" id="rq-faq">
      <span class="rq-eyebrow">Najczęstsze pytania inwestorów</span>
      <h2>FAQ — porównywanie ofert na ogrzewanie podłogowe</h2>
      <div class="rq-faq">
        <details><summary>Czy najtańsza wycena podłogówki oznacza najtańszy montaż?</summary><div class="rq-faq-answer"><p>Nie można tego ocenić bez porównania zakresu. Niższa kwota może dotyczyć mniejszej liczby prac, innych materiałów lub wyłączeń wycenianych później. Może też być uczciwą ceną za taki sam zakres; trzeba to sprawdzić.</p></div></details>
        <details><summary>Co zrobić, gdy jedna oferta jest za m², a druga jest ryczałtem?</summary><div class="rq-faq-answer"><p>Ustal powierzchnię i prace objęte każdą ceną. Poproś o kwotę końcową dla jednakowego zakresu oraz o wypisanie dopłat i wyłączeń. Sama stawka za m² nie opisuje kompletnej instalacji.</p></div></details>
        <details><summary>Czy dwie wyceny można porównać bez projektu?</summary><div class="rq-faq-answer"><p>Można porównać zakres handlowy i zapisane ceny, ale nie zakładać, że odmienne układy pętli są technicznie równoważne. Wyceny oparte na własnych założeniach firm pozostaną wstępne do czasu sprawdzenia rozwiązań.</p></div></details>
        <details><summary>Co powinna zawierać wycena ogrzewania podłogowego?</summary><div class="rq-faq-answer"><p>Powinna wskazywać zakres prac, materiały i ilości, podstawę powierzchni, cenę i jej podatkową podstawę, terminy, wyłączenia oraz sposób wykonania i udokumentowania próby i uruchomienia, jeśli należą do zlecenia.</p></div></details>
        <details><summary>Czy izolacja i wylewka muszą być w cenie instalatora?</summary><div class="rq-faq-answer"><p>Nie. Mogą należeć do innego zakresu robót. Ustal jednak, kto je wykonuje, na jakich warunkach przyjmuje pracę poprzedniej ekipy i jaki koszt ponosi inwestor poza wyceną instalatora.</p></div></details>
        <details><summary>Czy w cenie powinna być próba szczelności?</summary><div class="rq-faq-answer"><p>Należy wyraźnie ustalić, kto przeprowadza próbę przed zakryciem, według jakiej procedury i kto przekazuje protokół. Nie zakładaj, że próba jest wliczona tylko dlatego, że oferta mówi o montażu podłogówki.</p></div></details>
        <details><summary>Dlaczego wykonawcy podają różną liczbę pętli?</summary><div class="rq-faq-answer"><p>Mogą przyjmować inne rozstawy, dobiegi, powierzchnie czynne lub obciążenia cieplne. Warto porównać te założenia oraz sprawdzić przepływy i opory, zanim uzna się warianty za zamienne.</p></div></details>
        <details><summary>Co zrobić, gdy oferta nie podaje ceny transportu?</summary><div class="rq-faq-answer"><p>Poproś o pisemne potwierdzenie, czy dojazd i dostawa są wliczone, czy stanowią dopłatę. Nie przypisuj brakowi informacji kwoty 0 zł.</p></div></details>
        <details><summary>Czy oferta materiałów z wyceną jest ofertą wykonania instalacji?</summary><div class="rq-faq-answer"><p>Nie. Zestawienie materiałowe opisuje zakupy, a wykonanie wymaga osobnego ustalenia robocizny, harmonogramu, odpowiedzialności za połączenia, próby, uruchomienie i odbiór.</p></div></details>
        <details><summary>Czy można dopuścić zamienny typ rury lub rozdzielacza?</summary><div class="rq-faq-answer"><p>Można rozważyć wariant równoważny po porównaniu parametrów, zgodności systemowej i wpływu zmiany na projekt oraz hydraulikę. Poproś o jego osobny opis i cenę, zanim zaakceptujesz zamianę.</p></div></details>
        <details><summary>Czy porównywarka wybierze najlepszego wykonawcę?</summary><div class="rq-faq-answer"><p>Nie. Porządkuje informacje wpisane z ofert i wskazuje różnice oraz pytania. Nie zna jakości przyszłego montażu, nie sprawdza wiarygodności wykonawcy ani poprawności całego projektu.</p></div></details>
        <details><summary>Kiedy ponownie wysłać zapytanie o wycenę?</summary><div class="rq-faq-answer"><p>Gdy po porównaniu ofert nadal nie wiadomo, co zawierają ceny, jakie przyjęto założenia techniczne lub kto wykonuje pominięte prace. Wyślij te same informacje wszystkim wybranym wykonawcom i poproś o uzupełnione odpowiedzi.</p></div></details>
      </div>
    </section>

    <section class="rq-section" id="rq-zrodla">
      <span class="rq-eyebrow">Podstawa techniczna</span>
      <h2>Źródła i zakres poradnika</h2>
      <p class="rq-lead">Oficjalne karty norm pomagają rozdzielić wymiarowanie instalacji od jej wykonania. Szczegółowe wymagania i zakres odpowiedzialności trzeba odnieść do dokumentacji wybranego systemu, projektu i ustaleń z wykonawcą.</p>
      <div class="rq-sources">
        <div class="rq-source"><a href="https://www.iso.org/standard/74684.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-3:2021 — projektowanie i wymiarowanie</a><p>Oficjalna karta części dotyczącej projektowania i określania wydajności wbudowanych systemów ogrzewania i chłodzenia płaszczyznowego.</p></div>
        <div class="rq-source"><a href="https://www.iso.org/standard/74685.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-5:2021 — instalowanie</a><p>Oficjalna karta części poświęconej wykonaniu wbudowanych wodnych systemów płaszczyznowych.</p></div>
      </div>
      <div class="rq-note"><p><strong>Zakres narzędzi:</strong> nie pobierają cenników, nie weryfikują dokumentów ofertowych ani nie oceniają wiarygodności wykonawcy. Wyliczenie możliwych dopłat dotyczy wyłącznie kwot wpisanych przez użytkownika. Projekt, warunki rzeczywistego budynku i pisemne oferty pozostają podstawą ostatecznej decyzji.</p></div>
    </section>

    <section class="rq-author" id="rq-autor">
      <span class="rq-eyebrow">Opracowanie eksperckie</span>
      <h2>Autor i weryfikacja merytoryczna</h2>
      <div class="rq-author-layout">
        <aside class="rq-author-side">
          <img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski – projektant instalacji sanitarnych" width="400" height="400" loading="lazy" decoding="async">
          <strong>Robert Kucharski</strong>
          <p>CEO portalu<br>Specjalista HVAC i ogrzewania podłogowego</p>
          <div class="rq-social" aria-label="Profile autora">
            <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="nofollow noopener noreferrer me" aria-label="LinkedIn Roberta Kucharskiego">in</a>
            <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Facebook Projekt Ogrzewania">f</a>
            <a href="https://x.com/Projekt_HVAC" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Profil Projekt HVAC w serwisie X">X</a>
          </div>
        </aside>
        <div class="rq-author-body">
          <blockquote>„Cena wykonania mówi niewiele, dopóki nie wiadomo, ile pętli trzeba ułożyć, według jakich przepływów je wyregulować i kto odpowiada za odbiór instalacji.”</blockquote>
          <p>Robert Kucharski przygotowuje projekty ogrzewania podłogowego oraz obliczenia cieplne i hydrauliczne. W tym poradniku oddziela porównanie zakresu ofert od oceny przydatności technicznej proponowanych rozwiązań.</p>
          <p>Publikuje również w portalach <a href="https://remont.biz.pl/" target="_blank" rel="nofollow noopener noreferrer">Remont.biz.pl</a> i <a href="https://sobir.pl/" target="_blank" rel="nofollow noopener noreferrer">Sobir.pl</a>. <a href="https://projekt-ogrzewania.pl/author/admin3399/">Zobacz pozostałe artykuły autora</a>.</p>
        </div>
      </div>
    </section>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "inLanguage": "pl-PL"
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt-Ogrzewania.pl",
      "url": "https://projekt-ogrzewania.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/"
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/"
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "image": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski-image" },
      "worksFor": [
        { "@id": "https://projekt-ogrzewania.pl/#organization" },
        { "@id": "https://remont.biz.pl/#organization" },
        { "@id": "https://sobir.pl/#organization" }
      ],
      "knowsAbout": [
        "ogrzewanie podłogowe",
        "projektowanie instalacji grzewczych",
        "obliczenia strat ciepła",
        "hydraulika ogrzewania podłogowego",
        "porównywanie zakresu ofert wykonawczych"
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski-image",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "width": 400,
      "height": 400,
      "caption": "Robert Kucharski — projektant instalacji sanitarnych"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Strona główna",
          "item": "https://projekt-ogrzewania.pl/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": "https://projekt-ogrzewania.pl/blog/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Jak porównać wyceny ogrzewania podłogowego?",
          "item": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#webpage",
      "url": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/",
      "name": "Jak porównać wyceny ogrzewania podłogowego? Oferty wykonawców krok po kroku",
      "description": "Poradnik porównywania dwóch lub trzech ofert na ogrzewanie podłogowe, ich zakresów, parametrów i dopłat oraz generator jednakowego zapytania.",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
      "breadcrumb": { "@id": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#breadcrumb" },
      "mainEntity": { "@id": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#article" },
      "inLanguage": "pl-PL"
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#article",
      "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#webpage" },
      "headline": "Jak porównać wyceny ogrzewania podłogowego? Oferty wykonawców krok po kroku",
      "description": "Praktyczna analiza zakresu i parametrów wycen podłogówki z porównywarką ofert oraz generatorem wspólnego zapytania do wykonawców.",
      "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "about": [
        "porównywanie ofert na ogrzewanie podłogowe",
        "wycena instalacji grzewczej",
        "zakres prac instalatora",
        "pętle ogrzewania podłogowego",
        "próba szczelności i uruchomienie"
      ],
      "hasPart": [
        { "@id": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#comparator" },
        { "@id": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#request-generator" },
        { "@id": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#howto" },
        { "@id": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#faq-schema" }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#comparator",
      "name": "Porównywarka zakresu wycen ogrzewania podłogowego",
      "url": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#rq-porownywarka",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Przeglądarka internetowa z obsługą JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "description": "Narzędzie porównujące zakres dwóch lub trzech ofert oraz dopłaty o znanej kwocie bez oceniania wykonawców i bez zgadywania brakujących cen."
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#request-generator",
      "name": "Generator jednakowego zapytania o wycenę podłogówki",
      "url": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#rq-zapytanie",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Przeglądarka internetowa z obsługą JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "description": "Generator jednakowego zapytania ofertowego z przyciskiem otwierającym szkic e-maila do wykonawców oraz rozmowę WhatsApp z autorem."
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#howto",
      "name": "Jak porównać oferty wykonawców ogrzewania podłogowego",
      "step": [
        { "@type": "HowToStep", "position": 1, "name": "Zbierz wspólne dane budynku", "text": "Zapisz zakres pomieszczeń, powierzchnie, rzuty i dostępne obliczenia." },
        { "@type": "HowToStep", "position": 2, "name": "Rozpoznaj zakres ofert", "text": "Ustal, które oferty obejmują materiały, robociznę, próbę, uruchomienie i roboty podłogowe." },
        { "@type": "HowToStep", "position": 3, "name": "Sprawdź różnice techniczne", "text": "Porównaj założenia dotyczące pętli, rozstawów, rozdzielaczy i przepływów." },
        { "@type": "HowToStep", "position": 4, "name": "Wyjaśnij dopłaty", "text": "Zapytaj pisemnie o pozycje nieopisane oraz koszty wyłączeń i dodatków." },
        { "@type": "HowToStep", "position": 5, "name": "Poproś o oferty na wspólnej podstawie", "text": "Przekaż wykonawcom ten sam projekt lub ten sam opis prac i poproś o uzupełnione kwoty." },
        { "@type": "HowToStep", "position": 6, "name": "Potwierdź wykonanie i odbiór", "text": "Przed zleceniem ustal terminy, próbę, dokumentację oraz procedurę zmian zakresu." }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#faq-schema",
      "mainEntity": [
        { "@type": "Question", "name": "Czy najtańsza wycena podłogówki oznacza najtańszy montaż?", "acceptedAnswer": { "@type": "Answer", "text": "Nie można tego ocenić bez porównania zakresu. Niższa kwota może dotyczyć mniejszej liczby prac, innych materiałów lub wyłączeń wycenianych później. Może też być uczciwą ceną za taki sam zakres; trzeba to sprawdzić." } },
        { "@type": "Question", "name": "Co zrobić, gdy jedna oferta jest za m², a druga jest ryczałtem?", "acceptedAnswer": { "@type": "Answer", "text": "Ustal powierzchnię i prace objęte każdą ceną. Poproś o kwotę końcową dla jednakowego zakresu oraz o wypisanie dopłat i wyłączeń. Sama stawka za m² nie opisuje kompletnej instalacji." } },
        { "@type": "Question", "name": "Czy dwie wyceny można porównać bez projektu?", "acceptedAnswer": { "@type": "Answer", "text": "Można porównać zakres handlowy i zapisane ceny, ale nie zakładać, że odmienne układy pętli są technicznie równoważne. Wyceny oparte na własnych założeniach firm pozostaną wstępne do czasu sprawdzenia rozwiązań." } },
        { "@type": "Question", "name": "Co powinna zawierać wycena ogrzewania podłogowego?", "acceptedAnswer": { "@type": "Answer", "text": "Powinna wskazywać zakres prac, materiały i ilości, podstawę powierzchni, cenę i jej podatkową podstawę, terminy, wyłączenia oraz sposób wykonania i udokumentowania próby i uruchomienia, jeśli należą do zlecenia." } },
        { "@type": "Question", "name": "Czy izolacja i wylewka muszą być w cenie instalatora?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Mogą należeć do innego zakresu robót. Ustal jednak, kto je wykonuje, na jakich warunkach przyjmuje pracę poprzedniej ekipy i jaki koszt ponosi inwestor poza wyceną instalatora." } },
        { "@type": "Question", "name": "Czy w cenie powinna być próba szczelności?", "acceptedAnswer": { "@type": "Answer", "text": "Należy wyraźnie ustalić, kto przeprowadza próbę przed zakryciem, według jakiej procedury i kto przekazuje protokół. Nie zakładaj, że próba jest wliczona tylko dlatego, że oferta mówi o montażu podłogówki." } },
        { "@type": "Question", "name": "Dlaczego wykonawcy podają różną liczbę pętli?", "acceptedAnswer": { "@type": "Answer", "text": "Mogą przyjmować inne rozstawy, dobiegi, powierzchnie czynne lub obciążenia cieplne. Warto porównać te założenia oraz sprawdzić przepływy i opory, zanim uzna się warianty za zamienne." } },
        { "@type": "Question", "name": "Co zrobić, gdy oferta nie podaje ceny transportu?", "acceptedAnswer": { "@type": "Answer", "text": "Poproś o pisemne potwierdzenie, czy dojazd i dostawa są wliczone, czy stanowią dopłatę. Nie przypisuj brakowi informacji kwoty 0 zł." } },
        { "@type": "Question", "name": "Czy oferta materiałów z wyceną jest ofertą wykonania instalacji?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Zestawienie materiałowe opisuje zakupy, a wykonanie wymaga osobnego ustalenia robocizny, harmonogramu, odpowiedzialności za połączenia, próby, uruchomienie i odbiór." } },
        { "@type": "Question", "name": "Czy można dopuścić zamienny typ rury lub rozdzielacza?", "acceptedAnswer": { "@type": "Answer", "text": "Można rozważyć wariant równoważny po porównaniu parametrów, zgodności systemowej i wpływu zmiany na projekt oraz hydraulikę. Poproś o jego osobny opis i cenę, zanim zaakceptujesz zamianę." } },
        { "@type": "Question", "name": "Czy porównywarka wybierze najlepszego wykonawcę?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Porządkuje informacje wpisane z ofert i wskazuje różnice oraz pytania. Nie zna jakości przyszłego montażu, nie sprawdza wiarygodności wykonawcy ani poprawności całego projektu." } },
        { "@type": "Question", "name": "Kiedy ponownie wysłać zapytanie o wycenę?", "acceptedAnswer": { "@type": "Answer", "text": "Gdy po porównaniu ofert nadal nie wiadomo, co zawierają ceny, jakie przyjęto założenia techniczne lub kto wykonuje pominięte prace. Wyślij te same informacje wszystkim wybranym wykonawcom i poproś o uzupełnione odpowiedzi." } }
      ]
    }
  ]
}
</script>

<script>
(function () {
  "use strict";
  var root = document.getElementById("rk-quote-guide");
  if (!root || root.getAttribute("data-rq-ready") === "true") { return; }
  root.setAttribute("data-rq-ready", "true");

  function byId(id) { return document.getElementById(id); }
  function el(tag, className, content) {
    var node = document.createElement(tag);
    if (className) { node.className = className; }
    if (typeof content === "string") { node.textContent = content; }
    return node;
  }
  function labelOf(index) { return ["A", "B", "C"][index]; }
  function getCount() { return Number(byId("rq-count").value) === 3 ? 3 : 2; }
  function numberFrom(value) {
    var clean = String(value).replace(/[\s\u00a0\u202f]/g, "").replace(",", ".");
    if (clean === "") { return null; }
    if (!/^\d+(?:\.\d{1,2})?$/.test(clean)) { return NaN; }
    var number = Number(clean);
    return number <= 100000000 ? number : NaN;
  }
  function money(number) {
    return new Intl.NumberFormat("pl-PL", { maximumFractionDigits: 2, minimumFractionDigits: 0 }).format(number) + " zł";
  }
  function addList(id, items, empty) {
    var list = byId(id);
    list.textContent = "";
    (items.length ? items : [empty]).forEach(function (message) {
      list.appendChild(el("li", "", message));
    });
  }

  var rows = [
    { id: "pipes", name: "Rury i mocowanie", hint: "Materiał, długości, typ i system mocowania." },
    { id: "manifold", name: "Rozdzielacze, szafki i złączki", hint: "Liczba obwodów, wyposażenie, komplety przyłączeniowe." },
    { id: "laying", name: "Układanie i podłączanie", hint: "Montaż pętli, rozdzielaczy i połączeń." },
    { id: "feeds", name: "Dobiegi i przyłącza", hint: "Dojścia do pól grzewczych i zakres podłączenia." },
    { id: "test", name: "Próba szczelności i protokół", hint: "Procedura i dokument potwierdzający wynik." },
    { id: "balancing", name: "Uruchomienie i nastawy", hint: "Ustawienie obliczonych przepływów i przekazanie instalacji." },
    { id: "base", name: "Przygotowanie podłoża", hint: "Prace przed ułożeniem izolacji i rur." },
    { id: "insulation", name: "Izolacja, folia i taśmy", hint: "Warstwy podłogi oraz dylatacje." },
    { id: "screed", name: "Jastrych", hint: "Wykonanie i zakres prac związanych z wylewką." },
    { id: "controls", name: "Automatyka", hint: "Regulatory, siłowniki, połączenia i uruchomienie." },
    { id: "transport", name: "Transport i dojazd", hint: "Materiały, dostawa i przyjazd ekipy." }
  ];
  var storedStates = {};
  var offerBlocks = root.querySelectorAll(".rq-offer");
  var compareForm = byId("rq-compare-form");
  var rowsContainer = byId("rq-item-list");
  var choices = byId("rq-scope-choices");

  function selectedRows() {
    var checked = {};
    choices.querySelectorAll("input[data-scope]").forEach(function (input) {
      if (input.checked) { checked[input.getAttribute("data-scope")] = true; }
    });
    return rows.filter(function (row) { return checked[row.id]; });
  }
  function saveCurrentRows() {
    rowsContainer.querySelectorAll("select[data-row]").forEach(function (select) {
      var key = select.getAttribute("data-row") + "-" + select.getAttribute("data-offer");
      var field = select.parentElement.parentElement.querySelector("input[data-extra]");
      storedStates[key] = { status: select.value, extra: field ? field.value : "" };
    });
  }
  function makeOption(value, textLabel) {
    var option = el("option", "", textLabel);
    option.value = value;
    return option;
  }
  function renderRows() {
    saveCurrentRows();
    var count = getCount();
    offerBlocks.forEach(function (block, index) { block.hidden = index >= count; });
    rowsContainer.textContent = "";
    selectedRows().forEach(function (row) {
      var item = el("div", "rq-scope-item");
      item.appendChild(el("div", "rq-item-name", row.name));
      item.appendChild(el("div", "rq-item-hint", row.hint));
      var cells = el("div", "rq-item-grid");
      for (var index = 0; index < count; index += 1) {
        var cell = el("div");
        var fieldLabel = el("label", "rq-offer-field");
        fieldLabel.appendChild(el("span", "", "Oferta " + labelOf(index)));
        var select = el("select");
        select.setAttribute("data-row", row.id);
        select.setAttribute("data-offer", String(index));
        select.setAttribute("aria-label", row.name + " — oferta " + labelOf(index));
        select.appendChild(makeOption("unknown", "Nie wiadomo"));
        select.appendChild(makeOption("included", "Wliczone w cenę"));
        select.appendChild(makeOption("extra", "Dodatkowo płatne"));
        select.appendChild(makeOption("separate", "Wyłączone; inna ekipa"));
        var key = row.id + "-" + index;
        if (storedStates[key]) { select.value = storedStates[key].status; }
        fieldLabel.appendChild(select);
        cell.appendChild(fieldLabel);
        var extraLabel = el("label", "rq-extra");
        extraLabel.hidden = select.value !== "extra";
        extraLabel.appendChild(el("span", "", "Podana dopłata [zł] — " + labelOf(index)));
        var extraInput = el("input");
        extraInput.type = "text";
        extraInput.inputMode = "decimal";
        extraInput.setAttribute("data-extra", row.id);
        extraInput.setAttribute("data-offer", String(index));
        extraInput.setAttribute("aria-label", "Dopłata za " + row.name + " — oferta " + labelOf(index));
        extraInput.placeholder = "Puste = kwota nieznana";
        if (storedStates[key]) { extraInput.value = storedStates[key].extra; }
        extraLabel.appendChild(extraInput);
        cell.appendChild(extraLabel);
        cells.appendChild(cell);
      }
      item.appendChild(cells);
      rowsContainer.appendChild(item);
    });
    if (!selectedRows().length) {
      rowsContainer.appendChild(el("p", "", "Zaznacz co najmniej jedną pozycję ze wspólnego zakresu."));
    }
  }

  rowsContainer.addEventListener("change", function (event) {
    var target = event.target;
    if (target.matches("select[data-row]")) {
      var extra = target.parentElement.parentElement.querySelector(".rq-extra");
      if (extra) { extra.hidden = target.value !== "extra"; }
    }
  });
  choices.addEventListener("change", renderRows);
  byId("rq-count").addEventListener("change", renderRows);

  function offerField(index, key) {
    return offerBlocks[index].querySelector("[data-key='" + key + "']").value;
  }
  function resultState(title, description, level, known, differences, questions) {
    var result = byId("rq-compare-result");
    result.classList.remove("rq-result-good", "rq-result-stop");
    if (level === "good") { result.classList.add("rq-result-good"); }
    if (level === "stop") { result.classList.add("rq-result-stop"); }
    byId("rq-compare-title").textContent = title;
    byId("rq-compare-intro").textContent = description;
    addList("rq-result-known", known, "Brak potwierdzonych danych.");
    addList("rq-result-diff", differences, "Nie wpisano różnic zakresu.");
    addList("rq-result-ask", questions, "Brak kolejnych pytań z podanych danych.");
  }
  function analyze(event) {
    if (event) { event.preventDefault(); }
    saveCurrentRows();
    var count = getCount();
    var selected = selectedRows();
    var known = [];
    var different = [];
    var questions = [];
    var blocked = false;
    var incomplete = false;
    var design = byId("rq-design").value;
    if (!selected.length) {
      resultState("Wybierz zakres porównania", "Bez pozycji zakresu nie można zestawić ofert.", "stop", [], [], ["Zaznacz co najmniej jedną pracę lub dostawę."]);
      byId("rq-compare-title").focus();
      return;
    }
    if (design === "yes") {
      known.push("Oferty odnoszą się do wskazanego wspólnego projektu — sprawdź również zgodność każdej oferty z tym projektem.");
    } else {
      incomplete = true;
      questions.push(design === "no" ?
        "Każdy wykonawca przyjął własne założenia. Ustal wspólny układ lub osobno zweryfikuj proponowane warianty." :
        "Potwierdź, czy wykonawcy wycenili ten sam układ pętli i te same dane budynku.");
    }

    var offers = [];
    for (var index = 0; index < count; index += 1) {
      var offer = {
        letter: labelOf(index), price: numberFrom(offerField(index, "price")),
        tax: offerField(index, "tax"), area: numberFrom(offerField(index, "area")),
        areaType: offerField(index, "areaType"), tech: offerField(index, "tech"),
        extras: 0, missingExtra: false, hasExcluded: false
      };
      offers.push(offer);
      if (Number.isNaN(offer.price) || (offer.price !== null ? offer.price <= 0 : false)) {
        incomplete = true;
        questions.push("Oferta " + offer.letter + ": wpisz dodatnią kwotę w złotych albo zostaw pole puste.");
      }
      if (Number.isNaN(offer.area) || (offer.area !== null ? offer.area <= 0 : false)) {
        incomplete = true;
        questions.push("Oferta " + offer.letter + ": popraw podaną powierzchnię albo pozostaw ją pustą.");
      }
      if (offer.tech === "change") {
        blocked = true;
        different.push("Oferta " + offer.letter + " proponuje inny układ. Wymaga osobnej oceny technicznej przed porównaniem ceny z wariantem bazowym.");
      } else if (offer.tech === "unknown") {
        incomplete = true;
        questions.push("Oferta " + offer.letter + ": potwierdź rozstawy, liczbę pętli i parametry układu.");
      }
      if (offer.price !== null) {
        if (!Number.isNaN(offer.price)) {
          if (offer.tax === "unknown") {
            incomplete = true;
            questions.push("Oferta " + offer.letter + ": ustal, czy kwota jest netto czy brutto.");
          }
        }
      }
      if (offer.area !== null) {
        if (!Number.isNaN(offer.area)) {
          if (offer.areaType === "unknown") {
            incomplete = true;
            questions.push("Oferta " + offer.letter + ": ustal, od jakiej powierzchni wykonawca liczy zakres.");
          }
        }
      }
    }
    var areaTypeSet = {};
    var areaSet = {};
    offers.forEach(function (offer) {
      if (offer.areaType !== "unknown") { areaTypeSet[offer.areaType] = true; }
      if (offer.area !== null) {
        if (!Number.isNaN(offer.area)) {
          if (offer.area > 0) { areaSet[String(offer.area)] = true; }
        }
      }
    });
    if (Object.keys(areaTypeSet).length > 1 || Object.keys(areaSet).length > 1) {
      incomplete = true;
      different.push("Oferty odnoszą się do różnych podstaw powierzchniowych. Poproś o sumy dla tego samego zakresu pomieszczeń.");
    }

    selected.forEach(function (row) {
      var statuses = [];
      var names = [];
      for (var i = 0; i < count; i += 1) {
        var saved = storedStates[row.id + "-" + i] || { status: "unknown", extra: "" };
        statuses.push(saved.status);
        if (saved.status === "included") { names.push(labelOf(i) + ": wliczone"); }
        if (saved.status === "separate") {
          offers[i].hasExcluded = true;
          names.push(labelOf(i) + ": inna ekipa");
        }
        if (saved.status === "unknown") {
          incomplete = true;
          questions.push("Oferta " + labelOf(i) + ": wyjaśnij pozycję „" + row.name + "”.");
          names.push(labelOf(i) + ": brak informacji");
        }
        if (saved.status === "extra") {
          var extraAmount = numberFrom(saved.extra);
          if (Number.isNaN(extraAmount)) {
            incomplete = true;
            questions.push("Oferta " + labelOf(i) + ": popraw wpisaną dopłatę za „" + row.name + "”.");
            offers[i].missingExtra = true;
            names.push(labelOf(i) + ": błędna kwota dopłaty");
          } else if (extraAmount === null) {
            incomplete = true;
            questions.push("Oferta " + labelOf(i) + ": poproś o kwotę dopłaty za „" + row.name + "”.");
            offers[i].missingExtra = true;
            names.push(labelOf(i) + ": dopłata bez ceny");
          } else {
            offers[i].extras += extraAmount;
            names.push(labelOf(i) + ": dopłata " + money(extraAmount));
          }
        }
      }
      if (statuses.every(function (status) { return status === "included"; })) {
        known.push("„" + row.name + "” opisano jako wliczone we wszystkie porównywane oferty.");
      } else if (statuses.every(function (status) { return status === "separate"; })) {
        known.push("„" + row.name + "” wyłączono ze wszystkich ofert; uzgodnij koszt i wykonawcę poza nimi.");
      } else {
        different.push("„" + row.name + "” — " + names.join("; ") + ".");
        if (statuses.indexOf("separate") !== -1) {
          if (statuses.some(function (status) {
            return status === "included" || status === "extra";
          })) {
            blocked = true;
            questions.push("„" + row.name + "” należy do różnych zakresów prac. Ustal cenę wyłączenia i odpowiedzialność za wykonanie.");
          }
        }
      }
    });

    var taxSet = {};
    var completeMoney = true;
    offers.forEach(function (offer) {
      if (offer.price === null || Number.isNaN(offer.price) || offer.price <= 0 || offer.tax === "unknown" || offer.missingExtra) {
        completeMoney = false;
      }
      if (offer.tax !== "unknown") { taxSet[offer.tax] = true; }
    });
    if (Object.keys(taxSet).length > 1) {
      incomplete = true;
      completeMoney = false;
      questions.push("Oferty mieszają kwoty netto i brutto. Poproś wszystkich o tę samą podstawę rozliczenia.");
    }
    if (offers.some(function (offer) { return offer.price === null; })) {
      questions.push("Wpisz kwotę każdej oferty, jeśli chcesz zestawić znane sumy. Bez kwot można nadal ocenić zakres.");
    }
    var sumsCanBeShown = false;
    if (completeMoney) {
      if (Object.keys(taxSet).length === 1) {
        if (!blocked) { sumsCanBeShown = true; }
      }
    }
    if (sumsCanBeShown) {
      var allGross = offers.every(function (offer) { return offer.tax === "gross"; });
      known.push("Znane kwoty podstawowe z podanymi dopłatami (" + (allGross ? "brutto" : "netto") + "): " +
        offers.map(function (offer) { return offer.letter + " " + money(offer.price + offer.extras); }).join("; ") + ".");
      if (!allGross) {
        incomplete = true;
        questions.push("Podane sumy są netto. Poproś o końcowe kwoty brutto; narzędzie nie przyjmuje domyślnej stawki podatku.");
      }
      if (offers.some(function (offer) { return offer.hasExcluded; })) {
        known.push("Kwoty nie obejmują robót wskazanych jako wykonywane przez inną ekipę.");
      }
    } else if (offers.some(function (offer) { return offer.price !== null; })) {
      incomplete = true;
      questions.push("Nie wszystkie sumy da się zestawić: sprawdź podstawy podatku, brakujące kwoty i dopłaty.");
    }
    var comparisonReady = false;
    if (!blocked) {
      if (!incomplete) {
        if (completeMoney) { comparisonReady = true; }
      }
    }
    if (comparisonReady) {
      resultState("Zakres opisano na wspólnej podstawie", "Możesz zestawić podane kwoty brutto. Wynik nie ocenia jakości pracy ani poprawności obliczeń.", "good", known, different, questions);
    } else if (blocked) {
      resultState("Nie porównuj jeszcze cen końcowych", "Co najmniej jedna oferta obejmuje inny zakres lub wariant techniczny. Wyjaśnij tę różnicę przed wyborem.", "stop", known, different, questions);
    } else {
      resultState("Potrzebne są wyjaśnienia do ofert", "Część danych jest nieznana albo nie pozwala jeszcze porównać końcowych cen.", "check", known, different, questions);
    }
    byId("rq-compare-title").focus();
  }
  compareForm.addEventListener("submit", analyze);
  compareForm.addEventListener("reset", function () {
    window.setTimeout(function () {
      storedStates = {};
      renderRows();
      resultState("Wybierz zakres i uzupełnij oferty",
        "Narzędzie oddzieli zgodny zakres, różnice i pytania do wykonawców. Brak kwoty lub opisu nie jest traktowany jako koszt zero.",
        "check",
        ["Porównanie nie zostało jeszcze wykonane."],
        ["Wypełnij dane z ofert."],
        ["Przygotuj oferty lub zapytania do wykonawców."]);
    }, 0);
  });
  renderRows();

  var requestForm = byId("rq-request-form");
  var requestOutput = byId("rq-request-output");
  var copyStatus = byId("rq-copy-status");
  function cleanPlainText(text) {
    return String(text).replace(/[\r\n\t]+/g, " ").replace(/\s+/g, " ").trim();
  }
  function requestText(event) {
    event.preventDefault();
    copyStatus.textContent = "";
    var area = numberFrom(byId("rq-request-area").value);
    if (area !== null) {
      if (Number.isNaN(area) || area <= 0) {
        requestOutput.value = "";
        copyStatus.textContent = "Popraw powierzchnię: wpisz dodatnią liczbę albo zostaw pole puste.";
        byId("rq-request-area").focus();
        return;
      }
    }
    var chosen = Array.prototype.map.call(
      byId("rq-request-scope").querySelectorAll("input:checked"),
      function (input) { return input.value; }
    );
    var levels = { unknown: "nieustalona", one: "jedna", two: "dwie", many: "trzy lub więcej" };
    var technologies = {
      unspecified: "do określenia w ofercie", wet: "system mokry",
      dry: "system suchy", retrofit: "modernizacja istniejącej podłogi"
    };
    var sources = {
      unspecified: "nieustalone", heatpump: "pompa ciepła",
      boiler: "kocioł", other: "inne źródło lub układ mieszany"
    };
    var project = byId("rq-request-project").value === "yes";
    var time = cleanPlainText(byId("rq-request-date").value);
    var lines = [
      "Temat: Prośba o wycenę ogrzewania podłogowego — jednakowy zakres zapytania",
      "",
      "Dzień dobry,",
      "",
      "Proszę o wycenę projektu ogrzewania podłogowego i obliczeń OZC oraz wybranych poniżej dodatkowych prac, jeśli zostały wskazane.",
      "Powierzchnia objęta planem: " + (area === null ? "do ustalenia na podstawie rzutów" : new Intl.NumberFormat("pl-PL", { maximumFractionDigits: 2 }).format(area) + " m² (proszę podać własną podstawę rozliczenia)."),
      "Kondygnacje: " + levels[byId("rq-request-levels").value] + ".",
      "Technologia: " + technologies[byId("rq-request-tech").value] + ".",
      "Źródło ciepła: " + sources[byId("rq-request-source").value] + ".",
      "Planowany termin: " + (time || "do uzgodnienia") + ".",
      "Podstawa techniczna: " + (project ?
        "dołączam posiadany projekt z obliczeniami; proszę osobno wycenić jego weryfikację i niezbędne uzupełnienie oraz weryfikację lub aktualizację OZC. Ewentualne odstępstwa od istniejącego projektu proszę opisać oddzielnie." :
        "nie dysponuję jeszcze wspólnym projektem z obliczeniami; proszę osobno wycenić wykonanie projektu i OZC. Wycena ewentualnego montażu pozostanie wstępna do czasu ukończenia dokumentacji."),
      "",
      "Zakres podstawowy do wyceny — zawsze:",
      "- Projekt ogrzewania podłogowego: wykonanie albo weryfikacja i uzupełnienie posiadanej dokumentacji.",
      "- Obliczenia OZC: wykonanie albo weryfikacja i aktualizacja posiadanych obliczeń."
    ];
    if (chosen.length) {
      lines.push("", "Dodatkowe prace i dostawy do wyceny:");
      chosen.forEach(function (scope) { lines.push("- " + scope + "."); });
    } else {
      lines.push("", "Nie zamawiam w tym zapytaniu dostawy materiałów ani prac montażowych.");
    }
    lines.push(
      "",
      "W odpowiedzi proszę podać:",
      "- Osobno cenę brutto projektu i obliczeń OZC oraz zakres opracowań, przekazywane dokumenty i termin wykonania."
    );
    if (chosen.length) {
      lines.push(
      "1. Całkowitą cenę brutto oraz zestawienie materiałów i robocizny; wyodrębnić każdą dopłatę.",
      "2. Przyjętą powierzchnię i jej rodzaj: całkowita, ogrzewana albo czynna; wskazać pomieszczenia objęte wyceną.",
      "3. Typ i ilość rur, liczbę i długości pętli, rozstawy, dobiegi, liczbę rozdzielaczy oraz zakres przyłączy, o ile te dane są dostępne.",
      "4. Wykaz elementów w cenie, wyłączeń oraz prac przewidzianych dla innej ekipy lub inwestora.",
      "5. Informację o próbie szczelności, protokole, uruchomieniu i nastawach, także wtedy, gdy są wyłączone z oferty.",
      "6. Termin wykonania, okres ważności ceny i sposób wyceny zmian przed ich wykonaniem.",
      "7. Osobne uzasadnienie i cenę każdego wariantu odmiennego od przekazanego projektu."
      );
    }
    lines.push(
      "",
      "Proszę o pisemne potwierdzenie zakresu oraz o wskazanie danych potrzebnych do uzupełnienia wyceny.",
      "",
      "Pozdrawiam"
    );
    requestOutput.value = lines.join("\n");
    copyStatus.textContent = "Zapytanie gotowe. Możesz otworzyć szkic e-maila albo wiadomość WhatsApp do autora.";
    requestOutput.focus();
  }
  requestForm.addEventListener("submit", requestText);
  requestForm.addEventListener("reset", function () {
    window.setTimeout(function () {
      requestOutput.value = "";
      copyStatus.textContent = "";
    }, 0);
  });
  byId("rq-email-request").addEventListener("click", function () {
    if (!requestOutput.value) {
      copyStatus.textContent = "Najpierw przygotuj treść zapytania.";
      return;
    }
    var messageLines = requestOutput.value.split("\n");
    var subject = messageLines.shift().replace(/^Temat:\s*/, "");
    if (messageLines[0] === "") { messageLines.shift(); }
    var body = messageLines.join("\n");
    var separator = String.fromCharCode(38);
    copyStatus.textContent = "Otwieram szkic do biuro@projekt-ogrzewania.pl. Możesz dopisać innych odbiorców przed wysłaniem.";
    window.location.href = "mailto:biuro@projekt-ogrzewania.pl?subject=" + encodeURIComponent(subject) + separator + "body=" + encodeURIComponent(body);
  });
  byId("rq-whatsapp-request").addEventListener("click", function () {
    if (!requestOutput.value) {
      copyStatus.textContent = "Najpierw przygotuj treść zapytania.";
      return;
    }
    var message = "Wiadomość do Roberta Kucharskiego w sprawie ogrzewania podłogowego:\n\n" + requestOutput.value;
    copyStatus.textContent = "Otwieram rozmowę z Robertem Kucharskim. Sprawdź treść przed wysłaniem.";
    window.open("https://wa.me/48794358367?text=" + encodeURIComponent(message), "_blank", "noopener,noreferrer");
  });
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/">Jak porównać wyceny ogrzewania podłogowego? Oferty wykonawców krok po kroku</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Grubość wylewki betonowej na ogrzewanie podłogowe.</title>
		<link>https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 14 Mar 2026 14:21:33 +0000</pubDate>
				<category><![CDATA[Błędy wykonawcze]]></category>
		<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Kalkulatory budowlane]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Narzędzia i kalkulatory]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Porady inwestycyjne]]></category>
		<category><![CDATA[Porady techniczne]]></category>
		<category><![CDATA[Posadzki i wylewki]]></category>
		<category><![CDATA[bezwładność cieplna]]></category>
		<category><![CDATA[budowa domu]]></category>
		<category><![CDATA[dylatacje]]></category>
		<category><![CDATA[grubość wylewki]]></category>
		<category><![CDATA[jastrych cementowy]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[opór cieplny]]></category>
		<category><![CDATA[plastyfikator do betonu]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[posadzki]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[wylewka anhydrytowa]]></category>
		<category><![CDATA[wylewka betonowa]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3831</guid>

					<description><![CDATA[<p>Decyzja o montażu „podłogówki” to zaledwie początek wyzwań, z jakimi musisz się zmierzyć podczas budowy lub remontu domu. Jednym z kluczowych parametrów, który bezpośrednio wpłynie na sprawność instalacji, wysokość rachunków za energię oraz trwałość samej posadzki, jest odpowiednia grubość wylewki betonowej na ogrzewanie podłogowe. Zbyt cienka warstwa to ogromne ryzyko pęknięć i nierównomiernego rozkładu temperatur (tzw. efekt „zebry”). Z kolei zbyt masywny jastrych drastycznie zwiększy bezwładność cieplną systemu, sprawiając, że dom będzie nagrzewał się wolno, a koszty eksploatacji niepotrzebnie wzrosną. W tym artykule rozkładamy na czynniki pierwsze fizykę przenikania ciepła, tłumaczymy obowiązujące normy i podpowiadamy, jak uniknąć kosztownych błędów wykonawczych.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/">Grubość wylewki betonowej na ogrzewanie podłogowe.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-screed-guide {
    --rk-dark: #102536;
    --rk-navy: #14384d;
    --rk-blue: #078fbe;
    --rk-cyan: #28c9da;
    --rk-cyan-soft: #eafcff;
    --rk-orange: #ff6238;
    --rk-red: #d83c2f;
    --rk-green: #178265;
    --rk-green-soft: #ebf8f3;
    --rk-yellow: #f2b441;
    --rk-ink: #1d2c3a;
    --rk-text: #465a6b;
    --rk-muted: #687b89;
    --rk-line: #d9e7ed;
    --rk-soft: #f5f9fb;
    --rk-warm: #fff4ef;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1480px;
    margin: 32px auto 70px;
    color: var(--rk-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 18px;
    line-height: 1.78;
  }

  #rk-screed-guide,
  #rk-screed-guide * {
    box-sizing: border-box;
  }

  #rk-screed-guide img,
  #rk-screed-guide svg {
    max-width: 100%;
  }

  #rk-screed-guide button,
  #rk-screed-guide input,
  #rk-screed-guide a,
  #rk-screed-guide summary {
    -webkit-tap-highlight-color: transparent;
  }

  #rk-screed-guide a {
    color: var(--rk-blue);
    font-weight: 780;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }

  #rk-screed-guide a:hover {
    color: var(--rk-red);
  }

  #rk-screed-guide h2,
  #rk-screed-guide h3,
  #rk-screed-guide h4 {
    margin-top: 0;
    color: var(--rk-dark);
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.16;
  }

  #rk-screed-guide h2 {
    margin-bottom: 18px;
    font-size: clamp(1.65rem, 3.6vw, 2.65rem);
  }

  #rk-screed-guide h3 {
    margin-bottom: 12px;
    font-size: clamp(1.18rem, 2.5vw, 1.58rem);
  }

  #rk-screed-guide h4 {
    margin-bottom: 8px;
    font-size: 1.02rem;
    letter-spacing: -0.015em;
  }

  #rk-screed-guide h2::before,
  #rk-screed-guide h2::after,
  #rk-screed-guide h3::before,
  #rk-screed-guide h3::after,
  #rk-screed-guide h4::before,
  #rk-screed-guide h4::after {
    content: none !important;
    display: none !important;
  }

  #rk-screed-guide p {
    margin: 0 0 1.22em;
    color: var(--rk-text);
  }

  #rk-screed-guide strong {
    color: var(--rk-dark);
  }

  #rk-screed-guide section[id] {
    scroll-margin-top: 28px;
  }

  #rk-screed-guide .rk-screed-shell {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 30px;
    background: var(--rk-white);
    box-shadow: 0 25px 70px rgba(16, 37, 54, 0.12);
  }

  #rk-screed-guide .rk-screed-progress-track {
    position: sticky;
    z-index: 40;
    top: 0;
    width: 100%;
    height: 5px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.88);
  }

  #rk-screed-guide .rk-screed-progress {
    width: 0;
    height: 100%;
    background: linear-gradient(90deg, var(--rk-cyan), var(--rk-blue), var(--rk-orange));
  }

  #rk-screed-guide .rk-screed-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(38px, 6.5vw, 78px);
    color: var(--rk-white);
    background:
      radial-gradient(circle at 88% 13%, rgba(255, 98, 56, 0.31), transparent 28%),
      radial-gradient(circle at 78% 78%, rgba(40, 201, 218, 0.22), transparent 33%),
      linear-gradient(135deg, #0d2230 0%, #143b50 58%, #09647e 100%);
  }

  #rk-screed-guide .rk-screed-hero::before,
  #rk-screed-guide .rk-screed-hero::after {
    content: "";
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    pointer-events: none;
  }

  #rk-screed-guide .rk-screed-hero::before {
    right: -120px;
    bottom: -175px;
    width: 400px;
    height: 400px;
    border: 58px solid rgba(255, 255, 255, 0.055);
  }

  #rk-screed-guide .rk-screed-hero::after {
    right: 145px;
    bottom: -125px;
    width: 235px;
    height: 235px;
    border: 34px solid rgba(255, 98, 56, 0.12);
  }

  #rk-screed-guide .rk-screed-badge {
    display: inline-flex;
    gap: 10px;
    align-items: center;
    margin: 0 0 24px;
    padding: 8px 15px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 999px;
    color: var(--rk-white);
    background: rgba(255, 255, 255, 0.08);
    font-size: 0.73rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    line-height: 1.35;
    text-transform: uppercase;
  }

  #rk-screed-guide .rk-screed-badge::before {
    content: "";
    width: 10px;
    height: 10px;
    flex: 0 0 10px;
    border-radius: 50%;
    background: var(--rk-orange);
    box-shadow: 0 0 0 6px rgba(255, 98, 56, 0.18);
  }

  #rk-screed-guide .rk-screed-hero h2 {
    max-width: 1040px;
    margin-bottom: 24px;
    color: var(--rk-white);
    font-size: clamp(2rem, 5.05vw, 3.85rem);
    letter-spacing: -0.055em;
  }

  #rk-screed-guide .rk-screed-hero h2 span {
    color: #83edf5;
  }

  #rk-screed-guide .rk-screed-hook {
    max-width: 930px;
    margin: 0 0 21px;
    padding: 19px 21px;
    border-left: 5px solid var(--rk-orange);
    border-radius: 0 15px 15px 0;
    background: rgba(255, 255, 255, 0.09);
  }

  #rk-screed-guide .rk-screed-hook p,
  #rk-screed-guide .rk-screed-hook strong,
  #rk-screed-guide .rk-screed-hero-lead {
    color: var(--rk-white);
  }

  #rk-screed-guide .rk-screed-hook p {
    margin: 0;
    font-size: clamp(1rem, 2vw, 1.16rem);
    line-height: 1.67;
  }

  #rk-screed-guide .rk-screed-hero-lead {
    max-width: 930px;
    font-size: 1.03rem;
  }

  #rk-screed-guide .rk-screed-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin-top: 24px;
    color: #cde0e7;
    font-size: 0.72rem;
    font-weight: 770;
  }

  #rk-screed-guide .rk-screed-hero-meta span::before {
    content: "•";
    margin-right: 8px;
    color: var(--rk-orange);
  }

  #rk-screed-guide .rk-screed-author-strip {
    display: flex;
    gap: 13px;
    align-items: center;
    margin-top: 26px;
  }

  #rk-screed-guide .rk-screed-author-strip img {
    width: 54px;
    height: 54px;
    flex: 0 0 54px;
    border: 3px solid rgba(255, 255, 255, 0.85);
    border-radius: 50%;
    object-fit: cover;
  }

  #rk-screed-guide .rk-screed-author-strip b,
  #rk-screed-guide .rk-screed-author-strip small {
    display: block;
  }

  #rk-screed-guide .rk-screed-author-strip b {
    color: var(--rk-white);
    font-size: 0.88rem;
  }

  #rk-screed-guide .rk-screed-author-strip small {
    color: #cde0e7;
    font-size: 0.7rem;
    line-height: 1.45;
  }

  #rk-screed-guide .rk-screed-content {
    padding: clamp(30px, 5.7vw, 72px);
  }

  #rk-screed-guide .rk-screed-learn {
    margin-bottom: 36px;
  }

  #rk-screed-guide .rk-screed-learn > strong {
    display: block;
    margin-bottom: 16px;
    font-size: 1.12rem;
  }

  #rk-screed-guide .rk-screed-learn-grid,
  #rk-screed-guide .rk-screed-card-grid,
  #rk-screed-guide .rk-screed-error-grid,
  #rk-screed-guide .rk-screed-check-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }

  #rk-screed-guide .rk-screed-learn-card,
  #rk-screed-guide .rk-screed-card,
  #rk-screed-guide .rk-screed-error,
  #rk-screed-guide .rk-screed-check {
    min-width: 0;
    padding: 21px;
    border: 1px solid var(--rk-line);
    border-radius: 19px;
    background: var(--rk-soft);
  }

  #rk-screed-guide .rk-screed-learn-card {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
  }

  #rk-screed-guide .rk-screed-no,
  #rk-screed-guide .rk-screed-card-icon,
  #rk-screed-guide .rk-screed-error-no,
  #rk-screed-guide .rk-screed-check-no {
    display: grid;
    width: 46px;
    height: 46px;
    place-items: center;
    border-radius: 14px;
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.72rem;
    font-weight: 900;
  }

  #rk-screed-guide .rk-screed-learn-card h4,
  #rk-screed-guide .rk-screed-learn-card p,
  #rk-screed-guide .rk-screed-card h4,
  #rk-screed-guide .rk-screed-card p,
  #rk-screed-guide .rk-screed-error h4,
  #rk-screed-guide .rk-screed-error p,
  #rk-screed-guide .rk-screed-check h4,
  #rk-screed-guide .rk-screed-check p {
    margin: 0;
  }

  #rk-screed-guide .rk-screed-learn-card p,
  #rk-screed-guide .rk-screed-card p,
  #rk-screed-guide .rk-screed-error p,
  #rk-screed-guide .rk-screed-check p {
    margin-top: 6px;
    font-size: 0.84rem;
    line-height: 1.58;
  }

  #rk-screed-guide .rk-screed-nav {
    margin-bottom: 46px;
    padding: 22px;
    border: 1px solid #cce4ec;
    border-radius: 19px;
    background: var(--rk-cyan-soft);
  }

  #rk-screed-guide .rk-screed-nav > strong {
    display: block;
    margin-bottom: 12px;
  }

  #rk-screed-guide .rk-screed-nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }

  #rk-screed-guide .rk-screed-nav a {
    padding: 7px 11px;
    border: 1px solid #bfdbe5;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.72rem;
    text-decoration: none;
  }

  #rk-screed-guide .rk-screed-nav a:hover {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-screed-guide .rk-screed-section {
    margin-top: 64px;
  }

  #rk-screed-guide .rk-screed-section-head {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 17px;
    align-items: start;
    margin-bottom: 25px;
  }

  #rk-screed-guide .rk-screed-section-head h2,
  #rk-screed-guide .rk-screed-section-head p {
    margin: 0;
  }

  #rk-screed-guide .rk-screed-section-head p {
    margin-top: 8px;
    font-size: 0.88rem;
  }

  #rk-screed-guide .rk-screed-section-no {
    display: grid;
    width: 52px;
    height: 52px;
    place-items: center;
    border-radius: 16px;
    color: var(--rk-white);
    background: linear-gradient(145deg, var(--rk-orange), var(--rk-red));
    font-size: 0.78rem;
    font-weight: 900;
    box-shadow: 0 11px 23px rgba(216, 60, 47, 0.2);
  }

  #rk-screed-guide .rk-screed-answer,
  #rk-screed-guide .rk-screed-truth,
  #rk-screed-guide .rk-screed-warning,
  #rk-screed-guide .rk-screed-note,
  #rk-screed-guide .rk-screed-formula {
    margin: 24px 0;
    padding: 24px;
    border-radius: 20px;
  }

  #rk-screed-guide .rk-screed-answer {
    border: 1px solid #bde3eb;
    border-left: 6px solid var(--rk-cyan);
    background: var(--rk-cyan-soft);
  }

  #rk-screed-guide .rk-screed-truth {
    border: 1px solid #f2c5b6;
    border-left: 6px solid var(--rk-orange);
    background: var(--rk-warm);
  }

  #rk-screed-guide .rk-screed-warning {
    border: 1px solid #f0cfd0;
    border-left: 6px solid var(--rk-red);
    background: #fff5f5;
  }

  #rk-screed-guide .rk-screed-note {
    border: 1px solid #cbe6da;
    border-left: 6px solid var(--rk-green);
    background: var(--rk-green-soft);
  }

  #rk-screed-guide .rk-screed-answer p,
  #rk-screed-guide .rk-screed-truth p,
  #rk-screed-guide .rk-screed-warning p,
  #rk-screed-guide .rk-screed-note p,
  #rk-screed-guide .rk-screed-formula p {
    margin: 0;
  }

  #rk-screed-guide .rk-screed-card-grid.three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-screed-guide .rk-screed-card-grid.four {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #rk-screed-guide .rk-screed-card {
    background: var(--rk-white);
  }

  #rk-screed-guide .rk-screed-card-icon {
    margin-bottom: 15px;
    background: linear-gradient(145deg, var(--rk-blue), var(--rk-cyan));
  }

  #rk-screed-guide .rk-screed-list {
    margin: 18px 0 24px;
    padding: 0;
    list-style: none;
  }

  #rk-screed-guide .rk-screed-list li {
    position: relative;
    margin: 9px 0;
    padding-left: 31px;
    color: var(--rk-text);
  }

  #rk-screed-guide .rk-screed-list li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 0.08em;
    display: grid;
    width: 20px;
    height: 20px;
    place-items: center;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-green);
    font-size: 0.66rem;
    font-weight: 900;
  }

  #rk-screed-guide .rk-screed-table-wrap {
    margin: 24px 0;
  }

  #rk-screed-guide .rk-screed-table {
    width: 100%;
    border-spacing: 0;
    border-collapse: separate;
    table-layout: fixed;
    border: 1px solid var(--rk-line);
    border-radius: 19px;
    overflow: hidden;
    background: var(--rk-white);
  }

  #rk-screed-guide .rk-screed-table th,
  #rk-screed-guide .rk-screed-table td {
    overflow-wrap: anywhere;
    padding: 15px 16px;
    border-right: 1px solid var(--rk-line);
    border-bottom: 1px solid var(--rk-line);
    text-align: left;
    vertical-align: top;
  }

  #rk-screed-guide .rk-screed-table th:last-child,
  #rk-screed-guide .rk-screed-table td:last-child {
    border-right: 0;
  }

  #rk-screed-guide .rk-screed-table tr:last-child td {
    border-bottom: 0;
  }

  #rk-screed-guide .rk-screed-table th {
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.76rem;
    line-height: 1.4;
  }

  #rk-screed-guide .rk-screed-table td {
    color: var(--rk-text);
    font-size: 0.8rem;
    line-height: 1.55;
  }

  #rk-screed-guide .rk-screed-table tbody tr:nth-child(even) td {
    background: var(--rk-soft);
  }

  #rk-screed-guide .rk-screed-flow {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 9px;
    margin: 25px 0 18px;
  }

  #rk-screed-guide .rk-screed-flow-step {
    min-width: 0;
    padding: 16px 12px;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font: inherit;
    font-size: 0.74rem;
    font-weight: 850;
    line-height: 1.4;
    cursor: pointer;
  }

  #rk-screed-guide .rk-screed-flow-step:hover,
  #rk-screed-guide .rk-screed-flow-step.is-active {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-screed-guide .rk-screed-flow-detail {
    min-height: 150px;
    padding: 23px;
    border: 1px solid #cde5ec;
    border-radius: 19px;
    background: var(--rk-cyan-soft);
  }

  #rk-screed-guide .rk-screed-flow-detail h3,
  #rk-screed-guide .rk-screed-flow-detail p {
    margin: 0;
  }

  #rk-screed-guide .rk-screed-flow-detail p {
    margin-top: 9px;
  }

  #rk-screed-guide .rk-screed-formula {
    border: 1px solid #c6dce5;
    background: var(--rk-dark);
  }

  #rk-screed-guide .rk-screed-formula strong,
  #rk-screed-guide .rk-screed-formula p,
  #rk-screed-guide .rk-screed-formula code {
    color: var(--rk-white);
  }

  #rk-screed-guide .rk-screed-formula code {
    display: block;
    margin: 13px 0;
    padding: 15px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.07);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.82rem;
    line-height: 1.65;
    white-space: normal;
  }

  #rk-screed-guide .rk-screed-architectures {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 15px;
    margin: 25px 0;
  }

  #rk-screed-guide .rk-screed-architecture {
    min-width: 0;
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-soft);
  }

  #rk-screed-guide .rk-screed-architecture > span {
    display: inline-flex;
    margin-bottom: 12px;
    padding: 6px 10px;
    border-radius: 999px;
    color: var(--rk-white);
    background: var(--rk-orange);
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.05em;
    text-transform: uppercase;
  }

  #rk-screed-guide .rk-screed-nodes {
    display: grid;
    gap: 8px;
    margin: 17px 0;
  }

  #rk-screed-guide .rk-screed-node {
    position: relative;
    padding: 12px;
    border: 1px solid #cbdde5;
    border-radius: 12px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.76rem;
    font-weight: 820;
    text-align: center;
  }

  #rk-screed-guide .rk-screed-node + .rk-screed-node::before {
    content: "↓";
    position: absolute;
    top: -16px;
    left: 50%;
    color: var(--rk-orange);
    font-size: 1rem;
    transform: translateX(-50%);
  }

  #rk-screed-guide .rk-screed-architecture p {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.58;
  }

  #rk-screed-guide .rk-screed-lab {
    overflow: hidden;
    margin: 28px 0;
    border: 1px solid #c9e1e9;
    border-radius: 25px;
    background: var(--rk-white);
    box-shadow: 0 18px 45px rgba(16, 37, 54, 0.1);
  }

  #rk-screed-guide .rk-screed-lab-head {
    padding: 25px;
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-dark), var(--rk-navy));
  }

  #rk-screed-guide .rk-screed-lab-head h3,
  #rk-screed-guide .rk-screed-lab-head p {
    margin: 0;
    color: var(--rk-white);
  }

  #rk-screed-guide .rk-screed-lab-head p {
    margin-top: 8px;
    color: #cfe2e8;
    font-size: 0.87rem;
  }

  #rk-screed-guide .rk-screed-presets {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 17px;
  }

  #rk-screed-guide .rk-screed-preset {
    padding: 8px 12px;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 999px;
    color: var(--rk-white);
    background: rgba(255, 255, 255, 0.08);
    font: inherit;
    font-size: 0.7rem;
    font-weight: 850;
    cursor: pointer;
  }

  #rk-screed-guide .rk-screed-preset:hover,
  #rk-screed-guide .rk-screed-preset.is-active {
    color: var(--rk-dark);
    border-color: var(--rk-cyan);
    background: var(--rk-cyan);
  }

  #rk-screed-guide .rk-screed-lab-grid {
    display: grid;
    grid-template-columns: minmax(280px, 0.92fr) minmax(0, 1.35fr);
    gap: 0;
  }

  #rk-screed-guide .rk-screed-controls {
    padding: 25px;
    border-right: 1px solid var(--rk-line);
    background: var(--rk-soft);
  }

  #rk-screed-guide .rk-screed-control {
    margin-bottom: 19px;
  }

  #rk-screed-guide .rk-screed-control:last-child {
    margin-bottom: 0;
  }

  #rk-screed-guide .rk-screed-control label {
    display: flex;
    gap: 10px;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
    color: var(--rk-dark);
    font-size: 0.76rem;
    font-weight: 850;
    line-height: 1.35;
  }

  #rk-screed-guide .rk-screed-control output {
    flex: 0 0 auto;
    padding: 4px 8px;
    border-radius: 8px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 0.7rem;
  }

  #rk-screed-guide .rk-screed-control input[type="range"] {
    width: 100%;
    margin: 0;
    accent-color: var(--rk-orange);
    cursor: pointer;
  }

  #rk-screed-guide .rk-screed-visual {
    min-width: 0;
    padding: 25px;
  }

  #rk-screed-guide .rk-screed-results {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 16px;
  }

  #rk-screed-guide .rk-screed-result {
    min-width: 0;
    padding: 15px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-soft);
  }

  #rk-screed-guide .rk-screed-result span,
  #rk-screed-guide .rk-screed-result strong {
    display: block;
  }

  #rk-screed-guide .rk-screed-result span {
    color: var(--rk-muted);
    font-size: 0.66rem;
    font-weight: 760;
    line-height: 1.35;
  }

  #rk-screed-guide .rk-screed-result strong {
    margin-top: 5px;
    color: var(--rk-dark);
    font-size: 1.28rem;
    line-height: 1.15;
    overflow-wrap: anywhere;
  }

  #rk-screed-guide .rk-screed-chart {
    width: 100%;
    min-height: 330px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: linear-gradient(180deg, #fbfeff, #f3f8fa);
  }

  #rk-screed-guide .rk-screed-chart .rk-grid-line {
    stroke: #d9e6ec;
    stroke-width: 1;
  }

  #rk-screed-guide .rk-screed-chart .rk-axis {
    stroke: #8194a1;
    stroke-width: 1.4;
  }

  #rk-screed-guide .rk-screed-chart .rk-axis-label,
  #rk-screed-guide .rk-screed-chart .rk-tick {
    fill: #5f7381;
    font-family: Inter, ui-sans-serif, system-ui, sans-serif;
    font-size: 11px;
  }

  #rk-screed-guide .rk-screed-chart .rk-curve {
    fill: none;
    stroke: var(--rk-blue);
    stroke-width: 5;
    stroke-linecap: round;
  }

  #rk-screed-guide .rk-screed-chart .rk-dot {
    fill: var(--rk-orange);
    stroke: var(--rk-white);
    stroke-width: 4;
  }

  #rk-screed-guide .rk-screed-chart .rk-guide {
    stroke: var(--rk-orange);
    stroke-width: 1.5;
    stroke-dasharray: 5 5;
  }

  #rk-screed-guide .rk-screed-status {
    margin-top: 14px;
    padding: 15px;
    border-radius: 13px;
    color: var(--rk-dark);
    background: var(--rk-cyan-soft);
    font-size: 0.78rem;
    font-weight: 760;
    line-height: 1.55;
  }

  #rk-screed-guide .rk-screed-status.is-ok {
    color: #07553f;
    background: #e7f8f1;
  }

  #rk-screed-guide .rk-screed-status.is-warning {
    color: #71330d;
    background: #fff1e5;
  }

  #rk-screed-guide .rk-screed-disclaimer {
    padding: 0 25px 24px;
    color: var(--rk-muted);
    font-size: 0.72rem;
    line-height: 1.55;
  }

  #rk-screed-guide .rk-screed-number-input {
    width: 100%;
    min-height: 46px;
    padding: 10px 12px;
    border: 1px solid #bfd3dc;
    border-radius: 11px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font: inherit;
    font-size: 0.82rem;
    font-weight: 760;
  }

  #rk-screed-guide .rk-screed-number-input:focus-visible,
  #rk-screed-guide button:focus-visible,
  #rk-screed-guide a:focus-visible,
  #rk-screed-guide summary:focus-visible {
    outline: 3px solid rgba(40, 201, 218, 0.42);
    outline-offset: 3px;
  }

  #rk-screed-guide .rk-screed-plan-wrap {
    padding: 14px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: linear-gradient(180deg, #fbfeff, #f1f7fa);
  }

  #rk-screed-guide .rk-screed-plan {
    display: block;
    width: 100%;
    min-height: 330px;
    border-radius: 12px;
    background: var(--rk-white);
  }

  #rk-screed-guide .rk-screed-plan .rk-screed-room {
    fill: #f7fbfd;
    stroke: var(--rk-dark);
    stroke-width: 3;
  }

  #rk-screed-guide .rk-screed-plan .rk-screed-zone {
    fill: rgba(255, 98, 56, 0.19);
    stroke: var(--rk-orange);
    stroke-width: 2;
    stroke-dasharray: 7 5;
  }

  #rk-screed-guide .rk-screed-plan .rk-screed-glazing {
    stroke: var(--rk-blue);
    stroke-width: 9;
    stroke-linecap: round;
  }

  #rk-screed-guide .rk-screed-plan .rk-screed-pipe-zone {
    fill: none;
    stroke: var(--rk-orange);
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  #rk-screed-guide .rk-screed-plan .rk-screed-pipe-main {
    fill: none;
    stroke: var(--rk-cyan);
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  #rk-screed-guide .rk-screed-plan text {
    fill: var(--rk-dark);
    font-family: Inter, ui-sans-serif, system-ui, sans-serif;
    font-size: 13px;
    font-weight: 800;
  }

  #rk-screed-guide .rk-screed-plan-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 13px;
    margin-top: 12px;
    color: var(--rk-muted);
    font-size: 0.7rem;
    font-weight: 780;
  }

  #rk-screed-guide .rk-screed-plan-legend span {
    display: inline-flex;
    gap: 7px;
    align-items: center;
  }

  #rk-screed-guide .rk-screed-plan-legend i {
    display: inline-block;
    width: 23px;
    height: 5px;
    border-radius: 999px;
    background: var(--rk-cyan);
  }

  #rk-screed-guide .rk-screed-plan-legend .zone i {
    background: var(--rk-orange);
  }

  #rk-screed-guide .rk-screed-plan-legend .glass i {
    background: var(--rk-blue);
  }

  #rk-screed-guide .rk-screed-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 16px;
  }

  #rk-screed-guide .rk-screed-metric {
    min-width: 0;
    padding: 14px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-soft);
  }

  #rk-screed-guide .rk-screed-metric span,
  #rk-screed-guide .rk-screed-metric strong {
    display: block;
  }

  #rk-screed-guide .rk-screed-metric span {
    color: var(--rk-muted);
    font-size: 0.63rem;
    font-weight: 780;
    line-height: 1.35;
  }

  #rk-screed-guide .rk-screed-metric strong {
    margin-top: 5px;
    color: var(--rk-dark);
    font-size: 1.05rem;
    line-height: 1.2;
  }

  #rk-screed-guide .rk-screed-status.is-warning {
    color: #7c321d;
    background: var(--rk-warm);
  }

  #rk-screed-guide .rk-screed-small {
    color: var(--rk-muted);
    font-size: 0.78rem;
    line-height: 1.62;
  }

  #rk-screed-guide .rk-screed-howto {
    display: grid;
    gap: 12px;
    margin: 25px 0;
    padding: 0;
    list-style: none;
  }

  #rk-screed-guide .rk-screed-howto-step {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 16px;
    align-items: start;
    padding: 20px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-white);
  }

  #rk-screed-guide .rk-screed-howto-step > span {
    display: grid;
    width: 52px;
    height: 52px;
    place-items: center;
    border-radius: 16px;
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.8rem;
    font-weight: 900;
  }

  #rk-screed-guide .rk-screed-howto-step h3,
  #rk-screed-guide .rk-screed-howto-step p {
    margin: 0;
  }

  #rk-screed-guide .rk-screed-howto-step p {
    margin-top: 7px;
    font-size: 0.87rem;
  }

  #rk-screed-guide .rk-screed-faq-list {
    display: grid;
    gap: 10px;
  }

  #rk-screed-guide .rk-screed-faq {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    background: var(--rk-white);
  }

  #rk-screed-guide .rk-screed-faq summary {
    position: relative;
    padding: 19px 52px 19px 20px;
    color: var(--rk-dark);
    font-weight: 850;
    line-height: 1.45;
    cursor: pointer;
    list-style: none;
  }

  #rk-screed-guide .rk-screed-faq summary::-webkit-details-marker {
    display: none;
  }

  #rk-screed-guide .rk-screed-faq summary::after {
    content: "+";
    position: absolute;
    top: 50%;
    right: 18px;
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-blue);
    transform: translateY(-50%);
  }

  #rk-screed-guide .rk-screed-faq[open] summary::after {
    content: "−";
  }

  #rk-screed-guide .rk-screed-faq-answer {
    padding: 0 20px 19px;
  }

  #rk-screed-guide .rk-screed-faq-answer p {
    margin: 0;
    font-size: 0.88rem;
  }

  #rk-screed-guide .rk-screed-sources {
    margin-top: 28px;
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    color: var(--rk-muted);
    background: var(--rk-soft);
    font-size: 0.76rem;
    line-height: 1.7;
  }

  #rk-screed-guide .rk-screed-sources > strong {
    display: block;
    margin-bottom: 8px;
  }

  #rk-screed-guide .rk-screed-cta {
    margin-top: 58px;
    padding: clamp(28px, 5vw, 48px);
    border-radius: 26px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 92% 12%, rgba(255, 98, 56, 0.3), transparent 33%),
      linear-gradient(135deg, #102536, #174155);
    box-shadow: 0 20px 45px rgba(16, 37, 54, 0.16);
  }

  #rk-screed-guide .rk-screed-cta h3,
  #rk-screed-guide .rk-screed-cta p,
  #rk-screed-guide .rk-screed-cta strong {
    color: var(--rk-white);
  }

  #rk-screed-guide .rk-screed-cta p {
    max-width: 880px;
  }

  #rk-screed-guide .rk-screed-cta-kicker {
    display: block;
    margin-bottom: 10px;
    color: #7af0ff;
    font-size: 0.72rem;
    font-weight: 950;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-screed-guide .rk-screed-cta h2,
  #rk-screed-guide .rk-screed-cta h3 {
    color: #ffffff !important;
  }

  #rk-screed-guide .rk-screed-cta-link {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 56px;
    margin-top: 7px;
    padding: 15px 24px;
    border-radius: 14px;
    color: var(--rk-white) !important;
    background: linear-gradient(90deg, var(--rk-orange), #f04432);
    box-shadow: 0 14px 28px rgba(216, 60, 47, 0.24);
    font-size: 0.88rem;
    font-weight: 900;
    text-align: center;
    text-decoration: none !important;
  }

  #rk-screed-guide .rk-screed-cta-link:hover {
    color: var(--rk-white) !important;
    filter: brightness(1.06);
    transform: translateY(-1px);
  }

  #rk-screed-guide .rk-screed-cta small {
    display: block;
    margin-top: 14px;
    color: #bdd1da;
    font-size: 0.7rem;
    line-height: 1.5;
  }

  #rk-screed-guide .rk-screed-author-box {
    overflow: hidden;
    margin-top: 30px;
    border: 1px solid var(--rk-line);
    border-radius: 26px;
    background: var(--rk-white);
  }

  #rk-screed-guide .rk-screed-author-head {
    display: flex;
    gap: 20px;
    justify-content: space-between;
    align-items: center;
    padding: 28px;
    color: var(--rk-white);
    border-bottom: 5px solid var(--rk-cyan);
    background: var(--rk-dark);
  }

  #rk-screed-guide .rk-screed-author-head h3,
  #rk-screed-guide .rk-screed-author-head p {
    margin: 0;
    color: var(--rk-white);
  }

  #rk-screed-guide .rk-screed-author-head p {
    margin-top: 6px;
    color: #cde0e7;
    font-size: 0.82rem;
  }

  #rk-screed-guide .rk-screed-author-mark {
    flex: 0 0 auto;
    padding: 10px 15px;
    border: 1px solid rgba(40, 201, 218, 0.35);
    border-radius: 13px;
    color: #84edf5;
    background: rgba(40, 201, 218, 0.08);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
  }

  #rk-screed-guide .rk-screed-author-main {
    display: grid;
    grid-template-columns: 310px minmax(0, 1fr);
  }

  #rk-screed-guide .rk-screed-author-profile {
    padding: 32px;
    border-right: 1px solid var(--rk-line);
    background: var(--rk-soft);
    text-align: center;
  }

  #rk-screed-guide .rk-screed-author-profile img {
    width: 174px;
    height: 174px;
    border: 8px solid var(--rk-white);
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 16px 34px rgba(16, 37, 54, 0.14);
  }

  #rk-screed-guide .rk-screed-author-profile h4 {
    margin: 18px 0 7px;
    font-size: 1.36rem;
  }

  #rk-screed-guide .rk-screed-author-role {
    display: block;
    color: var(--rk-blue);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    line-height: 1.6;
    text-transform: uppercase;
  }

  #rk-screed-guide .rk-screed-author-social-label {
    margin-top: 24px;
    color: var(--rk-muted);
    font-size: 0.66rem;
    font-weight: 900;
    letter-spacing: 0.05em;
    text-transform: uppercase;
  }

  #rk-screed-guide .rk-screed-author-social {
    display: flex;
    justify-content: center;
    gap: 9px;
    margin-top: 10px;
  }

  #rk-screed-guide .rk-screed-author-social a {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border: 1px solid var(--rk-line);
    border-radius: 50%;
    color: var(--rk-dark);
    background: var(--rk-white);
    text-decoration: none;
    transition: transform .2s ease, border-color .2s ease, color .2s ease;
  }

  #rk-screed-guide .rk-screed-author-social a:hover {
    color: var(--rk-blue);
    border-color: var(--rk-cyan);
    transform: translateY(-2px);
  }

  #rk-screed-guide .rk-screed-author-social svg {
    width: 20px;
    height: 20px;
    fill: currentColor;
  }

  #rk-screed-guide .rk-screed-author-content {
    min-width: 0;
    padding: 32px;
  }

  #rk-screed-guide .rk-screed-quote {
    position: relative;
    margin-bottom: 22px;
    padding: 23px 23px 23px 61px;
    border-radius: 18px;
    background: var(--rk-cyan-soft);
  }

  #rk-screed-guide .rk-screed-quote::before {
    content: "“";
    position: absolute;
    top: 3px;
    left: 18px;
    color: var(--rk-cyan);
    font-family: Georgia, serif;
    font-size: 4rem;
    line-height: 1;
  }

  #rk-screed-guide .rk-screed-quote blockquote {
    margin: 0;
    color: var(--rk-dark);
    font-size: 1.03rem;
    font-style: italic;
    font-weight: 790;
    line-height: 1.7;
  }

  #rk-screed-guide .rk-screed-tab-buttons {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border: 1px solid var(--rk-line);
    border-radius: 14px 14px 0 0;
    overflow: hidden;
  }

  #rk-screed-guide .rk-screed-tab-button {
    min-width: 0;
    padding: 13px 10px;
    border: 0;
    border-right: 1px solid var(--rk-line);
    color: var(--rk-muted);
    background: var(--rk-soft);
    font: inherit;
    font-size: 0.72rem;
    font-weight: 900;
    text-transform: uppercase;
    cursor: pointer;
  }

  #rk-screed-guide .rk-screed-tab-button:last-child {
    border-right: 0;
  }

  #rk-screed-guide .rk-screed-tab-button.is-active {
    color: var(--rk-blue);
    background: var(--rk-white);
    box-shadow: inset 0 -4px 0 var(--rk-blue);
  }

  #rk-screed-guide .rk-screed-tab-panel {
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-top: 0;
    border-radius: 0 0 14px 14px;
  }

  #rk-screed-guide .rk-screed-tab-panel[hidden] {
    display: none !important;
  }

  #rk-screed-guide .rk-screed-tab-panel p {
    margin: 0;
    font-size: 0.86rem;
  }

  #rk-screed-guide .rk-screed-portals {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 14px;
  }

  #rk-screed-guide .rk-screed-portals a {
    padding: 8px 12px;
    border: 1px solid #c8dbe4;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.75rem;
    text-decoration: none;
  }

  #rk-screed-guide .rk-screed-portals a:hover {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  @media (max-width: 1120px) {
    #rk-screed-guide .rk-screed-card-grid.four {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-screed-guide .rk-screed-architectures,
    #rk-screed-guide .rk-screed-card-grid.three {
      grid-template-columns: 1fr;
    }

    #rk-screed-guide .rk-screed-author-main {
      grid-template-columns: 260px minmax(0, 1fr);
    }
  }

  @media (max-width: 880px) {
    #rk-screed-guide {
      font-size: 17px;
    }

    #rk-screed-guide .rk-screed-lab-grid,
    #rk-screed-guide .rk-screed-author-main {
      grid-template-columns: 1fr;
    }

    #rk-screed-guide .rk-screed-controls,
    #rk-screed-guide .rk-screed-author-profile {
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }

    #rk-screed-guide .rk-screed-flow {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-screed-guide .rk-screed-flow-step:last-child {
      grid-column: 1 / -1;
    }

    #rk-screed-guide .rk-screed-metrics {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (max-width: 720px) {
    #rk-screed-guide {
      margin: 18px auto 50px;
      font-size: 16px;
    }

    #rk-screed-guide .rk-screed-shell {
      border-radius: 20px;
    }

    #rk-screed-guide .rk-screed-hero,
    #rk-screed-guide .rk-screed-content {
      padding: 25px 18px;
    }

    #rk-screed-guide .rk-screed-learn-grid,
    #rk-screed-guide .rk-screed-card-grid,
    #rk-screed-guide .rk-screed-card-grid.four,
    #rk-screed-guide .rk-screed-error-grid,
    #rk-screed-guide .rk-screed-check-grid,
    #rk-screed-guide .rk-screed-results {
      grid-template-columns: 1fr;
    }

    #rk-screed-guide .rk-screed-section {
      margin-top: 48px;
    }

    #rk-screed-guide .rk-screed-section-head {
      grid-template-columns: 44px minmax(0, 1fr);
      gap: 12px;
    }

    #rk-screed-guide .rk-screed-section-no {
      width: 42px;
      height: 42px;
      border-radius: 13px;
    }

    #rk-screed-guide .rk-screed-table,
    #rk-screed-guide .rk-screed-table tbody,
    #rk-screed-guide .rk-screed-table tr,
    #rk-screed-guide .rk-screed-table td {
      display: block;
      width: 100%;
    }

    #rk-screed-guide .rk-screed-table {
      border: 0;
      background: transparent;
    }

    #rk-screed-guide .rk-screed-table thead {
      position: absolute;
      width: 1px;
      height: 1px;
      overflow: hidden;
      clip: rect(0 0 0 0);
      white-space: nowrap;
    }

    #rk-screed-guide .rk-screed-table tr {
      margin-bottom: 13px;
      border: 1px solid var(--rk-line);
      border-radius: 16px;
      overflow: hidden;
      background: var(--rk-white);
    }

    #rk-screed-guide .rk-screed-table td,
    #rk-screed-guide .rk-screed-table tr:last-child td {
      display: grid;
      grid-template-columns: minmax(105px, 0.42fr) minmax(0, 0.58fr);
      gap: 10px;
      padding: 13px;
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
      background: var(--rk-white) !important;
    }

    #rk-screed-guide .rk-screed-table td:last-child {
      border-bottom: 0;
    }

    #rk-screed-guide .rk-screed-table td::before {
      content: attr(data-label);
      color: var(--rk-dark);
      font-weight: 900;
    }

    #rk-screed-guide .rk-screed-chart {
      min-height: 265px;
    }

    #rk-screed-guide .rk-screed-plan {
      min-height: 265px;
    }

    #rk-screed-guide .rk-screed-metrics {
      grid-template-columns: 1fr;
    }

    #rk-screed-guide .rk-screed-howto-step {
      grid-template-columns: 44px minmax(0, 1fr);
      gap: 12px;
      padding: 16px;
    }

    #rk-screed-guide .rk-screed-howto-step > span {
      width: 42px;
      height: 42px;
      border-radius: 13px;
    }

    #rk-screed-guide .rk-screed-author-head {
      align-items: flex-start;
      flex-direction: column;
      padding: 22px;
    }

    #rk-screed-guide .rk-screed-author-content,
    #rk-screed-guide .rk-screed-author-profile {
      padding: 22px;
    }

    #rk-screed-guide .rk-screed-tab-buttons {
      grid-template-columns: 1fr;
    }

    #rk-screed-guide .rk-screed-tab-button {
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }

    #rk-screed-guide .rk-screed-tab-button:last-child {
      border-bottom: 0;
    }

    #rk-screed-guide .rk-screed-cta-link {
      width: 100%;
    }
  }

  #rk-screed-guide .rk-screed-program-switch {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 18px;
  }

  #rk-screed-guide .rk-screed-program-button {
    min-height: 52px;
    padding: 12px 15px;
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 13px;
    color: var(--rk-white);
    background: rgba(255, 255, 255, 0.08);
    font: inherit;
    font-size: 0.76rem;
    font-weight: 900;
    line-height: 1.35;
    cursor: pointer;
  }

  #rk-screed-guide .rk-screed-program-button:hover,
  #rk-screed-guide .rk-screed-program-button.is-active {
    color: var(--rk-dark);
    border-color: var(--rk-cyan);
    background: var(--rk-cyan);
  }

  #rk-screed-guide .rk-screed-program-panel[hidden] {
    display: none !important;
  }

  #rk-screed-guide .rk-screed-program-title {
    margin: 0 0 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--rk-line);
    color: var(--rk-dark);
    font-size: 0.88rem;
    font-weight: 900;
  }

  #rk-screed-guide .rk-screed-select {
    width: 100%;
    min-height: 46px;
    padding: 10px 38px 10px 12px;
    border: 1px solid #bfd3dc;
    border-radius: 11px;
    color: var(--rk-dark);
    background-color: var(--rk-white);
    font: inherit;
    font-size: 0.8rem;
    font-weight: 760;
    cursor: pointer;
  }

  #rk-screed-guide .rk-screed-control-note {
    display: block;
    margin-top: 6px;
    color: var(--rk-muted);
    font-size: 0.66rem;
    line-height: 1.5;
  }

  #rk-screed-guide .rk-screed-estimate {
    position: relative;
    overflow: hidden;
    margin-bottom: 16px;
    padding: 25px;
    border-radius: 19px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 95% 0%, rgba(255, 98, 56, 0.31), transparent 36%),
      linear-gradient(135deg, var(--rk-dark), var(--rk-navy));
  }

  #rk-screed-guide .rk-screed-estimate span,
  #rk-screed-guide .rk-screed-estimate strong,
  #rk-screed-guide .rk-screed-estimate small {
    display: block;
    color: var(--rk-white);
  }

  #rk-screed-guide .rk-screed-estimate span {
    font-size: 0.7rem;
    font-weight: 850;
    letter-spacing: 0.05em;
    text-transform: uppercase;
  }

  #rk-screed-guide .rk-screed-estimate strong {
    margin-top: 7px;
    font-size: clamp(2rem, 5vw, 3.45rem);
    line-height: 1;
  }

  #rk-screed-guide .rk-screed-estimate small {
    max-width: 620px;
    margin-top: 12px;
    color: #cde0e7;
    font-size: 0.72rem;
    line-height: 1.55;
  }

  #rk-screed-guide .rk-screed-limit-bar {
    height: 12px;
    margin: 18px 0 8px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
  }

  #rk-screed-guide .rk-screed-limit-fill {
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--rk-cyan), var(--rk-orange));
    transition: width 220ms ease;
  }

  #rk-screed-guide .rk-screed-result-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 14px;
  }

  #rk-screed-guide .rk-screed-result-card {
    min-width: 0;
    padding: 15px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-soft);
  }

  #rk-screed-guide .rk-screed-result-card span,
  #rk-screed-guide .rk-screed-result-card strong {
    display: block;
  }

  #rk-screed-guide .rk-screed-result-card span {
    color: var(--rk-muted);
    font-size: 0.65rem;
    font-weight: 760;
    line-height: 1.4;
  }

  #rk-screed-guide .rk-screed-result-card strong {
    margin-top: 5px;
    color: var(--rk-dark);
    font-size: 1.05rem;
    line-height: 1.3;
  }

  #rk-screed-guide .rk-screed-status-list {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  #rk-screed-guide .rk-screed-status-list li {
    position: relative;
    margin: 7px 0;
    padding-left: 24px;
    color: var(--rk-text);
    font-size: 0.76rem;
    line-height: 1.55;
  }

  #rk-screed-guide .rk-screed-status-list li::before {
    content: "i";
    position: absolute;
    left: 0;
    top: 0.2em;
    display: grid;
    width: 16px;
    height: 16px;
    place-items: center;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 0.58rem;
    font-weight: 900;
  }

  #rk-screed-guide .rk-screed-status-list li.is-alert::before {
    content: "!";
    background: var(--rk-orange);
  }

  #rk-screed-guide .rk-screed-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 16px 0;
  }

  #rk-screed-guide .rk-screed-chip {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 6px 10px;
    border: 1px solid #c6dce5;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.68rem;
    font-weight: 850;
    line-height: 1.35;
  }

  #rk-screed-guide .rk-screed-example-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 24px 0;
  }

  #rk-screed-guide .rk-screed-example {
    min-width: 0;
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-top: 5px solid var(--rk-cyan);
    border-radius: 18px;
    background: var(--rk-white);
  }

  #rk-screed-guide .rk-screed-example:nth-child(2) {
    border-top-color: var(--rk-orange);
  }

  #rk-screed-guide .rk-screed-example:nth-child(3) {
    border-top-color: var(--rk-blue);
  }

  #rk-screed-guide .rk-screed-example h3,
  #rk-screed-guide .rk-screed-example p {
    margin: 0;
  }

  #rk-screed-guide .rk-screed-example p {
    margin-top: 8px;
    font-size: 0.8rem;
    line-height: 1.6;
  }

  #rk-screed-guide .rk-screed-example code {
    display: block;
    margin-top: 14px;
    padding: 13px;
    border-radius: 11px;
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.75rem;
    line-height: 1.6;
    white-space: normal;
  }

  #rk-screed-guide .rk-screed-verdict {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(220px, 0.75fr);
    gap: 22px;
    align-items: center;
    margin: 26px 0;
    padding: 26px;
    border: 1px solid #f0c7b8;
    border-radius: 22px;
    background: var(--rk-warm);
  }

  #rk-screed-guide .rk-screed-verdict h3,
  #rk-screed-guide .rk-screed-verdict p {
    margin: 0;
  }

  #rk-screed-guide .rk-screed-verdict p {
    margin-top: 8px;
  }

  #rk-screed-guide .rk-screed-verdict-mark {
    padding: 22px;
    border-radius: 17px;
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-orange), var(--rk-red));
    font-size: 1.25rem;
    font-weight: 900;
    line-height: 1.2;
    text-align: center;
  }

  @media (max-width: 980px) {
    #rk-screed-guide .rk-screed-example-grid,
    #rk-screed-guide .rk-screed-verdict {
      grid-template-columns: 1fr;
    }
  }

  @media (max-width: 720px) {
    #rk-screed-guide .rk-screed-program-switch,
    #rk-screed-guide .rk-screed-result-grid {
      grid-template-columns: 1fr;
    }
  }

  /* Elementy charakterystyczne dla opracowania o jastrychu grzejnym */
  #rk-screed-guide .rk-screed-term-grid,
  #rk-screed-guide .rk-screed-phase-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 24px 0;
  }

  #rk-screed-guide .rk-screed-term,
  #rk-screed-guide .rk-screed-phase {
    min-width: 0;
    padding: 21px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-white);
  }

  #rk-screed-guide .rk-screed-term b,
  #rk-screed-guide .rk-screed-phase b {
    display: block;
    margin-bottom: 7px;
    color: var(--rk-dark);
    font-size: 0.96rem;
  }

  #rk-screed-guide .rk-screed-term p,
  #rk-screed-guide .rk-screed-phase p {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.62;
  }

  #rk-screed-guide .rk-screed-phase {
    position: relative;
    padding-top: 55px;
    background: var(--rk-soft);
  }

  #rk-screed-guide .rk-screed-phase::before {
    content: attr(data-step);
    position: absolute;
    top: 17px;
    left: 20px;
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: 9px;
    color: var(--rk-white);
    background: var(--rk-orange);
    font-size: 0.7rem;
    font-weight: 900;
  }

  #rk-screed-guide .rk-screed-lab-grid {
    grid-template-columns: minmax(300px, 0.88fr) minmax(0, 1.5fr);
  }

  #rk-screed-guide .rk-screed-input-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px;
  }

  #rk-screed-guide .rk-screed-input-grid .rk-screed-control {
    margin: 0;
  }

  #rk-screed-guide .rk-screed-cross-wrap {
    display: grid;
    grid-template-columns: minmax(240px, 0.9fr) minmax(0, 1.1fr);
    gap: 16px;
    margin-top: 17px;
  }

  #rk-screed-guide .rk-screed-cross-card,
  #rk-screed-guide .rk-screed-energy-card {
    min-width: 0;
    padding: 16px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: linear-gradient(180deg, #fbfeff, #f2f8fa);
  }

  #rk-screed-guide .rk-screed-cross-title,
  #rk-screed-guide .rk-screed-energy-title {
    display: block;
    margin-bottom: 11px;
    color: var(--rk-dark);
    font-size: 0.72rem;
    font-weight: 900;
    line-height: 1.4;
  }

  #rk-screed-guide .rk-screed-cross {
    display: block;
    width: 100%;
    min-height: 250px;
    border-radius: 12px;
    background: #fff;
  }

  #rk-screed-guide .rk-screed-cross text,
  #rk-screed-guide .rk-screed-energy-chart text {
    fill: #506777;
    font-family: Inter, ui-sans-serif, system-ui, sans-serif;
    font-size: 11px;
    font-weight: 760;
  }

  #rk-screed-guide .rk-screed-cross .rk-screed-layer-floor {
    fill: #d9e3e7;
  }

  #rk-screed-guide .rk-screed-cross .rk-screed-layer-screed {
    fill: #c6d0d5;
  }

  #rk-screed-guide .rk-screed-cross .rk-screed-layer-insulation {
    fill: #eafcff;
    stroke: #28c9da;
    stroke-width: 1.5;
  }

  #rk-screed-guide .rk-screed-cross .rk-screed-pipe {
    fill: #ff6238;
    stroke: #ffffff;
    stroke-width: 4;
  }

  #rk-screed-guide .rk-screed-cross .rk-screed-dimension {
    stroke: #078fbe;
    stroke-width: 2;
    marker-start: url(#rk-screed-arrow-start);
    marker-end: url(#rk-screed-arrow-end);
  }

  #rk-screed-guide .rk-screed-energy-chart {
    display: block;
    width: 100%;
    min-height: 250px;
    border-radius: 12px;
    background: #fff;
  }

  #rk-screed-guide .rk-screed-energy-chart .rk-screed-bar {
    fill: url(#rk-screed-bar-gradient);
  }

  #rk-screed-guide .rk-screed-energy-chart .rk-screed-axis-line {
    stroke: #c8d9e1;
    stroke-width: 1;
  }

  #rk-screed-guide .rk-screed-results {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #rk-screed-guide .rk-screed-result.is-accent {
    border-color: #b6e9ef;
    background: var(--rk-cyan-soft);
  }

  #rk-screed-guide .rk-screed-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 9px 14px;
    margin-top: 12px;
    color: var(--rk-muted);
    font-size: 0.67rem;
    font-weight: 760;
  }

  #rk-screed-guide .rk-screed-legend span {
    display: inline-flex;
    gap: 7px;
    align-items: center;
  }

  #rk-screed-guide .rk-screed-legend i {
    display: inline-block;
    width: 20px;
    height: 7px;
    border-radius: 999px;
    background: #c6d0d5;
  }

  #rk-screed-guide .rk-screed-legend .pipe i {
    background: var(--rk-orange);
  }

  #rk-screed-guide .rk-screed-legend .insulation i {
    background: var(--rk-cyan);
  }

  #rk-screed-guide .rk-screed-protocol {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin: 24px 0;
  }

  #rk-screed-guide .rk-screed-protocol-step {
    min-width: 0;
    padding: 19px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: var(--rk-soft);
  }

  #rk-screed-guide .rk-screed-protocol-step span {
    display: inline-flex;
    margin-bottom: 11px;
    padding: 5px 9px;
    border-radius: 999px;
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.66rem;
    font-weight: 900;
  }

  #rk-screed-guide .rk-screed-protocol-step h3,
  #rk-screed-guide .rk-screed-protocol-step p {
    margin: 0;
  }

  #rk-screed-guide .rk-screed-protocol-step p {
    margin-top: 7px;
    font-size: 0.8rem;
  }

  @media (max-width: 1120px) {
    #rk-screed-guide .rk-screed-term-grid,
    #rk-screed-guide .rk-screed-phase-grid,
    #rk-screed-guide .rk-screed-protocol {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-screed-guide .rk-screed-cross-wrap {
      grid-template-columns: 1fr;
    }
  }

  @media (max-width: 880px) {
    #rk-screed-guide .rk-screed-lab-grid {
      grid-template-columns: 1fr;
    }

    #rk-screed-guide .rk-screed-results {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (max-width: 720px) {
    #rk-screed-guide .rk-screed-term-grid,
    #rk-screed-guide .rk-screed-phase-grid,
    #rk-screed-guide .rk-screed-protocol,
    #rk-screed-guide .rk-screed-input-grid,
    #rk-screed-guide .rk-screed-results {
      grid-template-columns: 1fr;
    }

    #rk-screed-guide .rk-screed-cross,
    #rk-screed-guide .rk-screed-energy-chart {
      min-height: 215px;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    #rk-screed-guide *,
    #rk-screed-guide *::before,
    #rk-screed-guide *::after {
      scroll-behavior: auto !important;
      transition: none !important;
      animation: none !important;
    }
  }
</style>

<article id="rk-screed-guide" itemscope itemtype="https://schema.org/TechArticle">
  <div class="rk-screed-shell">
    <div class="rk-screed-progress-track" aria-hidden="true"><div class="rk-screed-progress"></div></div>

    <header class="rk-screed-hero">
      <div class="rk-screed-badge">Grubość jastrychu • aktualizacja 29 sierpnia 2026 r.</div>
      <h2 itemprop="headline">Grubość wylewki betonowej na ogrzewanie podłogowe — <span>ile cm nad rurą 16 mm?</span></h2>
      <div class="rk-screed-hook">
        <p><strong>Przy rurze 16 mm warstwa o grubości całkowitej 60 mm daje 44 mm jastrychu nad górną krawędzią rury — nie 30 mm.</strong> To poprawna geometria, ale jeszcze nie potwierdzenie, że układ spełnia wymagania wybranego produktu i konstrukcji podłogi.</p>
      </div>
      <p class="rk-screed-hero-lead" itemprop="description">Przewodnik rozdziela grubość całkowitą od otuliny nad rurą, pokazuje obliczenia dla 6, 6,5, 7 i 8 cm oraz wyjaśnia, dlaczego minimum trzeba odczytać z dokumentacji konkretnego jastrychu. Interaktywny analizator sprawdza geometrię, objętość, masę i pojemność cieplną warstwy.</p>
      <div class="rk-screed-hero-meta">
        <span>Autor: Robert Kucharski</span>
        <span>ISO 11855 • EN 13813 • dokumentacja systemu</span>
        <span>Rura 16 mm: obliczenia bez błędu 60 − 16</span>
      </div>
      <div class="rk-screed-author-strip" itemprop="author" itemscope itemtype="https://schema.org/Person">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski – projektant instalacji sanitarnych" width="54" height="54" loading="eager" itemprop="image">
        <div>
          <b itemprop="name">Robert Kucharski</b>
          <small itemprop="jobTitle">Projektant instalacji sanitarnych • specjalista HVAC i ogrzewania podłogowego</small>
        </div>
      </div>
    </header>

    <div class="rk-screed-content">
      <div class="rk-screed-warning">
        <p><strong>Najważniejsze zastrzeżenie techniczne:</strong> artykuł i analizator kontrolują geometrię oraz skutki masowe przyjętej grubości. Nie potwierdzają nośności ani zgodności całej podłogi. Ostateczną wartość ustala się z dokumentacji konkretnego jastrychu, obciążeń, klasy, ściśliwości izolacji i układu pól.</p>
      </div>

      <div class="rk-screed-learn" aria-label="Zakres artykułu">
        <strong>Po lekturze będziesz wiedzieć:</strong>
        <div class="rk-screed-learn-grid">
          <div class="rk-screed-learn-card"><div class="rk-screed-no">01</div><div><h4>Jak policzyć otulinę rury</h4><p>Dlaczego trzeba uwzględnić średnicę przewodu oraz jego rzeczywiste podniesienie nad warstwą odniesienia.</p></div></div>
          <div class="rk-screed-learn-card"><div class="rk-screed-no">02</div><div><h4>Co oznacza 6, 7 i 8 cm</h4><p>Ile materiału pozostaje nad rurą 16 mm oraz jak zmieniają się masa i pojemność cieplna.</p></div></div>
          <div class="rk-screed-learn-card"><div class="rk-screed-no">03</div><div><h4>Skąd wziąć minimum</h4><p>Jak odróżnić przykład producenta od uniwersalnej normy i czego szukać w karcie systemu.</p></div></div>
          <div class="rk-screed-learn-card"><div class="rk-screed-no">04</div><div><h4>Co sprawdzić przed wylaniem</h4><p>Poziomy, obciążenia, dylatacje, zamocowanie rur i próbę szczelności przed zakryciem instalacji.</p></div></div>
        </div>
      </div>

      <nav class="rk-screed-nav" aria-label="Nawigacja po artykule">
        <strong>Przejdź do sekcji</strong>
        <div class="rk-screed-nav-links">
          <a href="#rk-screed-odpowiedz">Szybka odpowiedź</a>
          <a href="#rk-screed-pojecia">Jastrych czy beton?</a>
          <a href="#rk-screed-grubosc">Grubość</a>
          <a href="#rk-screed-kalkulator">Analizator</a>
          <a href="#rk-screed-material">CT czy CA?</a>
          <a href="#rk-screed-klasy">Klasy i λ</a>
          <a href="#rk-screed-zbrojenie">Zbrojenie</a>
          <a href="#rk-screed-dylatacje">Dylatacje</a>
          <a href="#rk-screed-przed">Przed wylaniem</a>
          <a href="#rk-screed-wykonanie">Wykonanie</a>
          <a href="#rk-screed-wygrzewanie">Wygrzewanie</a>
          <a href="#rk-screed-posadzka">Okładzina</a>
          <a href="#rk-screed-bledy">Błędy</a>
          <a href="#rk-screed-kroki">Krok po kroku</a>
          <a href="#rk-screed-faq">FAQ</a>
        </div>
      </nav>

      <section class="rk-screed-section" id="rk-screed-odpowiedz" aria-labelledby="rk-screed-h2-1">
        <div class="rk-screed-section-head">
          <div class="rk-screed-section-no">01</div>
          <div><h2 id="rk-screed-h2-1">Ile powinna mieć wylewka na ogrzewanie podłogowe?</h2><p>Najpierw oddziel grubość całkowitą od warstwy nad rurą.</p></div>
        </div>

        <div class="rk-screed-answer">
          <p><strong>Nie ma jednej wartości poprawnej dla każdego jastrychu.</strong> Jeżeli rura 16 mm leży bezpośrednio na warstwie odniesienia, 60 mm grubości całkowitej oznacza 44 mm nad rurą, 65 mm — 49 mm, 70 mm — 54 mm, a 80 mm — 64 mm. Jeśli systemowa listwa, mata albo klips podnosi rurę, to podniesienie trzeba dodatkowo odjąć.</p>
        </div>

        <div class="rk-screed-card-grid three">
          <div class="rk-screed-card"><div class="rk-screed-card-icon">1</div><h4>Najpierw produkt</h4><p>Wymaganą otulinę i grubość odczytaj z aktualnej dokumentacji wybranego jastrychu oraz systemu podłogi.</p></div>
          <div class="rk-screed-card"><div class="rk-screed-card-icon">2</div><h4>Potem geometria</h4><p>Policz średnicę rury, jej podniesienie oraz warstwę nad najwyższym punktem przewodu.</p></div>
          <div class="rk-screed-card"><div class="rk-screed-card-icon">3</div><h4>Na końcu poziomy</h4><p>Sprawdź całą wysokość podłogi: izolację, jastrych, klej, okładzinę, progi i skrzydła drzwi.</p></div>
        </div>

        <div class="rk-screed-verdict">
          <div><h3>Wzór, który trzeba stosować na budowie</h3><p><strong>Otulina = grubość całkowita − średnica zewnętrzna rury − podniesienie spodu rury.</strong> Pomiar wykonuje się od tej samej warstwy odniesienia. Deklaracja „mamy 6 cm” nic nie mówi, jeśli nie wiadomo, od którego poziomu ją zmierzono.</p></div>
          <div class="rk-screed-verdict-mark">60 − 16 = 44 mm, nie 30 mm</div>
        </div>
      </section>

      <section class="rk-screed-section" id="rk-screed-pojecia" aria-labelledby="rk-screed-h2-2">
        <div class="rk-screed-section-head">
          <div class="rk-screed-section-no">02</div>
          <div><h2 id="rk-screed-h2-2">Beton, jastrych cementowy CT i jastrych anhydrytowy CA – co jest czym?</h2><p>Precyzyjna nazwa ułatwia zamówienie właściwego materiału i ocenę dokumentów.</p></div>
        </div>

        <p>Fraza <strong>wylewka betonowa na ogrzewanie podłogowe</strong> jest powszechnie używana przez inwestorów, lecz technicznie najczęściej opisuje <strong>jastrych cementowy</strong>, oznaczany skrótem CT. To warstwa podkładowa wykonywana na izolacji i oddzielona od konstrukcji budynku taśmą brzegową. Nie jest automatycznie tym samym co beton konstrukcyjny przeznaczony na strop, fundament albo płytę.</p>

        <div class="rk-screed-term-grid">
          <div class="rk-screed-term"><b>Jastrych cementowy – CT</b><p>Podkład na spoiwie cementowym. Może mieć konsystencję półsuchą albo płynną. Odmiana, skład i deklarowane parametry wpływają na skurcz, grubość, pielęgnację i termin nagrzewania.</p></div>
          <div class="rk-screed-term"><b>Jastrych na bazie siarczanu wapnia – CA</b><p>Potocznie nazywany anhydrytowym. Zwykle dobrze otacza rury i może ograniczać liczbę szczelin, ale nie jest rozwiązaniem automatycznie najlepszym dla każdego pomieszczenia.</p></div>
          <div class="rk-screed-term"><b>Beton konstrukcyjny</b><p>Materiał projektowany do elementów nośnych. Jego receptura, kruszywo i sposób wbudowania nie muszą odpowiadać wymaganiom cienkiej, pływającej i ogrzewanej warstwy podłogowej.</p></div>
        </div>

        <p>Jastrych grzejny działa jako płyta pływająca na warstwie izolacyjnej. Przenosi obciążenia, chroni przewody, rozprowadza energię między rurami i tworzy podłoże pod okładzinę. Jego duża masa zwiększa bezwładność: stabilizuje temperaturę, lecz spowalnia reakcję na zmianę nastaw. Dlatego strategia sterowania powinna uwzględniać budynek, źródło ciepła i <a href="https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/">regulację pogodową</a>, a nie opierać się na gwałtownym włączaniu i wyłączaniu obiegów.</p>

        <div class="rk-screed-truth"><p><strong>Ważne:</strong> folia leżąca bezpośrednio pod jastrychem nie działa jak „lustro ciepła” w taki sposób jak warstwa refleksyjna przy szczelinie powietrznej. W systemie mokrym może pełnić funkcję warstwy rozdzielającej, poślizgowej, przeciwwilgociowej albo nadruku montażowego. O ograniczeniu strat w dół decyduje przede wszystkim właściwa <a href="https://projekt-ogrzewania.pl/jakie-sa-najlepsze-sposoby-izolacji-pod-ogrzewanie-podlogowe/">izolacja pod ogrzewaniem podłogowym</a>.</p></div>
      </section>

      <section class="rk-screed-section" id="rk-screed-grubosc" aria-labelledby="rk-screed-h2-3">
        <div class="rk-screed-section-head">
          <div class="rk-screed-section-no">03</div>
          <div><h2 id="rk-screed-h2-3">Grubość 6, 6,5, 7 i 8 cm przy rurze 16 mm</h2><p>Prosta tabela ujawnia częsty błąd w odejmowaniu średnicy przewodu.</p></div>
        </div>

        <div class="rk-screed-formula">
          <p><strong>Podstawowa zależność geometryczna:</strong></p>
          <code>c = h − d − e</code>
          <p>gdzie: <strong>c</strong> — warstwa nad rurą, <strong>h</strong> — grubość całkowita mierzona od przyjętej warstwy odniesienia, <strong>d</strong> — średnica zewnętrzna rury, <strong>e</strong> — odległość spodu rury od tej warstwy. Gdy rura 16 mm leży bezpośrednio na niej, dla 60 mm jastrychu: <strong>c = 60 − 16 − 0 = 44 mm</strong>.</p>
        </div>

        <div class="rk-screed-table-wrap">
          <table class="rk-screed-table">
            <thead><tr><th>Grubość całkowita</th><th>Rura</th><th>Podniesienie spodu rury</th><th>Warstwa nad rurą</th><th>Orientacyjna masa przy 2100 kg/m³</th></tr></thead>
            <tbody>
              <tr><td data-label="Grubość"><strong>60 mm</strong></td><td data-label="Rura">16 mm</td><td data-label="Podniesienie">0 mm</td><td data-label="Nad rurą"><strong>44 mm</strong></td><td data-label="Masa">około 126 kg/m²</td></tr>
              <tr><td data-label="Grubość"><strong>65 mm</strong></td><td data-label="Rura">16 mm</td><td data-label="Podniesienie">0 mm</td><td data-label="Nad rurą"><strong>49 mm</strong></td><td data-label="Masa">około 137 kg/m²</td></tr>
              <tr><td data-label="Grubość"><strong>70 mm</strong></td><td data-label="Rura">16 mm</td><td data-label="Podniesienie">0 mm</td><td data-label="Nad rurą"><strong>54 mm</strong></td><td data-label="Masa">około 147 kg/m²</td></tr>
              <tr><td data-label="Grubość"><strong>80 mm</strong></td><td data-label="Rura">16 mm</td><td data-label="Podniesienie">0 mm</td><td data-label="Nad rurą"><strong>64 mm</strong></td><td data-label="Masa">około 168 kg/m²</td></tr>
            </tbody>
          </table>
        </div>

        <div class="rk-screed-note"><p><strong>Uwaga na maty i listwy:</strong> jeżeli spód rury znajduje się 5 mm nad warstwą, od każdego wyniku w kolumnie „nad rurą” odejmij kolejne 5 mm. Mierz rzeczywisty najwyższy punkt rury, a nie tylko wysokość reperu przy ścianie.</p></div>

        <h3>Co rzeczywiście wpływa na wymaganą grubość?</h3>
        <div class="rk-screed-card-grid four">
          <div class="rk-screed-card"><div class="rk-screed-card-icon">F</div><h4>Wytrzymałość na zginanie</h4><p>Klasa F opisuje odporność na naprężenia zginające, lecz sama nie wyznacza całej konstrukcji.</p></div>
          <div class="rk-screed-card"><div class="rk-screed-card-icon">Q</div><h4>Obciążenia użytkowe</h4><p>Inaczej analizuje się sypialnię, garaż, spiżarnię z regałami i przestrzeń z ciężkim urządzeniem.</p></div>
          <div class="rk-screed-card"><div class="rk-screed-card-icon">Δ</div><h4>Ściśliwość izolacji</h4><p>Podłoże podatne ugina się pod jastrychem. Liczy się nie tylko deklaracja samej płyty, ale cały układ warstw.</p></div>
          <div class="rk-screed-card"><div class="rk-screed-card-icon">G</div><h4>Geometria i szczeliny</h4><p>Długie, wąskie lub nieregularne pola generują inne naprężenia niż zwarty prostokąt.</p></div>
        </div>

        <p>Sam gęstszy <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstaw rur 10 albo 15 cm</a> nie jest powodem, aby lokalnie pogrubiać jastrych. Rozstaw zmienia moc powierzchniową, długość przewodów i rozkład temperatur, natomiast grubość płyty ustala się według mechaniki oraz dokumentacji systemu.</p>

        <h3>Dlaczego nie podajemy jednego „minimum z normy”?</h3>
        <p>EN 13813 klasyfikuje właściwości materiałów na podkłady, lecz nie nadaje każdemu ogrzewanemu podkładowi jednej uniwersalnej grubości. Wymaganie trzeba odczytać dla wybranego wyrobu i konstrukcji. Przykładowo dokumentacja systemu <a href="https://www.uponor.com/getmedia/6acb6e75-f915-4729-bfa5-6fa8222d4164/uponor-tacker-technical-information-05-2014?disposition=attachment&amp;sitename=UponorInternational" target="_blank" rel="noopener nofollow">Uponor Tacker</a> pokazuje warianty obliczeniowe z 45 mm jastrychu cementowego nad rurą, natomiast aktualna karta <a href="https://knauf.com/api/download-center/v1/assets/ab2bf54d-e6b6-4af6-a615-8423f521a9c1?country=pl&amp;download=true" target="_blank" rel="noopener nofollow">Knauf FE 50 Largo</a> wymaga co najmniej 35 mm nad elementem grzejnym. To dwa przykłady systemowe, a nie wartości, które wolno przenosić na dowolny materiał.</p>
      </section>

      <section class="rk-screed-section" id="rk-screed-kalkulator" aria-labelledby="rk-screed-h2-4">
        <div class="rk-screed-section-head">
          <div class="rk-screed-section-no">04</div>
          <div><h2 id="rk-screed-h2-4">Interaktywny analizator przekroju jastrychu</h2><p>Sprawdź rzeczywistą warstwę nad rurą, wymaganą wysokość, masę i pojemność cieplną.</p></div>
        </div>

        <div class="rk-screed-lab" data-rk-screed-lab>
          <div class="rk-screed-lab-head">
            <h3>Analizator grubości i masy wylewki</h3>
            <p>Wartość minimalnej otuliny przepisz z aktualnej karty wybranego produktu. Narzędzie ocenia wyłącznie geometrię względem wpisanej wartości — nie wydaje oceny konstrukcyjnej.</p>
            <div class="rk-screed-presets" aria-label="Przykładowe grubości całkowite">
              <button class="rk-screed-preset" type="button" data-screed-preset="six">6 cm</button>
              <button class="rk-screed-preset is-active" type="button" data-screed-preset="standard">6,5 cm</button>
              <button class="rk-screed-preset" type="button" data-screed-preset="seven">7 cm</button>
              <button class="rk-screed-preset" type="button" data-screed-preset="eight">8 cm</button>
            </div>
          </div>

          <div class="rk-screed-lab-grid">
            <div class="rk-screed-controls">
              <div class="rk-screed-input-grid">
                <div class="rk-screed-control"><label for="rk-screed-total">Grubość całkowita <output id="rk-screed-total-out">65 mm</output></label><input id="rk-screed-total" type="range" min="35" max="100" step="1" value="65"></div>
                <div class="rk-screed-control"><label for="rk-screed-diameter">Średnica zewnętrzna rury <output id="rk-screed-diameter-out">16 mm</output></label><input id="rk-screed-diameter" type="range" min="10" max="25" step="1" value="16"></div>
                <div class="rk-screed-control"><label for="rk-screed-elevation">Podniesienie spodu rury <output id="rk-screed-elevation-out">0 mm</output></label><input id="rk-screed-elevation" type="range" min="0" max="20" step="1" value="0"></div>
                <div class="rk-screed-control"><label for="rk-screed-required">Minimum nad rurą z karty produktu <output id="rk-screed-required-out">45 mm</output></label><input id="rk-screed-required" type="range" min="15" max="70" step="1" value="45"></div>
                <div class="rk-screed-control"><label for="rk-screed-area">Analizowana powierzchnia <output id="rk-screed-area-out">100 m²</output></label><input id="rk-screed-area" type="range" min="5" max="300" step="1" value="100"></div>
                <div class="rk-screed-control"><label for="rk-screed-density">Gęstość wyrobu <output id="rk-screed-density-out">2100 kg/m³</output></label><input id="rk-screed-density" type="range" min="1600" max="2400" step="10" value="2100"></div>
                <div class="rk-screed-control"><label for="rk-screed-cp">Ciepło właściwe <output id="rk-screed-cp-out">0,88 kJ/kgK</output></label><input id="rk-screed-cp" type="range" min="0.70" max="1.10" step="0.01" value="0.88"></div>
                <div class="rk-screed-control"><label for="rk-screed-lambda">Przewodność λ <output id="rk-screed-lambda-out">1,40 W/mK</output></label><input id="rk-screed-lambda" type="range" min="0.60" max="2.20" step="0.05" value="1.40"></div>
              </div>
              <div class="rk-screed-status is-ok" id="rk-screed-lab-warning" role="status" aria-live="polite">Geometrycznie pozostaje 4 mm zapasu ponad wpisane minimum produktu.</div>
            </div>

            <div class="rk-screed-visual">
              <div class="rk-screed-results">
                <div class="rk-screed-result is-accent"><span>Rzeczywista warstwa nad rurą</span><strong id="rk-screed-cover-result">49 mm</strong></div>
                <div class="rk-screed-result"><span>Wymagana grubość całkowita</span><strong id="rk-screed-required-total-result">61 mm</strong></div>
                <div class="rk-screed-result"><span>Różnica względem wpisanego minimum</span><strong id="rk-screed-margin-result">+4 mm</strong></div>
                <div class="rk-screed-result"><span>Objętość brutto</span><strong id="rk-screed-volume-result">6,50 m³</strong></div>
                <div class="rk-screed-result"><span>Masa na 1 m²</span><strong id="rk-screed-load-result">137 kg/m²</strong></div>
                <div class="rk-screed-result"><span>Masa całkowita</span><strong id="rk-screed-mass-result">13,7 t</strong></div>
                <div class="rk-screed-result"><span>Pojemność na 1 K</span><strong id="rk-screed-capacity-result">3,3 kWh/K</strong></div>
                <div class="rk-screed-result"><span>Opór 1D samej warstwy</span><strong id="rk-screed-resistance-result">0,046 m²K/W</strong></div>
              </div>

              <div class="rk-screed-cross-wrap">
                <div class="rk-screed-cross-card">
                  <span class="rk-screed-cross-title">Dynamiczny przekrój — geometria poglądowa</span>
                  <svg class="rk-screed-cross" id="rk-screed-cross" viewBox="0 0 360 250" role="img" aria-labelledby="rk-screed-cross-svg-title rk-screed-cross-svg-desc">
                    <title id="rk-screed-cross-svg-title">Przekrój jastrychu z rurą ogrzewania podłogowego</title>
                    <desc id="rk-screed-cross-svg-desc">Schemat pokazuje grubość całkowitą, położenie rury i warstwę nad jej górną krawędzią.</desc>
                    <defs>
                      <marker id="rk-screed-arrow-start" markerWidth="8" markerHeight="8" refX="4" refY="4" orient="auto"><path d="M8,0 L0,4 L8,8 Z" fill="#078fbe"></path></marker>
                      <marker id="rk-screed-arrow-end" markerWidth="8" markerHeight="8" refX="4" refY="4" orient="auto"><path d="M0,0 L8,4 L0,8 Z" fill="#078fbe"></path></marker>
                    </defs>
                    <rect class="rk-screed-layer-floor" x="28" y="22" width="304" height="20" rx="4"></rect>
                    <rect class="rk-screed-layer-screed" id="rk-screed-svg-screed" x="28" y="42" width="304" height="148"></rect>
                    <rect class="rk-screed-layer-insulation" x="28" y="190" width="304" height="38"></rect>
                    <circle class="rk-screed-pipe" id="rk-screed-svg-pipe" cx="170" cy="161" r="18"></circle>
                    <line class="rk-screed-dimension" id="rk-screed-svg-cover-line" x1="277" y1="47" x2="277" y2="140"></line>
                    <text id="rk-screed-svg-cover-text" x="286" y="98">49 mm nad rurą</text>
                    <line class="rk-screed-dimension" id="rk-screed-svg-total-line" x1="56" y1="45" x2="56" y2="187"></line>
                    <text id="rk-screed-svg-total-text" x="65" y="118">65 mm łącznie</text>
                    <text x="38" y="36">okładzina</text><text x="38" y="73">jastrych</text><text x="38" y="215">warstwa odniesienia</text>
                  </svg>
                  <div class="rk-screed-legend"><span><i></i>jastrych</span><span class="pipe"><i></i>rura</span><span class="insulation"><i></i>warstwa odniesienia</span></div>
                </div>

                <div class="rk-screed-energy-card">
                  <span class="rk-screed-energy-title">Masa i pojemność cieplna przy zmianie grubości</span>
                  <svg class="rk-screed-energy-chart" id="rk-screed-energy-chart" viewBox="0 0 420 250" role="img" aria-labelledby="rk-screed-chart-title rk-screed-chart-desc">
                    <title id="rk-screed-chart-title">Wpływ grubości na masę jastrychu</title>
                    <desc id="rk-screed-chart-desc">Wykres pokazuje masę na metr kwadratowy dla warstw 50, 60, 70 i 80 milimetrów.</desc>
                    <defs><linearGradient id="rk-screed-bar-gradient" x1="0" y1="1" x2="0" y2="0"><stop offset="0" stop-color="#078fbe"></stop><stop offset="1" stop-color="#28c9da"></stop></linearGradient></defs>
                    <line class="rk-screed-axis-line" x1="46" y1="205" x2="396" y2="205"></line>
                    <line class="rk-screed-axis-line" x1="46" y1="30" x2="46" y2="205"></line>
                    <g id="rk-screed-bars"></g>
                    <text x="8" y="23">kg/m²</text>
                  </svg>
                </div>
              </div>
            </div>
          </div>
          <div class="rk-screed-disclaimer"><strong>Co oznacza wynik:</strong> komunikat „geometrycznie spełnia” odnosi się tylko do minimalnej warstwy nad rurą wpisanej przez użytkownika. Narzędzie nie zna klasy jastrychu, obciążeń, ściśliwości izolacji, lokalnych przewężeń, tolerancji wykonawczych, układu szczelin ani nośności stropu. Objętość jest wartością brutto bez potrącania rur i bez rezerwy technologicznej.</div>
        </div>

        <div class="rk-screed-formula">
          <p><strong>Wzory użyte w analizatorze:</strong></p>
          <code>c = h − d − e &nbsp; • &nbsp; hₘᵢₙ = d + e + cₘᵢₙ &nbsp; • &nbsp; V = A × h &nbsp; • &nbsp; m = ρ × V &nbsp; • &nbsp; C = m × cₚ / 3600 &nbsp; • &nbsp; R = h / λ</code>
          <p>Parametry ρ, cₚ i λ należy przepisać z dokumentacji wybranego wyrobu. Opór R jest prostym porównaniem jednowymiarowym samej warstwy, a nie pełnym obliczeniem wydajności podłogi według ISO 11855.</p>
        </div>

        <aside class="rk-screed-cta" aria-label="Projekt przed wykonaniem jastrychu">
          <span class="rk-screed-cta-kicker">Wynik analizatora kończy geometrię, ale nie projekt</span>
          <h3>Przed wylaniem trzeba skoordynować całą podłogę</h3>
          <p>Analizator nie zna obciążeń, ściśliwości izolacji, podziału na pola, temperatury powierzchni, oporu okładziny ani rzeczywistego przebiegu rur. Jeżeli wysokości są na granicy albo dokumentacja instalacji nie określa parametrów dla każdego pomieszczenia, korektę trzeba wykonać przed przyjazdem ekipy jastrychowej.</p>
          <a class="rk-screed-cta-link rk-screed-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt przed wykonaniem jastrychu</a>
          <small>Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
        </aside>
      </section>

      <section class="rk-screed-section" id="rk-screed-material" aria-labelledby="rk-screed-h2-5">
        <div class="rk-screed-section-head">
          <div class="rk-screed-section-no">05</div>
          <div><h2 id="rk-screed-h2-5">Wylewka cementowa czy anhydrytowa na ogrzewanie podłogowe?</h2><p>Nie ma zwycięzcy niezależnego od warunków budowy i pomieszczenia.</p></div>
        </div>

        <div class="rk-screed-table-wrap">
          <table class="rk-screed-table">
            <thead><tr><th>Kryterium</th><th>Jastrych cementowy CT</th><th>Jastrych na bazie siarczanu wapnia CA</th><th>Decyzja projektowa</th></tr></thead>
            <tbody>
              <tr><td data-label="Kryterium"><strong>Spoiwo</strong></td><td data-label="CT">Cement; dostępne są mieszanki półsuche, płynne i modyfikowane.</td><td data-label="CA">Siarczan wapnia; często występuje w konsystencji płynnej.</td><td data-label="Decyzja">Nie porównuj wyłącznie nazw. Sprawdź deklarację konkretnego wyrobu.</td></tr>
              <tr><td data-label="Kryterium"><strong>Skurcz i pola</strong></td><td data-label="CT">Zwykle większa wrażliwość na skurcz wysychania; ważne są pielęgnacja i układ szczelin.</td><td data-label="CA">Zwykle mniejszy skurcz i możliwość większych pól, ale granice nadal określa system i geometria.</td><td data-label="Decyzja">Plan szczelin powinien istnieć przed układaniem rur.</td></tr>
              <tr><td data-label="Kryterium"><strong>Otoczenie rur</strong></td><td data-label="CT">Zależy od konsystencji i zagęszczenia. Półsuchy materiał wymaga starannego wbudowania wokół przewodów.</td><td data-label="CA">Płynna konsystencja zwykle dobrze otacza przewody i ogranicza pustki.</td><td data-label="Decyzja">Sposób wykonania musi odpowiadać konsystencji, a nie przyzwyczajeniu ekipy.</td></tr>
              <tr><td data-label="Kryterium"><strong>Wilgoć</strong></td><td data-label="CT">Dobrze sprawdza się także w pomieszczeniach mokrych, przy poprawnej hydroizolacji i okładzinie.</td><td data-label="CA">Wymaga ścisłego przestrzegania zakresu zastosowania i ochrony przed trwałym zawilgoceniem.</td><td data-label="Decyzja">Łazienka nie zwalnia z hydroizolacji podpłytkowej niezależnie od spoiwa.</td></tr>
              <tr><td data-label="Kryterium"><strong>Przewodność cieplna λ</strong></td><td data-label="CT">Zależy od receptury, gęstości, kruszywa i wilgotności.</td><td data-label="CA">Również zależy od konkretnego produktu; nie zawsze automatycznie przewyższa każdy CT.</td><td data-label="Decyzja">Do obliczeń wpisuj wartość deklarowaną, a nie zakres znaleziony w reklamie.</td></tr>
              <tr><td data-label="Kryterium"><strong>Wygrzewanie</strong></td><td data-label="CT">Dla standardowego cementowego jastrychu PN-EN 1264-4 przewiduje rozpoczęcie nagrzewania po okresie wiązania, zwykle nie wcześniej niż po 21 dniach.</td><td data-label="CA">Dla standardowego CA norma wskazuje zwykle co najmniej 7 dni.</td><td data-label="Decyzja">Mieszanki specjalne mogą mieć inny harmonogram i zawsze wymagają instrukcji wyrobu.</td></tr>
            </tbody>
          </table>
        </div>

        <div class="rk-screed-note"><p><strong>„Anhydryt jest zawsze najlepszy” to zbyt mocne zdanie.</strong> Może być bardzo dobrym rozwiązaniem w suchym wnętrzu i przy dobrze zorganizowanej budowie. Cementowy CT może być lepszy przy innym harmonogramie, wilgotności, obciążeniu albo dostępności wykonawców. Szersze porównanie materiałów, wykonania i dojrzewania znajdziesz w osobnym <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">przewodniku po wylewce na ogrzewanie podłogowe</a>; tutaj pozostajemy przy grubości i geometrii.</p></div>
      </section>

      <section class="rk-screed-section" id="rk-screed-klasy" aria-labelledby="rk-screed-h2-6">
        <div class="rk-screed-section-head">
          <div class="rk-screed-section-no">06</div>
          <div><h2 id="rk-screed-h2-6">Co oznacza CT-C20-F4, CA-C25-F5 i przewodność cieplna λ?</h2><p>Oznaczenie klasy jest punktem wyjścia, a nie kompletnym projektem warstwy.</p></div>
        </div>

        <p>Norma PN-EN 13813 klasyfikuje materiały na podkłady podłogowe. W oznaczeniu <strong>CT-C20-F4</strong> litery CT informują o spoiwie cementowym, C20 oznacza klasę wytrzymałości na ściskanie, a F4 klasę wytrzymałości na zginanie. W zapisie <strong>CA-C25-F5</strong> CA wskazuje jastrych na bazie siarczanu wapnia. Liczby nie mówią jednak, jaka grubość jest bezpieczna na konkretnej izolacji ani jak mają przebiegać szczeliny.</p>

        <div class="rk-screed-card-grid three">
          <div class="rk-screed-card"><div class="rk-screed-card-icon">C</div><h4>Ściskanie</h4><p>Wartość C opisuje wytrzymałość próbki na ściskanie w warunkach badania. Nie zastępuje analizy płyty pływającej.</p></div>
          <div class="rk-screed-card"><div class="rk-screed-card-icon">F</div><h4>Zginanie</h4><p>Klasa F jest szczególnie ważna, gdy podłoże jest podatne, występują obciążenia punktowe lub ogranicza się grubość.</p></div>
          <div class="rk-screed-card"><div class="rk-screed-card-icon">λ</div><h4>Przewodzenie ciepła</h4><p>λ [W/(m·K)] opisuje przepływ ciepła przez materiał. Do modelu podłogi należy przyjąć wartość wiarygodnie zadeklarowaną dla produktu.</p></div>
        </div>

        <div class="rk-screed-formula">
          <p><strong>Opór cieplny samego jastrychu:</strong></p>
          <code>R<sub>jastrychu</sub> = h / λ</code>
          <p>Dla 61 mm i λ = 1,40 W/(m·K) opór wynosi około 0,044 m²K/W. Nie jest to opór całej podłogi: trzeba dodać klej, okładzinę i pozostałe warstwy znajdujące się nad rurami.</p>
        </div>

        <p>Wysoka λ może poprawić przekazywanie ciepła, ale nie „usuwa” bezwładności wynikającej z masy. Dwa jastrychy o podobnej przewodności mogą inaczej reagować, jeśli różnią się grubością i gęstością. Moc podłogi należy obliczać razem z temperaturą wody, rozstawem rur i oporem okładziny. Właśnie dlatego <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">profesjonalny projekt ogrzewania podłogowego</a> powinien znać docelową konstrukcję posadzki.</p>
      </section>

      <section class="rk-screed-section" id="rk-screed-zbrojenie" aria-labelledby="rk-screed-h2-7">
        <div class="rk-screed-section-head">
          <div class="rk-screed-section-no">07</div>
          <div><h2 id="rk-screed-h2-7">Czy wylewkę cementową na podłogówkę trzeba zbroić?</h2><p>Odpowiedź „zawsze siatka” jest tak samo błędna jak „włókna zawsze wystarczą”.</p></div>
        </div>

        <p>Zbrojenie nie powstrzymuje skurczu chemicznego ani termicznego. Może ograniczać szerokość rys, zwiększać zdolność do przenoszenia naprężeń i pomagać utrzymać spójność pola po zarysowaniu. Skuteczność zależy od materiału, ilości, zakotwienia i przede wszystkim położenia. Siatka leżąca na izolacji pod rurami nie spełnia tej samej funkcji co zbrojenie umieszczone w zaprojektowanej strefie jastrychu.</p>

        <div class="rk-screed-table-wrap">
          <table class="rk-screed-table">
            <thead><tr><th>Rozwiązanie</th><th>Co może robić?</th><th>Czego nie załatwia?</th><th>Co sprawdzić?</th></tr></thead>
            <tbody>
              <tr><td data-label="Rozwiązanie"><strong>Siatka stalowa</strong></td><td data-label="Funkcja">Może kontrolować rozwój rys i współpracować z płytą po zarysowaniu.</td><td data-label="Ograniczenie">Położona przypadkowo albo dociśnięta do izolacji nie działa zgodnie z założeniem.</td><td data-label="Sprawdź">Średnicę, oczko, zakłady, dystanse, otulinę i kolizje z rurami.</td></tr>
              <tr><td data-label="Rozwiązanie"><strong>Włókna polimerowe</strong></td><td data-label="Funkcja">Mikrowłókna mogą ograniczać rysy skurczu plastycznego; inne włókna mogą mieć szerszą funkcję zadeklarowaną przez system.</td><td data-label="Ograniczenie">Nie każdy dodatek z worka zastępuje konstrukcyjną siatkę albo właściwy podział na pola.</td><td data-label="Sprawdź">Rodzaj włókna, dawkę i deklarowaną funkcję w recepturze jastrychu.</td></tr>
              <tr><td data-label="Rozwiązanie"><strong>Włókna stalowe lub makro</strong></td><td data-label="Funkcja">W zaprojektowanym systemie mogą zwiększyć ciągliwość i nośność po zarysowaniu.</td><td data-label="Ograniczenie">Nie wolno dobierać ich wyłącznie na podstawie podobieństwa nazwy.</td><td data-label="Sprawdź">Obliczenia, dokumentację wyrobu, dawkowanie i zgodność z posadzką.</td></tr>
              <tr><td data-label="Rozwiązanie"><strong>Brak dodatkowego zbrojenia</strong></td><td data-label="Funkcja">Możliwy w systemie, który dopuszcza taki układ przy właściwej klasie, grubości i geometrii.</td><td data-label="Ograniczenie">Nie zwalnia z pielęgnacji, szczelin i sprawdzenia obciążeń.</td><td data-label="Sprawdź">Jednoznaczny zapis w dokumentacji systemowej lub projekcie.</td></tr>
            </tbody>
          </table>
        </div>

        <div class="rk-screed-warning"><p><strong>Nie dodawaj przypadkowo wody do mieszanki, aby „lepiej się rozlała”.</strong> Zmiana wskaźnika woda–spoiwo może zwiększyć skurcz, porowatość i osłabić parametry. Plastyfikator, włókna i woda muszą należeć do kontrolowanej receptury, a nie do improwizacji na budowie.</p></div>
      </section>

      <section class="rk-screed-section" id="rk-screed-dylatacje" aria-labelledby="rk-screed-h2-8">
        <div class="rk-screed-section-head">
          <div class="rk-screed-section-no">08</div>
          <div><h2 id="rk-screed-h2-8">Dylatacje w wylewce na ogrzewaniu podłogowym</h2><p>Szczeliny należy skoordynować z geometrią pól i przebiegiem obwodów przed montażem rur.</p></div>
        </div>

        <div class="rk-screed-card-grid four">
          <div class="rk-screed-card"><div class="rk-screed-card-icon">O</div><h4>Obwodowa</h4><p>Taśma oddziela ogrzewaną płytę od ścian, słupów, progów i innych elementów pionowych.</p></div>
          <div class="rk-screed-card"><div class="rk-screed-card-icon">K</div><h4>Konstrukcyjna</h4><p>Szczelina istniejąca w konstrukcji budynku powinna być przeniesiona przez kolejne warstwy zgodnie z projektem.</p></div>
          <div class="rk-screed-card"><div class="rk-screed-card-icon">P</div><h4>Podziałowa</h4><p>Dzieli jastrych na pola o geometrii i wielkości dopuszczonej przez materiał oraz warunki pracy.</p></div>
          <div class="rk-screed-card"><div class="rk-screed-card-icon">R</div><h4>Robocza lub kontrolna</h4><p>Wynika z etapowania i technologii. Jej funkcji nie należy mylić z pełną szczeliną ruchową.</p></div>
        </div>

        <p>Popularna zasada „dylatacja powyżej 40 m² albo przy boku dłuższym niż 8 m” nie jest przepisem działającym dla każdego jastrychu. Ważne są proporcje pola, przewężenia, kształt litery L, przejścia drzwiowe, różne temperatury, sąsiednie strefy oraz dokumentacja produktu. Długi korytarz może wymagać innego podziału niż zwarty salon o podobnej powierzchni.</p>

        <div class="rk-screed-truth"><p><strong>Pętle nie powinny przechodzić przez szczeliny ruchowe.</strong> Jeżeli przez zaprojektowaną szczelinę muszą przejść przewody przyłączeniowe, prowadzi się je w odpowiednio długich tulejach ochronnych i ogranicza liczbę takich przejść. Rozwiązanie trzeba pokazać na rzucie. Szersze omówienie zawiera poradnik o <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacji brzegowej i dylatacjach podłogówki</a>.</p></div>

        <h3>Co dzieje się z okładziną nad szczeliną?</h3>
        <p>Szczelinę ruchową jastrychu co do zasady odwzorowuje się w okładzinie. Przykrycie jej sztywną płytką i klejem może przenieść naprężenie na gotową podłogę. Profile, elastyczne uszczelnienia i układ fug dobiera się wspólnie z wykonawcą posadzki. Nie każda nacięta rysa w jastrychu jest natomiast szczeliną konstrukcyjną; naprawa zależy od przyczyny i aktywności pęknięcia.</p>
      </section>

      <section class="rk-screed-section" id="rk-screed-przed" aria-labelledby="rk-screed-h2-9">
        <div class="rk-screed-section-head">
          <div class="rk-screed-section-no">09</div>
          <div><h2 id="rk-screed-h2-9">Co sprawdzić przed wylaniem jastrychu?</h2><p>Po zakryciu rur poprawka zwykle oznacza kucie albo trwały kompromis.</p></div>
        </div>

        <div class="rk-screed-check-grid">
          <div class="rk-screed-check"><div class="rk-screed-check-no">01</div><h4>Równość i nośność podłoża</h4><p>Izolacja musi leżeć stabilnie, bez pustek i klinowania. Instalacje pod nią powinny być wyrównane warstwą, a nie przykryte przypadkowo łamiącymi się płytami.</p></div>
          <div class="rk-screed-check"><div class="rk-screed-check-no">02</div><h4>Izolacja brzegowa</h4><p>Taśma ma tworzyć ciągłe oddzielenie także przy słupach, ościeżach, podejściach i innych elementach pionowych.</p></div>
          <div class="rk-screed-check"><div class="rk-screed-check-no">03</div><h4>Mocowanie i przebieg rur</h4><p>Przewody nie mogą wypływać ani zmieniać rozstawu. Trasy powinny odpowiadać projektowi i pozostawać z dala od przyszłych mocowań.</p></div>
          <div class="rk-screed-check"><div class="rk-screed-check-no">04</div><h4>Szczeliny i tuleje</h4><p>Podział pól oraz przejścia przyłączeń przez dylatacje muszą być przygotowane przed rozpoczęciem podawania mieszanki.</p></div>
          <div class="rk-screed-check"><div class="rk-screed-check-no">05</div><h4>Próba szczelności</h4><p>Obwody trzeba napełnić, odpowietrzyć, sprawdzić i udokumentować zgodnie z PN-EN 1264-4 oraz instrukcją systemu.</p></div>
          <div class="rk-screed-check"><div class="rk-screed-check-no">06</div><h4>Repery wysokościowe</h4><p>Poziomy powinny uwzględniać wszystkie pomieszczenia, progi, schody, odpływy i różne grubości docelowych okładzin.</p></div>
        </div>

        <h3>Jak rozumieć próbę ciśnieniową?</h3>
        <p>W typowym układzie wodnym próbę wykonuje się wodą przed przykryciem rur, przy ciśnieniu równym dwukrotności ciśnienia roboczego, nie mniejszym niż 6 bar, jeżeli dokumentacja systemu nie określa inaczej. Wynik i warunki zapisuje się w protokole. Podczas wykonywania jastrychu rury pozostawia się pod ciśnieniem, aby ograniczyć ryzyko zgniecenia i umożliwić zauważenie uszkodzenia, lecz nie oznacza to automatycznie utrzymywania pełnego ciśnienia próbnego przez cały okres dojrzewania. Szczegółowy przebieg opisuje materiał o <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próbie szczelności ogrzewania podłogowego</a>.</p>

        <div class="rk-screed-warning"><p><strong>Ryzyko zamarznięcia:</strong> jeśli budynek zimą nie jest ogrzewany, próba wodna wymaga zabezpieczenia instalacji. Środek przeciwzamrożeniowy, płukanie i późniejsze napełnienie muszą być zgodne z materiałami instalacji oraz źródłem ciepła. Nie wolno zostawić wody w przewodach i liczyć, że jastrych je ochroni.</p></div>
      </section>

      <section class="rk-screed-section" id="rk-screed-wykonanie" aria-labelledby="rk-screed-h2-10">
        <div class="rk-screed-section-head">
          <div class="rk-screed-section-no">10</div>
          <div><h2 id="rk-screed-h2-10">Wykonanie i pielęgnacja wylewki na podłogówce</h2><p>Konsystencja mieszanki narzuca technologię wbudowania.</p></div>
        </div>

        <div class="rk-screed-phase-grid">
          <div class="rk-screed-phase" data-step="01"><b>Przyjęcie mieszanki</b><p>Sprawdza się zamówiony typ, klasę, czas od przygotowania, warunki otoczenia i zgodność dodatków. Niedozwolona jest korekta wodą „na oko”.</p></div>
          <div class="rk-screed-phase" data-step="02"><b>Wbudowanie</b><p>Półsuchy CT rozkłada się i zagęszcza inaczej niż płynny CT albo CA. Wałek odpowietrzający nie jest uniwersalnym narzędziem dla każdego jastrychu.</p></div>
          <div class="rk-screed-phase" data-step="03"><b>Kontrola wysokości</b><p>Grubość sprawdza się w wielu punktach. Lokalna górka nad rurą i niedobór w sąsiedztwie mogą zmienić pracę pola oraz poziomy okładzin.</p></div>
          <div class="rk-screed-phase" data-step="04"><b>Ochrona świeżej powierzchni</b><p>Przeciąg, słońce i szybkie odparowanie sprzyjają naprężeniom. Warunki pielęgnacji zależą od spoiwa i karty produktu.</p></div>
          <div class="rk-screed-phase" data-step="05"><b>Ruch i obciążanie</b><p>Termin wejścia, składowania materiałów i wykonywania ścianek nie wynika wyłącznie z tego, że powierzchnia jest twarda w dotyku.</p></div>
          <div class="rk-screed-phase" data-step="06"><b>Dokumentacja</b><p>Zachowuje się deklarację, numer partii, datę wykonania, temperaturę, protokół próby, grubości i plan pól. To materiał do odbioru i ewentualnej diagnostyki.</p></div>
        </div>

        <p>W przypadku cementowego jastrychu półsuchego kluczowe jest równomierne zagęszczenie wokół rury. Pustka powietrzna pogarsza przekazywanie ciepła i tworzy lokalnie słabszą strefę. Płynna mieszanka ma inne ryzyka: nieszczelna warstwa rozdzielająca może dopuścić do ucieczki materiału, a wypływ rur zmieni ich położenie. Prace powinny być skoordynowane z instalatorem, wykonawcą jastrychu i osobą odpowiadającą za późniejszą posadzkę.</p>

        <div class="rk-screed-note"><p><strong>28 dni nie oznacza automatycznie „suche”.</strong> Jest to charakterystyczny punkt odniesienia dla dojrzewania wielu materiałów cementowych, ale czas osiągnięcia wilgotności wymaganej pod posadzkę zależy od grubości, receptury, temperatury, wilgotności powietrza i wentylacji.</p></div>
      </section>

      <section class="rk-screed-section" id="rk-screed-wygrzewanie" aria-labelledby="rk-screed-h2-11">
        <div class="rk-screed-section-head">
          <div class="rk-screed-section-no">11</div>
          <div><h2 id="rk-screed-h2-11">Wygrzewanie wylewki na ogrzewaniu podłogowym – prawidłowa kolejność</h2><p>Należy rozdzielić cztery procesy, które często wrzuca się do jednego worka.</p></div>
        </div>

        <div class="rk-screed-protocol">
          <div class="rk-screed-protocol-step"><span>ETAP 1</span><h3>Wiązanie i pielęgnacja</h3><p>Świeży materiał osiąga wytrzymałość w warunkach określonych przez producenta. Ogrzewanie nie służy do przyspieszania pierwszej fazy.</p></div>
          <div class="rk-screed-protocol-step"><span>ETAP 2</span><h3>Nagrzewanie funkcjonalne</h3><p>Sprawdza zachowanie jastrychu grzejnego i instalacji w cyklu temperatur zgodnym z normą oraz instrukcją wyrobu.</p></div>
          <div class="rk-screed-protocol-step"><span>ETAP 3</span><h3>Suszenie do okładziny</h3><p>Wymaga wentylacji i kontroli warunków. Sam ukończony protokół funkcjonalny nie dowodzi gotowości pod parkiet albo płytki.</p></div>
          <div class="rk-screed-protocol-step"><span>ETAP 4</span><h3>Pomiar CM i odbiór</h3><p>Wilgotność sprawdza się w oznaczonych miejscach bez rur i porównuje z wymaganiem systemu posadzkowego.</p></div>
        </div>

        <h3>Modelowy protokół według PN-EN 1264-4</h3>
        <p>Dla typowego jastrychu cementowego rozpoczęcie nagrzewania funkcjonalnego następuje po co najmniej 21 dniach, a dla jastrychu na bazie siarczanu wapnia po co najmniej 7 dniach, chyba że producent wyrobu jednoznacznie dopuszcza inny termin. Procedurę zaczyna się temperaturą zasilania około 25°C utrzymywaną przez 3 dni, następnie stosuje maksymalną projektową temperaturę zasilania przez co najmniej 4 dni. Nie jest to nakaz podnoszenia temperatury zawsze o 5°C na dobę ani pozwolenie na ustawienie arbitralnych 45°C. Maksimum wynika z projektu instalacji i ograniczeń materiału.</p>

        <div class="rk-screed-table-wrap">
          <table class="rk-screed-table">
            <thead><tr><th>Pytanie kontrolne</th><th>Prawidłowa odpowiedź</th><th>Błędny skrót</th></tr></thead>
            <tbody>
              <tr><td data-label="Pytanie"><strong>Kiedy zacząć?</strong></td><td data-label="Prawidłowo">Po minimalnym czasie wiązania właściwym dla materiału i po potwierdzeniu wykonawcy.</td><td data-label="Błędnie">„Gdy można już chodzić”.</td></tr>
              <tr><td data-label="Pytanie"><strong>Do jakiej temperatury?</strong></td><td data-label="Prawidłowo">Do maksymalnej projektowej temperatury zasilania, w granicach wyrobu i instalacji.</td><td data-label="Błędnie">„Każdą wylewkę grzejemy do 45–55°C”.</td></tr>
              <tr><td data-label="Pytanie"><strong>Czy po protokole jest sucho?</strong></td><td data-label="Prawidłowo">Nie wiadomo bez pomiaru wilgotności i kryterium docelowej posadzki.</td><td data-label="Błędnie">„Wygrzane znaczy gotowe do klejenia”.</td></tr>
              <tr><td data-label="Pytanie"><strong>Ile schnie?</strong></td><td data-label="Prawidłowo">Zależy od wyrobu, grubości i klimatu; kontroluje się pomiarem.</td><td data-label="Błędnie">„Zawsze 1 mm na dobę”.</td></tr>
            </tbody>
          </table>
        </div>

        <p>Przed uruchomieniem należy otworzyć wszystkie projektowane obwody, zapewnić przepływy i kontrolować temperaturę zasilania. Samo nagrzanie rozdzielacza bez przepływu przez część pętli nie jest pełnym protokołem. Warto zapisać datę, temperatury i czas każdego etapu, a po zakończeniu pozostawić dokument wykonawcy posadzki.</p>
      </section>

      <section class="rk-screed-section" id="rk-screed-posadzka" aria-labelledby="rk-screed-h2-12">
        <div class="rk-screed-section-head">
          <div class="rk-screed-section-no">12</div>
          <div><h2 id="rk-screed-h2-12">Wilgotność wylewki i wybór posadzki</h2><p>Najdroższe błędy często wychodzą dopiero po ułożeniu drewna, paneli albo płytek.</p></div>
        </div>

        <p>Nie istnieje jeden próg wilgotności właściwy dla każdego jastrychu i każdej okładziny. Kryterium zależy między innymi od spoiwa, ogrzewania, metody pomiaru, kleju, hydroizolacji i producenta posadzki. Wynik CM powinien być zapisany wraz z miejscem pobrania próbki. W projekcie instalacji warto wcześniej oznaczyć bezpieczne punkty pomiarowe, aby nie przewiercić rury.</p>

        <div class="rk-screed-card-grid three">
          <div class="rk-screed-card"><div class="rk-screed-card-icon">CM</div><h4>Pomiar, nie kalendarz</h4><p>Data wykonania nie potwierdza gotowości. Należy zmierzyć wilgotność metodą wymaganą przez system posadzkowy.</p></div>
          <div class="rk-screed-card"><div class="rk-screed-card-icon">R</div><h4>Opór okładziny</h4><p>Gruba deska, podkład i warstwa kleju zwiększają opór nad rurą oraz wymaganą temperaturę wody.</p></div>
          <div class="rk-screed-card"><div class="rk-screed-card-icon">J</div><h4>Szczeliny w wykończeniu</h4><p>Dylatacje ruchowe jastrychu trzeba skoordynować z fugami, profilami i kierunkiem ułożenia okładziny.</p></div>
        </div>

        <p>Podłogi drewniane i laminowane wymagają sprawdzenia dopuszczenia na ogrzewanie podłogowe, maksymalnej temperatury powierzchni i łącznego oporu cieplnego. Porównanie systemów znajduje się w analizie <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/">podłogi drewniane a panele laminowane na podłogówce</a>. Przy płytkach liczy się również zgodność kleju i zaprawy do spoinowania z podłożem ogrzewanym oraz przeniesienie zaprojektowanych szczelin.</p>

        <div class="rk-screed-note"><p><strong>Nie wierć „na pamięć”.</strong> Dokumentacja fotograficzna i rzut rur nie dają stuprocentowej pewności po zmianie skali lub punktów odniesienia. Przed wykonaniem mocowania w podłodze instalację należy zlokalizować odpowiednią metodą.</p></div>
      </section>

      <section class="rk-screed-section" id="rk-screed-bledy" aria-labelledby="rk-screed-h2-13">
        <div class="rk-screed-section-head">
          <div class="rk-screed-section-no">13</div>
          <div><h2 id="rk-screed-h2-13">Pęknięcia, odspojenia i nierówne grzanie – najczęstsze przyczyny</h2><p>Rysa jest objawem; naprawę dobiera się dopiero po rozpoznaniu mechanizmu.</p></div>
        </div>

        <div class="rk-screed-error-grid">
          <div class="rk-screed-error"><div class="rk-screed-error-no">01</div><h4>Za dużo wody</h4><p>Ułatwia rozprowadzanie, lecz może zwiększyć skurcz, segregację, porowatość i spadek wytrzymałości.</p></div>
          <div class="rk-screed-error"><div class="rk-screed-error-no">02</div><h4>Przypadkowa grubość</h4><p>Różnice poziomu tworzą miejsca o innej sztywności, masie i czasie reakcji cieplnej.</p></div>
          <div class="rk-screed-error"><div class="rk-screed-error-no">03</div><h4>Brak ciągłej taśmy</h4><p>Kontakt ze ścianą lub słupem blokuje swobodną pracę pola i tworzy mostek akustyczny.</p></div>
          <div class="rk-screed-error"><div class="rk-screed-error-no">04</div><h4>Zły podział pól</h4><p>Przewężenia, naroża wewnętrzne i długie kształty bez zaplanowanej szczeliny sprzyjają rysom.</p></div>
          <div class="rk-screed-error"><div class="rk-screed-error-no">05</div><h4>Pusta przestrzeń przy rurze</h4><p>Niedostateczne otulenie pogarsza kontakt cieplny i może osłabić miejscowo jastrych.</p></div>
          <div class="rk-screed-error"><div class="rk-screed-error-no">06</div><h4>Zbyt szybkie wysychanie</h4><p>Przeciąg, słońce lub przedwczesne grzanie tworzą gradient wilgotności i naprężenia.</p></div>
          <div class="rk-screed-error"><div class="rk-screed-error-no">07</div><h4>Siatka na izolacji</h4><p>Zbrojenie bez właściwego położenia nie realizuje funkcji przyjętej w projekcie.</p></div>
          <div class="rk-screed-error"><div class="rk-screed-error-no">08</div><h4>Okładzina bez pomiaru</h4><p>Zamknięcie wilgoci może powodować odspojenie, przebarwienia, deformacje lub rozwój pleśni w warstwach.</p></div>
        </div>

        <h3>Czy każdą rysę trzeba rozkuwać?</h3>
        <p>Nie. Najpierw ocenia się szerokość, głębokość, aktywność, przebieg względem szczelin i rur, różnicę wysokości krawędzi oraz nośność podłoża. Rysa skurczowa stabilna wymaga innego postępowania niż pracująca szczelina nad przewężeniem albo pęknięcie wynikające z osiadania izolacji. Zanim zastosuje się zszywanie, żywicę, matę odprężającą albo lokalną wymianę, należy znaleźć przyczynę.</p>

        <div class="rk-screed-truth"><p><strong>Nierówna temperatura powierzchni nie musi oznaczać złej wylewki.</strong> Przyczyną może być brak przepływu, zapowietrzenie, inny rozstaw, grubsza okładzina, strefa bez rury albo błąd nastaw. Diagnostykę zaczyna się od projektu, przepływów i obrazu termicznego, nie od kucia podłogi.</p></div>
      </section>

      <section class="rk-screed-section" id="rk-screed-kroki" aria-labelledby="rk-screed-h2-14">
        <div class="rk-screed-section-head">
          <div class="rk-screed-section-no">14</div>
          <div><h2 id="rk-screed-h2-14">Jak wykonać wylewkę na ogrzewanie podłogowe – kolejność prac</h2><p>Dziesięć etapów od projektu do odbioru posadzki.</p></div>
        </div>

        <ol class="rk-screed-howto">
          <li class="rk-screed-howto-step" id="rk-screed-step-1"><span>01</span><div><h3>Ustal konstrukcję podłogi</h3><p>Wybierz jastrych, klasę, grubość, izolację, okładzinę, obciążenia i wysokości. Sprawdź nośność stropu oraz ściśliwość warstw.</p></div></li>
          <li class="rk-screed-howto-step" id="rk-screed-step-2"><span>02</span><div><h3>Zaprojektuj ogrzewanie</h3><p>Oblicz obciążenie pomieszczeń, rozstaw, temperaturę zasilania, długości pętli, przepływy i przebieg bez kolizji ze szczelinami.</p></div></li>
          <li class="rk-screed-howto-step" id="rk-screed-step-3"><span>03</span><div><h3>Przygotuj równe podłoże i izolację</h3><p>Usuń luźne elementy, wyrównaj instalacje, ułóż warstwy bez pustek i wykonaj ciągłą izolację brzegową.</p></div></li>
          <li class="rk-screed-howto-step" id="rk-screed-step-4"><span>04</span><div><h3>Ułóż i zamocuj rury</h3><p>Zachowaj projektowany rozstaw, promienie gięcia i strefy bez mocowań. Oznacz przejścia, dylatacje i punkty pomiarowe.</p></div></li>
          <li class="rk-screed-howto-step" id="rk-screed-step-5"><span>05</span><div><h3>Wykonaj próbę szczelności</h3><p>Napełnij, odpowietrz i sprawdź obwody zgodnie z normą oraz systemem. Sporządź protokół i pozostaw instalację pod właściwym ciśnieniem podczas prac.</p></div></li>
          <li class="rk-screed-howto-step" id="rk-screed-step-6"><span>06</span><div><h3>Zbuduj podział na pola</h3><p>Wykonaj szczeliny, profile i tuleje ochronne zgodnie z planem. Skoordynuj je z progami oraz przyszłą okładziną.</p></div></li>
          <li class="rk-screed-howto-step" id="rk-screed-step-7"><span>07</span><div><h3>Wbuduj mieszankę</h3><p>Kontroluj recepturę, czas, konsystencję, zagęszczenie i poziomy. Nie dolewaj wody bez zgody technologicznej.</p></div></li>
          <li class="rk-screed-howto-step" id="rk-screed-step-8"><span>08</span><div><h3>Pielęgnuj i chroń</h3><p>Ogranicz przeciąg, słońce, mróz i przedwczesne obciążenie. Realizuj wymagania właściwe dla spoiwa i produktu.</p></div></li>
          <li class="rk-screed-howto-step" id="rk-screed-step-9"><span>09</span><div><h3>Przeprowadź nagrzewanie funkcjonalne</h3><p>Po wymaganym czasie uruchom wszystkie obwody, zapisz temperatury i zachowaj maksymalną temperaturę projektową przez wymagany okres.</p></div></li>
          <li class="rk-screed-howto-step" id="rk-screed-step-10"><span>10</span><div><h3>Zmierz wilgotność i odbierz podłoże</h3><p>Wykonaj pomiar w bezpiecznych punktach, oceń rysy, równość i wytrzymałość powierzchni, a następnie przekaż protokoły wykonawcy posadzki.</p></div></li>
        </ol>
      </section>

      <section class="rk-screed-section" id="rk-screed-faq" aria-labelledby="rk-screed-h2-15">
        <div class="rk-screed-section-head">
          <div class="rk-screed-section-no">15</div>
          <div><h2 id="rk-screed-h2-15">FAQ – wylewka betonowa na ogrzewanie podłogowe</h2><p>Odpowiedzi na najczęstsze pytania inwestorów i wykonawców.</p></div>
        </div>

        <div class="rk-screed-faq-list">
          <details class="rk-screed-faq"><summary>Ile centymetrów wylewki powinno być nad rurą ogrzewania podłogowego?</summary><div class="rk-screed-faq-answer"><p>Nie ma jednej wartości właściwej dla wszystkich produktów i podłóg. Warstwę nad rurą ustala się na podstawie typu i klasy jastrychu, obciążenia, podatności izolacji, średnicy przewodu, geometrii pól i dokumentacji systemu. Popularne 4,5 cm jest przykładem spotykanym w części rozwiązań, a nie uniwersalną normą.</p></div></details>
          <details class="rk-screed-faq"><summary>Czy całkowita grubość 6 cm wystarczy przy rurze 16 mm?</summary><div class="rk-screed-faq-answer"><p>Przy 60 mm całkowitej grubości nad rurą 16 mm pozostaje 44 mm. Geometrycznie można to policzyć, ale bezpieczeństwa nie da się potwierdzić bez klasy materiału, obciążenia, rodzaju izolacji, układu szczelin i instrukcji konkretnego jastrychu.</p></div></details>
          <details class="rk-screed-faq"><summary>Czy jastrych cementowy musi mieć siatkę?</summary><div class="rk-screed-faq-answer"><p>Nie zawsze. Dopuszczalne rozwiązanie powinno wynikać z projektu lub dokumentacji systemu. Siatka, włókna i brak dodatkowego zbrojenia mają różne warunki stosowania. Siatka położona bez dystansów na izolacji nie zastępuje prawidłowo zaprojektowanego zbrojenia.</p></div></details>
          <details class="rk-screed-faq"><summary>Czy włókna zastępują siatkę w wylewce?</summary><div class="rk-screed-faq-answer"><p>Tylko wtedy, gdy rodzaj i dawka włókien mają taką funkcję w dokumentacji systemu. Mikrowłókna ograniczające skurcz plastyczny nie są automatycznie zamiennikiem siatki konstrukcyjnej. Nie wolno oceniać wszystkich włókien jako jednego materiału.</p></div></details>
          <details class="rk-screed-faq"><summary>Co jest lepsze na podłogówkę: cement czy anhydryt?</summary><div class="rk-screed-faq-answer"><p>Oba rozwiązania mogą działać bardzo dobrze. CT jest odporny na różne warunki wilgotnościowe i dostępny w wielu odmianach. CA zwykle dobrze otacza rury i ma mniejszy skurcz. Decyzję podejmuje się według pomieszczenia, produktu, harmonogramu, obciążeń, okładziny i jakości wykonawstwa.</p></div></details>
          <details class="rk-screed-faq"><summary>Czy anhydryt ma zawsze lepszą przewodność cieplną?</summary><div class="rk-screed-faq-answer"><p>Nie należy tego zakładać na podstawie samej nazwy spoiwa. Przewodność zależy od receptury, gęstości i wilgotności. Do obliczeń trzeba przyjąć wartość λ deklarowaną dla konkretnego wyrobu w warunkach właściwych dla projektu.</p></div></details>
          <details class="rk-screed-faq"><summary>Po ilu dniach można włączyć ogrzewanie podłogowe?</summary><div class="rk-screed-faq-answer"><p>Dla standardowego jastrychu cementowego nagrzewanie funkcjonalne według PN-EN 1264-4 rozpoczyna się zwykle nie wcześniej niż po 21 dniach, a dla jastrychu na bazie siarczanu wapnia po co najmniej 7 dniach. Produkt specjalny może mieć inny harmonogram zapisany przez producenta.</p></div></details>
          <details class="rk-screed-faq"><summary>Jak wygląda pierwsze wygrzewanie wylewki?</summary><div class="rk-screed-faq-answer"><p>Modelowo stosuje się około 25°C temperatury zasilania przez 3 dni, a następnie maksymalną projektową temperaturę zasilania przez co najmniej 4 dni. Dokładny protokół musi uwzględniać rodzaj jastrychu, instrukcję produktu i parametry instalacji.</p></div></details>
          <details class="rk-screed-faq"><summary>Czy wygrzanie oznacza, że można układać panele lub drewno?</summary><div class="rk-screed-faq-answer"><p>Nie. Wygrzewanie funkcjonalne nie jest dowodem osiągnięcia wilgotności wymaganej przez posadzkę. Gotowość potwierdza pomiar, najczęściej metodą CM, oraz kryterium producenta jastrychu, kleju i okładziny.</p></div></details>
          <details class="rk-screed-faq"><summary>Ile schnie wylewka o grubości 6 cm?</summary><div class="rk-screed-faq-answer"><p>Nie da się wiarygodnie odpowiedzieć regułą „1 mm na dobę”. Czas zależy od receptury, spoiwa, grubości, temperatury, wilgotności i wymiany powietrza. Należy śledzić warunki, przeprowadzić wymagany protokół i zmierzyć wilgotność.</p></div></details>
          <details class="rk-screed-faq"><summary>Czy rury mogą przechodzić przez dylatację?</summary><div class="rk-screed-faq-answer"><p>Pętla grzewcza nie powinna przechodzić z pola do pola przez szczelinę ruchową. Jeśli muszą przejść przewody przyłączeniowe, prowadzi się je w odpowiednich tulejach ochronnych zgodnie z projektem i ogranicza liczbę przejść.</p></div></details>
          <details class="rk-screed-faq"><summary>Czy trzeba utrzymywać 6–8 bar przez cały czas schnięcia?</summary><div class="rk-screed-faq-answer"><p>Nie należy stosować takiej uniwersalnej zasady. Próbę wykonuje się przed zakryciem rur według PN-EN 1264-4 i systemu. Podczas wylewania przewody pozostają pod ciśnieniem, lecz wartość oraz czas utrzymania po pracy powinny wynikać z instrukcji i protokołu, a nie z przypadkowej liczby.</p></div></details>
          <details class="rk-screed-faq"><summary>Czy grubsza wylewka daje cieplejszą podłogę?</summary><div class="rk-screed-faq-answer"><p>Nie automatycznie. Większa masa magazynuje więcej energii i wolniej reaguje, ale moc ustalają także temperatura wody, rozstaw rur, przepływ, opór okładziny i straty pomieszczenia. Nadmierna grubość nie naprawi źle zaprojektowanej instalacji.</p></div></details>
          <details class="rk-screed-faq"><summary>Skąd wiadomo, gdzie później można wiercić?</summary><div class="rk-screed-faq-answer"><p>Trzeba zachować projekt, zdjęcia z punktami odniesienia i dokumentację powykonawczą, a przed wierceniem zlokalizować rury. Samo zdjęcie lub rzut może być niedokładny po zmianie skali, tynkach i przesunięciu osi pomieszczenia.</p></div></details>
        </div>

        <div class="rk-screed-sources">
          <strong>Podstawa techniczna i data weryfikacji</strong>
          Opracowanie zaktualizowano 29 sierpnia 2026 r. Podstawę stanowią oficjalne karty
          <a href="https://www.iso.org/standard/74685.html" target="_blank" rel="noopener nofollow">ISO 11855-5:2021 — wykonanie</a>,
          <a href="https://www.iso.org/standard/74683.html" target="_blank" rel="noopener nofollow">ISO 11855-2:2021 — obliczanie mocy</a>, zakres EN 13813 oraz dokumentacja wskazanych systemów Uponor i Knauf.
          Normy i przykłady producentów nie zastępują deklaracji, instrukcji i projektu konkretnego układu podłogi.
        </div>
      </section>

      <aside class="rk-screed-author-box" aria-label="Informacje o autorze" itemprop="author" itemscope itemtype="https://schema.org/Person">
        <div class="rk-screed-author-head">
          <div><h3>Autor opracowania</h3><p>Praktyka projektowa, wiedza techniczna i język zrozumiały dla inwestora.</p></div>
          <div class="rk-screed-author-mark">E-E-A-T • HVAC</div>
        </div>
        <div class="rk-screed-author-main">
          <div class="rk-screed-author-profile">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski – autor opracowania" width="174" height="174" loading="lazy" itemprop="image">
            <h4 itemprop="name">Robert Kucharski</h4>
            <span class="rk-screed-author-role" itemprop="jobTitle">Projektant instalacji sanitarnych • specjalista systemów HVAC i ogrzewania podłogowego</span>
            <div class="rk-screed-author-social-label">Znajdziesz mnie również:</div>
            <div class="rk-screed-author-social" aria-label="Profile Roberta Kucharskiego w mediach społecznościowych">
              <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener nofollow me" aria-label="Robert Kucharski na LinkedIn" title="LinkedIn"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5.2 7.7H1.6V22h3.6V7.7ZM3.4 2A2.1 2.1 0 1 0 3.4 6.2 2.1 2.1 0 0 0 3.4 2ZM22.4 13.8c0-4.3-2.3-6.3-5.4-6.3a4.7 4.7 0 0 0-4.2 2.3V7.7H9.2V22h3.6v-7.1c0-1.9.4-3.7 2.7-3.7 2.3 0 2.3 2.1 2.3 3.8v7h3.6l1-8.2Z"/></svg></a>
              <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="noopener nofollow me" aria-label="Projekt-Ogrzewania.pl na Facebooku" title="Facebook"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M14.2 22v-9h3l.5-3.5h-3.5V7.3c0-1 .3-1.7 1.8-1.7h1.9V2.5c-.3 0-1.5-.1-2.8-.1-2.8 0-4.7 1.7-4.7 4.8v2.3H7.2V13h3.2v9h3.8Z"/></svg></a>
              <a href="https://x.com/Projekt_HVAC" target="_blank" rel="noopener nofollow me" aria-label="Projekt HVAC w serwisie X" title="X"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M18.9 2H22l-6.8 7.8L23.2 22H17l-4.9-6.4L6.5 22H3.3l7.3-8.4L2.8 2h6.4l4.4 5.8L18.9 2Zm-1.1 17.8h1.7L8.3 4.1H6.5l11.3 15.7Z"/></svg></a>
            </div>
          </div>
          <div class="rk-screed-author-content">
            <div class="rk-screed-quote"><blockquote>„Wylewka nie naprawi źle zaprojektowanej podłogówki. Może jedynie dobrze albo źle przenieść do pomieszczenia ciepło, które wcześniej trzeba policzyć.”</blockquote></div>
            <div class="rk-screed-tab-buttons" role="tablist" aria-label="Informacje o autorze">
              <button class="rk-screed-tab-button is-active" type="button" role="tab" aria-selected="true" aria-controls="rk-screed-author-about" id="rk-screed-author-about-tab" data-screed-author-tab="about">O autorze</button>
              <button class="rk-screed-tab-button" type="button" role="tab" aria-selected="false" aria-controls="rk-screed-author-experience" id="rk-screed-author-experience-tab" data-screed-author-tab="experience">Doświadczenie</button>
              <button class="rk-screed-tab-button" type="button" role="tab" aria-selected="false" aria-controls="rk-screed-author-portals" id="rk-screed-author-portals-tab" data-screed-author-tab="portals">Portale</button>
            </div>
            <div class="rk-screed-tab-panel" id="rk-screed-author-about" role="tabpanel" aria-labelledby="rk-screed-author-about-tab" data-screed-author-panel="about">
              <p itemprop="description">Specjalizuję się w projektowaniu wodnego ogrzewania podłogowego, obliczeniach obciążenia cieplnego i hydraulice instalacji. Łączę parametry źródła ciepła, rozstaw rur, przepływy i konstrukcję podłogi w jeden możliwy do wykonania układ.</p>
            </div>
            <div class="rk-screed-tab-panel" id="rk-screed-author-experience" role="tabpanel" aria-labelledby="rk-screed-author-experience-tab" data-screed-author-panel="experience" hidden>
              <p>Wieloletnią praktykę projektową uzupełniam tworzeniem technicznych publikacji dla inwestorów i wykonawców. Analizuję zależności między stratami budynku, temperaturą zasilania, mocą powierzchniową, rozstawem, długością pętli, przepływem, oporem hydraulicznym i bezwładnością jastrychu. W poradnikach oddzielam wymagania normowe od zwyczajów wykonawczych i materiałów sprzedażowych.</p>
            </div>
            <div class="rk-screed-tab-panel" id="rk-screed-author-portals" role="tabpanel" aria-labelledby="rk-screed-author-portals-tab" data-screed-author-panel="portals" hidden>
              <p>Jestem właścicielem trzech serwisów branżowych. Powiązanie podaję jawnie, aby czytelnik znał autorstwo i kontekst linkowania.</p>
              <div class="rk-screed-portals">
                <a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a>
                <a href="https://remont.biz.pl/" target="_blank" rel="noopener nofollow">Remont.biz.pl</a>
                <a href="https://sobir.pl/" target="_blank" rel="noopener nofollow">Sobir.pl</a>
              </div>
            </div>
          </div>
        </div>
      </aside>

      <section class="rk-screed-cta" aria-label="Końcowe zamówienie projektu ogrzewania podłogowego">
        <span class="rk-screed-cta-kicker">Zamknij wysokości przed wykonaniem podłogi</span>
        <h3>Otrzymaj projekt skoordynowany z jastrychem i okładziną</h3>
        <p>Dokumentacja określa obciążenie cieplne każdego pomieszczenia, rozstaw i przebieg rur, długości pętli, temperaturę zasilania, przepływy oraz nastawy rozdzielacza. Dzięki temu grubość podłogi, dylatacje i strefy bez rur można uzgodnić przed zakryciem instalacji.</p>
        <a class="rk-screed-cta-link rk-screed-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
        <small>Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
      </section>
    </div>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webpage",
      "url": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/",
      "name": "Grubość wylewki betonowej na ogrzewanie podłogowe — ile cm nad rurą 16 mm?",
      "description": "Jak policzyć grubość całkowitą i warstwę nad rurą 16 mm, sprawdzić masę jastrychu oraz odczytać wymaganie z dokumentacji produktu.",
      "inLanguage": "pl-PL",
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/#website"
      },
      "about": [
        {
          "@type": "Thing",
          "name": "Grubość jastrychu na ogrzewaniu podłogowym"
        },
        {
          "@type": "Thing",
          "name": "Warstwa jastrychu nad rurą 16 mm"
        },
        {
          "@type": "Thing",
          "name": "Masa i pojemność cieplna jastrychu"
        }
      ],
      "mainEntity": {
        "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article"
      },
      "dateModified": "2026-08-29T12:00:00+02:00",
      "breadcrumb": {
        "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#breadcrumb"
      }
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article",
      "url": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/",
      "headline": "Grubość wylewki betonowej na ogrzewanie podłogowe — ile cm nad rurą 16 mm?",
      "alternativeHeadline": "Grubość całkowita i otulina nad rurą ogrzewania podłogowego",
      "description": "Techniczny przewodnik po grubości jastrychu: obliczenia dla rury 16 mm, wpływ położenia przewodu, masa warstwy, wymagania produktu i kontrola przed wylaniem.",
      "inLanguage": "pl-PL",
      "dateModified": "2026-08-29T12:00:00+02:00",
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "copyrightHolder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "copyrightYear": 2026,
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webpage"
      },
      "mainEntityOfPage": {
        "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webpage"
      },
      "wordCount": 4476,
      "proficiencyLevel": "Expert",
      "genre": [
        "poradnik techniczny",
        "ogrzewanie podłogowe",
        "budownictwo"
      ],
      "keywords": [
        "grubość wylewki betonowej na ogrzewanie podłogowe",
        "ile wylewki nad rurą 16 mm",
        "wylewka na podłogówkę 6 cm",
        "jastrych ogrzewany grubość",
        "masa wylewki na m2",
        "otulina rury ogrzewania podłogowego"
      ],
      "about": [
        {
          "@type": "DefinedTerm",
          "name": "Jastrych grzejny",
          "description": "Podkład podłogowy zawierający przewody wodnego ogrzewania powierzchniowego."
        },
        {
          "@type": "DefinedTerm",
          "name": "CT-C20-F4",
          "description": "Przykładowe oznaczenie jastrychu cementowego z klasą wytrzymałości na ściskanie C20 i na zginanie F4."
        },
        {
          "@type": "DefinedTerm",
          "name": "Nagrzewanie funkcjonalne",
          "description": "Kontrolowany cykl temperatur wykonywany po minimalnym okresie wiązania jastrychu grzejnego."
        }
      ],
      "mentions": [
        {
          "@type": "TechArticle",
          "name": "PN-EN 1264-4 – Wodne płaszczyznowe systemy ogrzewania i chłodzenia – Instalowanie"
        },
        {
          "@type": "TechArticle",
          "name": "PN-EN 13813 – Podkłady podłogowe oraz materiały do ich wykonania"
        },
        {
          "@type": "TechArticle",
          "name": "ISO 11855-5:2021 – Installation",
          "url": "https://www.iso.org/standard/74685.html"
        }
      ],
      "citation": [
        "PN-EN 1264-4: Wodne płaszczyznowe systemy ogrzewania i chłodzenia – Część 4: Instalowanie",
        "PN-EN 13813: Podkłady podłogowe oraz materiały do ich wykonania – Materiały – Właściwości i wymagania",
        "https://www.iso.org/standard/74685.html",
        "https://www.iso.org/standard/83785.html"
      ],
      "hasPart": [
        {
          "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#analyzer"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#howto"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#faq"
        }
      ],
      "audience": {
        "@type": "Audience",
        "audienceType": "Inwestorzy, projektanci i wykonawcy ogrzewania podłogowego"
      }
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#analyzer",
      "name": "Interaktywny analizator przekroju jastrychu",
      "description": "Narzędzie oblicza warstwę jastrychu nad rurą, wymaganą grubość całkowitą, różnicę względem wartości z karty produktu, objętość, masę, pojemność cieplną i opór jednowymiarowy.",
      "url": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#rk-screed-kalkulator",
      "applicationCategory": "EngineeringApplication",
      "applicationSubCategory": "Analizator techniczny",
      "operatingSystem": "Any",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "creator": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "featureList": [
        "Obliczanie rzeczywistej warstwy nad rurą",
        "Uwzględnienie podniesienia spodu rury",
        "Porównanie z minimum wpisanym z karty produktu",
        "Objętość i masa jastrychu",
        "Pojemność cieplna i opór jednowymiarowy",
        "Dynamiczny przekrój i wykres masy"
      ],
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "PLN"
      }
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#howto",
      "name": "Jak przygotować podłogę i wykonać jastrych nad ogrzewaniem podłogowym",
      "description": "Dziesięć etapów od ustalenia konstrukcji podłogi do odbioru podłoża pod okładzinę.",
      "inLanguage": "pl-PL",
      "supply": [
        {
          "@type": "HowToSupply",
          "name": "Jastrych o zaprojektowanej klasie"
        },
        {
          "@type": "HowToSupply",
          "name": "Izolacja termiczna i brzegowa"
        },
        {
          "@type": "HowToSupply",
          "name": "Rury ogrzewania podłogowego"
        },
        {
          "@type": "HowToSupply",
          "name": "Profile dylatacyjne i tuleje ochronne"
        }
      ],
      "tool": [
        {
          "@type": "HowToTool",
          "name": "Narzędzia do kontroli poziomu i grubości"
        },
        {
          "@type": "HowToTool",
          "name": "Zestaw do próby ciśnieniowej"
        },
        {
          "@type": "HowToTool",
          "name": "Aparat CM do pomiaru wilgotności"
        }
      ],
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Ustal konstrukcję podłogi",
          "text": "Wybierz jastrych, klasę, grubość, izolację, okładzinę, obciążenia i wysokości. Sprawdź nośność stropu oraz ściśliwość warstw.",
          "url": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#rk-screed-step-1"
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Zaprojektuj ogrzewanie",
          "text": "Oblicz obciążenie pomieszczeń, rozstaw, temperaturę zasilania, długości pętli, przepływy i przebieg bez kolizji ze szczelinami.",
          "url": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#rk-screed-step-2"
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Przygotuj równe podłoże i izolację",
          "text": "Usuń luźne elementy, wyrównaj instalacje, ułóż warstwy bez pustek i wykonaj ciągłą izolację brzegową.",
          "url": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#rk-screed-step-3"
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Ułóż i zamocuj rury",
          "text": "Zachowaj projektowany rozstaw, promienie gięcia i strefy bez mocowań. Oznacz przejścia, dylatacje i punkty pomiarowe.",
          "url": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#rk-screed-step-4"
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Wykonaj próbę szczelności",
          "text": "Napełnij, odpowietrz i sprawdź obwody zgodnie z normą oraz systemem. Sporządź protokół i pozostaw instalację pod właściwym ciśnieniem podczas prac.",
          "url": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#rk-screed-step-5"
        },
        {
          "@type": "HowToStep",
          "position": 6,
          "name": "Zbuduj podział na pola",
          "text": "Wykonaj szczeliny, profile i tuleje ochronne zgodnie z planem. Skoordynuj je z progami oraz przyszłą okładziną.",
          "url": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#rk-screed-step-6"
        },
        {
          "@type": "HowToStep",
          "position": 7,
          "name": "Wbuduj mieszankę",
          "text": "Kontroluj recepturę, czas, konsystencję, zagęszczenie i poziomy. Nie dolewaj wody bez zgody technologicznej.",
          "url": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#rk-screed-step-7"
        },
        {
          "@type": "HowToStep",
          "position": 8,
          "name": "Pielęgnuj i chroń",
          "text": "Ogranicz przeciąg, słońce, mróz i przedwczesne obciążenie. Realizuj wymagania właściwe dla spoiwa i produktu.",
          "url": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#rk-screed-step-8"
        },
        {
          "@type": "HowToStep",
          "position": 9,
          "name": "Przeprowadź nagrzewanie funkcjonalne",
          "text": "Po wymaganym czasie uruchom wszystkie obwody, zapisz temperatury i zachowaj maksymalną temperaturę projektową przez wymagany okres.",
          "url": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#rk-screed-step-9"
        },
        {
          "@type": "HowToStep",
          "position": 10,
          "name": "Zmierz wilgotność i odbierz podłoże",
          "text": "Wykonaj pomiar w bezpiecznych punktach, oceń rysy, równość i wytrzymałość powierzchni, a następnie przekaż protokoły wykonawcy posadzki.",
          "url": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#rk-screed-step-10"
        }
      ]
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Projekt-Ogrzewania.pl",
          "item": "https://projekt-ogrzewania.pl/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Ogrzewanie podłogowe",
          "item": "https://projekt-ogrzewania.pl/category/ogrzewanie-podlogowe/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Grubość wylewki betonowej",
          "item": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/"
        }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#faq",
      "inLanguage": "pl-PL",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Ile centymetrów wylewki powinno być nad rurą ogrzewania podłogowego?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie ma jednej wartości właściwej dla wszystkich produktów i podłóg. Warstwę nad rurą ustala się na podstawie typu i klasy jastrychu, obciążenia, podatności izolacji, średnicy przewodu, geometrii pól i dokumentacji systemu. Popularne 4,5 cm jest przykładem spotykanym w części rozwiązań, a nie uniwersalną normą."
          }
        },
        {
          "@type": "Question",
          "name": "Czy całkowita grubość 6 cm wystarczy przy rurze 16 mm?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Przy 60 mm całkowitej grubości nad rurą 16 mm pozostaje 44 mm. Geometrycznie można to policzyć, ale bezpieczeństwa nie da się potwierdzić bez klasy materiału, obciążenia, rodzaju izolacji, układu szczelin i instrukcji konkretnego jastrychu."
          }
        },
        {
          "@type": "Question",
          "name": "Czy jastrych cementowy musi mieć siatkę?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie zawsze. Dopuszczalne rozwiązanie powinno wynikać z projektu lub dokumentacji systemu. Siatka, włókna i brak dodatkowego zbrojenia mają różne warunki stosowania. Siatka położona bez dystansów na izolacji nie zastępuje prawidłowo zaprojektowanego zbrojenia."
          }
        },
        {
          "@type": "Question",
          "name": "Czy włókna zastępują siatkę w wylewce?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Tylko wtedy, gdy rodzaj i dawka włókien mają taką funkcję w dokumentacji systemu. Mikrowłókna ograniczające skurcz plastyczny nie są automatycznie zamiennikiem siatki konstrukcyjnej. Nie wolno oceniać wszystkich włókien jako jednego materiału."
          }
        },
        {
          "@type": "Question",
          "name": "Co jest lepsze na podłogówkę: cement czy anhydryt?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Oba rozwiązania mogą działać bardzo dobrze. CT jest odporny na różne warunki wilgotnościowe i dostępny w wielu odmianach. CA zwykle dobrze otacza rury i ma mniejszy skurcz. Decyzję podejmuje się według pomieszczenia, produktu, harmonogramu, obciążeń, okładziny i jakości wykonawstwa."
          }
        },
        {
          "@type": "Question",
          "name": "Czy anhydryt ma zawsze lepszą przewodność cieplną?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie należy tego zakładać na podstawie samej nazwy spoiwa. Przewodność zależy od receptury, gęstości i wilgotności. Do obliczeń trzeba przyjąć wartość λ deklarowaną dla konkretnego wyrobu w warunkach właściwych dla projektu."
          }
        },
        {
          "@type": "Question",
          "name": "Po ilu dniach można włączyć ogrzewanie podłogowe?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Dla standardowego jastrychu cementowego nagrzewanie funkcjonalne według PN-EN 1264-4 rozpoczyna się zwykle nie wcześniej niż po 21 dniach, a dla jastrychu na bazie siarczanu wapnia po co najmniej 7 dniach. Produkt specjalny może mieć inny harmonogram zapisany przez producenta."
          }
        },
        {
          "@type": "Question",
          "name": "Jak wygląda pierwsze wygrzewanie wylewki?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Modelowo stosuje się około 25°C temperatury zasilania przez 3 dni, a następnie maksymalną projektową temperaturę zasilania przez co najmniej 4 dni. Dokładny protokół musi uwzględniać rodzaj jastrychu, instrukcję produktu i parametry instalacji."
          }
        },
        {
          "@type": "Question",
          "name": "Czy wygrzanie oznacza, że można układać panele lub drewno?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie. Wygrzewanie funkcjonalne nie jest dowodem osiągnięcia wilgotności wymaganej przez posadzkę. Gotowość potwierdza pomiar, najczęściej metodą CM, oraz kryterium producenta jastrychu, kleju i okładziny."
          }
        },
        {
          "@type": "Question",
          "name": "Ile schnie wylewka o grubości 6 cm?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie da się wiarygodnie odpowiedzieć regułą „1 mm na dobę”. Czas zależy od receptury, spoiwa, grubości, temperatury, wilgotności i wymiany powietrza. Należy śledzić warunki, przeprowadzić wymagany protokół i zmierzyć wilgotność."
          }
        },
        {
          "@type": "Question",
          "name": "Czy rury mogą przechodzić przez dylatację?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Pętla grzewcza nie powinna przechodzić z pola do pola przez szczelinę ruchową. Jeśli muszą przejść przewody przyłączeniowe, prowadzi się je w odpowiednich tulejach ochronnych zgodnie z projektem i ogranicza liczbę przejść."
          }
        },
        {
          "@type": "Question",
          "name": "Czy trzeba utrzymywać 6–8 bar przez cały czas schnięcia?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie należy stosować takiej uniwersalnej zasady. Próbę wykonuje się przed zakryciem rur według PN-EN 1264-4 i systemu. Podczas wylewania przewody pozostają pod ciśnieniem, lecz wartość oraz czas utrzymania po pracy powinny wynikać z instrukcji i protokołu, a nie z przypadkowej liczby."
          }
        },
        {
          "@type": "Question",
          "name": "Czy grubsza wylewka daje cieplejszą podłogę?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie automatycznie. Większa masa magazynuje więcej energii i wolniej reaguje, ale moc ustalają także temperatura wody, rozstaw rur, przepływ, opór okładziny i straty pomieszczenia. Nadmierna grubość nie naprawi źle zaprojektowanej instalacji."
          }
        },
        {
          "@type": "Question",
          "name": "Skąd wiadomo, gdzie później można wiercić?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Trzeba zachować projekt, zdjęcia z punktami odniesienia i dokumentację powykonawczą, a przed wierceniem zlokalizować rury. Samo zdjęcie lub rzut może być niedokładny po zmianie skali, tynkach i przesunięciu osi pomieszczenia."
          }
        }
      ]
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "description": "Projektant wodnego ogrzewania podłogowego, autor technicznych opracowań i właściciel serwisów Projekt-Ogrzewania.pl, Remont.biz.pl oraz Sobir.pl.",
      "knowsAbout": [
        "Ogrzewanie podłogowe",
        "Jastrychy grzejne",
        "Projektowanie instalacji sanitarnych",
        "Hydraulika instalacji grzewczych",
        "Obciążenie cieplne budynków",
        "Pompy ciepła",
        "Efektywność energetyczna budynków"
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ],
      "affiliation": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "owns": [
        {
          "@id": "https://projekt-ogrzewania.pl/#website"
        },
        {
          "@id": "https://remont.biz.pl/#website"
        },
        {
          "@id": "https://sobir.pl/#website"
        }
      ],
      "worksFor": [
        {
          "@id": "https://projekt-ogrzewania.pl/#organization"
        },
        {
          "@id": "https://remont.biz.pl/#organization"
        },
        {
          "@id": "https://sobir.pl/#organization"
        }
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt-Ogrzewania.pl",
      "url": "https://projekt-ogrzewania.pl/",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-Ogrzewania-Logo.webp"
      },
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt-Ogrzewania.pl",
      "inLanguage": "pl-PL",
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "creator": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "copyrightHolder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      }
    }
  ]
}
</script>

<script>
(function () {
  "use strict";

  function initScreedGuide() {
    var root = document.getElementById("rk-screed-guide");
    if (!root) {
      return;
    }
    if (root.getAttribute("data-rk-screed-ready") === "1") {
      return;
    }
    root.setAttribute("data-rk-screed-ready", "1");

    function one(selector) {
      return root.querySelector(selector);
    }

    function many(selector) {
      return Array.prototype.slice.call(root.querySelectorAll(selector));
    }

    function valueOf(element, fallback) {
      if (!element) {
        return fallback;
      }
      var value = Number.parseFloat(element.value);
      if (Number.isFinite(value)) {
        return value;
      }
      return fallback;
    }

    function format(value, digits) {
      return value.toLocaleString("pl-PL", {
        minimumFractionDigits: digits,
        maximumFractionDigits: digits
      });
    }

    function setText(selector, content) {
      var element = one(selector);
      if (element) {
        element.textContent = content;
      }
    }

    function svgElement(name, attributes, content) {
      var element = document.createElementNS("http://www.w3.org/2000/svg", name);
      Object.keys(attributes).forEach(function (key) {
        element.setAttribute(key, String(attributes[key]));
      });
      if (typeof content === "string") {
        element.textContent = content;
      }
      return element;
    }

    var fields = {
      total: one("#rk-screed-total"),
      diameter: one("#rk-screed-diameter"),
      elevation: one("#rk-screed-elevation"),
      required: one("#rk-screed-required"),
      area: one("#rk-screed-area"),
      density: one("#rk-screed-density"),
      cp: one("#rk-screed-cp"),
      lambda: one("#rk-screed-lambda")
    };

    var presets = {
      six: { total: 60 },
      standard: { total: 65 },
      seven: { total: 70 },
      eight: { total: 80 }
    };

    function updateCrossSection(total, diameter, elevation, cover) {
      var screed = one("#rk-screed-svg-screed");
      var pipe = one("#rk-screed-svg-pipe");
      var coverLine = one("#rk-screed-svg-cover-line");
      var totalLine = one("#rk-screed-svg-total-line");
      var coverText = one("#rk-screed-svg-cover-text");
      var totalText = one("#rk-screed-svg-total-text");
      if (!screed) {
        return;
      }

      var bottom = 190;
      var height = 92 + (total - 35) / 65 * 64;
      height = Math.min(Math.max(height, 92), 156);
      var top = bottom - height;
      var scale = height / total;
      var radius = Math.max(diameter / 2 * scale, 5);
      var pipeBottom = bottom - elevation * scale;
      var pipeCenter = pipeBottom - radius;
      var pipeTop = pipeCenter - radius;

      screed.setAttribute("y", top.toFixed(1));
      screed.setAttribute("height", height.toFixed(1));
      if (pipe) {
        pipe.setAttribute("cy", pipeCenter.toFixed(1));
        pipe.setAttribute("r", radius.toFixed(1));
      }
      if (coverLine) {
        coverLine.setAttribute("y1", (top + 5).toFixed(1));
        coverLine.setAttribute("y2", Math.max(pipeTop - 5, top + 6).toFixed(1));
      }
      if (totalLine) {
        totalLine.setAttribute("y1", (top + 4).toFixed(1));
        totalLine.setAttribute("y2", (bottom - 4).toFixed(1));
      }
      if (coverText) {
        coverText.setAttribute("y", (top + Math.max(cover, 0) * scale / 2 + 4).toFixed(1));
        coverText.textContent = format(cover, 0) + " mm nad rurą";
      }
      if (totalText) {
        totalText.setAttribute("y", (top + height / 2 + 4).toFixed(1));
        totalText.textContent = format(total, 0) + " mm łącznie";
      }
    }

    function updateMassChart(density, cp) {
      var group = one("#rk-screed-bars");
      var chart = one("#rk-screed-energy-chart");
      if (!group) {
        return;
      }
      while (group.firstChild) {
        group.removeChild(group.firstChild);
      }

      var thicknesses = [50, 60, 70, 80];
      var masses = thicknesses.map(function (thickness) {
        return thickness / 1000 * density;
      });
      var maxValue = Math.max.apply(null, masses) * 1.15;

      thicknesses.forEach(function (thickness, index) {
        var mass = masses[index];
        var x = 72 + index * 82;
        var barHeight = mass / maxValue * 145;
        var y = 205 - barHeight;
        group.appendChild(svgElement("rect", {
          x: x,
          y: y.toFixed(1),
          width: 48,
          height: barHeight.toFixed(1),
          rx: 8,
          "class": "rk-screed-bar"
        }));
        group.appendChild(svgElement("text", {
          x: x + 24,
          y: y - 8,
          "text-anchor": "middle"
        }, format(mass, 0)));
        group.appendChild(svgElement("text", {
          x: x + 24,
          y: 225,
          "text-anchor": "middle"
        }, thickness + " mm"));
      });

      if (chart) {
        var capacity80 = masses[3] * cp / 3600;
        chart.setAttribute("aria-label", "Masa od " + format(masses[0], 0) + " do " + format(masses[3], 0) + " kilogramów na metr kwadratowy. Warstwa 80 milimetrów magazynuje około " + format(capacity80, 3) + " kilowatogodziny na metr kwadratowy i kelwin.");
      }
    }

    function renderAnalyzer() {
      var total = valueOf(fields.total, 65);
      var diameter = valueOf(fields.diameter, 16);
      var elevation = valueOf(fields.elevation, 0);
      var required = valueOf(fields.required, 45);
      var area = valueOf(fields.area, 100);
      var density = valueOf(fields.density, 2100);
      var cp = valueOf(fields.cp, 0.88);
      var lambda = valueOf(fields.lambda, 1.40);

      var cover = total - diameter - elevation;
      var requiredTotal = diameter + elevation + required;
      var margin = cover - required;
      var heightMetres = total / 1000;
      var volume = area * heightMetres;
      var massPerArea = heightMetres * density;
      var mass = volume * density;
      var capacity = mass * cp / 3600;
      var resistance = heightMetres / lambda;

      setText("#rk-screed-total-out", format(total, 0) + " mm");
      setText("#rk-screed-diameter-out", format(diameter, 0) + " mm");
      setText("#rk-screed-elevation-out", format(elevation, 0) + " mm");
      setText("#rk-screed-required-out", format(required, 0) + " mm");
      setText("#rk-screed-area-out", format(area, 0) + " m²");
      setText("#rk-screed-density-out", format(density, 0) + " kg/m³");
      setText("#rk-screed-cp-out", format(cp, 2) + " kJ/kgK");
      setText("#rk-screed-lambda-out", format(lambda, 2) + " W/mK");

      setText("#rk-screed-cover-result", format(cover, 0) + " mm");
      setText("#rk-screed-required-total-result", format(requiredTotal, 0) + " mm");
      setText("#rk-screed-margin-result", (margin > 0 ? "+" : "") + format(margin, 0) + " mm");
      setText("#rk-screed-volume-result", format(volume, 2) + " m³");
      setText("#rk-screed-load-result", format(massPerArea, 0) + " kg/m²");
      setText("#rk-screed-mass-result", mass >= 1000 ? format(mass / 1000, 1) + " t" : format(mass, 0) + " kg");
      setText("#rk-screed-capacity-result", format(capacity, 1) + " kWh/K");
      setText("#rk-screed-resistance-result", format(resistance, 3) + " m²K/W");

      var status = one("#rk-screed-lab-warning");
      if (status) {
        status.classList.remove("is-ok");
        status.classList.remove("is-warning");
        if (cover < 0) {
          status.textContent = "Błąd geometrii: rura z podniesieniem nie mieści się w podanej grubości całkowitej.";
          status.classList.add("is-warning");
        } else if (margin < 0) {
          status.textContent = "Geometrycznie brakuje " + format(Math.abs(margin), 0) + " mm do minimum nad rurą wpisanego z karty produktu.";
          status.classList.add("is-warning");
        } else if (massPerArea > 170) {
          status.textContent = "Wpisane minimum jest geometrycznie zachowane, ale masa przekracza 170 kg/m². Zweryfikuj nośność stropu i warstw pod jastrychem.";
          status.classList.add("is-warning");
        } else {
          status.textContent = "Geometrycznie pozostaje " + format(margin, 0) + " mm zapasu ponad wpisane minimum produktu. To nie jest ocena nośności całej podłogi.";
          status.classList.add("is-ok");
        }
      }

      updateCrossSection(total, diameter, elevation, cover);
      updateMassChart(density, cp);
    }

    Object.keys(fields).forEach(function (key) {
      var field = fields[key];
      if (!field) {
        return;
      }
      field.addEventListener("input", renderAnalyzer);
      field.addEventListener("change", renderAnalyzer);
    });

    many("[data-screed-preset]").forEach(function (button) {
      button.addEventListener("click", function () {
        var key = button.getAttribute("data-screed-preset");
        var preset = presets[key];
        if (!preset) {
          return;
        }
        Object.keys(preset).forEach(function (fieldKey) {
          if (fields[fieldKey]) {
            fields[fieldKey].value = String(preset[fieldKey]);
          }
        });
        many("[data-screed-preset]").forEach(function (item) {
          item.classList.toggle("is-active", item === button);
        });
        renderAnalyzer();
      });
    });

    many(".rk-screed-nav a").forEach(function (link) {
      link.addEventListener("click", function (event) {
        var selector = link.getAttribute("href");
        if (!selector) {
          return;
        }
        var target = root.querySelector(selector);
        if (target) {
          event.preventDefault();
          target.scrollIntoView({ behavior: "smooth", block: "start" });
        }
      });
    });

    var tabButtons = many("[data-screed-author-tab]");
    var tabPanels = many("[data-screed-author-panel]");

    function activateAuthorTab(key) {
      tabButtons.forEach(function (button) {
        var active = button.getAttribute("data-screed-author-tab") === key;
        button.classList.toggle("is-active", active);
        button.setAttribute("aria-selected", active ? "true" : "false");
        button.tabIndex = active ? 0 : -1;
      });
      tabPanels.forEach(function (panel) {
        var active = panel.getAttribute("data-screed-author-panel") === key;
        panel.hidden = !active;
      });
    }

    tabButtons.forEach(function (button, index) {
      button.addEventListener("click", function () {
        activateAuthorTab(button.getAttribute("data-screed-author-tab"));
      });
      button.addEventListener("keydown", function (event) {
        if (event.key !== "ArrowRight") {
          if (event.key !== "ArrowLeft") {
            return;
          }
        }
        event.preventDefault();
        var movement = event.key === "ArrowRight" ? 1 : -1;
        var nextIndex = (index + movement + tabButtons.length) % tabButtons.length;
        var nextButton = tabButtons[nextIndex];
        activateAuthorTab(nextButton.getAttribute("data-screed-author-tab"));
        nextButton.focus();
      });
    });

    var progress = one(".rk-screed-progress");

    function updateProgress() {
      if (!progress) {
        return;
      }
      var articleTop = root.getBoundingClientRect().top + window.scrollY;
      var articleHeight = root.offsetHeight - window.innerHeight;
      var travelled = window.scrollY - articleTop;
      var percentage = articleHeight > 0 ? travelled / articleHeight * 100 : 0;
      percentage = Math.min(Math.max(percentage, 0), 100);
      progress.style.width = percentage.toFixed(2) + "%";
    }

    window.addEventListener("scroll", updateProgress, { passive: true });
    window.addEventListener("resize", updateProgress);
    renderAnalyzer();
    activateAuthorTab("about");
    updateProgress();
  }

  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", initScreedGuide);
  } else {
    initScreedGuide();
  }
  window.setTimeout(initScreedGuide, 500);
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/">Grubość wylewki betonowej na ogrzewanie podłogowe.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ile styropianu pod ogrzewanie podłogowe? Grubość, opór R i kalkulator ilości.</title>
		<link>https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 18 Nov 2025 08:28:46 +0000</pubDate>
				<category><![CDATA[Izolacje termiczne]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Materiały do podłogówki]]></category>
		<category><![CDATA[Materiały instalacyjne]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Normy i regulacje]]></category>
		<category><![CDATA[Normy i standardy]]></category>
		<category><![CDATA[Normy techniczne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Styropian]]></category>
		<category><![CDATA[eps 100]]></category>
		<category><![CDATA[eps 200]]></category>
		<category><![CDATA[grubość styropianu]]></category>
		<category><![CDATA[izolacja termiczna]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projektowanie ogrzewania]]></category>
		<category><![CDATA[straty ciepła]]></category>
		<category><![CDATA[styropian]]></category>
		<category><![CDATA[warunki techniczne]]></category>
		<category><![CDATA[współczynnik lambda]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2850</guid>

					<description><![CDATA[<p>Planując instalację ogrzewania podłogowego, jednym z najważniejszych, choć często niedocenianych aspektów, jest odpowiednie dobranie izolacji termicznej. Wiele osób zadaje sobie wtedy kluczowe pytanie: ile styropianu pod ogrzewanie podłogowe będzie optymalne? Odpowiedź nie jest jednoznaczna, ponieważ zależy od typu konstrukcji, lokalizacji oraz parametrów technicznych samego materiału. W naszym kompleksowym artykule w techniczny i szczegółowy sposób wyjaśniamy, jak precyzyjnie obliczyć wymaganą grubość warstwy izolacyjnej, jakie normy prawne muszą być spełnione oraz na jakie zaawansowane parametry, takie jak współczynnik lambda czy wytrzymałość na ściskanie, należy zwrócić uwagę. Dowiesz się również, jak uniknąć kosztownych błędów i zapewnić swojemu systemowi grzewczemu maksymalną efektywność energetyczną na długie lata.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">Ile styropianu pod ogrzewanie podłogowe? Grubość, opór R i kalkulator ilości.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-insulation-guide {
    --rk-dark: #102536;
    --rk-navy: #14384d;
    --rk-blue: #078fbe;
    --rk-cyan: #28c9da;
    --rk-cyan-soft: #e9fbff;
    --rk-orange: #ff7438;
    --rk-orange-soft: #fff2ec;
    --rk-green: #16876d;
    --rk-green-soft: #eaf8f3;
    --rk-yellow: #e7ad2f;
    --rk-yellow-soft: #fff8df;
    --rk-red: #d94b3d;
    --rk-red-soft: #fff0ee;
    --rk-purple: #695ac9;
    --rk-purple-soft: #f1efff;
    --rk-ink: #1f2c37;
    --rk-text: #475967;
    --rk-muted: #6b7e8a;
    --rk-line: #d5e4eb;
    --rk-soft: #f4f9fb;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1180px;
    margin: 34px auto 72px;
    color: var(--rk-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 18px;
    line-height: 1.76;
  }

  #rk-insulation-guide,
  #rk-insulation-guide * {
    box-sizing: border-box;
  }

  #rk-insulation-guide img,
  #rk-insulation-guide svg {
    max-width: 100%;
  }

  #rk-insulation-guide a {
    color: var(--rk-blue);
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }

  #rk-insulation-guide button,
  #rk-insulation-guide input,
  #rk-insulation-guide select {
    font: inherit;
  }

  #rk-insulation-guide button,
  #rk-insulation-guide summary,
  #rk-insulation-guide a {
    -webkit-tap-highlight-color: transparent;
  }

  #rk-insulation-guide h2,
  #rk-insulation-guide h3,
  #rk-insulation-guide h4,
  #rk-insulation-guide p,
  #rk-insulation-guide ul,
  #rk-insulation-guide ol,
  #rk-insulation-guide blockquote {
    margin-top: 0;
  }

  #rk-insulation-guide h2,
  #rk-insulation-guide h3,
  #rk-insulation-guide h4 {
    color: var(--rk-dark);
    line-height: 1.18;
    letter-spacing: -0.025em;
  }

  #rk-insulation-guide h2 {
    margin-bottom: 22px;
    font-size: clamp(30px, 4vw, 48px);
    scroll-margin-top: 30px;
  }

  #rk-insulation-guide h3 {
    margin-bottom: 12px;
    font-size: clamp(22px, 2.4vw, 29px);
  }

  #rk-insulation-guide h4 {
    margin-bottom: 9px;
    font-size: 20px;
  }

  #rk-insulation-guide p:last-child,
  #rk-insulation-guide ul:last-child,
  #rk-insulation-guide ol:last-child {
    margin-bottom: 0;
  }

  #rk-insulation-guide .rk-ins-shell {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 28px;
    background: var(--rk-white);
    box-shadow: 0 28px 80px rgba(16, 37, 54, 0.11);
  }

  #rk-insulation-guide .rk-ins-progress-track {
    position: sticky;
    z-index: 20;
    top: 0;
    height: 5px;
    background: rgba(255, 255, 255, 0.2);
  }

  #rk-insulation-guide .rk-ins-progress {
    width: 0;
    height: 100%;
    background: linear-gradient(90deg, var(--rk-cyan), var(--rk-orange));
  }

  #rk-insulation-guide .rk-ins-hero {
    position: relative;
    overflow: hidden;
    padding: 62px 58px 54px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 88% 15%, rgba(40, 201, 218, 0.24), transparent 28%),
      radial-gradient(circle at 78% 105%, rgba(255, 116, 56, 0.24), transparent 34%),
      linear-gradient(135deg, #0f2637 0%, #123f55 64%, #174c5c 100%);
  }

  #rk-insulation-guide .rk-ins-hero::after {
    content: "";
    position: absolute;
    right: -80px;
    top: -140px;
    width: 420px;
    height: 420px;
    border: 38px solid rgba(255, 255, 255, 0.045);
    border-radius: 50%;
  }

  #rk-insulation-guide .rk-ins-hero-inner {
    position: relative;
    z-index: 1;
    max-width: 920px;
  }

  #rk-insulation-guide .rk-ins-eyebrow,
  #rk-insulation-guide .rk-ins-kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
    color: var(--rk-blue);
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.11em;
    text-transform: uppercase;
  }

  #rk-insulation-guide .rk-ins-eyebrow {
    color: #91f4ff;
  }

  #rk-insulation-guide .rk-ins-eyebrow b {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--rk-orange);
    box-shadow: 0 0 0 7px rgba(255, 116, 56, 0.14);
  }

  #rk-insulation-guide .rk-ins-hero-title {
    max-width: 900px;
    margin-bottom: 20px;
    color: var(--rk-white);
    font-size: clamp(38px, 6vw, 68px);
    font-weight: 950;
    line-height: 1.02;
    letter-spacing: -0.05em;
  }

  #rk-insulation-guide .rk-ins-hero-lead {
    max-width: 830px;
    margin-bottom: 26px;
    color: #dcecf2;
    font-size: clamp(19px, 2.3vw, 24px);
    line-height: 1.55;
  }

  #rk-insulation-guide .rk-ins-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }

  #rk-insulation-guide .rk-ins-meta span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border: 1px solid rgba(255, 255, 255, 0.17);
    border-radius: 999px;
    color: #e7f7fa;
    background: rgba(255, 255, 255, 0.07);
    font-size: 13px;
    font-weight: 750;
  }

  #rk-insulation-guide .rk-ins-meta i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--rk-cyan);
  }

  #rk-insulation-guide .rk-ins-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 24px 32px;
    border-bottom: 1px solid var(--rk-line);
    background: var(--rk-white);
  }

  #rk-insulation-guide .rk-ins-nav strong {
    display: block;
    width: 100%;
    margin-bottom: 2px;
    color: var(--rk-muted);
    font-size: 12px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  #rk-insulation-guide .rk-ins-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 9px 15px;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-soft);
    font-size: 14px;
    font-weight: 850;
    line-height: 1.25;
    text-decoration: none;
    transition: transform 0.18s ease, background 0.18s ease, color 0.18s ease;
  }

  #rk-insulation-guide .rk-ins-nav a:hover,
  #rk-insulation-guide .rk-ins-nav a:focus-visible {
    color: var(--rk-white);
    background: var(--rk-blue);
    transform: translateY(-1px);
    outline: none;
  }

  #rk-insulation-guide .rk-ins-section {
    padding: 64px 58px;
    border-bottom: 1px solid var(--rk-line);
  }

  #rk-insulation-guide .rk-ins-section:nth-of-type(even) {
    background: #fbfdfe;
  }

  #rk-insulation-guide .rk-ins-intro {
    max-width: 930px;
    margin-bottom: 30px;
    color: var(--rk-text);
    font-size: 20px;
  }

  #rk-insulation-guide .rk-ins-answer {
    display: grid;
    grid-template-columns: 1.45fr 0.8fr;
    overflow: hidden;
    margin: 30px 0;
    border: 1px solid var(--rk-line);
    border-radius: 22px;
  }

  #rk-insulation-guide .rk-ins-answer-main,
  #rk-insulation-guide .rk-ins-answer-side {
    padding: 28px;
  }

  #rk-insulation-guide .rk-ins-answer-main {
    background: var(--rk-cyan-soft);
  }

  #rk-insulation-guide .rk-ins-answer-side {
    color: var(--rk-white);
    background: var(--rk-navy);
  }

  #rk-insulation-guide .rk-ins-answer-side h3 {
    color: var(--rk-white);
  }

  #rk-insulation-guide .rk-ins-answer-side p {
    color: #dcebf0;
  }

  #rk-insulation-guide .rk-ins-formula {
    margin: 28px 0;
    padding: 25px 28px;
    border-left: 6px solid var(--rk-cyan);
    border-radius: 0 18px 18px 0;
    background: var(--rk-dark);
    color: var(--rk-white);
  }

  #rk-insulation-guide .rk-ins-formula strong {
    display: block;
    margin-bottom: 8px;
    color: #8ff5ff;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: clamp(21px, 3vw, 31px);
    letter-spacing: -0.03em;
  }

  #rk-insulation-guide .rk-ins-formula span {
    color: #d9e8ed;
    font-size: 15px;
  }

  #rk-insulation-guide .rk-ins-grid-2,
  #rk-insulation-guide .rk-ins-grid-3,
  #rk-insulation-guide .rk-ins-grid-4 {
    display: grid;
    gap: 18px;
    margin: 28px 0;
  }

  #rk-insulation-guide .rk-ins-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-insulation-guide .rk-ins-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-insulation-guide .rk-ins-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #rk-insulation-guide .rk-ins-card,
  #rk-insulation-guide .rk-ins-location,
  #rk-insulation-guide .rk-ins-error,
  #rk-insulation-guide .rk-ins-step {
    min-width: 0;
    padding: 24px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-white);
    box-shadow: 0 10px 28px rgba(16, 37, 54, 0.05);
  }

  #rk-insulation-guide .rk-ins-card-number,
  #rk-insulation-guide .rk-ins-error b {
    display: inline-flex;
    margin-bottom: 14px;
    color: var(--rk-blue);
    font-size: 12px;
    font-weight: 950;
    letter-spacing: 0.09em;
    text-transform: uppercase;
  }

  #rk-insulation-guide .rk-ins-card h3,
  #rk-insulation-guide .rk-ins-location h3,
  #rk-insulation-guide .rk-ins-error h3,
  #rk-insulation-guide .rk-ins-step h3 {
    font-size: 22px;
  }

  #rk-insulation-guide .rk-ins-card p,
  #rk-insulation-guide .rk-ins-location p,
  #rk-insulation-guide .rk-ins-error p,
  #rk-insulation-guide .rk-ins-step p {
    color: var(--rk-text);
    font-size: 16px;
  }

  #rk-insulation-guide .rk-ins-location {
    border-top: 5px solid var(--rk-cyan);
  }

  #rk-insulation-guide .rk-ins-location:nth-child(2) {
    border-top-color: var(--rk-green);
  }

  #rk-insulation-guide .rk-ins-location:nth-child(3) {
    border-top-color: var(--rk-orange);
  }

  #rk-insulation-guide .rk-ins-location:nth-child(4) {
    border-top-color: var(--rk-purple);
  }

  #rk-insulation-guide .rk-ins-callout {
    margin: 28px 0;
    padding: 24px 26px;
    border: 1px solid #eed68d;
    border-radius: 18px;
    background: var(--rk-yellow-soft);
  }

  #rk-insulation-guide .rk-ins-callout strong {
    display: block;
    margin-bottom: 7px;
    color: #78550b;
    font-size: 18px;
  }

  #rk-insulation-guide .rk-ins-callout p {
    color: #6f5a25;
  }

  #rk-insulation-guide .rk-ins-table-wrap {
    margin: 30px 0;
  }

  #rk-insulation-guide .rk-ins-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-white);
    font-size: 15px;
  }

  #rk-insulation-guide .rk-ins-table th,
  #rk-insulation-guide .rk-ins-table td {
    padding: 15px 16px;
    border-right: 1px solid var(--rk-line);
    border-bottom: 1px solid var(--rk-line);
    text-align: left;
    vertical-align: top;
  }

  #rk-insulation-guide .rk-ins-table th:last-child,
  #rk-insulation-guide .rk-ins-table td:last-child {
    border-right: 0;
  }

  #rk-insulation-guide .rk-ins-table tr:last-child td {
    border-bottom: 0;
  }

  #rk-insulation-guide .rk-ins-table thead th {
    color: var(--rk-white);
    background: var(--rk-navy);
    font-size: 13px;
    letter-spacing: 0.035em;
  }

  #rk-insulation-guide .rk-ins-table tbody tr:nth-child(even) td {
    background: var(--rk-soft);
  }

  #rk-insulation-guide .rk-ins-table-caption {
    margin-top: 10px;
    color: var(--rk-muted);
    font-size: 13px;
  }

  #rk-insulation-guide .rk-ins-tool {
    overflow: hidden;
    margin-top: 30px;
    border-radius: 24px;
    color: var(--rk-white);
    background: var(--rk-dark);
    box-shadow: 0 24px 65px rgba(16, 37, 54, 0.18);
  }

  #rk-insulation-guide .rk-ins-tool-head {
    padding: 34px 36px 30px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.11);
    background:
      radial-gradient(circle at 93% 15%, rgba(40, 201, 218, 0.2), transparent 25%),
      linear-gradient(135deg, #123146, #16485a);
  }

  #rk-insulation-guide .rk-ins-tool-head h3 {
    margin-bottom: 10px;
    color: var(--rk-white);
    font-size: clamp(27px, 4vw, 40px);
  }

  #rk-insulation-guide .rk-ins-tool-head p {
    max-width: 880px;
    color: #d7e9ef;
  }

  #rk-insulation-guide .rk-ins-tool-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.92fr);
    grid-template-areas:
      "form results"
      "form cross-section"
      "chart diagnostics";
    gap: 20px;
    align-items: start;
    padding: 28px;
  }

  #rk-insulation-guide .rk-ins-tool-column {
    display: grid;
    gap: 18px;
    align-content: start;
    min-width: 0;
  }

  #rk-insulation-guide .rk-ins-tool-grid > .rk-ins-tool-column:first-child {
    grid-area: form;
    align-self: stretch;
  }

  #rk-insulation-guide .rk-ins-tool-grid > .rk-ins-tool-column:first-child > .rk-ins-tool-panel {
    height: 100%;
  }

  #rk-insulation-guide .rk-ins-tool-column-right {
    display: contents;
  }

  #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(1) {
    grid-area: results;
    align-self: stretch;
  }

  #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(2) {
    grid-area: cross-section;
    align-self: stretch;
  }

  #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(3) {
    grid-area: chart;
    align-self: stretch;
    display: flex;
    flex-direction: column;
  }

  #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(4) {
    grid-area: diagnostics;
    align-self: stretch;
  }

  #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(3) .rk-ins-chart-wrap {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
  }

  #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(3) .rk-ins-chart {
    flex: 1 1 auto;
    min-height: 260px;
    height: 100%;
    aspect-ratio: auto;
  }

  #rk-insulation-guide .rk-ins-tool-panel {
    min-width: 0;
    padding: 24px;
    border: 1px solid rgba(160, 213, 228, 0.25);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.045);
  }

  #rk-insulation-guide .rk-ins-tool-panel h4 {
    margin-bottom: 8px;
    color: var(--rk-white);
    font-size: 22px;
  }

  #rk-insulation-guide .rk-ins-tool-panel > p {
    margin-bottom: 18px;
    color: #bfd5de;
    font-size: 14px;
  }

  #rk-insulation-guide .rk-ins-subhead {
    margin: 24px 0 15px;
    padding-top: 20px;
    border-top: 1px solid rgba(160, 213, 228, 0.22);
    color: #78ecf7;
    font-size: 12px;
    font-weight: 950;
    letter-spacing: 0.085em;
    text-transform: uppercase;
  }

  #rk-insulation-guide .rk-ins-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px;
  }

  #rk-insulation-guide .rk-ins-field {
    min-width: 0;
  }

  #rk-insulation-guide .rk-ins-field.is-wide {
    grid-column: 1 / -1;
  }

  #rk-insulation-guide .rk-ins-field[hidden] {
    display: none;
  }

  #rk-insulation-guide .rk-ins-field label {
    display: block;
    margin-bottom: 7px;
    color: #e8f6f9;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.35;
  }

  #rk-insulation-guide .rk-ins-field input,
  #rk-insulation-guide .rk-ins-field select {
    width: 100%;
    height: 48px;
    padding: 10px 12px;
    border: 1px solid #b8ccd4;
    border-radius: 9px;
    color: var(--rk-dark);
    background: var(--rk-white);
    outline: none;
  }

  #rk-insulation-guide .rk-ins-field input:focus,
  #rk-insulation-guide .rk-ins-field select:focus {
    border-color: var(--rk-cyan);
    box-shadow: 0 0 0 4px rgba(40, 201, 218, 0.15);
  }

  #rk-insulation-guide .rk-ins-field small {
    display: block;
    margin-top: 6px;
    color: #9fb8c3;
    font-size: 11px;
    line-height: 1.4;
  }

  #rk-insulation-guide .rk-ins-layer-label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
  }

  #rk-insulation-guide .rk-ins-layer-label strong {
    color: var(--rk-white);
    font-size: 17px;
  }

  #rk-insulation-guide .rk-ins-layer-label span {
    padding: 5px 9px;
    border-radius: 999px;
    color: #9cf4fc;
    background: rgba(40, 201, 218, 0.12);
    font-size: 11px;
    font-weight: 900;
  }

  #rk-insulation-guide .rk-ins-results {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 16px;
  }

  #rk-insulation-guide .rk-ins-result {
    min-width: 0;
    padding: 15px;
    border: 1px solid rgba(160, 213, 228, 0.2);
    border-radius: 13px;
    background: rgba(4, 22, 34, 0.35);
  }

  #rk-insulation-guide .rk-ins-result span {
    display: block;
    margin-bottom: 5px;
    color: #9eb7c1;
    font-size: 11px;
    font-weight: 850;
    letter-spacing: 0.045em;
    text-transform: uppercase;
  }

  #rk-insulation-guide .rk-ins-result strong {
    display: block;
    overflow-wrap: anywhere;
    color: var(--rk-white);
    font-size: clamp(20px, 3vw, 29px);
    line-height: 1.1;
  }

  #rk-insulation-guide .rk-ins-result small {
    display: block;
    margin-top: 5px;
    color: #8fa8b3;
    font-size: 10px;
  }

  #rk-insulation-guide .rk-ins-result.is-accent strong {
    color: #75edf8;
  }

  #rk-insulation-guide .rk-ins-result.is-warning strong {
    color: #ffd26d;
  }

  #rk-insulation-guide .rk-ins-result.is-danger strong {
    color: #ff968a;
  }

  #rk-insulation-guide .rk-ins-result.is-good strong {
    color: #79efc7;
  }

  #rk-insulation-guide .rk-ins-status {
    margin-top: 14px;
    padding: 15px 17px;
    border-left: 5px solid var(--rk-cyan);
    border-radius: 0 12px 12px 0;
    color: #d9edf2;
    background: rgba(40, 201, 218, 0.09);
    font-size: 14px;
  }

  #rk-insulation-guide .rk-ins-status.is-danger {
    border-left-color: #ff7669;
    background: rgba(217, 75, 61, 0.13);
  }

  #rk-insulation-guide .rk-ins-section-stack {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-height: 370px;
    border: 1px solid rgba(160, 213, 228, 0.2);
    border-radius: 14px;
    background: #eef4f6;
  }

  #rk-insulation-guide .rk-ins-stack-layer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 34px;
    padding: 7px 12px;
    border-bottom: 1px solid rgba(16, 37, 54, 0.16);
    color: var(--rk-dark);
    font-size: 12px;
    font-weight: 850;
  }

  #rk-insulation-guide .rk-ins-stack-layer small {
    color: inherit;
    font-size: 10px;
    opacity: 0.78;
  }

  #rk-insulation-guide .rk-ins-stack-finish {
    background: repeating-linear-gradient(90deg, #cba36f 0, #cba36f 28px, #b78d57 29px, #b78d57 31px);
  }

  #rk-insulation-guide .rk-ins-stack-heating {
    position: relative;
    background: #d9d4cd;
  }

  #rk-insulation-guide .rk-ins-stack-heating::after {
    content: "";
    position: absolute;
    left: 12%;
    right: 12%;
    bottom: 14px;
    height: 10px;
    border-radius: 999px;
    background: repeating-linear-gradient(90deg, var(--rk-orange) 0, var(--rk-orange) 35px, transparent 35px, transparent 67px);
    opacity: 0.88;
  }

  #rk-insulation-guide .rk-ins-stack-layer2 {
    background: #dcecf2;
  }

  #rk-insulation-guide .rk-ins-stack-layer1 {
    background: #edf5f7;
  }

  #rk-insulation-guide .rk-ins-stack-service {
    background: #becbd0;
  }

  #rk-insulation-guide .rk-ins-stack-base {
    min-height: 46px;
    border-bottom: 0;
    color: var(--rk-white);
    background: #667b84;
  }

  #rk-insulation-guide .rk-ins-chart-wrap {
    overflow: hidden;
    border: 1px solid rgba(160, 213, 228, 0.2);
    border-radius: 14px;
    background: #f8fbfc;
  }

  #rk-insulation-guide .rk-ins-chart {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 680 / 330;
  }

  #rk-insulation-guide .rk-ins-chart-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    padding: 12px 16px 15px;
    border-top: 1px solid var(--rk-line);
    color: var(--rk-dark);
    font-size: 11px;
    font-weight: 850;
  }

  #rk-insulation-guide .rk-ins-chart-legend span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
  }

  #rk-insulation-guide .rk-ins-chart-legend i {
    width: 20px;
    height: 4px;
    border-radius: 99px;
    background: var(--rk-cyan);
  }

  #rk-insulation-guide .rk-ins-chart-legend span:nth-child(2) i {
    background: var(--rk-orange);
  }

  #rk-insulation-guide .rk-ins-chart-legend span:nth-child(3) i {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--rk-yellow);
  }

  #rk-insulation-guide .rk-ins-diagnostics {
    display: grid;
    gap: 9px;
  }

  #rk-insulation-guide .rk-ins-diagnostic {
    padding: 13px 14px;
    border-left: 4px solid var(--rk-cyan);
    border-radius: 0 10px 10px 0;
    color: #d7e9ef;
    background: rgba(40, 201, 218, 0.08);
    font-size: 13px;
  }

  #rk-insulation-guide .rk-ins-diagnostic.is-warning {
    border-left-color: var(--rk-yellow);
    background: rgba(231, 173, 47, 0.1);
  }

  #rk-insulation-guide .rk-ins-diagnostic.is-danger {
    border-left-color: #ff7669;
    background: rgba(217, 75, 61, 0.12);
  }

  #rk-insulation-guide .rk-ins-tool-note {
    margin: 0;
    padding: 0 28px 28px;
    color: #9fb6c0;
    font-size: 12px;
  }

  #rk-insulation-guide .rk-ins-mid-cta,
  #rk-insulation-guide .rk-ins-final-cta {
    position: relative;
    overflow: hidden;
    margin: 0;
    padding: 46px 58px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 92% 20%, rgba(255, 116, 56, 0.25), transparent 27%),
      linear-gradient(135deg, #12384d, #0f2b3e);
  }

  #rk-insulation-guide .rk-ins-mid-cta h3,
  #rk-insulation-guide .rk-ins-final-cta .rk-ins-cta-title {
    max-width: 820px;
    margin-bottom: 14px;
    color: var(--rk-white);
    font-size: clamp(28px, 4vw, 42px);
    line-height: 1.12;
  }

  #rk-insulation-guide .rk-ins-mid-cta p,
  #rk-insulation-guide .rk-ins-final-cta p {
    max-width: 900px;
    color: #d9e9ee;
  }

  #rk-insulation-guide .rk-ins-cta-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    margin-top: 18px;
    padding: 14px 23px;
    border-radius: 10px;
    color: var(--rk-white);
    background: var(--rk-orange);
    box-shadow: 0 12px 28px rgba(255, 116, 56, 0.27);
    font-size: 16px;
    font-weight: 950;
    line-height: 1.25;
    text-align: center;
    text-decoration: none;
    transition: transform 0.18s ease, background 0.18s ease;
  }

  #rk-insulation-guide .rk-ins-cta-button:hover,
  #rk-insulation-guide .rk-ins-cta-button:focus-visible {
    color: var(--rk-white);
    background: #ef5f27;
    transform: translateY(-2px);
    outline: none;
  }

  #rk-insulation-guide .rk-ins-disclosure {
    display: block;
    max-width: 780px;
    margin-top: 12px;
    color: #9fb7c0;
    font-size: 11px;
  }

  #rk-insulation-guide .rk-ins-example {
    margin: 28px 0;
    padding: 26px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: linear-gradient(135deg, var(--rk-cyan-soft), var(--rk-white));
  }

  #rk-insulation-guide .rk-ins-example h3 {
    font-size: 24px;
  }

  #rk-insulation-guide .rk-ins-example-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-top: 18px;
  }

  #rk-insulation-guide .rk-ins-example-stat {
    padding: 15px;
    border-radius: 12px;
    background: var(--rk-white);
  }

  #rk-insulation-guide .rk-ins-example-stat span {
    display: block;
    color: var(--rk-muted);
    font-size: 11px;
    font-weight: 850;
    text-transform: uppercase;
  }

  #rk-insulation-guide .rk-ins-example-stat strong {
    display: block;
    margin-top: 4px;
    color: var(--rk-dark);
    font-size: 23px;
  }

  #rk-insulation-guide .rk-ins-error {
    border-top: 5px solid var(--rk-red);
    background: linear-gradient(180deg, var(--rk-red-soft), var(--rk-white) 56%);
  }

  #rk-insulation-guide .rk-ins-error b {
    color: var(--rk-red);
  }

  #rk-insulation-guide .rk-ins-steps {
    display: grid;
    gap: 14px;
    margin: 28px 0;
    counter-reset: rk-ins-step;
  }

  #rk-insulation-guide .rk-ins-step {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 18px;
    align-items: start;
    counter-increment: rk-ins-step;
  }

  #rk-insulation-guide .rk-ins-step::before {
    content: counter(rk-ins-step);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 15px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 19px;
    font-weight: 950;
  }

  #rk-insulation-guide .rk-ins-faq {
    display: grid;
    gap: 12px;
    margin-top: 28px;
  }

  #rk-insulation-guide .rk-ins-faq details {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-white);
  }

  #rk-insulation-guide .rk-ins-faq summary {
    position: relative;
    padding: 19px 52px 19px 20px;
    color: var(--rk-dark);
    cursor: pointer;
    font-weight: 900;
    line-height: 1.4;
    list-style: none;
  }

  #rk-insulation-guide .rk-ins-faq summary::-webkit-details-marker {
    display: none;
  }

  #rk-insulation-guide .rk-ins-faq summary::after {
    content: "+";
    position: absolute;
    right: 18px;
    top: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-blue);
    transform: translateY(-50%);
  }

  #rk-insulation-guide .rk-ins-faq details[open] summary::after {
    content: "−";
  }

  #rk-insulation-guide .rk-ins-faq-answer {
    padding: 0 20px 20px;
    color: var(--rk-text);
  }

  #rk-insulation-guide .rk-ins-source-box {
    padding: 26px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-soft);
  }

  #rk-insulation-guide .rk-ins-source-box ul {
    margin-bottom: 0;
  }

  #rk-insulation-guide .rk-ins-source-box li + li {
    margin-top: 9px;
  }

  #rk-insulation-guide .rk-ins-update {
    margin-top: 16px;
    color: var(--rk-muted);
    font-size: 13px;
    font-weight: 800;
  }

  #rk-insulation-guide .rk-ins-author {
    margin: 42px 58px;
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 24px;
    background: var(--rk-white);
    box-shadow: 0 16px 45px rgba(16, 37, 54, 0.08);
  }

  #rk-insulation-guide .rk-ins-author > input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
  }

  #rk-insulation-guide .rk-ins-author-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 28px 30px;
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-dark), var(--rk-navy));
  }

  #rk-insulation-guide .rk-ins-author-title {
    color: var(--rk-white);
    font-size: clamp(28px, 4vw, 40px);
    font-weight: 950;
    line-height: 1.1;
  }

  #rk-insulation-guide .rk-ins-author-head p {
    margin: 7px 0 0;
    color: #cfe2e8;
    font-size: 14px;
  }

  #rk-insulation-guide .rk-ins-author-mark {
    padding: 8px 11px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    color: #8df2fc;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: 0.08em;
  }

  #rk-insulation-guide .rk-ins-author-layout {
    display: grid;
    grid-template-columns: 290px minmax(0, 1fr);
  }

  #rk-insulation-guide .rk-ins-author-side {
    padding: 28px;
    border-right: 1px solid var(--rk-line);
    background: var(--rk-soft);
    text-align: center;
  }

  #rk-insulation-guide .rk-ins-author-photo {
    width: 150px;
    height: 150px;
    margin: 0 auto 17px;
    overflow: hidden;
    border: 6px solid var(--rk-white);
    border-radius: 50%;
    box-shadow: 0 10px 30px rgba(16, 37, 54, 0.16);
  }

  #rk-insulation-guide .rk-ins-author-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  #rk-insulation-guide .rk-ins-author-name {
    color: var(--rk-dark);
    font-size: 22px;
    font-weight: 950;
  }

  #rk-insulation-guide .rk-ins-author-role {
    margin-top: 6px;
    color: var(--rk-text);
    font-size: 13px;
  }

  #rk-insulation-guide .rk-ins-author-social-label {
    margin-top: 20px;
    color: var(--rk-muted);
    font-size: 11px;
    font-weight: 850;
    text-transform: uppercase;
  }

  #rk-insulation-guide .rk-ins-author-social {
    display: flex;
    justify-content: center;
    gap: 9px;
    margin-top: 10px;
  }

  #rk-insulation-guide .rk-ins-author-social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    color: var(--rk-white);
    background: var(--rk-navy);
  }

  #rk-insulation-guide .rk-ins-author-social svg {
    width: 20px;
    height: 20px;
    fill: currentColor;
  }

  #rk-insulation-guide .rk-ins-author-main {
    padding: 30px;
  }

  #rk-insulation-guide .rk-ins-author-quote {
    position: relative;
    margin-bottom: 22px;
    padding: 25px 25px 25px 68px;
    border: 0;
    border-radius: 16px;
    background: var(--rk-cyan-soft);
  }

  #rk-insulation-guide .rk-ins-author-quote::before {
    content: "„";
    position: absolute;
    left: 22px;
    top: 1px;
    color: var(--rk-blue);
    font-family: Georgia, serif;
    font-size: 76px;
    line-height: 1;
  }

  #rk-insulation-guide .rk-ins-author-quote p {
    color: var(--rk-dark);
    font-size: 18px;
    font-weight: 750;
  }

  #rk-insulation-guide .rk-ins-author-tabs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 13px 13px 0 0;
  }

  #rk-insulation-guide .rk-ins-author-tab {
    padding: 12px 10px;
    border-right: 1px solid var(--rk-line);
    color: var(--rk-dark);
    background: var(--rk-soft);
    cursor: pointer;
    font-size: 13px;
    font-weight: 900;
    text-align: center;
  }

  #rk-insulation-guide .rk-ins-author-tab:last-child {
    border-right: 0;
  }

  #rk-insulation-guide .rk-ins-author-panel {
    display: none;
    padding: 20px;
    border: 1px solid var(--rk-line);
    border-top: 0;
    border-radius: 0 0 13px 13px;
    color: var(--rk-text);
    font-size: 15px;
  }

  #rk-insulation-guide #rk-ins-author-about:checked ~ .rk-ins-author-layout .rk-ins-author-panel-about,
  #rk-insulation-guide #rk-ins-author-exp:checked ~ .rk-ins-author-layout .rk-ins-author-panel-exp,
  #rk-insulation-guide #rk-ins-author-sites:checked ~ .rk-ins-author-layout .rk-ins-author-panel-sites {
    display: block;
  }

  #rk-insulation-guide #rk-ins-author-about:checked ~ .rk-ins-author-layout label[for="rk-ins-author-about"],
  #rk-insulation-guide #rk-ins-author-exp:checked ~ .rk-ins-author-layout label[for="rk-ins-author-exp"],
  #rk-insulation-guide #rk-ins-author-sites:checked ~ .rk-ins-author-layout label[for="rk-ins-author-sites"] {
    color: var(--rk-white);
    background: var(--rk-blue);
  }

  #rk-insulation-guide .rk-ins-site-links {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 13px;
  }

  #rk-insulation-guide .rk-ins-site-links a {
    padding: 7px 10px;
    border-radius: 8px;
    background: var(--rk-soft);
    font-size: 12px;
    font-weight: 850;
    text-decoration: none;
  }

  @media (max-width: 980px) {
    #rk-insulation-guide .rk-ins-tool-grid,
    #rk-insulation-guide .rk-ins-author-layout {
      grid-template-columns: 1fr;
    }

    #rk-insulation-guide .rk-ins-tool-grid {
      grid-template-areas: none;
    }

    #rk-insulation-guide .rk-ins-tool-grid > .rk-ins-tool-column:first-child {
      grid-area: auto;
      align-self: start;
    }

    #rk-insulation-guide .rk-ins-tool-grid > .rk-ins-tool-column:first-child > .rk-ins-tool-panel {
      height: auto;
    }

    #rk-insulation-guide .rk-ins-tool-column-right {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 18px;
      align-content: start;
    }

    #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel {
      grid-area: auto;
      align-self: start;
      height: auto;
    }

    #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(1),
    #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(2),
    #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(3),
    #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(4) {
      grid-area: auto;
    }

    #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(3) {
      display: block;
    }

    #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(3) .rk-ins-chart-wrap {
      display: block;
    }

    #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(3) .rk-ins-chart {
      min-height: 0;
      height: auto;
      aspect-ratio: 680 / 330;
    }

    #rk-insulation-guide .rk-ins-tool-column-right .rk-ins-tool-panel:first-child,
    #rk-insulation-guide .rk-ins-tool-column-right .rk-ins-tool-panel:last-child {
      grid-column: 1 / -1;
    }

    #rk-insulation-guide .rk-ins-author-side {
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }

    #rk-insulation-guide .rk-ins-grid-4,
    #rk-insulation-guide .rk-ins-example-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (max-width: 760px) {
    #rk-insulation-guide {
      margin: 0 auto 45px;
      font-size: 17px;
    }

    #rk-insulation-guide .rk-ins-shell {
      border-right: 0;
      border-left: 0;
      border-radius: 0;
    }

    #rk-insulation-guide .rk-ins-hero,
    #rk-insulation-guide .rk-ins-section,
    #rk-insulation-guide .rk-ins-mid-cta,
    #rk-insulation-guide .rk-ins-final-cta {
      padding: 42px 20px;
    }

    #rk-insulation-guide .rk-ins-hero-title {
      font-size: clamp(36px, 12vw, 53px);
    }

    #rk-insulation-guide .rk-ins-nav {
      gap: 8px;
      padding: 18px 16px;
    }

    #rk-insulation-guide .rk-ins-nav a {
      flex: 1 1 calc(50% - 8px);
      justify-content: center;
      min-width: 0;
      padding: 9px 10px;
      border-radius: 12px;
      font-size: 12px;
      text-align: center;
    }

    #rk-insulation-guide .rk-ins-answer,
    #rk-insulation-guide .rk-ins-grid-2,
    #rk-insulation-guide .rk-ins-grid-3,
    #rk-insulation-guide .rk-ins-grid-4,
    #rk-insulation-guide .rk-ins-example-grid,
    #rk-insulation-guide .rk-ins-tool-column-right {
      grid-template-columns: 1fr;
    }

    #rk-insulation-guide .rk-ins-tool-column-right .rk-ins-tool-panel:first-child,
    #rk-insulation-guide .rk-ins-tool-column-right .rk-ins-tool-panel:last-child {
      grid-column: auto;
    }

    #rk-insulation-guide .rk-ins-tool-head {
      padding: 28px 20px 24px;
    }

    #rk-insulation-guide .rk-ins-tool-grid {
      grid-template-columns: minmax(0, 1fr);
      padding: 16px;
    }

    #rk-insulation-guide .rk-ins-tool-panel {
      padding: 19px;
    }

    #rk-insulation-guide .rk-ins-fields,
    #rk-insulation-guide .rk-ins-results {
      grid-template-columns: 1fr;
    }

    #rk-insulation-guide .rk-ins-field.is-wide {
      grid-column: auto;
    }

    #rk-insulation-guide .rk-ins-tool-note {
      padding: 0 18px 22px;
    }

    #rk-insulation-guide .rk-ins-table,
    #rk-insulation-guide .rk-ins-table tbody,
    #rk-insulation-guide .rk-ins-table tr,
    #rk-insulation-guide .rk-ins-table td {
      display: block;
      width: 100%;
    }

    #rk-insulation-guide .rk-ins-table {
      overflow: visible;
      border: 0;
      background: transparent;
    }

    #rk-insulation-guide .rk-ins-table thead {
      position: absolute;
      width: 1px;
      height: 1px;
      overflow: hidden;
      clip: rect(0 0 0 0);
      white-space: nowrap;
    }

    #rk-insulation-guide .rk-ins-table tr {
      overflow: hidden;
      margin-bottom: 14px;
      border: 1px solid var(--rk-line);
      border-radius: 14px;
      background: var(--rk-white);
      box-shadow: 0 8px 22px rgba(16, 37, 54, 0.05);
    }

    #rk-insulation-guide .rk-ins-table td,
    #rk-insulation-guide .rk-ins-table tbody tr:nth-child(even) td {
      display: grid;
      grid-template-columns: minmax(105px, 0.85fr) minmax(0, 1.15fr);
      gap: 12px;
      padding: 12px 14px;
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
      background: var(--rk-white);
      overflow-wrap: anywhere;
    }

    #rk-insulation-guide .rk-ins-table td::before {
      content: attr(data-label);
      color: var(--rk-muted);
      font-size: 10px;
      font-weight: 950;
      letter-spacing: 0.055em;
      text-transform: uppercase;
    }

    #rk-insulation-guide .rk-ins-table tr td:last-child {
      border-bottom: 0;
    }

    #rk-insulation-guide .rk-ins-step {
      grid-template-columns: 42px minmax(0, 1fr);
      gap: 13px;
      padding: 17px;
    }

    #rk-insulation-guide .rk-ins-step::before {
      width: 40px;
      height: 40px;
      border-radius: 12px;
    }

    #rk-insulation-guide .rk-ins-author {
      margin: 30px 16px;
    }

    #rk-insulation-guide .rk-ins-author-head {
      display: block;
      padding: 25px 22px;
    }

    #rk-insulation-guide .rk-ins-author-mark {
      display: inline-flex;
      margin-top: 17px;
    }

    #rk-insulation-guide .rk-ins-author-main {
      padding: 24px 18px;
    }

    #rk-insulation-guide .rk-ins-author-quote {
      padding: 65px 20px 22px;
    }

    #rk-insulation-guide .rk-ins-author-quote::before {
      left: 20px;
      top: 3px;
    }

    #rk-insulation-guide .rk-ins-author-tabs {
      grid-template-columns: 1fr;
    }

    #rk-insulation-guide .rk-ins-author-tab {
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }

    #rk-insulation-guide .rk-ins-cta-button {
      width: 100%;
    }
  }

  @media (max-width: 410px) {
    #rk-insulation-guide .rk-ins-nav a {
      flex-basis: 100%;
    }

    #rk-insulation-guide .rk-ins-table td {
      grid-template-columns: 1fr;
      gap: 4px;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    #rk-insulation-guide *,
    #rk-insulation-guide *::before,
    #rk-insulation-guide *::after {
      scroll-behavior: auto !important;
      transition: none !important;
      animation: none !important;
    }
  }
</style>

<article id="rk-insulation-guide" aria-label="Ile styropianu pod ogrzewanie podłogowe — poradnik i kalkulator">
  <div class="rk-ins-shell">
    <div class="rk-ins-progress-track" aria-hidden="true"><div class="rk-ins-progress" id="rk-ins-progress"></div></div>

    <header class="rk-ins-hero">
      <div class="rk-ins-hero-inner">
        <span class="rk-ins-eyebrow"><b aria-hidden="true"></b> Izolacja podłogi • aktualizacja 2026</span>
        <div class="rk-ins-hero-title">Nie dobieraj styropianu z jednej liczby w centymetrach</div>
        <p class="rk-ins-hero-lead">Sprawdź osobno opór cieplny izolacji, geometrię przegrody, wysokość warstw i parametry mechaniczne płyt. Następnie oblicz ilość materiału bez udawania, że prosty kalkulator zastępuje projekt podłogi na gruncie.</p>
        <div class="rk-ins-meta">
          <span><i aria-hidden="true"></i> Czytanie: około 22 minuty</span>
          <span><i aria-hidden="true"></i> Jeden analizator interaktywny</span>
          <span><i aria-hidden="true"></i> Aktualizacja: 30 sierpnia 2026 r.</span>
        </div>
      </div>
    </header>

    <nav class="rk-ins-nav" aria-label="Spis treści artykułu">
      <strong>Na skróty — wszystkie główne części poradnika</strong>
      <a href="#rk-ins-answer">Szybka odpowiedź</a>
      <a href="#rk-ins-no-single-value">Dlaczego nie jedna grubość?</a>
      <a href="#rk-ins-law">Wymagania prawne</a>
      <a href="#rk-ins-three-checks">Trzy kontrole</a>
      <a href="#rk-ins-locations">Miejsce podłogi</a>
      <a href="#rk-ins-analyzer">Analizator</a>
      <a href="#rk-ins-results-reading">Jak czytać wynik?</a>
      <a href="#rk-ins-label">Etykieta i DoP</a>
      <a href="#rk-ins-materials">EPS, grafit i XPS</a>
      <a href="#rk-ins-height">Wysokość warstw</a>
      <a href="#rk-ins-layers">Jedna czy dwie warstwy?</a>
      <a href="#rk-ins-services">Instalacje w podłodze</a>
      <a href="#rk-ins-membranes">Folia i izolacje</a>
      <a href="#rk-ins-quantity">Ilość materiału</a>
      <a href="#rk-ins-heating-design">Wpływ na podłogówkę</a>
      <a href="#rk-ins-errors">Najczęstsze błędy</a>
      <a href="#rk-ins-checklist">Checklista</a>
      <a href="#rk-ins-faq">FAQ</a>
      <a href="#rk-ins-sources">Źródła</a>
    </nav>

    <main>
      <section class="rk-ins-section" id="rk-ins-answer">
        <span class="rk-ins-kicker">Odpowiedź w 60 sekund</span>
        <h2>Ile styropianu pod ogrzewanie podłogowe?</h2>
        <p class="rk-ins-intro">Nie ma jednej grubości właściwej dla każdego domu. Na podłodze na gruncie 15 cm EPS jest popularnym rozwiązaniem, ale nie stanowi uniwersalnego minimum wpisanego do przepisów. Wynik zależy od deklarowanej lambdy, geometrii podłogi, połączenia ze ścianami, pozostałych warstw, wymagań cieplnych i obciążeń.</p>

        <div class="rk-ins-answer">
          <div class="rk-ins-answer-main">
            <h3>Najpierw określ wymaganie, później centymetry</h3>
            <p><strong>Dla podłogi na gruncie trzeba sprawdzić całą przegrodę, a nie samą płytę EPS.</strong> Osobno kontroluje się opór izolacji pod systemem grzewczym oraz właściwości mechaniczne materiału pod jastrychem.</p>
          </div>
          <div class="rk-ins-answer-side">
            <h3>Co można policzyć od razu?</h3>
            <p>Z grubości i deklarowanej lambdy można wiarygodnie policzyć opór samej izolacji. Z powierzchni i grubości obliczymy także m³ materiału oraz liczbę paczek.</p>
          </div>
        </div>

        <div class="rk-ins-formula" aria-label="Wzór na opór cieplny warstwy izolacji">
          <strong>R<sub>izol</sub> = Σ(d<sub>i</sub> ÷ λ<sub>i</sub>)</strong>
          <span>Grubość d podajemy w metrach, a deklarowaną przewodność cieplną λ w W/(mK). Wynik R otrzymujemy w m²K/W.</span>
        </div>

        <div class="rk-ins-table-wrap">
          <table class="rk-ins-table">
            <thead><tr><th>Grubość</th><th>R przy λ = 0,036</th><th>R przy λ = 0,031</th><th>Co oznacza wynik?</th></tr></thead>
            <tbody>
              <tr><td data-label="Grubość"><strong>10 cm</strong></td><td data-label="R • λ 0,036">2,78 m²K/W</td><td data-label="R • λ 0,031">3,23 m²K/W</td><td data-label="Interpretacja">Opór samej izolacji, bez oceny całej podłogi.</td></tr>
              <tr><td data-label="Grubość"><strong>15 cm</strong></td><td data-label="R • λ 0,036">4,17 m²K/W</td><td data-label="R • λ 0,031">4,84 m²K/W</td><td data-label="Interpretacja">Ta sama grubość może dawać inny opór zależnie od λ.</td></tr>
              <tr><td data-label="Grubość"><strong>20 cm</strong></td><td data-label="R • λ 0,036">5,56 m²K/W</td><td data-label="R • λ 0,031">6,45 m²K/W</td><td data-label="Interpretacja">Większe R nie potwierdza jeszcze nośności ani zgodności całej przegrody.</td></tr>
            </tbody>
          </table>
          <p class="rk-ins-table-caption">Wartości obliczono wyłącznie dla jednorodnej warstwy izolacyjnej. Nie są gotowym współczynnikiem U podłogi na gruncie.</p>
        </div>
      </section>

      <section class="rk-ins-section" id="rk-ins-no-single-value">
        <span class="rk-ins-kicker">Centymetry bez kontekstu wprowadzają w błąd</span>
        <h2>Dlaczego nie istnieje jedna prawidłowa grubość styropianu?</h2>
        <p class="rk-ins-intro">Pytanie „10 czy 15 cm?” jest dopiero początkiem. Dziesięć centymetrów płyty o λ = 0,031 ma inny opór niż 10 cm materiału o λ = 0,040, a podłoga nad salonem pracuje w innych warunkach niż podłoga na gruncie albo strop nad nieogrzewanym garażem.</p>

        <div class="rk-ins-grid-3">
          <article class="rk-ins-card"><span class="rk-ins-card-number">01 • Ciepło</span><h3>Lambda i wszystkie warstwy</h3><p>Liczy się deklarowana przewodność materiału, jego grubość oraz układ całej przegrody. Sama nazwa „biały” lub „grafitowy” nie jest parametrem obliczeniowym.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">02 • Geometria</span><h3>Powierzchnia i obwód</h3><p>W podłodze na gruncie znaczenie ma relacja powierzchni do obwodu wystawionego oraz rozwiązanie krawędzi. Dwa domy po 120 m² nie muszą mieć identycznej wymiany ciepła.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">03 • Konstrukcja</span><h3>Obciążenia i wysokość</h3><p>Płyta musi przenosić przewidziane obciążenia, a cały układ zmieścić okładzinę, jastrych lub suchy system, instalacje i izolację.</p></article>
        </div>

        <p>Dlatego nie będziemy wybierać materiału z samej nazwy źródła ciepła. Podłoga nie „wie”, czy wodę ogrzała pompa ciepła, kocioł gazowy czy inne urządzenie. Źródło wpływa na pożądane temperatury pracy, ale nie wyznacza automatycznie grubości i klasy izolacji.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-law">
        <span class="rk-ins-kicker">Warunki techniczne określają efekt</span>
        <h2>Co rzeczywiście mówią przepisy o podłodze na gruncie?</h2>
        <p class="rk-ins-intro">W obowiązującym tekście warunków technicznych dla podłogi na gruncie w pomieszczeniu o temperaturze obliczeniowej co najmniej 16°C podano maksymalną wartość współczynnika przenikania ciepła U<sub>C(max)</sub> równą 0,30 W/(m²K). Przepis nie zapisuje jednej obowiązkowej grubości ani klasy EPS.</p>

        <div class="rk-ins-formula" aria-label="Maksymalny współczynnik przenikania ciepła podłogi na gruncie">
          <strong>U<sub>C(max)</sub> = 0,30 W/(m²K)</strong>
          <span>Podłoga na gruncie w pomieszczeniu ogrzewanym do temperatury obliczeniowej co najmniej 16°C — zgodnie z obowiązującym tekstem warunków technicznych.</span>
        </div>

        <div class="rk-ins-callout">
          <strong>To nie jest proste U = 1/R izolacji</strong>
          <p>Metodyka dla przegród stykających się z gruntem uwzględnia geometrię podłogi, obwód wystawiony, grunt i rozwiązanie krawędzi. Nie wolno odjąć umownego „oporu gruntu” i na tej podstawie ogłosić normowej liczby centymetrów.</p>
        </div>

        <p>W praktyce należy skoordynować projekt architektoniczno-budowlany, charakterystykę energetyczną, detal podłogi i obliczenia cieplne. Jeżeli zmieniasz materiał albo grubość na budowie, porównuj opór i właściwości produktu, ale nie zastępuj tym weryfikacji całej przegrody.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-three-checks">
        <span class="rk-ins-kicker">Nie mieszaj trzech różnych ocen</span>
        <h2>Współczynnik U, opór R i nośność — trzy osobne kontrole</h2>
        <div class="rk-ins-grid-3">
          <article class="rk-ins-card"><span class="rk-ins-card-number">Przegroda</span><h3>Współczynnik U</h3><p>Opisuje przenikanie ciepła przez całą przegrodę w określonych warunkach. Dla podłogi na gruncie wymaga metody uwzględniającej kontakt z gruntem i geometrię.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Warstwa</span><h3>Opór R izolacji</h3><p>Wynika z grubości i lambdy każdej warstwy. Można go sumować dla kilku materiałów, ale sam nie jest kompletnym U podłogi na gruncie.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Konstrukcja</span><h3>Parametry mechaniczne</h3><p>CS(10) opisuje naprężenie przy 10-procentowym odkształceniu. Długotrwałą pracę trzeba oceniać razem z obciążeniem, pełnym kodem produktu i — gdy jest deklarowane — pełzaniem przy ściskaniu.</p></article>
        </div>

        <p><strong>Wysoki opór cieplny nie gwarantuje odpowiedniej nośności, a wysoka wartość CS(10) nie gwarantuje wymaganej izolacyjności.</strong> Produkt musi spełnić oba zestawy wymagań oraz być przeznaczony do planowanego zastosowania.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-locations">
        <span class="rk-ins-kicker">Najpierw ustal, co znajduje się pod podłogą</span>
        <h2>Podłoga na gruncie, piętro, piwnica czy przestrzeń zewnętrzna?</h2>
        <p class="rk-ins-intro">To samo 5, 10 albo 15 cm będzie miało inne znaczenie zależnie od warunków po drugiej stronie przegrody.</p>

        <div class="rk-ins-grid-2">
          <article class="rk-ins-location"><h3>Podłoga na gruncie</h3><p>Potrzebna jest ocena całej przegrody zgodnie z metodyką dla kontaktu z gruntem. Ważne są powierzchnia, obwód zewnętrzny, warstwy, grunt i detal obwodowy.</p></article>
          <article class="rk-ins-location"><h3>Strop nad ogrzewanym pomieszczeniem</h3><p>Różnica temperatur jest zwykle mała. O doborze warstw mogą silniej decydować akustyka, wymagania podłogi pływającej, instalacje i dostępna wysokość.</p></article>
          <article class="rk-ins-location"><h3>Strop nad piwnicą lub garażem</h3><p>Temperatura poniżej stropu może być znacznie niższa. Wymagania cieplne oraz rozwiązanie mostków trzeba sprawdzić dla konkretnej przegrody.</p></article>
          <article class="rk-ins-location"><h3>Podłoga nad przejazdem lub powietrzem</h3><p>Przegroda oddziela wnętrze od środowiska zewnętrznego. Nie należy stosować do niej uproszczeń właściwych dla stropu między ogrzewanymi pomieszczeniami.</p></article>
        </div>

        <p>W remontowanym budynku dochodzą ograniczenia progów, schodów i istniejących drzwi. Zobacz również, jak planować <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/">ogrzewanie podłogowe w remontowanym budynku</a>.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-analyzer">
        <span class="rk-ins-kicker">Jedno narzędzie zamiast kilku pozornie dokładnych kalkulatorów</span>
        <h2>Interaktywny analizator izolacji i warstw podłogi</h2>
        <p class="rk-ins-intro">Wpisz dane z projektu i etykiety materiału. Narzędzie policzy opór samej izolacji, ilość płyt, paczki i bilans wysokości. Dla podłogi na gruncie pokaże również wymiar charakterystyczny B′, ale celowo nie poda uproszczonego współczynnika U.</p>

        <div class="rk-ins-tool" id="rk-ins-tool">
          <div class="rk-ins-tool-head">
            <h3>Policz R izolacji, m³, paczki i wysokość</h3>
            <p>Każda wartość pozostaje edytowalna. Lambdę, CS(10) i wydajność paczki przepisz z dokumentacji konkretnego materiału, a wysokości z przekroju architektonicznego.</p>
          </div>

          <div class="rk-ins-tool-grid">
            <div class="rk-ins-tool-column">
              <div class="rk-ins-tool-panel">
                <h4>Dane podłogi</h4>
                <p>Najpierw określ położenie przegrody oraz rzeczywistą przestrzeń pomiędzy podłożem a gotową posadzką.</p>
                <div class="rk-ins-fields">
                  <div class="rk-ins-field is-wide">
                    <label for="rk-ins-floor-type">Położenie analizowanej podłogi</label>
                    <select id="rk-ins-floor-type">
                      <option value="ground">Podłoga na gruncie</option>
                      <option value="heated">Strop nad ogrzewanym pomieszczeniem</option>
                      <option value="unheated">Strop nad nieogrzewaną piwnicą lub garażem</option>
                      <option value="outside">Podłoga nad przejazdem lub powietrzem zewnętrznym</option>
                    </select>
                  </div>
                  <div class="rk-ins-field">
                    <label for="rk-ins-area">Powierzchnia podłogi [m²]</label>
                    <input type="number" id="rk-ins-area" min="1" max="2000" step="1" value="120" inputmode="decimal">
                  </div>
                  <div class="rk-ins-field" id="rk-ins-perimeter-wrap">
                    <label for="rk-ins-perimeter">Obwód wystawiony P [m]</label>
                    <input type="number" id="rk-ins-perimeter" min="1" max="1000" step="0.1" value="46" inputmode="decimal">
                    <small>Obwód oddzielający ogrzewaną podłogę od środowiska zewnętrznego.</small>
                  </div>
                  <div class="rk-ins-field">
                    <label for="rk-ins-available-height">Dostępna wysokość od podłoża [mm]</label>
                    <input type="number" id="rk-ins-available-height" min="20" max="1000" step="1" value="230" inputmode="decimal">
                  </div>
                  <div class="rk-ins-field">
                    <label for="rk-ins-finish">Okładzina z klejem lub podkładem [mm]</label>
                    <input type="number" id="rk-ins-finish" min="0" max="100" step="1" value="15" inputmode="decimal">
                  </div>
                  <div class="rk-ins-field">
                    <label for="rk-ins-heating-layer">Warstwa grzewcza nad izolacją [mm]</label>
                    <input type="number" id="rk-ins-heating-layer" min="10" max="250" step="1" value="70" inputmode="decimal">
                    <small>Łączna grubość od wierzchu izolacji do spodu okładziny: np. system z rurą i jastrychem albo płyty systemu suchego.</small>
                  </div>
                  <div class="rk-ins-field">
                    <label for="rk-ins-service-layer">Warstwa wyrównawcza lub instalacyjna [mm]</label>
                    <input type="number" id="rk-ins-service-layer" min="0" max="300" step="1" value="0" inputmode="decimal">
                  </div>
                </div>

                <div class="rk-ins-subhead">Dolna warstwa izolacji</div>
                <div class="rk-ins-layer-label"><strong>Warstwa 1</strong><span>najbliżej podłoża</span></div>
                <div class="rk-ins-fields">
                  <div class="rk-ins-field"><label for="rk-ins-layer1-thickness">Grubość d₁ [mm]</label><input type="number" id="rk-ins-layer1-thickness" min="0" max="400" step="1" value="100" inputmode="decimal"></div>
                  <div class="rk-ins-field"><label for="rk-ins-layer1-lambda">Deklarowana λD₁ [W/(mK)]</label><input type="number" id="rk-ins-layer1-lambda" min="0.020" max="0.080" step="0.001" value="0.036" inputmode="decimal"></div>
                  <div class="rk-ins-field"><label for="rk-ins-layer1-pack">Pokrycie jednej paczki [m²]</label><input type="number" id="rk-ins-layer1-pack" min="0.1" max="100" step="0.01" value="3.0" inputmode="decimal"></div>
                  <div class="rk-ins-field"><label for="rk-ins-cs">Deklarowane CS(10) [kPa]</label><input type="number" id="rk-ins-cs" min="10" max="1000" step="10" value="100" inputmode="decimal"><small>Parametr pomocniczy — nie jest dopuszczalnym obciążeniem długotrwałym.</small></div>
                </div>

                <div class="rk-ins-subhead">Górna warstwa izolacji</div>
                <div class="rk-ins-layer-label"><strong>Warstwa 2</strong><span>wpisz 0 mm, aby ją wyłączyć</span></div>
                <div class="rk-ins-fields">
                  <div class="rk-ins-field"><label for="rk-ins-layer2-thickness">Grubość d₂ [mm]</label><input type="number" id="rk-ins-layer2-thickness" min="0" max="400" step="1" value="50" inputmode="decimal"></div>
                  <div class="rk-ins-field"><label for="rk-ins-layer2-lambda">Deklarowana λD₂ [W/(mK)]</label><input type="number" id="rk-ins-layer2-lambda" min="0.020" max="0.080" step="0.001" value="0.036" inputmode="decimal"></div>
                  <div class="rk-ins-field"><label for="rk-ins-layer2-pack">Pokrycie jednej paczki [m²]</label><input type="number" id="rk-ins-layer2-pack" min="0.1" max="100" step="0.01" value="6.0" inputmode="decimal"></div>
                  <div class="rk-ins-field"><label for="rk-ins-waste">Zapas montażowy [%]</label><input type="number" id="rk-ins-waste" min="0" max="30" step="1" value="5" inputmode="decimal"><small>Zapas wpływa na ilość zakupu i liczbę paczek, nie na opór ułożonej warstwy.</small></div>
                </div>
              </div>
            </div>

            <div class="rk-ins-tool-column rk-ins-tool-column-right">
              <div class="rk-ins-tool-panel">
                <h4>Wynik na żywo</h4>
                <p>Wartości materiałowe i geometryczne dla wpisanego wariantu.</p>
                <div class="rk-ins-results" aria-live="polite">
                  <div class="rk-ins-result is-accent"><span>Łączna izolacja</span><strong id="rk-ins-result-thickness">150 mm</strong><small id="rk-ins-result-split">100 + 50 mm</small></div>
                  <div class="rk-ins-result is-accent"><span>Opór izolacji R</span><strong id="rk-ins-result-r">4,17</strong><small>m²K/W — bez pozostałych warstw</small></div>
                  <div class="rk-ins-result"><span>Objętość ułożona</span><strong id="rk-ins-result-volume">18,00 m³</strong><small>bez zapasu zakupowego</small></div>
                  <div class="rk-ins-result"><span>Objętość do zakupu</span><strong id="rk-ins-result-purchase">18,90 m³</strong><small id="rk-ins-result-waste-note">z zapasem 5%</small></div>
                  <div class="rk-ins-result"><span>Paczki warstwy 1</span><strong id="rk-ins-result-pack1">42</strong><small id="rk-ins-result-pack1-note">dla 3,00 m²/paczkę</small></div>
                  <div class="rk-ins-result"><span>Paczki warstwy 2</span><strong id="rk-ins-result-pack2">21</strong><small id="rk-ins-result-pack2-note">dla 6,00 m²/paczkę</small></div>
                  <div class="rk-ins-result"><span>Wykorzystana wysokość</span><strong id="rk-ins-result-used">235 mm</strong><small>wszystkie wpisane warstwy</small></div>
                  <div class="rk-ins-result" id="rk-ins-balance-card"><span>Rezerwa wysokości</span><strong id="rk-ins-result-balance">−5 mm</strong><small>wartość ujemna oznacza kolizję</small></div>
                </div>
                <div class="rk-ins-status" id="rk-ins-height-status">Warstwy przekraczają dostępną wysokość o 5 mm. Trzeba zmienić przekrój, a nie ściskać izolację na budowie.</div>
              </div>

              <div class="rk-ins-tool-panel">
                <h4>Dynamiczny przekrój podłogi</h4>
                <p>Proporcje aktualizują się razem z wpisanymi grubościami. Schemat pokazuje kolejność, nie detal wykonawczy.</p>
                <div class="rk-ins-section-stack" id="rk-ins-stack" aria-label="Dynamiczny przekrój warstw podłogi">
                  <div class="rk-ins-stack-layer rk-ins-stack-finish" id="rk-ins-stack-finish"><span>Okładzina</span><small>15 mm</small></div>
                  <div class="rk-ins-stack-layer rk-ins-stack-heating" id="rk-ins-stack-heating"><span>Warstwa grzewcza</span><small>70 mm</small></div>
                  <div class="rk-ins-stack-layer rk-ins-stack-layer2" id="rk-ins-stack-layer2"><span>Izolacja 2</span><small>50 mm</small></div>
                  <div class="rk-ins-stack-layer rk-ins-stack-layer1" id="rk-ins-stack-layer1"><span>Izolacja 1</span><small>100 mm</small></div>
                  <div class="rk-ins-stack-layer rk-ins-stack-service" id="rk-ins-stack-service"><span>Warstwa instalacyjna</span><small>0 mm</small></div>
                  <div class="rk-ins-stack-layer rk-ins-stack-base"><span>Podłoże konstrukcyjne</span><small>poziom odniesienia</small></div>
                </div>
              </div>

              <div class="rk-ins-tool-panel">
                <h4>Opór R a grubość</h4>
                <p>Linie porównują wartości λ wpisane dla obu warstw. Punkt pokazuje opór ich rzeczywistej kombinacji.</p>
                <div class="rk-ins-chart-wrap">
                  <svg class="rk-ins-chart" id="rk-ins-chart" viewBox="0 0 680 330" role="img" aria-labelledby="rk-ins-chart-title rk-ins-chart-desc">
                    <title id="rk-ins-chart-title">Wykres oporu cieplnego izolacji w zależności od grubości</title>
                    <desc id="rk-ins-chart-desc">Dwie linie dla wpisanych wartości przewodzenia ciepła oraz punkt pokazujący aktualną kombinację warstw.</desc>
                  </svg>
                  <div class="rk-ins-chart-legend">
                    <span><i></i><b id="rk-ins-legend1">λ₁ 0,036</b></span>
                    <span><i></i><b id="rk-ins-legend2">λ₂ 0,036</b></span>
                    <span><i></i><b>Twój układ</b></span>
                  </div>
                </div>
              </div>

              <div class="rk-ins-tool-panel">
                <h4>Diagnostyka wyniku</h4>
                <p>Narzędzie oddziela to, co można policzyć z podanych danych, od tego, czego bez projektu stwierdzić nie wolno.</p>
                <div class="rk-ins-diagnostics" id="rk-ins-diagnostics" aria-live="polite"></div>
                <div class="rk-ins-results">
                  <div class="rk-ins-result"><span>Wymiar B′</span><strong id="rk-ins-result-bprime">5,22 m</strong><small id="rk-ins-result-bprime-note">2A/P — informacja geometryczna</small></div>
                  <div class="rk-ins-result"><span>Ocena U podłogi</span><strong>Nie wyznaczono</strong><small>potrzebny pełny model przegrody</small></div>
                </div>
              </div>
            </div>
          </div>
          <p class="rk-ins-tool-note">Analizator nie jest kalkulatorem współczynnika U podłogi na gruncie, projektem konstrukcji ani doborem dopuszczalnego obciążenia. Wyniki materiałowe zależą od poprawności danych wpisanych z dokumentacji konkretnego produktu.</p>
        </div>
      </section>

      <aside class="rk-ins-mid-cta" aria-label="Indywidualny projekt po analizie warstw">
        <span class="rk-ins-kicker" style="color:#83f1fb">Co pozostaje poza kalkulatorem?</span>
        <h3>Analizator zmieścił warstwy i policzył materiał, ale nie zna całego budynku</h3>
        <p>Nie widzi mostka na połączeniu podłogi ze ścianą, pełnej geometrii, parametrów gruntu, obciążeń, stref bez rur, dylatacji ani hydrauliki pętli. Jeżeli chcesz skoordynować izolację, poziom posadzki, rozstaw rur, długości obwodów i temperaturę pracy, potrzebny jest indywidualny projekt.</p>
        <a class="rk-ins-cta-button rk-ins-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt dopasowany do warstw podłogi</a>
        <small class="rk-ins-disclosure">Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
      </aside>

      <section class="rk-ins-section" id="rk-ins-results-reading">
        <span class="rk-ins-kicker">Wynik ma granice</span>
        <h2>Jak prawidłowo czytać wynik analizatora?</h2>
        <div class="rk-ins-grid-3">
          <article class="rk-ins-card"><span class="rk-ins-card-number">Wynik pewny</span><h3>R izolacji</h3><p>Jeżeli grubość i λD wpisano prawidłowo, obliczenie oporu jednorodnych warstw jest prostą zależnością geometryczną.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Wynik zakupowy</span><h3>m³ i paczki</h3><p>Objętość ułożona wynika z powierzchni oraz łącznej grubości. Liczba paczek zależy od wpisanego pokrycia konkretnego opakowania i zapasu.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Wynik projektowy</span><h3>U i nośność</h3><p>Tych parametrów narzędzie nie potwierdza. Wymagają danych o całej przegrodzie, geometrii, obciążeniach i długotrwałej pracy materiału.</p></article>
        </div>

        <p>Wymiar B′ jest informacją o geometrii podłogi na gruncie. Pokazuje, dlaczego sama powierzchnia nie wystarcza: zwarty rzut ma inną relację powierzchni do obwodu niż długi, rozczłonkowany budynek. Narzędzie nie wykorzystuje B′ do pozornego, uproszczonego obliczenia U.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-label">
        <span class="rk-ins-kicker">Kupuj parametry, nie kolor</span>
        <h2>Jak czytać etykietę styropianu i deklarację właściwości?</h2>
        <p class="rk-ins-intro">Pełna nazwa handlowa „EPS 100” nie zastępuje kodu oznaczenia, przeznaczenia ani deklaracji właściwości użytkowych. Do porównania potrzebujesz dokumentu dla konkretnego wariantu i grubości.</p>

        <div class="rk-ins-table-wrap">
          <table class="rk-ins-table">
            <thead><tr><th>Parametr</th><th>Co opisuje?</th><th>Jak go używać?</th><th>Czego nie dowodzi?</th></tr></thead>
            <tbody>
              <tr><td data-label="Parametr"><strong>λD</strong></td><td data-label="Znaczenie">Deklarowana przewodność cieplna.</td><td data-label="Zastosowanie">Do obliczenia oporu warstwy R = d/λ.</td><td data-label="Ograniczenie">Nie potwierdza nośności.</td></tr>
              <tr><td data-label="Parametr"><strong>CS(10)</strong></td><td data-label="Znaczenie">Naprężenie ściskające przy 10% odkształceniu.</td><td data-label="Zastosowanie">Do porównania klasy mechanicznej z projektem i przeznaczeniem.</td><td data-label="Ograniczenie">Nie jest dopuszczalnym obciążeniem przez cały okres użytkowania.</td></tr>
              <tr><td data-label="Parametr"><strong>CC</strong></td><td data-label="Znaczenie">Pełzanie przy ściskaniu w określonym czasie i warunkach.</td><td data-label="Zastosowanie">Pomaga ocenić długotrwałe odkształcenie, gdy parametr jest deklarowany i wymagany.</td><td data-label="Ograniczenie">Nie zastępuje obliczeń obciążenia układu.</td></tr>
              <tr><td data-label="Parametr"><strong>T</strong></td><td data-label="Znaczenie">Tolerancja grubości.</td><td data-label="Zastosowanie">Ważna dla równości i sumowania warstw.</td><td data-label="Ograniczenie">Nie mówi o izolacyjności ani akustyce.</td></tr>
              <tr><td data-label="Parametr"><strong>SD lub CP</strong></td><td data-label="Znaczenie">Parametry używane w wyrobach o funkcji akustycznej.</td><td data-label="Zastosowanie">Sprawdza się je w projekcie podłogi pływającej na stropie.</td><td data-label="Ograniczenie">Nie można ich zastąpić samym symbolem EPS 100.</td></tr>
            </tbody>
          </table>
        </div>

        <p>Deklaracja właściwości użytkowych jest podstawowym źródłem informacji o parametrach wyrobu budowlanego. Komisja Europejska wyjaśnia, że dokument przekazuje informacje o właściwościach produktu objętego normą zharmonizowaną lub europejską oceną techniczną. Nie opieraj odbioru materiału na „teście kciukiem” ani domniemanej gęstości.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-materials">
        <span class="rk-ins-kicker">Materiał dobieramy do funkcji i deklaracji</span>
        <h2>Biały EPS, grafitowy EPS czy XPS pod podłogówkę?</h2>
        <div class="rk-ins-grid-3">
          <article class="rk-ins-card"><span class="rk-ins-card-number">EPS biały</span><h3>Większa grubość przy wyższej λ</h3><p>Może być właściwym rozwiązaniem, jeśli deklarowane właściwości cieplne i mechaniczne odpowiadają projektowi, a w przekroju jest wystarczająco dużo miejsca.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">EPS grafitowy</span><h3>Większy R przy tej samej grubości</h3><p>Niższa deklarowana lambda pozwala uzyskać większy opór w ograniczonej wysokości. Kolor nie zwalnia z kontroli CS(10), przeznaczenia i dokumentów.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">XPS</span><h3>Inna struktura i zastosowania</h3><p>Zwykle wybiera się go tam, gdzie ważne są określone właściwości mechaniczne lub zachowanie przy kontakcie z wilgocią. Ma małą, ale nie „zerową” nasiąkliwość i nie jest automatycznie najlepszy w każdym salonie.</p></article>
        </div>

        <div class="rk-ins-callout">
          <strong>EPS 100 nie jest zapisanym w prawie minimum dla każdej podłogi</strong>
          <p>Wybierz produkt przeznaczony do podłóg i zweryfikuj jego pełne parametry z obciążeniem oraz układem jastrychu. W podłogach akustycznych mogą występować materiały o innej charakterystyce, dobrane jako część konkretnego systemu.</p>
        </div>
      </section>

      <section class="rk-ins-section" id="rk-ins-height">
        <span class="rk-ins-kicker">Poziom gotowej posadzki jest granicą</span>
        <h2>Jak zmieścić izolację i wszystkie warstwy podłogi?</h2>
        <p class="rk-ins-intro">Najczęstszy błąd koordynacyjny polega na zarezerwowaniu miejsca wyłącznie na styropian i jastrych. W rzeczywistym przekroju trzeba uwzględnić wszystkie warstwy od podłoża do górnej powierzchni okładziny.</p>

        <div class="rk-ins-grid-2">
          <article class="rk-ins-card"><span class="rk-ins-card-number">Od góry</span><h3>Okładzina i warstwa grzewcza</h3><p>Płytka z klejem, panel z podkładem albo drewno mają własną grubość. Poniżej znajduje się pełna warstwa systemu mokrego lub suchego, a nie sama średnica rury.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Od dołu</span><h3>Podłoże i instalacje</h3><p>Nierówności, przewody wodne, kanalizacja, peszle i inne instalacje mogą wymagać osobnej warstwy wyrównawczej. Nie wolno ukrywać brakującej wysokości przez przypadkowe ściskanie płyt.</p></article>
        </div>

        <p>Grubość i rodzaj jastrychu ustala się dla konkretnego systemu. Szczegóły omawia poradnik o <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewce na ogrzewanie podłogowe</a>.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-layers">
        <span class="rk-ins-kicker">Mijanka pomaga, ale nie jest celem samym w sobie</span>
        <h2>Jedna czy dwie warstwy styropianu pod ogrzewanie podłogowe?</h2>
        <p class="rk-ins-intro">Dwie warstwy ułatwiają przesunięcie spoin i osłonięcie miejscowych nieciągłości, ale zdanie „nigdy nie układaj jednej grubej warstwy” jest zbyt kategoryczne. Liczy się zaprojektowany układ, równe podparcie oraz dopasowane płyty.</p>

        <div class="rk-ins-grid-2">
          <article class="rk-ins-card"><span class="rk-ins-card-number">Układ jednowarstwowy</span><h3>Może być poprawny</h3><p>Jeżeli płyty są przeznaczone do zastosowania, podłoże jest równe, spoiny dopasowane, instalacje nie tworzą pustek, a wymagany opór i nośność są zapewnione.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Układ dwuwarstwowy</span><h3>Ułatwia przesunięcie spoin</h3><p>Górna warstwa może przykryć łączenia dolnej. Spoin nie ustawia się w jednej linii, ale nie ma jednej uniwersalnej wartości przesunięcia odpowiedniej do wszystkich formatów płyt.</p></article>
        </div>

        <h3>Co jest ważniejsze od samej liczby warstw?</h3>
        <ul>
          <li>stabilne, równe i czyste podłoże,</li>
          <li>pełne podparcie płyt bez kołysania,</li>
          <li>ściśle dopasowane krawędzie,</li>
          <li>brak krzyżujących się pustek i przypadkowych klinów,</li>
          <li>ciągłość przy ścianach, słupach i przejściach instalacyjnych.</li>
        </ul>
      </section>

      <section class="rk-ins-section" id="rk-ins-services">
        <span class="rk-ins-kicker">Rury instalacyjne nie mogą podwieszać posadzki</span>
        <h2>Jak prowadzić instalacje w warstwie izolacji?</h2>
        <p class="rk-ins-intro">Przewody wodne, kanalizacyjne i elektryczne często przebiegają pod podłogówką. Problemem nie jest samo ich występowanie, lecz przypadkowe wycinanie płyt, brak podparcia i tworzenie wysokich garbów.</p>

        <div class="rk-ins-grid-3">
          <article class="rk-ins-card"><span class="rk-ins-card-number">Plan</span><h3>Wyznacz trasy wcześniej</h3><p>Skoordynuj podejścia przed zamówieniem grubości warstw. Kolizje powinny zostać rozwiązane na rzucie, a nie podczas układania ostatniej płyty.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Podparcie</span><h3>Nie zostawiaj pustych kieszeni</h3><p>Wycięcia muszą odpowiadać przebiegowi instalacji, a pozostałe warstwy tworzyć stabilną płaszczyznę pod system grzewczy.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Poziom</span><h3>Rozważ warstwę wyrównawczą</h3><p>Jeżeli instalacji jest dużo, poprawnym rozwiązaniem może być zaprojektowana warstwa instalacyjna lub wyrównawcza zamiast poszatkowania warstwy nośnej.</p></article>
        </div>

        <p>Przed montażem rur ogrzewania warto przejść przez listę błędów opisanych w poradniku o <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-czy-warto-robic-to-samemu/">samodzielnym wykonywaniu podłogówki</a>.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-membranes">
        <span class="rk-ins-kicker">Każda warstwa ma inną funkcję</span>
        <h2>Folia, hydroizolacja i izolacja brzegowa nie zastępują styropianu</h2>
        <div class="rk-ins-grid-3">
          <article class="rk-ins-card"><span class="rk-ins-card-number">Folia rozdzielająca</span><h3>Chroni układ podczas wykonywania</h3><p>Może ograniczać wpływanie zaczynu między płyty i pełnić funkcję warstwy rozdzielającej. Nadruk pomaga zachować geometrię rur, ale folia nie zastępuje termoizolacji.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Hydroizolacja</span><h3>Kontroluje wodę i wilgoć</h3><p>Jej miejsce oraz ciągłość wynikają z projektu przegrody. Nie należy przypisywać styropianowi funkcji zabezpieczenia przeciwwodnego.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Taśma brzegowa</span><h3>Oddziela jastrych od przegród</h3><p>Przejmuje odkształcenia i ogranicza sztywne połączenia przy ścianach. Musi współpracować z układem dylatacji oraz grubością jastrychu.</p></article>
        </div>

        <p>Bez szczeliny powietrznej metalizowana powierzchnia pod jastrychem nie tworzy samodzielnej „izolacji odbijającej ciepło”. Więcej o detalach przeczytasz w artykule o <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacji brzegowej i dylatacjach</a>.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-quantity">
        <span class="rk-ins-kicker">Zamówienie liczymy osobno dla każdej grubości</span>
        <h2>Ile m², m³ i paczek styropianu zamówić?</h2>
        <p class="rk-ins-intro">Każda pełna warstwa wymaga pokrycia całej przeznaczonej powierzchni. Objętość instalowana wynika z pola i grubości, natomiast liczba paczek z wydajności opakowania dla konkretnej płyty.</p>

        <div class="rk-ins-formula" aria-label="Wzory na ilość styropianu">
          <strong>V = A × d &nbsp; | &nbsp; N = zaokrąglenie w górę [A × (1 + zapas) ÷ A<sub>paczki</sub>]</strong>
          <span>Objętość V podajemy w m³, powierzchnię A w m², grubość d w metrach, a pokrycie paczki w m² dla danej grubości.</span>
        </div>

        <div class="rk-ins-example">
          <h3>Przykład: 120 m², warstwy 10 + 5 cm, zapas 5%</h3>
          <p>W posadzce znajdzie się 18,00 m³ izolacji. Zakup z pięcioprocentowym zapasem odpowiada 18,90 m³. Paczki trzeba jednak policzyć oddzielnie, ponieważ opakowanie płyt 100 mm zwykle pokrywa inną powierzchnię niż opakowanie płyt 50 mm.</p>
          <div class="rk-ins-example-grid">
            <div class="rk-ins-example-stat"><span>Powierzchnia</span><strong>120 m²</strong></div>
            <div class="rk-ins-example-stat"><span>Grubość</span><strong>150 mm</strong></div>
            <div class="rk-ins-example-stat"><span>Wbudowane</span><strong>18,00 m³</strong></div>
            <div class="rk-ins-example-stat"><span>Zakup 5%</span><strong>18,90 m³</strong></div>
          </div>
        </div>

        <p>Nie licz paczek z jednej umownej objętości, jeśli producent podaje inne pakowanie dla różnych grubości. W analizatorze możesz wpisać rzeczywiste m² przypadające na paczkę każdej warstwy.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-heating-design">
        <span class="rk-ins-kicker">Izolacja i instalacja wpływają na siebie, ale nie automatycznie</span>
        <h2>Jak izolacja wpływa na projekt ogrzewania podłogowego?</h2>
        <p class="rk-ins-intro">Opór warstw pod systemem wpływa na strumień ciepła kierowany w dół. Nie można jednak z samej zmiany 10 na 15 cm wyznaczyć nowego rozstawu rur, przepływu ani mocy pompy.</p>

        <div class="rk-ins-grid-3">
          <article class="rk-ins-card"><span class="rk-ins-card-number">OZC</span><h3>Straty pomieszczenia</h3><p>Wymagana moc wynika z bilansu wszystkich przegród, wentylacji i temperatur obliczeniowych. Zmiana jednej warstwy musi zostać wprowadzona do modelu.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Podłoga</span><h3>Moc z powierzchni czynnej</h3><p>Rozstaw zależy od wymaganych W/m², konstrukcji, oporu okładziny i temperatury wody, a nie od samego symbolu EPS.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Hydraulika</span><h3>Długości i przepływy</h3><p>Opór pętli wynika głównie z przepływu, długości, średnicy wewnętrznej, medium i armatury. Nie wolno nazywać pompy „przeciążoną” tylko dlatego, że zmieniono grubość izolacji.</p></article>
        </div>

        <p>Najpierw wykonuje się <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne OZC</a>, później sprawdza moc powierzchniową i <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">rozstaw rur ogrzewania podłogowego</a>, a następnie długości, przepływy i straty ciśnienia. Pełny zakres dokumentacji opisuje poradnik o tym, <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">jak powinien wyglądać profesjonalny projekt podłogówki</a>.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-errors">
        <span class="rk-ins-kicker">Błędy, których jastrych już nie pokaże</span>
        <h2>Najczęstsze błędy przy izolacji pod ogrzewaniem podłogowym</h2>
        <div class="rk-ins-grid-2">
          <article class="rk-ins-error"><b>Błąd 01</b><h3>Dobór wyłącznie z centymetrów</h3><p>Pomija lambdę, miejsce przegrody, geometrię, obciążenia i pozostałe warstwy.</p></article>
          <article class="rk-ins-error"><b>Błąd 02</b><h3>Liczenie U podłogi na gruncie ze wzoru 1/R</h3><p>Nie odtwarza metodyki wymiany ciepła z gruntem i może dać pozornie dokładny, ale błędnie opisany wynik.</p></article>
          <article class="rk-ins-error"><b>Błąd 03</b><h3>Zakup z samej nazwy EPS 100</h3><p>Nie sprawdza pełnego kodu, λD, przeznaczenia, tolerancji, deklaracji i długotrwałego obciążenia.</p></article>
          <article class="rk-ins-error"><b>Błąd 04</b><h3>Brak bilansu wysokości</h3><p>Po ułożeniu izolacji brakuje miejsca na zaprojektowaną warstwę grzewczą, okładzinę albo poziom progów.</p></article>
          <article class="rk-ins-error"><b>Błąd 05</b><h3>Układanie na nierównym podłożu</h3><p>Płyty kołyszą się, a obciążenia nie są przekazywane równomiernie na warstwy konstrukcyjne.</p></article>
          <article class="rk-ins-error"><b>Błąd 06</b><h3>Przypadkowe wycinanie wokół instalacji</h3><p>Powstają pustki, uskoki i niepodparte fragmenty pod przyszłym jastrychem.</p></article>
          <article class="rk-ins-error"><b>Błąd 07</b><h3>Mylenie folii z termoizolacją</h3><p>Metalizowana folia bez szczeliny powietrznej nie zastępuje oporu zapewnianego przez właściwą warstwę izolacyjną.</p></article>
          <article class="rk-ins-error"><b>Błąd 08</b><h3>Automatyczna zmiana rozstawu rur</h3><p>Rozstawu, przepływu i temperatury nie wyznacza się wyłącznie z grubości styropianu.</p></article>
        </div>
      </section>

      <section class="rk-ins-section" id="rk-ins-checklist">
        <span class="rk-ins-kicker">Kontrola przed przykryciem warstw</span>
        <h2>Checklista przed ułożeniem rur i wykonaniem wylewki</h2>
        <div class="rk-ins-steps">
          <article class="rk-ins-step"><div><h3>Potwierdź miejsce i wymagania przegrody</h3><p>Ustal, czy analizujesz grunt, ogrzewane pomieszczenie, piwnicę, garaż czy przestrzeń zewnętrzną. Sprawdź projekt budowlany i cieplny.</p></div></article>
          <article class="rk-ins-step"><div><h3>Zmierz dostępną wysokość</h3><p>Porównaj poziom podłoża z gotową posadzką przy drzwiach, schodach, oknach tarasowych, odpływach i sąsiednich pomieszczeniach.</p></div></article>
          <article class="rk-ins-step"><div><h3>Zbierz dokumenty materiału</h3><p>Sprawdź nazwę wariantu, przeznaczenie, λD, CS(10), tolerancję grubości i inne parametry wymagane przez projekt.</p></div></article>
          <article class="rk-ins-step"><div><h3>Policz opór każdej warstwy</h3><p>Dodaj d/λ dla warstwy dolnej i górnej. Nie nazywaj otrzymanej sumy współczynnikiem U podłogi na gruncie.</p></div></article>
          <article class="rk-ins-step"><div><h3>Skoordynuj instalacje podpodłogowe</h3><p>Usuń kolizje, przewidź warstwę wyrównawczą i zapewnij stabilne podparcie płyt bez pustych kieszeni.</p></div></article>
          <article class="rk-ins-step"><div><h3>Ułóż płyty na równym podłożu</h3><p>Dopasuj krawędzie, przesuń spoiny kolejnej warstwy i zachowaj ciągłość przy przejściach oraz elementach konstrukcyjnych.</p></div></article>
          <article class="rk-ins-step"><div><h3>Wykonaj warstwy rozdzielające i brzegowe</h3><p>Zastosuj rozwiązania wskazane w projekcie jastrychu, hydroizolacji i dylatacji. Nie zamieniaj jednej funkcji na drugą.</p></div></article>
          <article class="rk-ins-step"><div><h3>Odbierz warstwy przed montażem rur</h3><p>Zrób zdjęcia, zachowaj etykiety i DoP, sprawdź poziomy, stabilność, szczeliny oraz zgodność z dokumentacją przed zakryciem.</p></div></article>
        </div>
      </section>

      <section class="rk-ins-section" id="rk-ins-faq">
        <span class="rk-ins-kicker">Najczęstsze pytania inwestorów</span>
        <h2>FAQ — styropian pod ogrzewanie podłogowe</h2>
        <div class="rk-ins-faq">
          <details><summary>Czy 10 cm styropianu pod ogrzewanie podłogowe wystarczy?</summary><div class="rk-ins-faq-answer"><p>Nie da się tego potwierdzić bez lokalizacji podłogi, lambdy materiału, pełnego układu warstw i obliczeń przegrody. Dziesięć centymetrów przy λ = 0,036 daje opór samej izolacji około 2,78 m²K/W, ale nie jest to kompletne U podłogi na gruncie.</p></div></details>
          <details><summary>Czy 15 cm EPS spełnia wymagania dla każdej podłogi na gruncie?</summary><div class="rk-ins-faq-answer"><p>Nie automatycznie. Piętnaście centymetrów przy λ = 0,036 daje R izolacji około 4,17 m²K/W. Zgodność całej podłogi zależy również od geometrii, krawędzi, pozostałych warstw i metody obliczeniowej dla kontaktu z gruntem.</p></div></details>
          <details><summary>Ile styropianu dać pod podłogówkę na piętrze?</summary><div class="rk-ins-faq-answer"><p>Na stropie pomiędzy ogrzewanymi pomieszczeniami kryteria są inne niż na gruncie. Znaczenie mają wymagania akustyczne, konstrukcja podłogi pływającej, instalacje i wysokość. Nie należy kopiować automatycznie 15 cm z parteru ani przyjmować 3–5 cm bez sprawdzenia projektu.</p></div></details>
          <details><summary>Czy pod podłogówkę zawsze trzeba stosować EPS 100?</summary><div class="rk-ins-faq-answer"><p>Nie istnieje taka uniwersalna reguła prawna. Produkt powinien być przeznaczony do podłóg i dobrany do obciążeń, jastrychu oraz okresu użytkowania. CS(10) jest ważnym parametrem porównawczym, ale nie stanowi samodzielnego dopuszczalnego obciążenia długotrwałego.</p></div></details>
          <details><summary>Czy grafitowy styropian pozwala zmniejszyć grubość?</summary><div class="rk-ins-faq-answer"><p>Niższa deklarowana lambda daje większy opór przy tej samej grubości, więc może pomóc przy ograniczonej wysokości. Trzeba jednak porównać konkretną λD, właściwości mechaniczne, przeznaczenie i pełną przegrodę, a nie sam kolor płyty.</p></div></details>
          <details><summary>Czy XPS jest zawsze lepszy od EPS?</summary><div class="rk-ins-faq-answer"><p>Nie. XPS może mieć właściwości korzystne w określonych warunkach wilgotnościowych lub mechanicznych, ale powinien być użyty tam, gdzie uzasadnia to projekt. Wyższa cena lub wytrzymałość nie czynią go automatycznie najlepszym materiałem dla każdego pomieszczenia.</p></div></details>
          <details><summary>Czy metalizowana folia odbija ciepło do pomieszczenia?</summary><div class="rk-ins-faq-answer"><p>Bez odpowiedniej szczeliny powietrznej nie należy traktować jej jak samodzielnej refleksyjnej izolacji cieplnej. Pod jastrychem pełni przede wszystkim funkcje wykonawcze i rozdzielające, a nadruk pomaga w montażu rur.</p></div></details>
          <details><summary>Czy lepiej układać styropian w jednej czy dwóch warstwach?</summary><div class="rk-ins-faq-answer"><p>Dwie warstwy ułatwiają przesunięcie spoin, lecz poprawny może być również zaprojektowany układ jednowarstwowy. Najważniejsze są równe podłoże, pełne podparcie, dopasowanie płyt, ciągłość izolacji oraz zgodność właściwości materiału z projektem.</p></div></details>
          <details><summary>Jak policzyć m³ styropianu na 100 m² podłogi?</summary><div class="rk-ins-faq-answer"><p>Pomnóż powierzchnię przez łączną grubość wyrażoną w metrach. Dla 100 m² i 15 cm otrzymasz 15 m³ materiału wbudowanego. Do zakupu dodaj uzasadniony zapas i przelicz każdą grubość na liczbę pełnych paczek.</p></div></details>
          <details><summary>Czy kalkulator oblicza współczynnik U podłogi na gruncie?</summary><div class="rk-ins-faq-answer"><p>Nie. Narzędzie celowo oblicza opór samej izolacji, ilość materiału, paczki, wysokość i wymiar geometryczny B′. Kompletne U podłogi na gruncie wymaga modelu uwzględniającego geometrię, grunt, krawędzie i wszystkie warstwy.</p></div></details>
        </div>
      </section>

      <section class="rk-ins-section" id="rk-ins-sources">
        <span class="rk-ins-kicker">Źródła publiczne i normatywne</span>
        <h2>Podstawa techniczna opracowania</h2>
        <div class="rk-ins-source-box">
          <ul>
            <li><a href="https://eli.gov.pl/eli/DU/2022/1225/ogl" target="_blank" rel="noopener nofollow">Elektroniczny Dziennik Ustaw — obowiązujący tekst warunków technicznych</a>, w tym wymaganie U<sub>C(max)</sub> dla podłogi na gruncie.</li>
            <li><a href="https://www.iso.org/standard/65716.html" target="_blank" rel="noopener nofollow">ISO 13370:2017</a> — metody obliczania przenoszenia ciepła przez podłogi i inne elementy budynku stykające się z gruntem.</li>
            <li><a href="https://www.iso.org/standard/40966.html" target="_blank" rel="noopener nofollow">ISO 10456:2007</a> — zasady dotyczące deklarowanych i projektowych wartości cieplnych materiałów oraz wyrobów.</li>
            <li><a href="https://www.iso.org/standard/74683.html" target="_blank" rel="noopener nofollow">ISO 11855-2:2021</a> — podstawy projektowania oraz wyznaczania mocy wbudowanych systemów ogrzewania i chłodzenia płaszczyznowego.</li>
            <li><a href="https://single-market-economy.ec.europa.eu/sectors/construction/construction-products-regulation-cpr/declaration-performance-and-ce-marking_en" target="_blank" rel="noopener nofollow">Komisja Europejska — deklaracja właściwości użytkowych i oznakowanie CE</a>.</li>
          </ul>
          <p>Normy mogą być chronione prawem autorskim i odpłatne. Artykuł omawia zasady oraz zakres metod, ale nie zastępuje pełnego tekstu norm, dokumentacji projektowej ani deklaracji właściwości konkretnego produktu.</p>
        </div>
        <div class="rk-ins-update">Ostatnia aktualizacja merytoryczna: 30 sierpnia 2026 r.</div>
      </section>
    </main>

    <section class="rk-ins-author" aria-label="Autor opracowania">
      <input type="radio" name="rk-ins-author-tabs" id="rk-ins-author-about" checked="">
      <input type="radio" name="rk-ins-author-tabs" id="rk-ins-author-exp">
      <input type="radio" name="rk-ins-author-tabs" id="rk-ins-author-sites">

      <header class="rk-ins-author-head">
        <div><span class="rk-ins-kicker" style="color:#83f1fb">Autor opracowania</span><div class="rk-ins-author-title">Robert Kucharski</div><p>Projektant instalacji sanitarnych • specjalista HVAC i ogrzewania podłogowego</p></div>
        <span class="rk-ins-author-mark">IZOLACJE • PODŁOGÓWKA • HVAC</span>
      </header>

      <div class="rk-ins-author-layout">
        <aside class="rk-ins-author-side">
          <div class="rk-ins-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant ogrzewania podłogowego" width="600" height="600" loading="lazy" decoding="async"></div>
          <div class="rk-ins-author-name">Robert Kucharski</div>
          <div class="rk-ins-author-role">Projektant instalacji sanitarnych<br>Specjalista HVAC i ogrzewania podłogowego</div>
          <div class="rk-ins-author-social-label">Znajdziesz mnie również:</div>
          <div class="rk-ins-author-social" aria-label="Profile Roberta Kucharskiego w mediach społecznościowych">
            <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener nofollow me" aria-label="Robert Kucharski na LinkedIn" title="LinkedIn"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5.2 7.7H1.6V22h3.6V7.7ZM3.4 2A2.1 2.1 0 1 0 3.4 6.2 2.1 2.1 0 0 0 3.4 2ZM22.4 13.8c0-4.3-2.3-6.3-5.4-6.3a4.7 4.7 0 0 0-4.2 2.3V7.7H9.2V22h3.6v-7.1c0-1.9.4-3.7 2.7-3.7 2.3 0 2.3 2.1 2.3 3.8v7h3.6l1-8.2Z"></path></svg></a>
            <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="noopener nofollow me" aria-label="Projekt-Ogrzewania.pl na Facebooku" title="Facebook"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M14.2 22v-9h3l.5-3.5h-3.5V7.3c0-1 .3-1.7 1.8-1.7h1.9V2.5c-.3 0-1.5-.1-2.8-.1-2.8 0-4.7 1.7-4.7 4.8v2.3H7.2V13h3.2v9h3.8Z"></path></svg></a>
            <a href="https://x.com/Projekt_HVAC" target="_blank" rel="noopener nofollow me" aria-label="Projekt HVAC w serwisie X" title="X"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M18.9 2H22l-6.8 7.8L23.2 22H17l-4.9-6.4L6.5 22H3.3l7.3-8.4L2.8 2h6.4l4.4 5.8L18.9 2Zm-1.1 17.8h1.7L8.3 4.1H6.5l11.3 15.7Z"></path></svg></a>
          </div>
        </aside>

        <div class="rk-ins-author-main">
          <blockquote class="rk-ins-author-quote"><p>„Dobra izolacja podłogi nie zaczyna się od pytania o liczbę centymetrów. Najpierw trzeba wiedzieć, co izolujemy, jaki opór ma materiał, jakie obciążenia przenosi i czy cały przekrój zmieści się w budynku.”</p></blockquote>
          <div class="rk-ins-author-tabs" role="tablist" aria-label="Informacje o autorze">
            <label class="rk-ins-author-tab" for="rk-ins-author-about">O autorze</label>
            <label class="rk-ins-author-tab" for="rk-ins-author-exp">Doświadczenie</label>
            <label class="rk-ins-author-tab" for="rk-ins-author-sites">Portale</label>
          </div>
          <div class="rk-ins-author-panel rk-ins-author-panel-about"><p>Projektuję wodne ogrzewanie podłogowe, łącząc obliczenia strat ciepła z doborem temperatur, rozstawów, przepływów, długości pętli, strat ciśnienia i nastaw rozdzielaczy.</p></div>
          <div class="rk-ins-author-panel rk-ins-author-panel-exp"><p>W dokumentacji koordynuję założenia cieplne z rzeczywistym układem warstw podłogi. Dzięki temu instalacja nie jest dopasowywana „na oko” dopiero po ułożeniu izolacji i wykonaniu progów.</p></div>
          <div class="rk-ins-author-panel rk-ins-author-panel-sites"><p>Jestem właścicielem trzech serwisów branżowych. Powiązanie portali podaję jawnie, aby czytelnik znał autorstwo i kontekst linkowania.</p><div class="rk-ins-site-links"><a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a><a href="https://remont.biz.pl/" target="_blank" rel="noopener nofollow">Remont.biz.pl</a><a href="https://sobir.pl/" target="_blank" rel="noopener nofollow">Sobir.pl</a></div></div>
        </div>
      </div>
    </section>

    <section class="rk-ins-final-cta" aria-label="Projekt ogrzewania podłogowego skoordynowany z warstwami">
      <span class="rk-ins-kicker" style="color:#83f1fb">Zamknij decyzje przed wejściem wykonawcy</span>
      <div class="rk-ins-cta-title">Otrzymaj projekt podłogówki dopasowany do budynku i posadzki</div>
      <p>Dokumentacja łączy straty ciepła, powierzchnie czynne, temperaturę zasilania i powrotu, rozstawy rur, długości pętli, przepływy oraz nastawy. Warstwy podłogi stają się jednym z założeń projektu, a nie niespodzianką odkrytą podczas montażu.</p>
      <a class="rk-ins-cta-button rk-ins-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
      <small class="rk-ins-disclosure">Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
    </section>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article",
      "url": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/",
      "headline": "Ile styropianu pod ogrzewanie podłogowe? Grubość, opór R i kalkulator ilości",
      "description": "Techniczny poradnik o doborze izolacji pod ogrzewanie podłogowe z analizatorem oporu R, objętości, liczby paczek i wysokości warstw.",
      "inLanguage": "pl-PL",
      "dateModified": "2026-08-30",
      "mainEntityOfPage": {"@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webpage"},
      "author": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"},
      "publisher": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "about": [
        {"@type": "Thing", "name": "Izolacja pod ogrzewanie podłogowe"},
        {"@type": "Thing", "name": "Styropian podłogowy"},
        {"@type": "Thing", "name": "Opór cieplny izolacji"},
        {"@type": "Thing", "name": "Podłoga na gruncie"}
      ],
      "keywords": [
        "ile styropianu pod ogrzewanie podłogowe",
        "jaka grubość styropianu pod podłogówkę",
        "styropian pod podłogówkę 10 czy 15 cm",
        "opór cieplny izolacji podłogowej",
        "ile m3 styropianu na podłogę"
      ],
      "isPartOf": {"@id": "https://projekt-ogrzewania.pl/#website"}
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webpage",
      "url": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/",
      "name": "Ile styropianu pod ogrzewanie podłogowe? Grubość, opór R i kalkulator ilości",
      "description": "Jak dobrać izolację pod podłogówkę i obliczyć jej opór, objętość, liczbę paczek oraz wysokość wszystkich warstw.",
      "inLanguage": "pl-PL",
      "dateModified": "2026-08-30",
      "isPartOf": {"@id": "https://projekt-ogrzewania.pl/#website"},
      "breadcrumb": {"@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#breadcrumb"},
      "mainEntity": [
        {"@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#application"},
        {"@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#howto"},
        {"@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#faq"}
      ]
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#breadcrumb",
      "itemListElement": [
        {"@type": "ListItem", "position": 1, "name": "Strona główna", "item": "https://projekt-ogrzewania.pl/"},
        {"@type": "ListItem", "position": 2, "name": "Ogrzewanie podłogowe", "item": "https://projekt-ogrzewania.pl/category/ogrzewanie-podlogowe/"},
        {"@type": "ListItem", "position": 3, "name": "Ile styropianu pod ogrzewanie podłogowe?", "item": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"}
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#application",
      "name": "Interaktywny analizator izolacji i warstw podłogi",
      "url": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#rk-ins-analyzer",
      "applicationCategory": "EducationalApplication",
      "operatingSystem": "Dowolny system z przeglądarką internetową",
      "browserRequirements": "Obsługa JavaScript",
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "description": "Narzędzie oblicza opór cieplny warstw izolacji, objętość materiału, zapas, liczbę paczek, bilans wysokości i wymiar charakterystyczny podłogi na gruncie."
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#howto",
      "name": "Jak sprawdzić izolację przed ułożeniem ogrzewania podłogowego?",
      "description": "Kolejność kontroli przegrody, materiału, wysokości, instalacji i wykonania przed zakryciem izolacji.",
      "inLanguage": "pl-PL",
      "step": [
        {"@type": "HowToStep", "position": 1, "name": "Potwierdź miejsce i wymagania przegrody", "text": "Ustal, czy analizujesz grunt, ogrzewane pomieszczenie, piwnicę, garaż czy przestrzeń zewnętrzną. Sprawdź projekt budowlany i cieplny."},
        {"@type": "HowToStep", "position": 2, "name": "Zmierz dostępną wysokość", "text": "Porównaj poziom podłoża z gotową posadzką przy drzwiach, schodach, oknach tarasowych, odpływach i sąsiednich pomieszczeniach."},
        {"@type": "HowToStep", "position": 3, "name": "Zbierz dokumenty materiału", "text": "Sprawdź nazwę wariantu, przeznaczenie, deklarowaną lambdę, CS(10), tolerancję grubości i inne parametry wymagane przez projekt."},
        {"@type": "HowToStep", "position": 4, "name": "Policz opór każdej warstwy", "text": "Dodaj iloraz grubości i lambdy dla warstwy dolnej i górnej. Nie nazywaj otrzymanej sumy współczynnikiem U podłogi na gruncie."},
        {"@type": "HowToStep", "position": 5, "name": "Skoordynuj instalacje podpodłogowe", "text": "Usuń kolizje, przewidź warstwę wyrównawczą i zapewnij stabilne podparcie płyt bez pustych kieszeni."},
        {"@type": "HowToStep", "position": 6, "name": "Ułóż płyty na równym podłożu", "text": "Dopasuj krawędzie, przesuń spoiny kolejnej warstwy i zachowaj ciągłość przy przejściach oraz elementach konstrukcyjnych."},
        {"@type": "HowToStep", "position": 7, "name": "Wykonaj warstwy rozdzielające i brzegowe", "text": "Zastosuj rozwiązania wskazane w projekcie jastrychu, hydroizolacji i dylatacji. Nie zamieniaj jednej funkcji na drugą."},
        {"@type": "HowToStep", "position": 8, "name": "Odbierz warstwy przed montażem rur", "text": "Zrób zdjęcia, zachowaj etykiety i deklaracje, sprawdź poziomy, stabilność, szczeliny oraz zgodność z dokumentacją przed zakryciem."}
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#faq",
      "inLanguage": "pl-PL",
      "mainEntity": [
        {"@type": "Question", "name": "Czy 10 cm styropianu pod ogrzewanie podłogowe wystarczy?", "acceptedAnswer": {"@type": "Answer", "text": "Nie da się tego potwierdzić bez lokalizacji podłogi, lambdy materiału, pełnego układu warstw i obliczeń przegrody. Dziesięć centymetrów przy lambda 0,036 daje opór samej izolacji około 2,78 m²K/W, ale nie jest to kompletne U podłogi na gruncie."}},
        {"@type": "Question", "name": "Czy 15 cm EPS spełnia wymagania dla każdej podłogi na gruncie?", "acceptedAnswer": {"@type": "Answer", "text": "Nie automatycznie. Piętnaście centymetrów przy lambda 0,036 daje opór izolacji około 4,17 m²K/W. Zgodność całej podłogi zależy również od geometrii, krawędzi, pozostałych warstw i metody obliczeniowej dla kontaktu z gruntem."}},
        {"@type": "Question", "name": "Ile styropianu dać pod podłogówkę na piętrze?", "acceptedAnswer": {"@type": "Answer", "text": "Na stropie pomiędzy ogrzewanymi pomieszczeniami kryteria są inne niż na gruncie. Znaczenie mają wymagania akustyczne, konstrukcja podłogi pływającej, instalacje i dostępna wysokość. Wartość trzeba potwierdzić w projekcie."}},
        {"@type": "Question", "name": "Czy pod podłogówkę zawsze trzeba stosować EPS 100?", "acceptedAnswer": {"@type": "Answer", "text": "Nie istnieje taka uniwersalna reguła prawna. Produkt powinien być przeznaczony do podłóg i dobrany do obciążeń, jastrychu oraz okresu użytkowania. CS(10) jest ważnym parametrem porównawczym, ale nie stanowi samodzielnego dopuszczalnego obciążenia długotrwałego."}},
        {"@type": "Question", "name": "Czy grafitowy styropian pozwala zmniejszyć grubość?", "acceptedAnswer": {"@type": "Answer", "text": "Niższa deklarowana lambda daje większy opór przy tej samej grubości, więc może pomóc przy ograniczonej wysokości. Trzeba jednak porównać właściwości mechaniczne, przeznaczenie i pełną przegrodę, a nie sam kolor płyty."}},
        {"@type": "Question", "name": "Czy XPS jest zawsze lepszy od EPS?", "acceptedAnswer": {"@type": "Answer", "text": "Nie. XPS może mieć właściwości korzystne w określonych warunkach wilgotnościowych lub mechanicznych, ale powinien być użyty tam, gdzie uzasadnia to projekt."}},
        {"@type": "Question", "name": "Czy metalizowana folia odbija ciepło do pomieszczenia?", "acceptedAnswer": {"@type": "Answer", "text": "Bez odpowiedniej szczeliny powietrznej nie należy traktować jej jak samodzielnej refleksyjnej izolacji cieplnej. Pod jastrychem pełni przede wszystkim funkcje wykonawcze i rozdzielające, a nadruk pomaga w montażu rur."}},
        {"@type": "Question", "name": "Czy lepiej układać styropian w jednej czy dwóch warstwach?", "acceptedAnswer": {"@type": "Answer", "text": "Dwie warstwy ułatwiają przesunięcie spoin, lecz poprawny może być również zaprojektowany układ jednowarstwowy. Najważniejsze są równe podłoże, pełne podparcie, dopasowanie płyt, ciągłość izolacji oraz zgodność właściwości materiału z projektem."}},
        {"@type": "Question", "name": "Jak policzyć m3 styropianu na 100 m2 podłogi?", "acceptedAnswer": {"@type": "Answer", "text": "Pomnóż powierzchnię przez łączną grubość wyrażoną w metrach. Dla 100 m² i 15 cm otrzymasz 15 m³ materiału wbudowanego. Do zakupu dodaj uzasadniony zapas i przelicz każdą grubość na liczbę pełnych paczek."}},
        {"@type": "Question", "name": "Czy kalkulator oblicza współczynnik U podłogi na gruncie?", "acceptedAnswer": {"@type": "Answer", "text": "Nie. Narzędzie celowo oblicza opór samej izolacji, ilość materiału, paczki, wysokość i wymiar geometryczny B prim. Kompletne U podłogi na gruncie wymaga modelu uwzględniającego geometrię, grunt, krawędzie i wszystkie warstwy."}}
      ]
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/robert-kucharski/",
      "jobTitle": "Projektant instalacji sanitarnych, specjalista HVAC i ogrzewania podłogowego",
      "worksFor": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "affiliation": [
        {"@id": "https://projekt-ogrzewania.pl/#organization"},
        {"@id": "https://remont.biz.pl/#organization"},
        {"@id": "https://sobir.pl/#organization"}
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt-Ogrzewania.pl",
      "url": "https://projekt-ogrzewania.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt-Ogrzewania.pl",
      "inLanguage": "pl-PL",
      "publisher": {"@id": "https://projekt-ogrzewania.pl/#organization"}
    }
  ]
}
</script>

<script>
(function () {
  "use strict";

  var root = document.getElementById("rk-insulation-guide");
  if (!root) {
    return;
  }

  var byId = function (id) {
    return document.getElementById(id);
  };

  var readNumber = function (id, fallback, minimum, maximum) {
    var field = byId(id);
    var value = parseFloat(field.value);
    if (!Number.isFinite(value)) {
      return fallback;
    }
    return Math.min(maximum, Math.max(minimum, value));
  };

  var format = function (value, digits) {
    return Number(value).toLocaleString("pl-PL", {
      minimumFractionDigits: digits,
      maximumFractionDigits: digits
    });
  };

  var setText = function (id, value) {
    var element = byId(id);
    if (element) {
      element.textContent = value;
    }
  };

  var svgNamespace = "http://www.w3.org/2000/svg";

  var svgElement = function (name, attributes, textValue) {
    var node = document.createElementNS(svgNamespace, name);
    Object.keys(attributes).forEach(function (key) {
      node.setAttribute(key, attributes[key]);
    });
    if (typeof textValue === "string") {
      node.textContent = textValue;
    }
    return node;
  };

  var drawChart = function (lambda1, lambda2, totalThickness, totalR) {
    var chart = byId("rk-ins-chart");
    if (!chart) {
      return;
    }

    while (chart.firstChild) {
      chart.removeChild(chart.firstChild);
    }

    chart.appendChild(svgElement("title", {id: "rk-ins-chart-title"}, "Wykres oporu cieplnego izolacji w zależności od grubości"));
    chart.appendChild(svgElement("desc", {id: "rk-ins-chart-desc"}, "Dwie linie dla wpisanych wartości przewodzenia ciepła oraz punkt pokazujący aktualną kombinację warstw."));

    var left = 60;
    var top = 28;
    var right = 650;
    var bottom = 274;
    var width = right - left;
    var height = bottom - top;
    var xMaximum = Math.max(300, Math.ceil(totalThickness / 50) * 50);
    var minimumLambda = Math.min(lambda1, lambda2);
    var theoreticalR = (xMaximum / 1000) / minimumLambda;
    var yMaximum = Math.max(8, Math.ceil(Math.max(theoreticalR, totalR) / 2) * 2);

    chart.appendChild(svgElement("rect", {x: 0, y: 0, width: 680, height: 330, fill: "#f8fbfc"}));

    var xStep = xMaximum / 6;
    var yStep = yMaximum / 4;
    var index;

    for (index = 0; index <= 6; index += 1) {
      var xValue = xStep * index;
      var x = left + (xValue / xMaximum) * width;
      chart.appendChild(svgElement("line", {x1: x, y1: top, x2: x, y2: bottom, stroke: "#d9e7ed", "stroke-width": 1}));
      chart.appendChild(svgElement("text", {x: x, y: 296, fill: "#617684", "font-size": 11, "text-anchor": "middle", "font-family": "system-ui, sans-serif"}, format(xValue, 0)));
    }

    for (index = 0; index <= 4; index += 1) {
      var yValue = yStep * index;
      var y = bottom - (yValue / yMaximum) * height;
      chart.appendChild(svgElement("line", {x1: left, y1: y, x2: right, y2: y, stroke: "#d9e7ed", "stroke-width": 1}));
      chart.appendChild(svgElement("text", {x: 49, y: y + 4, fill: "#617684", "font-size": 11, "text-anchor": "end", "font-family": "system-ui, sans-serif"}, format(yValue, 1)));
    }

    chart.appendChild(svgElement("line", {x1: left, y1: bottom, x2: right, y2: bottom, stroke: "#526b78", "stroke-width": 2}));
    chart.appendChild(svgElement("line", {x1: left, y1: top, x2: left, y2: bottom, stroke: "#526b78", "stroke-width": 2}));
    chart.appendChild(svgElement("text", {x: 355, y: 320, fill: "#344d5a", "font-size": 12, "font-weight": 800, "text-anchor": "middle", "font-family": "system-ui, sans-serif"}, "łączna grubość izolacji [mm]"));
    chart.appendChild(svgElement("text", {x: 18, y: 151, fill: "#344d5a", "font-size": 12, "font-weight": 800, "text-anchor": "middle", "font-family": "system-ui, sans-serif", transform: "rotate(-90 18 151)"}, "opór R [m²K/W]"));

    var endpointR1 = (xMaximum / 1000) / lambda1;
    var endpointR2 = (xMaximum / 1000) / lambda2;
    var endpointY1 = bottom - (endpointR1 / yMaximum) * height;
    var endpointY2 = bottom - (endpointR2 / yMaximum) * height;

    chart.appendChild(svgElement("line", {x1: left, y1: bottom, x2: right, y2: endpointY1, stroke: "#28c9da", "stroke-width": 5, "stroke-linecap": "round"}));
    chart.appendChild(svgElement("line", {x1: left, y1: bottom, x2: right, y2: endpointY2, stroke: "#ff7438", "stroke-width": 4, "stroke-linecap": "round", "stroke-dasharray": "10 7"}));

    var markerX = left + (Math.min(totalThickness, xMaximum) / xMaximum) * width;
    var markerY = bottom - (Math.min(totalR, yMaximum) / yMaximum) * height;
    chart.appendChild(svgElement("line", {x1: markerX, y1: markerY, x2: markerX, y2: bottom, stroke: "#e7ad2f", "stroke-width": 2, "stroke-dasharray": "5 5"}));
    chart.appendChild(svgElement("circle", {cx: markerX, cy: markerY, r: 8, fill: "#e7ad2f", stroke: "#ffffff", "stroke-width": 3}));
    chart.appendChild(svgElement("text", {x: markerX, y: Math.max(18, markerY - 14), fill: "#74510a", "font-size": 12, "font-weight": 900, "text-anchor": "middle", "font-family": "system-ui, sans-serif"}, format(totalThickness, 0) + " mm • R " + format(totalR, 2)));
  };

  var updateStack = function (finish, heating, layer2, layer1, service) {
    var values = [
      {id: "rk-ins-stack-finish", value: finish, label: "Okładzina"},
      {id: "rk-ins-stack-heating", value: heating, label: "Warstwa grzewcza"},
      {id: "rk-ins-stack-layer2", value: layer2, label: "Izolacja 2"},
      {id: "rk-ins-stack-layer1", value: layer1, label: "Izolacja 1"},
      {id: "rk-ins-stack-service", value: service, label: "Warstwa instalacyjna"}
    ];

    values.forEach(function (item) {
      var node = byId(item.id);
      if (!node) {
        return;
      }
      if (item.value <= 0) {
        node.style.display = "none";
        return;
      }
      node.style.display = "flex";
      node.style.flexGrow = String(Math.max(8, item.value));
      node.style.flexBasis = "0";
      node.querySelector("span").textContent = item.label;
      node.querySelector("small").textContent = format(item.value, 0) + " mm";
    });
  };

  var addDiagnostic = function (container, textValue, stateClass) {
    var item = document.createElement("div");
    item.className = "rk-ins-diagnostic";
    if (stateClass) {
      item.classList.add(stateClass);
    }
    item.textContent = textValue;
    container.appendChild(item);
  };

  var update = function () {
    var floorType = byId("rk-ins-floor-type").value;
    var area = readNumber("rk-ins-area", 120, 1, 2000);
    var perimeter = readNumber("rk-ins-perimeter", 46, 1, 1000);
    var availableHeight = readNumber("rk-ins-available-height", 230, 20, 1000);
    var finish = readNumber("rk-ins-finish", 15, 0, 100);
    var heating = readNumber("rk-ins-heating-layer", 70, 10, 250);
    var service = readNumber("rk-ins-service-layer", 0, 0, 300);
    var layer1 = readNumber("rk-ins-layer1-thickness", 100, 0, 400);
    var lambda1 = readNumber("rk-ins-layer1-lambda", 0.036, 0.020, 0.080);
    var pack1 = readNumber("rk-ins-layer1-pack", 3, 0.1, 100);
    var csValue = readNumber("rk-ins-cs", 100, 10, 1000);
    var layer2 = readNumber("rk-ins-layer2-thickness", 50, 0, 400);
    var lambda2 = readNumber("rk-ins-layer2-lambda", 0.036, 0.020, 0.080);
    var pack2 = readNumber("rk-ins-layer2-pack", 6, 0.1, 100);
    var waste = readNumber("rk-ins-waste", 5, 0, 30);

    var totalThickness = layer1 + layer2;
    var r1 = (layer1 / 1000) / lambda1;
    var r2 = (layer2 / 1000) / lambda2;
    var totalR = r1 + r2;
    var installedVolume = area * totalThickness / 1000;
    var reserveFactor = 1 + waste / 100;
    var purchaseVolume = installedVolume * reserveFactor;
    var purchaseArea = area * reserveFactor;
    var packs1 = layer1 > 0 ? Math.ceil(purchaseArea / pack1) : 0;
    var packs2 = layer2 > 0 ? Math.ceil(purchaseArea / pack2) : 0;
    var usedHeight = finish + heating + service + totalThickness;
    var balance = availableHeight - usedHeight;
    var isGround = floorType === "ground";
    var bPrime = isGround ? (2 * area) / perimeter : 0;

    setText("rk-ins-result-thickness", format(totalThickness, 0) + " mm");
    setText("rk-ins-result-split", format(layer1, 0) + " + " + format(layer2, 0) + " mm");
    setText("rk-ins-result-r", format(totalR, 2));
    setText("rk-ins-result-volume", format(installedVolume, 2) + " m³");
    setText("rk-ins-result-purchase", format(purchaseVolume, 2) + " m³");
    setText("rk-ins-result-waste-note", "z zapasem " + format(waste, 0) + "%");
    setText("rk-ins-result-pack1", format(packs1, 0));
    setText("rk-ins-result-pack1-note", "dla " + format(pack1, 2) + " m²/paczkę");
    setText("rk-ins-result-pack2", format(packs2, 0));
    setText("rk-ins-result-pack2-note", layer2 > 0 ? "dla " + format(pack2, 2) + " m²/paczkę" : "warstwa wyłączona");
    setText("rk-ins-result-used", format(usedHeight, 0) + " mm");
    setText("rk-ins-result-balance", (balance < 0 ? "−" : "+") + format(Math.abs(balance), 0) + " mm");

    var balanceCard = byId("rk-ins-balance-card");
    balanceCard.classList.remove("is-good", "is-warning", "is-danger");
    var heightStatus = byId("rk-ins-height-status");
    heightStatus.classList.remove("is-danger");

    if (balance < 0) {
      balanceCard.classList.add("is-danger");
      heightStatus.classList.add("is-danger");
      heightStatus.textContent = "Warstwy przekraczają dostępną wysokość o " + format(Math.abs(balance), 0) + " mm. Trzeba zmienić przekrój, a nie ściskać izolację na budowie.";
    } else if (balance < 10) {
      balanceCard.classList.add("is-warning");
      heightStatus.textContent = "Pozostało tylko " + format(balance, 0) + " mm rezerwy. Sprawdź tolerancje wykonawcze, nierówności podłoża, grubość kleju i rzeczywisty poziom progów.";
    } else {
      balanceCard.classList.add("is-good");
      heightStatus.textContent = "Wpisany układ mieści się w dostępnej wysokości z rezerwą " + format(balance, 0) + " mm. To kontrola geometryczna, nie odbiór całej konstrukcji.";
    }

    var perimeterWrap = byId("rk-ins-perimeter-wrap");
    perimeterWrap.hidden = !isGround;

    if (isGround) {
      setText("rk-ins-result-bprime", format(bPrime, 2) + " m");
      setText("rk-ins-result-bprime-note", "2A/P — informacja geometryczna");
    } else {
      setText("rk-ins-result-bprime", "—");
      setText("rk-ins-result-bprime-note", "dotyczy podłogi na gruncie");
    }

    setText("rk-ins-legend1", "λ₁ " + format(lambda1, 3));
    setText("rk-ins-legend2", "λ₂ " + format(lambda2, 3));

    updateStack(finish, heating, layer2, layer1, service);
    drawChart(lambda1, lambda2, totalThickness, totalR);

    var diagnostics = byId("rk-ins-diagnostics");
    diagnostics.innerHTML = "";

    if (floorType === "ground") {
      addDiagnostic(diagnostics, "Podłoga na gruncie: obowiązujące wymaganie Uc(max) dla pomieszczenia ogrzewanego do co najmniej 16°C wynosi 0,30 W/(m²K). Samo R izolacji i B′ nie wystarczają do potwierdzenia zgodności.", "is-warning");
    } else if (floorType === "heated") {
      addDiagnostic(diagnostics, "Strop nad ogrzewanym pomieszczeniem: oprócz przepływu ciepła sprawdź akustykę, konstrukcję podłogi pływającej i dopuszczalne odkształcenia warstw.", "");
    } else if (floorType === "unheated") {
      addDiagnostic(diagnostics, "Strop nad nieogrzewaną piwnicą lub garażem: potrzebna jest temperatura po stronie nieogrzewanej oraz pełne obliczenie całej przegrody.", "is-warning");
    } else {
      addDiagnostic(diagnostics, "Podłoga nad powietrzem zewnętrznym: nie stosuj uproszczeń dla stropu między ogrzewanymi pomieszczeniami. Sprawdź wymagania przegrody zewnętrznej i mostki.", "is-warning");
    }

    if (balance < 0) {
      addDiagnostic(diagnostics, "Kolizja wysokości: brakuje " + format(Math.abs(balance), 0) + " mm. Nie redukuj przypadkowo jastrychu ani izolacji bez uzgodnienia nowego przekroju.", "is-danger");
    } else {
      addDiagnostic(diagnostics, "Bilans wysokości: układ wykorzystuje " + format(usedHeight, 0) + " z dostępnych " + format(availableHeight, 0) + " mm.", "");
    }

    addDiagnostic(diagnostics, "Wpisane CS(10) = " + format(csValue, 0) + " kPa. Ta wartość opisuje naprężenie przy 10% odkształceniu i sama nie potwierdza dopuszczalnego obciążenia długotrwałego.", csValue < 70 ? "is-warning" : "");
    addDiagnostic(diagnostics, "Opór R = " + format(totalR, 2) + " m²K/W dotyczy wyłącznie dwóch wpisanych warstw izolacji. Lambdy powinny pochodzić z deklaracji właściwości konkretnego wyrobu.", "");
  };

  var fields = root.querySelectorAll("#rk-ins-tool input, #rk-ins-tool select");
  Array.prototype.forEach.call(fields, function (field) {
    field.addEventListener("input", update);
    field.addEventListener("change", update);
  });

  var progress = byId("rk-ins-progress");
  var updateProgress = function () {
    if (!progress) {
      return;
    }
    var rootTop = window.scrollY + root.getBoundingClientRect().top;
    var distance = root.scrollHeight - window.innerHeight;
    if (distance <= 0) {
      progress.style.width = "100%";
      return;
    }
    var current = window.scrollY - rootTop;
    var percentage = Math.min(100, Math.max(0, current / distance * 100));
    progress.style.width = percentage + "%";
  };

  window.addEventListener("scroll", updateProgress, {passive: true});
  window.addEventListener("resize", updateProgress);

  update();
  updateProgress();
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">Ile styropianu pod ogrzewanie podłogowe? Grubość, opór R i kalkulator ilości.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Drewno na ogrzewanie podłogowe – tabela gatunków i analizator deski.</title>
		<link>https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 14 Oct 2025 11:21:47 +0000</pubDate>
				<category><![CDATA[Drewno]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Podłogi drewniane]]></category>
		<category><![CDATA[Podłogi w domu]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki domowe]]></category>
		<category><![CDATA[Poradniki inwestora]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[dąb]]></category>
		<category><![CDATA[deska warstwowa]]></category>
		<category><![CDATA[drewna egzotyczne]]></category>
		<category><![CDATA[drewno na ogrzewanie podłogowe]]></category>
		<category><![CDATA[montaż podłogi drewnianej]]></category>
		<category><![CDATA[ogrzewanie podłogowe a drewno]]></category>
		<category><![CDATA[podłoga na podłogówce]]></category>
		<category><![CDATA[poradnik budowlany]]></category>
		<category><![CDATA[rodzaje drewna]]></category>
		<category><![CDATA[stabilność drewna]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2807</guid>

					<description><![CDATA[<p>Planujesz piękną drewnianą podłogę w domu z ogrzewaniem podłogowym? To świetny pomysł, który gwarantuje niepowtarzalny klimat i komfort. Jednak nie każde drewno będzie dobrze współpracować z instalacją grzewczą. Aby uniknąć kosztownych pomyłek i rozczarowań, takich jak paczenie się desek czy powstawanie szpar, konieczny jest świadomy wybór materiału. W naszym artykule znajdziesz wybór idealnego drewna do ogrzewania podłogowego – kompletna tabela i poradnik, które rozwieją wszystkie Twoje wątpliwości. Dowiesz się, które gatunki są bezpieczne, a których lepiej unikać, oraz poznasz kluczowe zasady poprawnego montażu. Z nami Twoja podłoga będzie trwała, piękna i ciepła na długie lata.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/">Drewno na ogrzewanie podłogowe – tabela gatunków i analizator deski.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-wood-guide {
    --rk-navy: #102d42;
    --rk-navy-2: #173e58;
    --rk-blue: #087ea4;
    --rk-blue-soft: #eaf7fb;
    --rk-cyan: #30b7c9;
    --rk-orange: #ed7b2f;
    --rk-orange-dark: #c85a17;
    --rk-orange-soft: #fff4ea;
    --rk-green: #16745a;
    --rk-green-soft: #eaf8f2;
    --rk-red: #a6423b;
    --rk-red-soft: #fff0ef;
    --rk-yellow: #946a0b;
    --rk-yellow-soft: #fff8df;
    --rk-ink: #17232c;
    --rk-muted: #586a76;
    --rk-line: #dbe5ea;
    --rk-soft: #f4f8fa;
    --rk-white: #ffffff;
    --rk-shadow: 0 18px 48px rgba(16, 45, 66, 0.11);
    --rk-radius: 22px;
    color: var(--rk-ink);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    font-size: 17px;
    line-height: 1.72;
    margin: 0 auto;
    max-width: 1360px;
    overflow: hidden;
  }

  #rk-wood-guide *,
  #rk-wood-guide *::before,
  #rk-wood-guide *::after {
    box-sizing: border-box;
  }

  #rk-wood-guide a {
    color: #056c91;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }

  #rk-wood-guide a:hover {
    color: var(--rk-orange-dark);
  }

  #rk-wood-guide a:focus-visible,
  #rk-wood-guide button:focus-visible,
  #rk-wood-guide select:focus-visible,
  #rk-wood-guide input:focus-visible,
  #rk-wood-guide summary:focus-visible {
    outline: 3px solid rgba(237, 123, 47, 0.55);
    outline-offset: 3px;
  }

  #rk-wood-guide p {
    margin: 0 0 1rem;
  }

  #rk-wood-guide strong {
    color: var(--rk-navy);
  }

  #rk-wood-guide .rk-wood-shell {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 28px;
    box-shadow: var(--rk-shadow);
    overflow: hidden;
  }

  #rk-wood-guide .rk-wood-hero {
    color: var(--rk-white);
    overflow: hidden;
    padding: clamp(38px, 7vw, 78px) clamp(25px, 6vw, 76px) 42px;
    position: relative;
    background:
      radial-gradient(circle at 91% 4%, rgba(48, 183, 201, 0.31), transparent 28%),
      radial-gradient(circle at 8% 100%, rgba(237, 123, 47, 0.24), transparent 30%),
      linear-gradient(135deg, #0d2332 0%, #143e53 55%, #175b62 100%);
  }

  #rk-wood-guide .rk-wood-hero::after {
    border: 46px solid rgba(255, 255, 255, 0.05);
    border-radius: 50%;
    bottom: -120px;
    content: "";
    height: 350px;
    pointer-events: none;
    position: absolute;
    right: -55px;
    width: 350px;
  }

  #rk-wood-guide .rk-wood-hero-inner {
    max-width: none;
    position: relative;
    z-index: 1;
  }

  #rk-wood-guide .rk-wood-kicker,
  #rk-wood-guide .rk-wood-eyebrow {
    color: var(--rk-orange);
    display: block;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.11em;
    margin-bottom: 10px;
    text-transform: uppercase;
  }

  #rk-wood-guide .rk-wood-kicker {
    align-items: center;
    color: #78efff;
    display: inline-flex;
    font-size: 0.69rem;
    font-weight: 950;
    gap: 9px;
    letter-spacing: 0.09em;
    line-height: 1.2;
    margin-bottom: 15px;
  }

  #rk-wood-guide .rk-wood-kicker::before {
    background: var(--rk-orange);
    border-radius: 50%;
    box-shadow: 0 0 0 6px rgba(237, 123, 47, 0.14);
    content: "";
    height: 9px;
    width: 9px;
  }

  #rk-wood-guide .rk-wood-hero-title {
    color: var(--rk-white);
    font-size: clamp(2.25rem, 7.5vw, 5.15rem);
    font-weight: 950;
    letter-spacing: -0.065em;
    line-height: 0.98;
    margin: 0 0 21px;
    max-width: 1030px;
  }

  #rk-wood-guide .rk-wood-hero-title span {
    color: #67e7f5;
  }

  #rk-wood-guide .rk-wood-hero-lead {
    color: #e2f2f5;
    font-size: clamp(1rem, 2.2vw, 1.3rem);
    line-height: 1.55;
    margin: 0 0 24px;
    max-width: 960px;
  }

  #rk-wood-guide .rk-wood-hero-tags,
  #rk-wood-guide .rk-wood-byline {
    display: flex;
    flex-wrap: wrap;
    gap: 9px 12px;
  }

  #rk-wood-guide .rk-wood-hero-tag {
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 999px;
    color: var(--rk-white);
    font-size: 0.67rem;
    font-weight: 850;
    line-height: 1.2;
    padding: 8px 13px;
  }

  #rk-wood-guide .rk-wood-byline {
    color: #cae0e6;
    font-size: 0.68rem;
    font-weight: 720;
    margin-top: 27px;
  }

  #rk-wood-guide .rk-wood-byline strong {
    color: var(--rk-white);
  }

  #rk-wood-guide .rk-wood-hero-metrics {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 28px;
  }

  #rk-wood-guide .rk-wood-hero-metric {
    background: rgba(255, 255, 255, 0.065);
    border: 1px solid rgba(255, 255, 255, 0.17);
    border-radius: 14px;
    min-width: 0;
    padding: 17px;
  }

  #rk-wood-guide .rk-wood-hero-metric b {
    color: var(--rk-white);
    display: block;
    font-size: 0.73rem;
    margin-bottom: 4px;
  }

  #rk-wood-guide .rk-wood-hero-metric span {
    color: #c8e0e6;
    display: block;
    font-size: 0.64rem;
    line-height: 1.48;
  }

  #rk-wood-guide .rk-wood-shortcuts {
    align-items: center;
    background: #eef6f8;
    border-bottom: 1px solid var(--rk-line);
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    padding: 18px clamp(16px, 4vw, 52px);
  }

  #rk-wood-guide .rk-wood-shortcuts-label {
    color: var(--rk-navy);
    font-size: 0.79rem;
    font-weight: 850;
    letter-spacing: 0.06em;
    margin-right: 4px;
    text-transform: uppercase;
  }

  #rk-wood-guide .rk-wood-shortcuts a {
    background: var(--rk-white);
    border: 1px solid #c9dce3;
    border-radius: 999px;
    color: var(--rk-navy);
    display: inline-flex;
    font-size: 0.78rem;
    font-weight: 730;
    line-height: 1.25;
    padding: 8px 12px;
    text-decoration: none;
  }

  #rk-wood-guide .rk-wood-shortcuts a:hover {
    background: var(--rk-navy);
    border-color: var(--rk-navy);
    color: var(--rk-white);
  }

  #rk-wood-guide .rk-wood-section {
    padding: clamp(46px, 7vw, 86px) clamp(20px, 6vw, 82px);
    scroll-margin-top: 22px;
  }

  #rk-wood-guide .rk-wood-section + .rk-wood-section {
    border-top: 1px solid var(--rk-line);
  }

  #rk-wood-guide .rk-wood-section-soft {
    background: var(--rk-soft);
  }

  #rk-wood-guide .rk-wood-section-dark {
    background: var(--rk-navy);
    color: #edf7fa;
  }

  #rk-wood-guide .rk-wood-section-dark strong,
  #rk-wood-guide .rk-wood-section-dark .rk-wood-section-title {
    color: var(--rk-white);
  }

  #rk-wood-guide .rk-wood-section-dark .rk-wood-lead {
    color: #d9edf2;
  }

  #rk-wood-guide .rk-wood-section-dark > p a {
    color: #7fe1ec;
    font-weight: 700;
  }

  #rk-wood-guide .rk-wood-section-dark > p a:hover {
    color: #ffffff;
  }

  #rk-wood-guide .rk-wood-section-dark .rk-wood-card,
  #rk-wood-guide .rk-wood-section-dark .rk-wood-card p {
    color: #42535e;
  }

  #rk-wood-guide .rk-wood-section-dark .rk-wood-card strong {
    color: var(--rk-navy);
  }

  #rk-wood-guide .rk-wood-section-dark .rk-wood-card a {
    color: #056c91;
    font-weight: 700;
  }

  #rk-wood-guide .rk-wood-section-dark .rk-wood-card a:hover {
    color: var(--rk-orange-dark);
  }

  #rk-wood-guide .rk-wood-section-title,
  #rk-wood-guide .rk-wood-author-title {
    color: var(--rk-navy);
    font-size: clamp(1.62rem, 3.4vw, 2.65rem);
    letter-spacing: -0.035em;
    line-height: 1.14;
    margin: 0 0 18px;
  }

  #rk-wood-guide .rk-wood-lead {
    color: var(--rk-muted);
    font-size: 1.08rem;
    max-width: 930px;
  }

  #rk-wood-guide .rk-wood-answer {
    background: linear-gradient(135deg, #effafc, #ffffff);
    border: 1px solid #bce3ea;
    border-left: 6px solid var(--rk-cyan);
    border-radius: var(--rk-radius);
    box-shadow: 0 12px 30px rgba(16, 45, 66, 0.07);
    margin-top: 24px;
    padding: clamp(22px, 4vw, 36px);
  }

  #rk-wood-guide .rk-wood-answer-label {
    color: var(--rk-blue);
    display: block;
    font-size: 0.76rem;
    font-weight: 850;
    letter-spacing: 0.09em;
    margin-bottom: 9px;
    text-transform: uppercase;
  }

  #rk-wood-guide .rk-wood-answer p {
    font-size: 1.11rem;
    margin: 0;
  }

  #rk-wood-guide .rk-wood-grid-2,
  #rk-wood-guide .rk-wood-grid-3,
  #rk-wood-guide .rk-wood-grid-4 {
    display: grid;
    gap: 18px;
    margin-top: 28px;
  }

  #rk-wood-guide .rk-wood-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-wood-guide .rk-wood-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-wood-guide .rk-wood-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #rk-wood-guide .rk-wood-card {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    box-shadow: 0 8px 24px rgba(16, 45, 66, 0.055);
    min-width: 0;
    padding: 23px;
  }

  #rk-wood-guide .rk-wood-card-number {
    align-items: center;
    background: var(--rk-blue-soft);
    border-radius: 50%;
    color: var(--rk-blue);
    display: inline-flex;
    font-size: 0.84rem;
    font-weight: 850;
    height: 36px;
    justify-content: center;
    margin-bottom: 13px;
    width: 36px;
  }

  #rk-wood-guide .rk-wood-card h3,
  #rk-wood-guide .rk-wood-tool h3,
  #rk-wood-guide .rk-wood-result-card h3 {
    color: var(--rk-navy);
    font-size: 1.17rem;
    line-height: 1.32;
    margin: 0 0 10px;
  }

  #rk-wood-guide .rk-wood-card p:last-child {
    margin-bottom: 0;
  }

  #rk-wood-guide .rk-wood-callout {
    background: var(--rk-orange-soft);
    border: 1px solid #f2c8a8;
    border-radius: 16px;
    color: #693515;
    margin-top: 24px;
    padding: 19px 21px;
  }

  #rk-wood-guide .rk-wood-callout strong {
    color: #7f3e14;
  }

  #rk-wood-guide .rk-wood-note {
    background: var(--rk-blue-soft);
    border: 1px solid #bddfe8;
    border-radius: 16px;
    color: #17495b;
    margin-top: 22px;
    padding: 18px 20px;
  }

  #rk-wood-guide .rk-wood-list {
    margin: 18px 0 0;
    padding: 0;
  }

  #rk-wood-guide .rk-wood-list li {
    list-style: none;
    margin: 10px 0;
    padding-left: 28px;
    position: relative;
  }

  #rk-wood-guide .rk-wood-list li::before {
    align-items: center;
    background: var(--rk-green-soft);
    border-radius: 50%;
    color: var(--rk-green);
    content: "✓";
    display: flex;
    font-size: 0.75rem;
    font-weight: 900;
    height: 19px;
    justify-content: center;
    left: 0;
    position: absolute;
    top: 0.33em;
    width: 19px;
  }

  #rk-wood-guide .rk-wood-tool {
    background: linear-gradient(180deg, #ffffff 0%, #f6fbfc 100%);
    border: 1px solid #bddce4;
    border-radius: 25px;
    box-shadow: var(--rk-shadow);
    margin-top: 30px;
    overflow: hidden;
  }

  #rk-wood-guide .rk-wood-tool-head {
    background: linear-gradient(135deg, var(--rk-navy), var(--rk-navy-2));
    color: var(--rk-white);
    padding: clamp(24px, 4vw, 38px);
  }

  #rk-wood-guide .rk-wood-tool-head .rk-wood-eyebrow {
    color: #8ee8f1;
  }

  #rk-wood-guide .rk-wood-tool-head h3 {
    color: var(--rk-white);
    font-size: clamp(1.35rem, 3vw, 2rem);
    margin-bottom: 10px;
  }

  #rk-wood-guide .rk-wood-tool-head p {
    color: #dcecf1;
    margin: 0;
    max-width: 900px;
  }

  #rk-wood-guide .rk-wood-tool-body {
    padding: clamp(20px, 4vw, 38px);
  }

  #rk-wood-guide .rk-wood-fields {
    display: grid;
    gap: 17px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-wood-guide .rk-wood-field {
    min-width: 0;
  }

  #rk-wood-guide .rk-wood-field label,
  #rk-wood-guide .rk-wood-fieldset legend {
    color: var(--rk-navy);
    display: block;
    font-size: 0.86rem;
    font-weight: 780;
    line-height: 1.35;
    margin-bottom: 7px;
  }

  #rk-wood-guide .rk-wood-field small {
    color: var(--rk-muted);
    display: block;
    font-size: 0.75rem;
    line-height: 1.45;
    margin-top: 5px;
  }

  #rk-wood-guide .rk-wood-field input,
  #rk-wood-guide .rk-wood-field select {
    appearance: none;
    background-color: var(--rk-white);
    border: 1px solid #b6cbd3;
    border-radius: 11px;
    color: var(--rk-ink);
    font: inherit;
    min-height: 48px;
    padding: 10px 12px;
    width: 100%;
  }

  #rk-wood-guide .rk-wood-field select {
    background-image:
      linear-gradient(45deg, transparent 50%, var(--rk-navy) 50%),
      linear-gradient(135deg, var(--rk-navy) 50%, transparent 50%);
    background-position:
      calc(100% - 17px) 21px,
      calc(100% - 12px) 21px;
    background-repeat: no-repeat;
    background-size: 5px 5px, 5px 5px;
    padding-right: 34px;
  }

  #rk-wood-guide .rk-wood-field input:disabled {
    background: #edf2f4;
    color: #71808a;
    cursor: not-allowed;
  }

  #rk-wood-guide .rk-wood-field-wide {
    grid-column: 1 / -1;
  }

  #rk-wood-guide .rk-wood-help {
    background: var(--rk-yellow-soft);
    border: 1px solid #ead79b;
    border-radius: 13px;
    color: #624d18;
    font-size: 0.87rem;
    margin-top: 18px;
    padding: 14px 16px;
  }

  #rk-wood-guide .rk-wood-compare-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 25px;
  }

  #rk-wood-guide .rk-wood-species-card {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 19px;
    box-shadow: 0 10px 28px rgba(16, 45, 66, 0.075);
    min-width: 0;
    overflow: hidden;
  }

  #rk-wood-guide .rk-wood-species-head {
    background:
      repeating-linear-gradient(8deg, transparent 0, transparent 11px, rgba(255,255,255,.06) 12px, rgba(255,255,255,.06) 13px),
      linear-gradient(135deg, #173e58, #0e7187);
    color: var(--rk-white);
    min-height: 148px;
    padding: 22px;
  }

  #rk-wood-guide .rk-wood-species-head h4 {
    color: var(--rk-white);
    font-size: 1.42rem;
    line-height: 1.2;
    margin: 0 0 7px;
  }

  #rk-wood-guide .rk-wood-species-head p {
    color: #d9eef2;
    font-size: 0.79rem;
    line-height: 1.45;
    margin: 0;
  }

  #rk-wood-guide .rk-wood-species-body {
    padding: 20px;
  }

  #rk-wood-guide .rk-wood-metrics {
    display: grid;
    gap: 9px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 19px;
  }

  #rk-wood-guide .rk-wood-metric {
    background: var(--rk-soft);
    border-radius: 11px;
    min-width: 0;
    padding: 11px;
  }

  #rk-wood-guide .rk-wood-metric span {
    color: var(--rk-muted);
    display: block;
    font-size: 0.68rem;
    line-height: 1.25;
    text-transform: uppercase;
  }

  #rk-wood-guide .rk-wood-metric strong {
    display: block;
    font-size: 1rem;
    margin-top: 3px;
  }

  #rk-wood-guide .rk-wood-tag {
    background: var(--rk-blue-soft);
    border: 1px solid #b8dfe8;
    border-radius: 999px;
    color: var(--rk-blue);
    display: inline-flex;
    font-size: 0.73rem;
    font-weight: 800;
    line-height: 1.25;
    margin: 0 5px 8px 0;
    padding: 6px 9px;
  }

  #rk-wood-guide .rk-wood-tag-warn {
    background: var(--rk-yellow-soft);
    border-color: #e6d393;
    color: #76560a;
  }

  #rk-wood-guide .rk-wood-species-detail {
    border-top: 1px solid var(--rk-line);
    margin-top: 10px;
    padding-top: 13px;
  }

  #rk-wood-guide .rk-wood-species-detail dt {
    color: var(--rk-navy);
    font-size: 0.77rem;
    font-weight: 820;
    margin-top: 12px;
  }

  #rk-wood-guide .rk-wood-species-detail dd {
    color: #42535e;
    font-size: 0.85rem;
    line-height: 1.55;
    margin: 3px 0 0;
  }

  #rk-wood-guide .rk-wood-data-note {
    color: var(--rk-muted);
    font-size: 0.79rem;
    line-height: 1.55;
    margin: 18px 0 0;
  }

  #rk-wood-guide .rk-wood-form-grid {
    display: grid;
    gap: 17px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #rk-wood-guide .rk-wood-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    margin-top: 22px;
  }

  #rk-wood-guide .rk-wood-button {
    align-items: center;
    background: var(--rk-orange);
    border: 0;
    border-radius: 12px;
    color: var(--rk-white);
    cursor: pointer;
    display: inline-flex;
    font-size: 0.95rem;
    font-weight: 820;
    justify-content: center;
    min-height: 48px;
    padding: 11px 20px;
  }

  #rk-wood-guide .rk-wood-button:hover {
    background: var(--rk-orange-dark);
  }

  #rk-wood-guide .rk-wood-button-secondary {
    background: #dfecef;
    color: var(--rk-navy);
  }

  #rk-wood-guide .rk-wood-button-secondary:hover {
    background: #cbdfe5;
  }

  #rk-wood-guide .rk-wood-result {
    border-top: 1px solid var(--rk-line);
    margin-top: 28px;
    padding-top: 28px;
  }

  #rk-wood-guide .rk-wood-result-status {
    align-items: flex-start;
    background: var(--rk-blue-soft);
    border: 1px solid #b9dde5;
    border-radius: 17px;
    display: flex;
    gap: 14px;
    margin-bottom: 20px;
    padding: 18px;
  }

  #rk-wood-guide .rk-wood-status-icon {
    align-items: center;
    background: var(--rk-blue);
    border-radius: 50%;
    color: var(--rk-white);
    display: flex;
    flex: 0 0 auto;
    font-weight: 900;
    height: 38px;
    justify-content: center;
    width: 38px;
  }

  #rk-wood-guide .rk-wood-result-status strong {
    display: block;
    font-size: 1.1rem;
    margin-bottom: 3px;
  }

  #rk-wood-guide .rk-wood-result-status p {
    color: #315562;
    font-size: 0.88rem;
    margin: 0;
  }

  #rk-wood-guide .rk-wood-status-good {
    background: var(--rk-green-soft);
    border-color: #b7dfd0;
  }

  #rk-wood-guide .rk-wood-status-good .rk-wood-status-icon {
    background: var(--rk-green);
  }

  #rk-wood-guide .rk-wood-status-warn {
    background: var(--rk-yellow-soft);
    border-color: #e7d28e;
  }

  #rk-wood-guide .rk-wood-status-warn .rk-wood-status-icon {
    background: var(--rk-yellow);
  }

  #rk-wood-guide .rk-wood-status-alert {
    background: var(--rk-red-soft);
    border-color: #e8bbb7;
  }

  #rk-wood-guide .rk-wood-status-alert .rk-wood-status-icon {
    background: var(--rk-red);
  }

  #rk-wood-guide .rk-wood-result-grid {
    display: grid;
    gap: 17px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-wood-guide .rk-wood-result-card {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    min-width: 0;
    padding: 20px;
  }

  #rk-wood-guide .rk-wood-result-card ul {
    margin: 12px 0 0;
    padding-left: 19px;
  }

  #rk-wood-guide .rk-wood-result-card li {
    font-size: 0.86rem;
    margin: 8px 0;
  }

  #rk-wood-guide .rk-wood-result-number {
    color: var(--rk-blue);
    font-size: 1.55rem;
    font-weight: 880;
    line-height: 1.2;
  }

  #rk-wood-guide .rk-wood-result-caption {
    color: var(--rk-muted);
    font-size: 0.76rem;
    line-height: 1.4;
    margin-top: 4px;
  }

  #rk-wood-guide .rk-wood-check {
    align-items: flex-start;
    border-bottom: 1px solid #edf1f3;
    display: flex;
    font-size: 0.84rem;
    gap: 8px;
    padding: 8px 0;
  }

  #rk-wood-guide .rk-wood-check:last-child {
    border: 0;
  }

  #rk-wood-guide .rk-wood-check-mark {
    align-items: center;
    border-radius: 50%;
    color: var(--rk-white);
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 0.7rem;
    font-weight: 900;
    height: 20px;
    justify-content: center;
    margin-top: 2px;
    width: 20px;
  }

  #rk-wood-guide .rk-wood-check-ok {
    background: var(--rk-green);
  }

  #rk-wood-guide .rk-wood-check-missing {
    background: var(--rk-yellow);
  }

  #rk-wood-guide .rk-wood-check-alert {
    background: var(--rk-red);
  }

  #rk-wood-guide .rk-wood-layer-module {
    background: #f7fafb;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    margin-top: 20px;
    padding: 20px;
  }

  #rk-wood-guide .rk-wood-layer-module h4 {
    color: var(--rk-navy);
    font-size: 1.04rem;
    margin: 0 0 14px;
  }

  #rk-wood-guide .rk-wood-layers {
    display: grid;
    gap: 9px;
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  #rk-wood-guide .rk-wood-layer {
    border-radius: 13px;
    min-width: 0;
    padding: 14px;
  }

  #rk-wood-guide .rk-wood-layer span {
    display: block;
    font-size: 0.67rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }

  #rk-wood-guide .rk-wood-layer strong {
    display: block;
    font-size: 0.9rem;
    line-height: 1.3;
    margin-top: 4px;
  }

  #rk-wood-guide .rk-wood-layer small {
    display: block;
    font-size: 0.71rem;
    line-height: 1.35;
    margin-top: 4px;
  }

  #rk-wood-guide .rk-wood-layer-1 {
    background: #ddbd8a;
  }

  #rk-wood-guide .rk-wood-layer-2 {
    background: #ead3ad;
  }

  #rk-wood-guide .rk-wood-layer-3 {
    background: #dce9ec;
  }

  #rk-wood-guide .rk-wood-layer-4 {
    background: #c9d0d3;
  }

  #rk-wood-guide .rk-wood-layer-5 {
    background: #d5eef3;
  }

  #rk-wood-guide .rk-wood-rbar-wrap {
    margin-top: 20px;
  }

  #rk-wood-guide .rk-wood-rbar-labels {
    display: flex;
    font-size: 0.75rem;
    justify-content: space-between;
    margin-bottom: 6px;
  }

  #rk-wood-guide .rk-wood-rbar {
    background: #d9e5e9;
    border-radius: 999px;
    display: flex;
    height: 18px;
    overflow: hidden;
  }

  #rk-wood-guide .rk-wood-rbar-product {
    background: var(--rk-orange);
    min-width: 0;
    transition: width 250ms ease;
  }

  #rk-wood-guide .rk-wood-rbar-underlay {
    background: var(--rk-cyan);
    min-width: 0;
    transition: width 250ms ease;
  }

  #rk-wood-guide .rk-wood-rbar-note {
    color: var(--rk-muted);
    font-size: 0.75rem;
    line-height: 1.5;
    margin: 8px 0 0;
  }

  #rk-wood-guide .rk-wood-cta {
    background:
      radial-gradient(circle at 90% 10%, rgba(48, 183, 201, 0.23), transparent 28%),
      linear-gradient(135deg, #102d42, #17435d);
    border-radius: 24px;
    color: #eaf5f7;
    margin-top: 31px;
    padding: clamp(25px, 5vw, 44px);
  }

  #rk-wood-guide .rk-wood-cta-title {
    color: var(--rk-white);
    font-size: clamp(1.28rem, 2.7vw, 1.85rem);
    font-weight: 850;
    line-height: 1.25;
    margin-bottom: 10px;
  }

  #rk-wood-guide .rk-wood-cta p {
    color: #dcebef;
    margin-bottom: 19px;
    max-width: 900px;
  }

  #rk-wood-guide .rk-wood-cta-button {
    background: var(--rk-orange);
    border-radius: 12px;
    color: var(--rk-white);
    display: inline-flex;
    font-weight: 850;
    line-height: 1.3;
    padding: 13px 19px;
    text-decoration: none;
  }

  #rk-wood-guide .rk-wood-cta-button:hover {
    background: #ff954e;
    color: var(--rk-white);
  }

  #rk-wood-guide .rk-wood-link-disclosure {
    color: #b9d3da;
    display: block;
    font-size: 0.72rem;
    line-height: 1.5;
    margin-top: 12px;
  }

  #rk-wood-guide .rk-wood-compare-table {
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    margin-top: 25px;
    overflow: hidden;
  }

  #rk-wood-guide .rk-wood-table-row {
    display: grid;
    grid-template-columns: minmax(170px, 0.85fr) repeat(2, minmax(0, 1fr));
  }

  #rk-wood-guide .rk-wood-table-row > div {
    border-bottom: 1px solid var(--rk-line);
    min-width: 0;
    padding: 16px;
  }

  #rk-wood-guide .rk-wood-table-row:last-child > div {
    border-bottom: 0;
  }

  #rk-wood-guide .rk-wood-table-row > div + div {
    border-left: 1px solid var(--rk-line);
  }

  #rk-wood-guide .rk-wood-table-head {
    background: var(--rk-navy);
    color: var(--rk-white);
    font-weight: 820;
  }

  #rk-wood-guide .rk-wood-table-label {
    background: var(--rk-soft);
    color: var(--rk-navy);
    font-weight: 820;
  }

  #rk-wood-guide .rk-wood-steps {
    counter-reset: rk-step;
    display: grid;
    gap: 15px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 26px;
  }

  #rk-wood-guide .rk-wood-step {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    counter-increment: rk-step;
    padding: 21px;
  }

  #rk-wood-guide .rk-wood-step::before {
    align-items: center;
    background: var(--rk-orange);
    border-radius: 50%;
    color: var(--rk-white);
    content: counter(rk-step);
    display: flex;
    font-size: 0.82rem;
    font-weight: 900;
    height: 34px;
    justify-content: center;
    margin-bottom: 12px;
    width: 34px;
  }

  #rk-wood-guide .rk-wood-step h3 {
    color: var(--rk-navy);
    font-size: 1.05rem;
    margin: 0 0 7px;
  }

  #rk-wood-guide .rk-wood-step p {
    color: var(--rk-muted);
    font-size: 0.87rem;
    margin: 0;
  }

  #rk-wood-guide .rk-wood-mistakes {
    display: grid;
    gap: 13px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 25px;
  }

  #rk-wood-guide .rk-wood-mistake {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 15px;
    display: grid;
    gap: 12px;
    grid-template-columns: 37px minmax(0, 1fr);
    padding: 18px;
  }

  #rk-wood-guide .rk-wood-mistake-icon {
    align-items: center;
    background: var(--rk-red-soft);
    border-radius: 50%;
    color: var(--rk-red);
    display: flex;
    font-weight: 900;
    height: 37px;
    justify-content: center;
    width: 37px;
  }

  #rk-wood-guide .rk-wood-mistake strong {
    display: block;
    margin-bottom: 3px;
  }

  #rk-wood-guide .rk-wood-mistake p {
    color: var(--rk-muted);
    font-size: 0.86rem;
    margin: 0;
  }

  #rk-wood-guide .rk-wood-checklist {
    display: grid;
    gap: 11px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 25px;
  }

  #rk-wood-guide .rk-wood-checklist-item {
    align-items: flex-start;
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 13px;
    display: flex;
    gap: 11px;
    padding: 15px;
  }

  #rk-wood-guide .rk-wood-checklist-item span {
    align-items: center;
    background: var(--rk-green-soft);
    border-radius: 50%;
    color: var(--rk-green);
    display: flex;
    flex: 0 0 auto;
    font-size: 0.75rem;
    font-weight: 900;
    height: 24px;
    justify-content: center;
    margin-top: 2px;
    width: 24px;
  }

  #rk-wood-guide .rk-wood-source-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 26px;
  }

  #rk-wood-guide .rk-wood-source-card {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    padding: 20px;
  }

  #rk-wood-guide .rk-wood-source-card a {
    color: var(--rk-navy);
    font-weight: 820;
  }

  #rk-wood-guide .rk-wood-source-card p {
    color: var(--rk-muted);
    font-size: 0.84rem;
    margin: 8px 0 0;
  }

  #rk-wood-guide .rk-wood-responsibility {
    background: var(--rk-yellow-soft);
    border: 1px solid #e9d699;
    border-radius: 16px;
    margin-top: 21px;
    padding: 19px 21px;
  }

  #rk-wood-guide .rk-wood-responsibility p {
    color: #5e4c1d;
    font-size: 0.85rem;
    margin: 0;
  }

  #rk-wood-guide .rk-wood-faq {
    display: grid;
    gap: 11px;
    margin-top: 24px;
  }

  #rk-wood-guide .rk-wood-faq details {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    overflow: hidden;
  }

  #rk-wood-guide .rk-wood-faq summary {
    color: var(--rk-navy);
    cursor: pointer;
    font-weight: 820;
    list-style: none;
    padding: 18px 50px 18px 19px;
    position: relative;
  }

  #rk-wood-guide .rk-wood-faq summary::-webkit-details-marker {
    display: none;
  }

  #rk-wood-guide .rk-wood-faq summary::after {
    color: var(--rk-orange);
    content: "+";
    font-size: 1.5rem;
    font-weight: 500;
    position: absolute;
    right: 20px;
    top: 12px;
  }

  #rk-wood-guide .rk-wood-faq details[open] summary::after {
    content: "−";
  }

  #rk-wood-guide .rk-wood-faq-answer {
    border-top: 1px solid var(--rk-line);
    color: #465761;
    padding: 17px 19px 18px;
  }

  #rk-wood-guide .rk-wood-faq-answer p {
    margin: 0;
  }

  #rk-wood-guide .rk-wood-author {
    background: linear-gradient(135deg, #eef7f9, #ffffff);
    border-top: 1px solid var(--rk-line);
    padding: clamp(46px, 7vw, 86px) clamp(20px, 6vw, 82px);
    scroll-margin-top: 22px;
  }

  #rk-wood-guide .rk-wood-author-layout {
    display: grid;
    gap: clamp(25px, 5vw, 48px);
    grid-template-columns: minmax(190px, 0.48fr) minmax(0, 1.52fr);
    margin-top: 27px;
  }

  #rk-wood-guide .rk-wood-author-side {
    text-align: center;
  }

  #rk-wood-guide .rk-wood-author-photo {
    border: 6px solid var(--rk-white);
    border-radius: 50%;
    box-shadow: 0 12px 30px rgba(16, 45, 66, 0.16);
    margin: 0 auto 16px;
    max-width: 180px;
    overflow: hidden;
  }

  #rk-wood-guide .rk-wood-author-photo img {
    display: block;
    height: auto;
    width: 100%;
  }

  #rk-wood-guide .rk-wood-author-name a {
    color: var(--rk-navy);
    font-size: 1.22rem;
    font-weight: 880;
  }

  #rk-wood-guide .rk-wood-author-role {
    color: var(--rk-muted);
    font-size: 0.82rem;
    line-height: 1.5;
    margin-top: 5px;
  }

  #rk-wood-guide .rk-wood-author-social {
    display: flex;
    gap: 8px;
    justify-content: center;
    margin-top: 14px;
  }

  #rk-wood-guide .rk-wood-author-social a {
    align-items: center;
    background: var(--rk-navy);
    border-radius: 50%;
    color: var(--rk-white);
    display: flex;
    font-size: 0.82rem;
    font-weight: 850;
    height: 35px;
    justify-content: center;
    text-decoration: none;
    width: 35px;
  }

  #rk-wood-guide .rk-wood-author-quote {
    border-left: 5px solid var(--rk-orange);
    color: var(--rk-navy);
    font-size: 1.16rem;
    font-weight: 750;
    line-height: 1.55;
    margin-bottom: 21px;
    padding-left: 18px;
  }

  #rk-wood-guide .rk-wood-author-main > p {
    color: #455762;
  }

  #rk-wood-guide .rk-wood-author-facts {
    display: grid;
    gap: 11px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 21px;
  }

  #rk-wood-guide .rk-wood-author-fact {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 13px;
    color: var(--rk-muted);
    font-size: 0.77rem;
    line-height: 1.45;
    padding: 14px;
  }

  #rk-wood-guide .rk-wood-author-fact strong {
    display: block;
    font-size: 0.79rem;
    margin-bottom: 3px;
  }

  #rk-wood-guide .rk-wood-visually-hidden {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    white-space: nowrap;
    width: 1px;
  }

  @media (max-width: 1050px) {
    #rk-wood-guide .rk-wood-grid-4 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-wood-guide .rk-wood-form-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-wood-guide .rk-wood-layers {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
  }

  @media (max-width: 820px) {
    #rk-wood-guide {
      font-size: 16px;
    }

    #rk-wood-guide .rk-wood-hero-metrics,
    #rk-wood-guide .rk-wood-grid-3,
    #rk-wood-guide .rk-wood-compare-grid,
    #rk-wood-guide .rk-wood-result-grid,
    #rk-wood-guide .rk-wood-steps {
      grid-template-columns: 1fr;
    }

    #rk-wood-guide .rk-wood-fields {
      grid-template-columns: 1fr;
    }

    #rk-wood-guide .rk-wood-table-row {
      border-bottom: 1px solid var(--rk-line);
      display: block;
      padding: 0;
    }

    #rk-wood-guide .rk-wood-table-row:last-child {
      border-bottom: 0;
    }

    #rk-wood-guide .rk-wood-table-row > div {
      border: 0;
      padding: 13px 15px;
    }

    #rk-wood-guide .rk-wood-table-row > div + div {
      border-left: 0;
      border-top: 1px dashed var(--rk-line);
    }

    #rk-wood-guide .rk-wood-table-head > div:not(:first-child)::before {
      color: #b8d4dc;
      content: "Wariant: ";
      font-size: 0.68rem;
      text-transform: uppercase;
    }

    #rk-wood-guide .rk-wood-table-row:not(.rk-wood-table-head) > div:nth-child(2)::before {
      color: var(--rk-muted);
      content: "Deska lita: ";
      display: block;
      font-size: 0.68rem;
      font-weight: 800;
      text-transform: uppercase;
    }

    #rk-wood-guide .rk-wood-table-row:not(.rk-wood-table-head) > div:nth-child(3)::before {
      color: var(--rk-muted);
      content: "Deska warstwowa: ";
      display: block;
      font-size: 0.68rem;
      font-weight: 800;
      text-transform: uppercase;
    }

    #rk-wood-guide .rk-wood-author-layout {
      grid-template-columns: 1fr;
    }
  }

  @media (max-width: 640px) {
    #rk-wood-guide .rk-wood-shell {
      border-left: 0;
      border-radius: 0;
      border-right: 0;
    }

    #rk-wood-guide .rk-wood-shortcuts {
      align-items: stretch;
    }

    #rk-wood-guide .rk-wood-shortcuts-label {
      flex: 1 0 100%;
    }

    #rk-wood-guide .rk-wood-shortcuts a {
      flex: 1 1 calc(50% - 9px);
      justify-content: center;
      text-align: center;
    }

    #rk-wood-guide .rk-wood-grid-2,
    #rk-wood-guide .rk-wood-grid-4,
    #rk-wood-guide .rk-wood-form-grid,
    #rk-wood-guide .rk-wood-mistakes,
    #rk-wood-guide .rk-wood-checklist,
    #rk-wood-guide .rk-wood-source-grid,
    #rk-wood-guide .rk-wood-author-facts,
    #rk-wood-guide .rk-wood-layers {
      grid-template-columns: 1fr;
    }

    #rk-wood-guide .rk-wood-field-wide {
      grid-column: auto;
    }

    #rk-wood-guide .rk-wood-actions,
    #rk-wood-guide .rk-wood-button,
    #rk-wood-guide .rk-wood-cta-button {
      width: 100%;
    }

    #rk-wood-guide .rk-wood-actions {
      display: grid;
    }

    #rk-wood-guide .rk-wood-cta-button {
      justify-content: center;
      text-align: center;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    #rk-wood-guide *,
    #rk-wood-guide *::before,
    #rk-wood-guide *::after {
      scroll-behavior: auto !important;
      transition-duration: 0.01ms !important;
    }
  }
</style>

<article id="rk-wood-guide" aria-labelledby="rk-wood-visual-title">
  <div class="rk-wood-shell">
    <header class="rk-wood-hero">
      <div class="rk-wood-hero-inner">
        <span class="rk-wood-kicker">Drewniana podłoga · aktualizacja 2026</span>
        <div class="rk-wood-hero-title" id="rk-wood-visual-title">Drewno na ogrzewanie podłogowe — <span>dobór bez zgadywania</span></div>
        <p class="rk-wood-hero-lead">Sam gatunek drewna nie przesądza, czy podłoga będzie dobrze współpracowała z ogrzewaniem podłogowym. Sprawdź kurczliwość, konstrukcję deski, opór cieplny, sposób montażu, limit temperatury oraz warunki wilgotnościowe konkretnego produktu.</p>

        <div class="rk-wood-hero-tags" aria-label="Zakres poradnika">
          <span class="rk-wood-hero-tag">15 gatunków drewna</span>
          <span class="rk-wood-hero-tag">deska lita i warstwowa</span>
          <span class="rk-wood-hero-tag">opór cieplny R</span>
          <span class="rk-wood-hero-tag">montaż klejony i pływający</span>
          <span class="rk-wood-hero-tag">pompa ciepła</span>
        </div>

        <div class="rk-wood-byline">
          <span>Autor: <strong>Robert Kucharski</strong></span>
          <span>Czas czytania: około 20 minut</span>
          <span>Aktualizacja techniczna: 10 września 2026 r.</span>
        </div>

        <div class="rk-wood-hero-metrics" aria-label="Najważniejsze zasady doboru">
          <div class="rk-wood-hero-metric"><b>Gatunek drewna</b><span>Pokazuje materiałową tendencję do zmian wymiarowych, ale nie kwalifikuje gotowej deski.</span></div>
          <div class="rk-wood-hero-metric"><b>Konkretna deska</b><span>Konstrukcja, grubość, szerokość, opór R i sposób montażu decydują o rzeczywistych warunkach pracy.</span></div>
          <div class="rk-wood-hero-metric"><b>Projekt podłogówki</b><span>Musi połączyć opór podłogi z obciążeniem pomieszczenia, powierzchnią czynną, temperaturą wody i hydrauliką.</span></div>
        </div>
      </div>
    </header>

    <nav class="rk-wood-shortcuts" aria-label="Na skróty — wszystkie sekcje artykułu">
      <span class="rk-wood-shortcuts-label">Na skróty</span>
      <a href="#rk-wood-answer">Krótka odpowiedź</a>
      <a href="#rk-wood-decision">Co naprawdę wybierasz</a>
      <a href="#rk-wood-comparator">Porównywarka gatunków</a>
      <a href="#rk-wood-parameters">Jak czytać parametry</a>
      <a href="#rk-wood-construction">Lita czy warstwowa</a>
      <a href="#rk-wood-analyzer">Analizator deski</a>
      <a href="#rk-wood-resistance">Opór cieplny</a>
      <a href="#rk-wood-installation">Klejona czy pływająca</a>
      <a href="#rk-wood-climate">Temperatura i wilgotność</a>
      <a href="#rk-wood-design">Moc i hydraulika</a>
      <a href="#rk-wood-heat-pump">Pompa ciepła i przeszklenia</a>
      <a href="#rk-wood-substrate">Jastrych i montaż</a>
      <a href="#rk-wood-mistakes">Najczęstsze błędy</a>
      <a href="#rk-wood-checklist">Lista przed zakupem</a>
      <a href="#rk-wood-conclusions">Wnioski projektanta</a>
      <a href="#rk-wood-sources">Źródła</a>
      <a href="#rk-wood-faq">FAQ</a>
      <a href="#rk-wood-author">Autor</a>
    </nav>

    <section class="rk-wood-section" id="rk-wood-answer">
      <span class="rk-wood-eyebrow">Odpowiedź w 30 sekund</span>
      <h2 class="rk-wood-section-title">Czy drewno nadaje się na ogrzewanie podłogowe?</h2>
      <div class="rk-wood-answer">
        <span class="rk-wood-answer-label">Najkrótsza poprawna odpowiedź</span>
        <p><strong>Tak — jeżeli producent dopuścił konkretny produkt do takiego zastosowania, znamy jego deklarowany opór cieplny, przestrzegamy wymagań montażowych i klimatycznych, a projekt podłogówki potwierdza wymaganą moc w pomieszczeniu.</strong> Nazwa gatunku sama nie wystarcza. Dąb może występować jako cienka deska warstwowa i jako szeroka deska lita; dla instalacji są to dwa różne przypadki.</p>
      </div>
      <div class="rk-wood-grid-4">
        <article class="rk-wood-card"><span class="rk-wood-card-number">1</span><h3>Produkt</h3><p>Sprawdź konstrukcję, wymiary, przeznaczenie i dokumentację konkretnej deski, a nie wyłącznie nazwę drewna.</p></article>
        <article class="rk-wood-card"><span class="rk-wood-card-number">2</span><h3>Opór R</h3><p>Uwzględnij opór całej warstwy wykończeniowej. Zobacz, czym jest <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">opór cieplny R w ogrzewaniu podłogowym</a>.</p></article>
        <article class="rk-wood-card"><span class="rk-wood-card-number">3</span><h3>Warunki</h3><p>Temperatura powierzchni i zakres wilgotności względnej muszą odpowiadać instrukcji podłogi, kleju i systemu grzewczego.</p></article>
        <article class="rk-wood-card"><span class="rk-wood-card-number">4</span><h3>Projekt</h3><p>Wykończenie trzeba połączyć ze stratą ciepła, powierzchnią czynną, rozstawem rur i temperaturą wody.</p></article>
      </div>
      <div class="rk-wood-callout"><strong>Ważne:</strong> nie istnieje gatunek, który automatycznie gwarantuje bezproblemową pracę, ani jedna wartość R lub temperatury będąca samodzielnym „certyfikatem bezpieczeństwa” dla każdej podłogi i każdego budynku.</div>
    </section>

    <section class="rk-wood-section rk-wood-section-soft" id="rk-wood-decision">
      <span class="rk-wood-eyebrow">Hierarchia decyzji</span>
      <h2 class="rk-wood-section-title">Gatunek to początek analizy, nie gotowa odpowiedź</h2>
      <p class="rk-wood-lead">Gatunek pomaga przewidzieć, jak drewno reaguje na zmianę wilgotności i jak łatwo może się wgniatać. Nie opisuje jednak budowy gotowej deski, jakości suszenia, układu słojów, zamków, klejenia warstw ani warunków gwarancji.</p>
      <div class="rk-wood-grid-3">
        <article class="rk-wood-card"><h3>1. Czy produkt jest dopuszczony?</h3><p>Najpierw szukaj jednoznacznej informacji o ogrzewaniu podłogowym, dopuszczonym sposobie montażu, granicznej temperaturze i wymaganym mikroklimacie.</p></article>
        <article class="rk-wood-card"><h3>2. Czy parametry da się policzyć?</h3><p>Potrzebny jest deklarowany opór cieplny produktu i — przy montażu pływającym — podkładu. Sama przewodność gatunku jest tylko danymi pomocniczymi.</p></article>
        <article class="rk-wood-card"><h3>3. Czy pomieszczenie ma bilans?</h3><p>Ta sama deska może działać bez problemu w pokoju o małym obciążeniu i wymagać innych parametrów w strefie o dużej stracie ciepła.</p></article>
      </div>
      <p>Dlatego wpływ okładziny trzeba rozpatrywać razem z instalacją. Szerzej wyjaśnia to poradnik o tym, <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">jak rodzaj okładziny wpływa na wydajność podłogówki</a>.</p>
    </section>

    <section class="rk-wood-section" id="rk-wood-comparator">
      <span class="rk-wood-eyebrow">Narzędzie 1 z 2</span>
      <h2 class="rk-wood-section-title">Interaktywne porównanie 15 gatunków drewna</h2>
      <p class="rk-wood-lead">Wybierz maksymalnie trzy gatunki. Narzędzie zestawia wielkości materiałowe i ryzyka, ale celowo nie tworzy rankingu „najlepsze–najgorsze”: gotowa podłoga zależy od konstrukcji produktu i jego dokumentacji.</p>

      <div class="rk-wood-tool" id="rk-wood-comparator-tool">
        <div class="rk-wood-tool-head">
          <span class="rk-wood-eyebrow">Porównywarka materiałowa</span>
          <h3>Dąb, merbau, iroko, jesion, klon, robinia, dwa orzechy, sosna, modrzew, teak, buk, doussie, jatoba i wenge</h3>
          <p>Wartości reprezentatywne służą do porównania tendencji. Naturalne drewno wykazuje zmienność zależną m.in. od pochodzenia, przyrostu, wilgotności i kierunku anatomicznego.</p>
        </div>
        <div class="rk-wood-tool-body">
          <div class="rk-wood-fields">
            <div class="rk-wood-field">
              <label for="rk-wood-species-a">Pierwszy gatunek</label>
              <select id="rk-wood-species-a" data-rk-wood-compare="0"></select>
            </div>
            <div class="rk-wood-field">
              <label for="rk-wood-species-b">Drugi gatunek</label>
              <select id="rk-wood-species-b" data-rk-wood-compare="1"></select>
            </div>
            <div class="rk-wood-field">
              <label for="rk-wood-species-c">Trzeci gatunek</label>
              <select id="rk-wood-species-c" data-rk-wood-compare="2"></select>
            </div>
          </div>
          <div class="rk-wood-help"><strong>Jak czytać wynik:</strong> niższa kurczliwość i mniejsza różnica między kierunkiem stycznym a promieniowym mogą ograniczać tendencję do zmian wymiarowych, ale nie zastępują oceny szerokości, przekroju, wilgotności początkowej i konstrukcji deski.</div>
          <div class="rk-wood-compare-grid" id="rk-wood-compare-results" aria-live="polite"></div>
          <p class="rk-wood-data-note">Gęstość, całkowity skurcz promieniowy i styczny, współczynnik anizotropii, przewodność cieplna oraz twardość są wartościami reprezentatywnymi zestawionymi na podstawie kart CIRAD Tropix i USDA Forest Products Laboratory. Nie są deklaracją właściwości konkretnej partii ani konkretnego wyrobu.</p>
          <div class="rk-wood-callout"><strong>Ocena gatunku nie jest potwierdzeniem przydatności konkretnej podłogi.</strong> Ostateczna decyzja zależy od konstrukcji deski, całkowitego oporu R, sposobu montażu i warunków podanych w dokumentacji produktu.</div>
        </div>
      </div>
    </section>

    <section class="rk-wood-section rk-wood-section-soft" id="rk-wood-parameters">
      <span class="rk-wood-eyebrow">Cztery wielkości, cztery różne znaczenia</span>
      <h2 class="rk-wood-section-title">Jak czytać kurczliwość, anizotropię, gęstość i przewodność drewna?</h2>
      <p class="rk-wood-lead">W tabelach technicznych łatwo pomylić parametr materiału z oceną gotowej podłogi. Każda z poniższych wartości odpowiada na inne pytanie i żadna samodzielnie nie przesądza o przydatności deski.</p>
      <div class="rk-wood-grid-2">
        <article class="rk-wood-card">
          <h3>Skurcz promieniowy i styczny</h3>
          <p>Opisuje całkowitą zmianę wymiaru od stanu nasycenia włókien do stanu suchego w dwóch kierunkach anatomicznych. To nie jest prognoza szczeliny w milimetrach w Twoim salonie. W eksploatacji podłoga pracuje w znacznie węższym zakresie wilgotności, a wynik zależy też od sposobu przetarcia deski.</p>
        </article>
        <article class="rk-wood-card">
          <h3>Stosunek T/R, czyli anizotropia</h3>
          <p>Porównuje skurcz styczny z promieniowym. Większa różnica może sprzyjać paczeniu przekroju, lecz o zachowaniu gotowego elementu nadal decydują szerokość, grubość, układ słojów, konstrukcja i mocowanie.</p>
        </article>
        <article class="rk-wood-card">
          <h3>Gęstość i odporność na wgniecenia</h3>
          <p>Gęstość często koreluje z twardością, ale nie jest tym samym parametrem. Twarde drewno może dobrze znosić punktowe obciążenia, a jednocześnie wyraźnie reagować na zmianę wilgotności. Odporność użytkowa nie oznacza automatycznie stabilności wymiarowej.</p>
        </article>
        <article class="rk-wood-card">
          <h3>Przewodność λ a opór R</h3>
          <p>Przewodność cieplna λ jest właściwością materiału. Opór cieplny warstwy zależy także od grubości: w uproszczeniu R = d/λ. Dla deski warstwowej potrzebne są właściwości całego produktu, nie tylko warstwy wierzchniej.</p>
        </article>
      </div>
      <div class="rk-wood-note"><strong>Praktyczna konsekwencja:</strong> dwie deski z tego samego dębu mogą mieć różny R i inaczej reagować na mikroklimat, jeśli różnią się grubością, szerokością, układem warstw oraz montażem. Przy porównywaniu alternatyw pomocne jest również zestawienie <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/">podłogi drewnianej i paneli laminowanych</a> oraz wyjaśnienie, <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/">czy na podłogówkę nadają się tylko płytki</a>.</div>
    </section>

    <section class="rk-wood-section" id="rk-wood-construction">
      <span class="rk-wood-eyebrow">Budowa gotowego wyrobu</span>
      <h2 class="rk-wood-section-title">Deska lita czy warstwowa na ogrzewanie podłogowe?</h2>
      <p class="rk-wood-lead">Konstrukcja warstwowa może ograniczać część zmian geometrycznych dzięki krzyżowemu ułożeniu lub stabilizującemu podkładowi. Nie oznacza to stałej procentowej przewagi ani automatycznej zgody na każdą temperaturę. Liczy się projekt konkretnego wyrobu.</p>
      <div class="rk-wood-compare-table" role="table" aria-label="Porównanie deski litej i warstwowej">
        <div class="rk-wood-table-row rk-wood-table-head" role="row">
          <div role="columnheader">Kryterium</div>
          <div role="columnheader">Deska lita</div>
          <div role="columnheader">Deska warstwowa</div>
        </div>
        <div class="rk-wood-table-row" role="row">
          <div class="rk-wood-table-label" role="rowheader">Reakcja na wilgotność</div>
          <div role="cell">Element pracuje jako jeden przekrój drewna; znaczenie mają szerokość i kierunek słojów.</div>
          <div role="cell">Warstwy mogą stabilizować geometrię, lecz skuteczność zależy od ich materiału, układu i jakości klejenia.</div>
        </div>
        <div class="rk-wood-table-row" role="row">
          <div class="rk-wood-table-label" role="rowheader">Opór cieplny</div>
          <div role="cell">Można go wstępnie oszacować z grubości i λ, ale dokument wyrobu jest pewniejszy.</div>
          <div role="cell">Nie należy liczyć R wyłącznie z λ warstwy użytkowej; potrzebna jest wartość dla całego produktu.</div>
        </div>
        <div class="rk-wood-table-row" role="row">
          <div class="rk-wood-table-label" role="rowheader">Szerokość elementu</div>
          <div role="cell">Większa szerokość zwiększa widoczny skutek tej samej procentowej zmiany wymiaru.</div>
          <div role="cell">Konstrukcja może ograniczać zmianę, ale szerokie formaty nadal wymagają sprawdzenia instrukcji.</div>
        </div>
        <div class="rk-wood-table-row" role="row">
          <div class="rk-wood-table-label" role="rowheader">Decyzja zakupowa</div>
          <div role="cell">Wybór warunkowy: dopuszczenie produktu, wymiary, montaż i mikroklimat muszą być spójne.</div>
          <div role="cell">Zwykle łatwiej znaleźć wyrób zaprojektowany do podłogówki, ale potwierdzenie producenta nadal jest konieczne.</div>
        </div>
      </div>
      <div class="rk-wood-callout"><strong>Nie używaj skrótu „warstwowa zawsze dobra, lita zawsze zła”.</strong> Lepsza reguła brzmi: wybieraj produkt z kompletną dokumentacją, możliwie przewidywalną konstrukcją i parametrami pasującymi do obliczonej podłogówki.</div>
    </section>

    <section class="rk-wood-section rk-wood-section-soft" id="rk-wood-analyzer">
      <span class="rk-wood-eyebrow">Narzędzie 2 z 2</span>
      <h2 class="rk-wood-section-title">Analizator konkretnej deski na ogrzewanie podłogowe</h2>
      <p class="rk-wood-lead">Przepisz dane z karty produktu i założeń pomieszczenia. Wynik oddzieli przepływ ciepła, ryzyko eksploatacyjne i kompletność dokumentacji. To analiza warunków, nie rekomendacja zakupowa.</p>

      <div class="rk-wood-tool" id="rk-wood-board-tool">
        <div class="rk-wood-tool-head">
          <span class="rk-wood-eyebrow">Analiza konkretnego wyrobu</span>
          <h3>Co wiadomo o desce, czego brakuje i co trzeba przeliczyć w projekcie?</h3>
          <p>Wypełnij pola zgodnie z dokumentacją produktu. Jeśli producent nie podaje wartości, pozostaw pole puste — brak danych jest ważnym wynikiem, a nie powodem do zgadywania.</p>
        </div>
        <div class="rk-wood-tool-body">
          <form id="rk-wood-board-form">
            <div class="rk-wood-form-grid">
              <div class="rk-wood-field">
                <label for="rk-wood-board-species">Gatunek drewna</label>
                <select id="rk-wood-board-species" name="species"></select>
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-construction-input">Konstrukcja produktu</label>
                <select id="rk-wood-construction-input" name="construction">
                  <option value="solid">deska lita</option>
                  <option value="two" selected="">deska dwuwarstwowa</option>
                  <option value="three">deska trójwarstwowa</option>
                </select>
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-thickness">Grubość całkowita [mm]</label>
                <input id="rk-wood-thickness" name="thickness" type="number" min="6" max="35" step="0.5" value="14" inputmode="decimal">
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-width">Szerokość elementu [mm]</label>
                <input id="rk-wood-width" name="width" type="number" min="50" max="400" step="1" value="180" inputmode="numeric">
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-r-declared">Deklarowany R produktu [m²K/W]</label>
                <input id="rk-wood-r-declared" name="rDeclared" type="number" min="0.01" max="0.40" step="0.001" value="0.090" inputmode="decimal">
                <small>Wartość dla całej deski, nie samo λ drewna.</small>
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-install">Sposób montażu</label>
                <select id="rk-wood-install" name="installation">
                  <option value="glued" selected="">klejenie do podłoża</option>
                  <option value="floating">montaż pływający</option>
                </select>
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-underlay-r">R podkładu [m²K/W]</label>
                <input id="rk-wood-underlay-r" name="underlayR" type="number" min="0" max="0.30" step="0.001" value="0" inputmode="decimal" disabled="">
                <small>Aktywne dla montażu pływającego. Dla kleju sprawdź dane systemu klejowego.</small>
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-approval">Deklaracja do podłogówki</label>
                <select id="rk-wood-approval" name="approval">
                  <option value="yes" selected="">tak, potwierdzona</option>
                  <option value="unknown">brak informacji</option>
                  <option value="no">producent nie dopuszcza</option>
                </select>
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-max-temp">Maks. temperatura powierzchni [°C]</label>
                <input id="rk-wood-max-temp" name="maxTemp" type="number" min="20" max="40" step="0.5" value="27" inputmode="decimal">
                <small>Przepisz limit produktu; 27°C nie jest automatycznie wartością dla każdej deski.</small>
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-rh-min">Minimalna RH w pomieszczeniu [%]</label>
                <input id="rk-wood-rh-min" name="rhMin" type="number" min="20" max="70" step="1" value="40" inputmode="numeric">
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-rh-max">Maksymalna RH w pomieszczeniu [%]</label>
                <input id="rk-wood-rh-max" name="rhMax" type="number" min="30" max="85" step="1" value="60" inputmode="numeric">
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-load">Obciążenie cieplne pomieszczenia [W/m²]</label>
                <input id="rk-wood-load" name="heatLoad" type="number" min="10" max="180" step="1" value="55" inputmode="numeric">
                <small>Wartość z obliczeń dla aktywnej powierzchni grzewczej, nie ze średniej dla całego domu.</small>
              </div>
            </div>
            <div class="rk-wood-actions">
              <button class="rk-wood-button" type="submit">Przeanalizuj deskę</button>
              <button class="rk-wood-button rk-wood-button-secondary" id="rk-wood-example-reset" type="button">Przywróć przykład</button>
            </div>
          </form>

          <div class="rk-wood-result" id="rk-wood-analysis-result" aria-live="polite" aria-atomic="true">
            <div class="rk-wood-result-status">
              <span class="rk-wood-status-icon" aria-hidden="true">i</span>
              <div><strong>Wprowadź parametry i uruchom analizę</strong><p>Narzędzie nie zastępuje dokumentacji produktu ani obliczeń mocy podłogi.</p></div>
            </div>
          </div>
        </div>
      </div>

      <aside class="rk-wood-cta" aria-label="Projekt ogrzewania podłogowego pod wybraną deskę">
        <div class="rk-wood-cta-title">Analizator uporządkuje parametry deski. Projekt odpowie, czy podłoga dostarczy potrzebne ciepło.</div>
        <p>Opór wykończenia trzeba połączyć ze stratą ciepła każdego pomieszczenia, powierzchnią czynną, rozstawem rur, temperaturą wody, długościami pętli i przepływami. Dopiero taki zestaw pozwala ocenić wybraną podłogę w konkretnym budynku.</p>
        <a class="rk-wood-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Sprawdź wybraną podłogę w projekcie ogrzewania</a>
        <small class="rk-wood-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </aside>
    </section>

    <section class="rk-wood-section" id="rk-wood-resistance">
      <span class="rk-wood-eyebrow">Droga przepływu ciepła</span>
      <h2 class="rk-wood-section-title">Opór cieplny drewnianej podłogi: liczy się suma warstw</h2>
      <p class="rk-wood-lead">Dla jednorodnej warstwy przybliżenie ma postać R = d/λ, gdzie d to grubość w metrach, a λ — przewodność cieplna w W/(m·K). W gotowej desce warstwowej najlepszą daną jest R zadeklarowane dla całego produktu.</p>
      <div class="rk-wood-grid-3">
        <article class="rk-wood-card"><h3>Produkt drewniany</h3><p>Uwzględnij wszystkie warstwy, powłoki i geometrię wyrobu. Szacunek z gatunku jest tylko zastępstwem, gdy brakuje deklaracji.</p></article>
        <article class="rk-wood-card"><h3>Klej lub podkład</h3><p>Montaż pływający dodaje opór podkładu. W systemie klejonym trzeba stosować kompatybilny zestaw i przestrzegać grubości warstwy kleju.</p></article>
        <article class="rk-wood-card"><h3>Cały emiter</h3><p>Jastrych, rozstaw rur, temperatura wody i warunki brzegowe tworzą dalszą część modelu. Zasada działania została opisana w poradniku <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/">jak działa ogrzewanie podłogowe</a>.</p></article>
      </div>
      <div class="rk-wood-callout"><strong>Wartość 0,15 m²K/W nie jest uniwersalną gwarancją ani samodzielnym zakazem.</strong> Większy R zwykle wymaga większej różnicy temperatur, aby przekazać tę samą moc, lecz ostateczny wynik zależy od całego układu i obciążenia pomieszczenia. Zasady projektowania systemów płaszczyznowych porządkuje <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">omówienie PN-EN 1264</a>.</div>
    </section>

    <section class="rk-wood-section rk-wood-section-soft" id="rk-wood-installation">
      <span class="rk-wood-eyebrow">Warstwa montażowa ma znaczenie</span>
      <h2 class="rk-wood-section-title">Podłoga klejona czy pływająca?</h2>
      <div class="rk-wood-grid-2">
        <article class="rk-wood-card">
          <h3>Klejenie do przygotowanego podłoża</h3>
          <ul class="rk-wood-list">
            <li>zwykle eliminuje osobny podkład o istotnym oporze cieplnym;</li>
            <li>wymaga zgodności deski, kleju, gruntu i jastrychu;</li>
            <li>stawia wysokie wymagania równości, wytrzymałości i wilgotności podłoża;</li>
            <li>musi respektować dylatacje konstrukcyjne oraz instrukcję systemu.</li>
          </ul>
        </article>
        <article class="rk-wood-card">
          <h3>Montaż pływający</h3>
          <ul class="rk-wood-list">
            <li>dodaje do bilansu opór cieplny podkładu;</li>
            <li>wymaga dopuszczenia zamków i całego produktu do podłogówki;</li>
            <li>musi uwzględniać pola dylatacyjne i geometrię pomieszczeń;</li>
            <li>nie każdy „podkład do podłogówki” ma ten sam R.</li>
          </ul>
        </article>
      </div>
      <p>Nie wybieraj metody wyłącznie na podstawie hasła „lepiej przewodzi”. Porównaj kompletną instrukcję, możliwość przygotowania podłoża, akustykę, naprawialność i łączny opór warstw.</p>
    </section>

    <section class="rk-wood-section" id="rk-wood-climate">
      <span class="rk-wood-eyebrow">Warunki eksploatacji</span>
      <h2 class="rk-wood-section-title">Temperatura powierzchni i wilgotność powietrza przy drewnie</h2>
      <p class="rk-wood-lead">Drewno jest materiałem higroskopijnym: oddaje lub pobiera wilgoć, gdy zmieniają się warunki otoczenia. Ogrzewanie może przyspieszać odpowiedź materiału, ale źródłem zmian jest bilans wilgoci i temperatury, nie samo istnienie rur w posadzce.</p>
      <div class="rk-wood-grid-2">
        <article class="rk-wood-card"><h3>Limit z dokumentacji produktu</h3><p>Często spotykane 27°C należy traktować jako wartość wymagającą potwierdzenia dla konkretnej deski, a nie uniwersalny limit wynikający automatycznie z jednej normy. Czujnik podłogowy może wspierać ochronę powierzchni; zobacz, <a href="https://projekt-ogrzewania.pl/czujnik-podlogowy/">jak działa czujnik podłogowy</a>.</p></article>
        <article class="rk-wood-card"><h3>Zakres RH i spokojne zmiany</h3><p>Przestrzegaj zakresu wilgotności podanego przez producenta przez cały rok. Sama instalacja nie kontroluje RH. Pomocne są pomiar, wentylacja i świadome reagowanie na warunki sezonowe.</p></article>
      </div>
      <p>Temperatura powierzchni nie jest tym samym co <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalna temperatura zasilania podłogówki</a>. W praktyce dąży się do możliwie niskiej, ale wystarczającej temperatury wody; więcej w analizie <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/">optymalnej temperatury ogrzewania podłogowego</a>. Stabilniejszą pracę może wspierać <a href="https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/">sterowanie pogodowe</a>, jeśli jest prawidłowo ustawione.</p>
      <div class="rk-wood-note">Przeczytaj także, <a href="https://projekt-ogrzewania.pl/jak-ogrzewanie-podlogowe-wplywa-na-wilgotnosc-powietrza-w-domu/">jak ogrzewanie podłogowe wiąże się z wilgotnością w domu</a> oraz <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/">czy podłogówka „wysusza” powietrze</a>. To dwa różne pytania: pierwsze dotyczy fizyki wilgoci, drugie — odczuć i eksploatacji budynku.</div>
    </section>


    <section class="rk-wood-section rk-wood-section-dark" id="rk-wood-design">
      <span class="rk-wood-eyebrow">Od deski do parametrów instalacji</span>
      <h2 class="rk-wood-section-title">Jak drewniana podłoga wpływa na moc i hydraulikę podłogówki?</h2>
      <p class="rk-wood-lead">Drewno nie zwiększa strat ciepła budynku. Zwiększony opór wykończenia może natomiast ograniczyć moc oddawaną do pomieszczenia przy tych samych temperaturach wody i tej samej geometrii instalacji. To różnica między zapotrzebowaniem budynku a zdolnością emitera.</p>
      <div class="rk-wood-grid-3">
        <article class="rk-wood-card">
          <h3>1. Policz obciążenie</h3>
          <p>Podstawą jest <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne OZC</a> i podział wyniku na pomieszczenia. Zobacz również, <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">jak oblicza się straty ciepła</a>.</p>
        </article>
        <article class="rk-wood-card">
          <h3>2. Sprawdź powierzchnię czynną</h3>
          <p>Moc na metr kwadratowy trzeba odnieść do rzeczywiście ogrzewanej powierzchni. Dopiero wtedy dobiera się geometrię, w tym <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstaw rur 10 czy 15 cm</a>.</p>
        </article>
        <article class="rk-wood-card">
          <h3>3. Domknij hydraulikę</h3>
          <p>Przepływ wynika z mocy i przyjętej różnicy temperatur. Gatunek drewna nie narzuca „przyspieszenia wody”. Kontroluje się <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">długości pętli</a>, opory i nastawy <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrów na rozdzielaczu</a>.</p>
        </article>
      </div>
      <p>Nie ma jednej poprawnej długości pętli ani jednego rozstawu dla każdego domu. Układ wynika z powierzchni, średnicy rur, wymaganej mocy, oporów i dopuszczalnych temperatur. Punkt wyjścia pokazuje poradnik o tym, <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">jak zaplanować rozmieszczenie pętli grzewczych</a>.</p>
    </section>

    <section class="rk-wood-section" id="rk-wood-heat-pump">
      <span class="rk-wood-eyebrow">Sytuacje wymagające dokładniejszej kontroli</span>
      <h2 class="rk-wood-section-title">Drewno, pompa ciepła i duże przeszklenia</h2>
      <p class="rk-wood-lead">Przy pompie ciepła korzystna jest niska temperatura wody, a drewniana okładzina dodaje opór po stronie odbiornika. To nie jest sprzeczność, lecz warunek do wspólnego przeliczenia. Im większe obciążenie na metr aktywnej podłogi, tym mniej miejsca pozostaje na decyzje o wysokim R.</p>
      <div class="rk-wood-grid-2">
        <article class="rk-wood-card">
          <h3>Współpraca z pompą ciepła</h3>
          <p>Projekt powinien potwierdzić, czy podłoga pokryje obciążenie przy parametrach korzystnych dla źródła. Osobny poradnik omawia <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projekt podłogówki z pompą ciepła</a>.</p>
        </article>
        <article class="rk-wood-card">
          <h3>Strefy przy dużych oknach</h3>
          <p>Nie stosuj stałego narzutu mocy ani obowiązkowej szerokości pasa bez obliczeń. Wymaganie zależy od strat, geometrii i powierzchni czynnej; zobacz analizę <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/">podłogówki przy dużych przeszkleniach</a>.</p>
        </article>
      </div>
      <div class="rk-wood-callout"><strong>Sygnał do ponownego przeliczenia:</strong> wysokie obciążenie pomieszczenia, mała powierzchnia aktywna, gruba podłoga warstwowa, podkład o istotnym R albo niski limit temperatury produktu. Każdy z tych warunków zmniejsza margines, ale nie powinien być oceniany w oderwaniu od pozostałych.</div>
    </section>

    <section class="rk-wood-section rk-wood-section-soft" id="rk-wood-substrate">
      <span class="rk-wood-eyebrow">Przed ułożeniem pierwszej deski</span>
      <h2 class="rk-wood-section-title">Jastrych, protokół wygrzewania i przygotowanie montażu</h2>
      <p class="rk-wood-lead">Nawet dobrze dobrana podłoga może zostać uszkodzona przez wilgotne lub słabe podłoże, brak procedury uruchomienia albo montaż niezgodny z instrukcjami. Wartości graniczne i czas czynności trzeba brać z dokumentacji jastrychu, systemu grzewczego, kleju i podłogi.</p>
      <div class="rk-wood-steps">
        <article class="rk-wood-step"><h3>Zweryfikuj konstrukcję</h3><p>Ustal rodzaj podkładu i wymagania wykonawcze. Pomaga w tym <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">przewodnik po wylewkach na podłogówkę</a>.</p></article>
        <article class="rk-wood-step"><h3>Sprawdź grubość i pola</h3><p>Grubość nie jest jedną liczbą dla wszystkich mieszanek. Zobacz zasady doboru <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/">grubości wylewki betonowej</a>.</p></article>
        <article class="rk-wood-step"><h3>Rozplanuj dylatacje</h3><p>Przeniesienie i wykończenie szczelin musi być skoordynowane z okładziną; przeczytaj o <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacji brzegowej i dylatacjach</a>.</p></article>
        <article class="rk-wood-step"><h3>Wykonaj próbę i rozruch</h3><p>Przed zakryciem instalacji potrzebne są odbiory przewidziane dla systemu, a później kontrolowany protokół uruchomienia jastrychu.</p></article>
        <article class="rk-wood-step"><h3>Zmierz podłoże</h3><p>Metoda pomiaru i dopuszczalny wynik muszą odpowiadać rodzajowi jastrychu, kleju i podłogi. Sam termin „suche” jest niewystarczający.</p></article>
        <article class="rk-wood-step"><h3>Połącz instrukcje</h3><p>Inaczej przygotowuje się niektóre układy mokre i suche. Porównaj <a href="https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/">system mokry i suchy</a>, a następnie stosuj dokumentację konkretnego rozwiązania.</p></article>
      </div>
    </section>

    <section class="rk-wood-section" id="rk-wood-mistakes">
      <span class="rk-wood-eyebrow">Co najczęściej psuje dobrą decyzję</span>
      <h2 class="rk-wood-section-title">Najczęstsze błędy przy wyborze drewna na podłogówkę</h2>
      <div class="rk-wood-mistakes">
        <article class="rk-wood-mistake"><span class="rk-wood-mistake-icon">!</span><div><strong>Zakup po nazwie gatunku</strong><p>„Dąb” nie mówi jeszcze, czy deska jest lita czy warstwowa, ile ma milimetrów, jaki ma R i czy producent dopuszcza ją do ogrzewania.</p></div></article>
        <article class="rk-wood-mistake"><span class="rk-wood-mistake-icon">!</span><div><strong>Traktowanie 0,15 m²K/W jak certyfikatu</strong><p>Jedna wartość nie uwzględnia obciążenia pomieszczenia, powierzchni czynnej ani parametrów wody.</p></div></article>
        <article class="rk-wood-mistake"><span class="rk-wood-mistake-icon">!</span><div><strong>Pomijanie R podkładu</strong><p>W montażu pływającym warstwa pod deską może stanowić zauważalną część oporu wykończenia.</p></div></article>
        <article class="rk-wood-mistake"><span class="rk-wood-mistake-icon">!</span><div><strong>Uniwersalne 27°C bez karty produktu</strong><p>Limit powierzchni trzeba odczytać dla wybranego wyrobu i zestawić z wymaganiami cieplnymi pomieszczenia.</p></div></article>
        <article class="rk-wood-mistake"><span class="rk-wood-mistake-icon">!</span><div><strong>Brak planu kontroli wilgotności</strong><p>Drewno będzie reagowało na sezonowy mikroklimat również wtedy, gdy instalacja została wykonana poprawnie.</p></div></article>
        <article class="rk-wood-mistake"><span class="rk-wood-mistake-icon">!</span><div><strong>Sztywny rozstaw dla całego domu</strong><p>Różne pomieszczenia mają inne straty, powierzchnie czynne i ograniczenia temperatury.</p></div></article>
        <article class="rk-wood-mistake"><span class="rk-wood-mistake-icon">!</span><div><strong>Brak koordynacji wykonawców</strong><p>Projektant, wykonawca ogrzewania, posadzkarz i parkieciarz muszą pracować na zgodnych danych o warstwach.</p></div></article>
        <article class="rk-wood-mistake"><span class="rk-wood-mistake-icon">!</span><div><strong>Uruchamianie „na wyczucie”</strong><p>Procedury wygrzewania, montażu i pierwszego rozruchu należy wykonać zgodnie z dokumentacją zastosowanych materiałów.</p></div></article>
      </div>
    </section>

    <section class="rk-wood-section rk-wood-section-soft" id="rk-wood-checklist">
      <span class="rk-wood-eyebrow">Lista do sklepu i dla projektanta</span>
      <h2 class="rk-wood-section-title">Co sprawdzić przed zakupem drewnianej podłogi?</h2>
      <p class="rk-wood-lead">Poproś o dokumenty przed złożeniem zamówienia. Jeśli odpowiedź istnieje tylko w rozmowie handlowej, poproś o wskazanie jej w karcie technicznej, instrukcji montażu lub warunkach gwarancji.</p>
      <div class="rk-wood-checklist">
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Dopuszczenie produktu</strong><br>Czy dokładny symbol deski jest przeznaczony do wodnego ogrzewania podłogowego?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Deklarowany opór R</strong><br>Czy wartość dotyczy całego produktu o wybranej grubości?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Konstrukcja i wymiary</strong><br>Czy dokument obejmuje wybraną liczbę warstw, szerokość i format?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Metoda montażu</strong><br>Czy dopuszczono klejenie, montaż pływający albo oba warianty?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Podkład lub klej</strong><br>Czy znasz R podkładu i kompatybilny system klejowy?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Temperatura powierzchni</strong><br>Jaki dokładnie limit podaje producent podłogi?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Zakres wilgotności RH</strong><br>Jakie warunki trzeba utrzymywać w sezonie grzewczym i poza nim?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Wymagania dla jastrychu</strong><br>Jaką metodą mierzy się wilgotność i jaki wynik jest wymagany?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Protokół rozruchu</strong><br>Czy wymagane są dokumenty z wygrzewania oraz pomiarów podłoża?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Powłoka i konserwacja</strong><br>Czy olej, lakier i środki pielęgnacyjne mają osobne ograniczenia?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Obciążenie pomieszczenia</strong><br>Czy projektant zna stratę ciepła i rzeczywistą powierzchnię aktywną?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Warunki gwarancji</strong><br>Czy zapisano obowiązki dotyczące temperatury, RH, dylatacji i montażu?</div></div>
      </div>
    </section>

    <section class="rk-wood-section" id="rk-wood-conclusions">
      <span class="rk-wood-eyebrow">Decyzja bez fałszywej pewności</span>
      <h2 class="rk-wood-section-title">Wnioski projektanta: jaka podłoga drewniana będzie rozsądnym wyborem?</h2>
      <p class="rk-wood-lead">Najbardziej przewidywalny wariant to nie „magiczny” gatunek, lecz produkt, którego parametry można połączyć z obliczeniami i warunkami użytkowania.</p>
      <div class="rk-wood-grid-3">
        <article class="rk-wood-card"><h3>Dobry punkt wyjścia</h3><p>Jednoznaczne dopuszczenie do podłogówki, deklarowany R, znany limit temperatury, opisany zakres RH i metoda montażu.</p></article>
        <article class="rk-wood-card"><h3>Wybór warunkowy</h3><p>Brak jednej danej, szeroki format, deska lita lub większy R nie muszą przekreślać produktu, ale wymagają uzupełnienia dokumentacji albo przeliczenia.</p></article>
        <article class="rk-wood-card"><h3>Podwyższone ryzyko</h3><p>Brak dopuszczenia, sprzeczne instrukcje, nieznane warstwy, oczekiwanie wysokiej mocy z małej powierzchni lub brak kontroli mikroklimatu.</p></article>
      </div>
      <div class="rk-wood-answer">
        <span class="rk-wood-answer-label">Reguła końcowa</span>
        <p><strong>Najpierw wybierz konkretny produkt i zbierz jego dane. Następnie sprawdź łączny R i warunki montażu. Na końcu potwierdź w projekcie, że przy dopuszczalnej temperaturze powierzchni podłoga pokryje obciążenie każdego pomieszczenia.</strong></p>
      </div>

      <div class="rk-wood-cta">
        <div class="rk-wood-cta-title">Zaprojektuj podłogówkę pod wybraną podłogę drewnianą</div>
        <p>Projekt łączy obciążenia pomieszczeń, warstwy podłogi, powierzchnie czynne, rozstaw rur, temperaturę wody, długości pętli, przepływy i nastawy. Dzięki temu decyzja o drewnie staje się częścią policzonego systemu, a nie osobnym założeniem.</p>
        <a class="rk-wood-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego pod drewno</a>
        <small class="rk-wood-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </div>
    </section>

    <section class="rk-wood-section rk-wood-section-soft" id="rk-wood-sources">
      <span class="rk-wood-eyebrow">Podstawa danych i granice narzędzi</span>
      <h2 class="rk-wood-section-title">Źródła oficjalne i zakres odpowiedzialności</h2>
      <p class="rk-wood-lead">Parametry gatunków są wartościami reprezentatywnymi z instytucjonalnych opracowań technicznych. Nie zastępują deklaracji konkretnej deski. Źródła projektowe opisują metodę obliczeń ogrzewania płaszczyznowego, a nie zgodę na zastosowanie dowolnego produktu.</p>
      <div class="rk-wood-source-grid">
        <article class="rk-wood-source-card"><a href="https://www.fpl.fs.usda.gov/documnts/fplgtr/fplgtr190/chapter_04.pdf" target="_blank" rel="nofollow noopener noreferrer">USDA Forest Products Laboratory — Moisture Relations and Physical Properties of Wood</a><p>Oficjalny rozdział Wood Handbook opisujący higroskopijność, kierunkową zmianę wymiarów, zmienność danych, gęstość i właściwości cieplne drewna.</p></article>
        <article class="rk-wood-source-card"><a href="https://tropix.cirad.fr/en/technical-sheets-available" target="_blank" rel="nofollow noopener noreferrer">CIRAD Tropix — oficjalne karty techniczne gatunków</a><p>Katalog instytutu badawczego zawierający m.in. gęstość, skurcz promieniowy i styczny, twardość oraz przewodność cieplną wielu gatunków.</p></article>
        <article class="rk-wood-source-card"><a href="https://www.iso.org/standard/74683.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-2:2021 — określanie mocy systemów płaszczyznowych</a><p>Oficjalna karta normy dotyczącej wyznaczania projektowej mocy ogrzewania i chłodzenia płaszczyznowego.</p></article>
        <article class="rk-wood-source-card"><a href="https://www.iso.org/standard/74684.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-3:2021 — projektowanie i wymiarowanie</a><p>Oficjalna karta normy dotyczącej projektowania i wymiarowania wbudowanych wodnych systemów ogrzewania oraz chłodzenia płaszczyznowego.</p></article>
      </div>
      <div class="rk-wood-responsibility"><p><strong>Zakres odpowiedzialności:</strong> artykuł, porównywarka i analizator mają charakter edukacyjny. Nie są aprobatą konkretnego produktu, projektem ogrzewania, instrukcją montażu, ekspertyzą parkieciarską ani podstawą roszczeń gwarancyjnych. Przed zakupem i montażem obowiązują aktualne dokumenty producenta podłogi, kleju lub podkładu, wymagania systemu jastrychowego, projekt instalacji oraz pomiary na budowie. Dane drewna wykazują naturalną zmienność; wartości w narzędziu zostały zaokrąglone, aby nie tworzyć pozornej dokładności.</p></div>
    </section>

    <section class="rk-wood-section" id="rk-wood-faq">
      <span class="rk-wood-eyebrow">Pytania przed zakupem i montażem</span>
      <h2 class="rk-wood-section-title">FAQ — drewno na ogrzewanie podłogowe</h2>
      <div class="rk-wood-faq">
        <details><summary>Jakie drewno jest najlepsze na ogrzewanie podłogowe?</summary><div class="rk-wood-faq-answer"><p>Nie ma jednego najlepszego gatunku dla każdego produktu i budynku. Szukaj konkretnej deski dopuszczonej do podłogówki, z deklarowanym oporem cieplnym, instrukcją montażu, limitem temperatury i zakresem wilgotności. Gatunek pomaga ocenić tendencję materiału, ale nie zastępuje tych danych.</p></div></details>
        <details><summary>Czy dąb nadaje się na ogrzewanie podłogowe?</summary><div class="rk-wood-faq-answer"><p>Na rynku występują dębowe produkty przeznaczone do podłogówki, ale sama nazwa „dąb” nie potwierdza przydatności. Trzeba sprawdzić konstrukcję, grubość, szerokość, R, montaż i dokumentację dokładnego modelu.</p></div></details>
        <details><summary>Czy merbau, iroko i teak są stabilniejsze od buku?</summary><div class="rk-wood-faq-answer"><p>Reprezentatywne dane materiałowe wskazują zwykle mniejszy skurcz dla merbau, iroko i teaku niż dla buku. Nie jest to jednak ranking gotowych podłóg. Budowa deski, suszenie, format, klejenie, wilgotność oraz instrukcja produktu mogą zmienić praktyczną ocenę.</p></div></details>
        <details><summary>Czy deska warstwowa jest zawsze lepsza od litej?</summary><div class="rk-wood-faq-answer"><p>Nie zawsze, choć prawidłowo zaprojektowana konstrukcja warstwowa może ograniczać zmiany geometryczne. Nie istnieje stała procentowa przewaga wspólna dla wszystkich produktów. Oba warianty wymagają potwierdzenia zastosowania, właściwego montażu i kontroli mikroklimatu.</p></div></details>
        <details><summary>Jaki opór cieplny drewna jest dopuszczalny?</summary><div class="rk-wood-faq-answer"><p>Nie należy traktować pojedynczej wartości jako uniwersalnej zgody lub zakazu. Suma oporu deski i warstwy montażowej wpływa na wymaganą różnicę temperatur, dlatego trzeba ją zestawić z obciążeniem pomieszczenia, powierzchnią czynną oraz projektem systemu.</p></div></details>
        <details><summary>Czy 27°C to zawsze maksymalna temperatura drewnianej podłogi?</summary><div class="rk-wood-faq-answer"><p>Nie należy przyjmować 27°C automatycznie dla każdego produktu. Trzeba stosować limit podany przez producenta konkretnej deski oraz uwzględnić wymagania komfortu, projektu ogrzewania, kleju i pozostałych warstw.</p></div></details>
        <details><summary>Czy pod drewnem lepiej kleić, czy układać podłogę pływającą?</summary><div class="rk-wood-faq-answer"><p>Klejenie zwykle eliminuje osobny podkład, ale wymaga kompatybilnego systemu i bardzo dobrze przygotowanego jastrychu. Montaż pływający dodaje R podkładu i wymaga dopuszczenia zamków. Wybór wynika z dokumentacji całego zestawu, nie z jednej ogólnej reguły.</p></div></details>
        <details><summary>Czy ogrzewanie podłogowe rozsycha drewno?</summary><div class="rk-wood-faq-answer"><p>Drewno reaguje na zmiany wilgotności równowagowej i temperatury. Ryzyko szczelin lub odkształceń rośnie przy warunkach poza zakresem produktu, gwałtownym rozruchu albo błędnym montażu. Poprawny projekt i stała kontrola mikroklimatu ograniczają ryzyko, lecz go nie zerują.</p></div></details>
        <details><summary>Czy grubsza deska oznacza gorszą podłogówkę?</summary><div class="rk-wood-faq-answer"><p>Większa grubość tego samego materiału zwiększa opór cieplny, ale o wyniku decyduje cały produkt i pomieszczenie. Grubsza deska nie jest automatycznie zakazana; może natomiast wymagać ponownego przeliczenia mocy i temperatur.</p></div></details>
        <details><summary>Jakie dokumenty powinien przekazać sprzedawca podłogi?</summary><div class="rk-wood-faq-answer"><p>Najważniejsze są karta techniczna dokładnego produktu, instrukcja montażu i użytkowania, warunki gwarancji, deklarowany R, dopuszczone metody układania, limit temperatury powierzchni oraz wymagany zakres wilgotności. Dla systemu montażowego potrzebne są również dokumenty kleju lub podkładu.</p></div></details>
      </div>
    </section>

    <section class="rk-wood-author" id="rk-wood-author">
      <span class="rk-wood-eyebrow">Opracowanie eksperckie</span>
      <h2 class="rk-wood-author-title">Autor i weryfikacja merytoryczna</h2>
      <div class="rk-wood-author-layout">
        <aside class="rk-wood-author-side">
          <div class="rk-wood-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji sanitarnych" width="400" height="400" loading="lazy" decoding="async"></div>
          <div class="rk-wood-author-name"><a href="https://projekt-ogrzewania.pl/author/admin3399/">Robert Kucharski</a></div>
          <p class="rk-wood-author-role">Projektant instalacji sanitarnych<br>specjalista HVAC i ogrzewania podłogowego</p>
          <div class="rk-wood-author-social" aria-label="Profile autora">
            <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="nofollow noopener noreferrer me" aria-label="LinkedIn Roberta Kucharskiego">in</a>
            <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Facebook Projekt Ogrzewania">f</a>
            <a href="https://x.com/Projekt_HVAC" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Profil Projekt HVAC w serwisie X">X</a>
          </div>
        </aside>
        <div class="rk-wood-author-main">
          <div class="rk-wood-author-quote">„Przy podłodze drewnianej nie projektujemy osobno deski i osobno rur. Opór wykończenia, dopuszczalna temperatura, moc pomieszczenia i hydraulika muszą spotkać się w jednym obliczeniu.”</div>
          <p>Robert Kucharski opracowuje projekty ogrzewania podłogowego, obliczenia cieplne i hydrauliczne oraz materiały edukacyjne dla inwestorów i wykonawców. W pracy projektowej łączy straty ciepła pomieszczeń, rzeczywiste powierzchnie grzewcze, konstrukcję podłogi, parametry wody, rozstaw rur, długości pętli, przepływy i nastawy.</p>
          <p>Ten poradnik został zweryfikowany pod kątem rozdzielenia właściwości gatunku od parametrów gotowego produktu, poprawnego znaczenia R i λ, wpływu warstw na moc emitera oraz ograniczeń uproszczonej analizy. Narzędzia celowo nie wydają kategorycznego werdyktu zakupowego.</p>
          <p>Treść nie promuje producenta ani konkretnej marki podłogi. Jej celem jest pokazanie, jakie dane inwestor powinien uzyskać przed zakupem i które z nich muszą wrócić do projektanta, parkieciarza oraz wykonawcy ogrzewania.</p>
          <p>Autor publikuje również w portalach <a href="https://remont.biz.pl/" target="_blank" rel="nofollow noopener noreferrer">Remont.biz.pl</a> i <a href="https://sobir.pl/" target="_blank" rel="nofollow noopener noreferrer">Sobir.pl</a>. <a href="https://projekt-ogrzewania.pl/author/admin3399/">Zobacz pozostałe artykuły Roberta Kucharskiego w serwisie Projekt-Ogrzewania.pl</a>.</p>
          <div class="rk-wood-author-facts">
            <div class="rk-wood-author-fact"><strong>Zakres</strong>ogrzewanie podłogowe, bilanse cieplne i hydraulika instalacji</div>
            <div class="rk-wood-author-fact"><strong>Metoda pracy</strong>obliczenia, dokumentacja materiałów i weryfikacja warunków rzeczywistych</div>
            <div class="rk-wood-author-fact"><strong>Aktualizacja</strong>stan techniczny materiału sprawdzony 10 września 2026 r.</div>
          </div>
        </div>
      </div>
    </section>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "inLanguage": "pl-PL",
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt Ogrzewania",
      "url": "https://projekt-ogrzewania.pl/",
      "logo": {
        "@type": "ImageObject",
        "@id": "https://projekt-ogrzewania.pl/#logo",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-ogrzewania-logo-1.jpg",
        "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-ogrzewania-logo-1.jpg"
      },
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/"
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/"
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp"
      },
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "worksFor": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "affiliation": [
        {
          "@id": "https://remont.biz.pl/#organization"
        },
        {
          "@id": "https://sobir.pl/#organization"
        }
      ],
      "knowsAbout": [
        "ogrzewanie podłogowe",
        "obliczenia obciążenia cieplnego",
        "hydraulika instalacji grzewczych",
        "projektowanie pętli grzewczych",
        "opór cieplny okładzin",
        "współpraca ogrzewania podłogowego z pompą ciepła",
        "temperatura powierzchni podłogi",
        "dobór przepływów i nastaw rozdzielacza"
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#primaryimage",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/10/Wybor-idealnego-drewna-do-ogrzewania-podlogowego-%E2%80%93-kompletna-tabela-i-poradnik.webp",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/10/Wybor-idealnego-drewna-do-ogrzewania-podlogowego-%E2%80%93-kompletna-tabela-i-poradnik.webp",
      "width": 945,
      "height": 945,
      "caption": "Drewno na ogrzewanie podłogowe — porównanie gatunków i dobór deski",
      "creditText": "Robert Kucharski"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Projekt Ogrzewania",
          "item": "https://projekt-ogrzewania.pl/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Drewno na ogrzewanie podłogowe",
          "item": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#webpage",
      "url": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/",
      "name": "Drewno na ogrzewanie podłogowe – tabela gatunków i analizator deski",
      "description": "Drewno na ogrzewanie podłogowe: porównaj 15 gatunków, sprawdź opór cieplny i przeanalizuj konkretną deskę przed zakupem oraz zaprojektowaniem podłogówki.",
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/#website"
      },
      "primaryImageOfPage": {
        "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#primaryimage"
      },
      "breadcrumb": {
        "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#breadcrumb"
      },
      "mainEntity": {
        "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#article"
      },
      "inLanguage": "pl-PL",
      "datePublished": "2025-10-14",
      "dateModified": "2026-09-10"
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#article",
      "url": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/",
      "headline": "Drewno na ogrzewanie podłogowe – tabela gatunków i analizator deski",
      "alternativeHeadline": "Jak wybrać gatunek, konstrukcję i opór cieplny drewnianej podłogi",
      "description": "Techniczny poradnik z porównaniem 15 gatunków drewna i analizatorem konkretnej deski na wodne ogrzewanie podłogowe.",
      "datePublished": "2025-10-14",
      "dateModified": "2026-09-10",
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "mainEntityOfPage": {
        "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#webpage"
      },
      "image": {
        "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#primaryimage"
      },
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "articleSection": [
        "Czy drewno nadaje się na ogrzewanie podłogowe",
        "Porównanie gatunków drewna",
        "Kurczliwość i stabilność wymiarowa",
        "Deska lita a warstwowa",
        "Analizator konkretnej deski",
        "Opór cieplny drewnianej podłogi",
        "Montaż klejony i pływający",
        "Temperatura powierzchni i wilgotność",
        "Moc oraz hydraulika podłogówki",
        "Jastrych i przygotowanie montażu"
      ],
      "keywords": [
        "drewno na ogrzewanie podłogowe",
        "deska na ogrzewanie podłogowe",
        "dąb na podłogówkę",
        "merbau na ogrzewanie podłogowe",
        "buk na ogrzewanie podłogowe",
        "deska lita czy warstwowa",
        "opór cieplny drewnianej podłogi",
        "podłoga klejona czy pływająca",
        "temperatura drewnianej podłogi",
        "gatunki drewna na podłogówkę"
      ],
      "about": [
        {
          "@type": "Thing",
          "name": "Drewniane okładziny podłogowe"
        },
        {
          "@type": "Thing",
          "name": "Wodne ogrzewanie podłogowe"
        },
        {
          "@type": "Thing",
          "name": "Opór cieplny warstw podłogi"
        }
      ],
      "citation": [
        "https://www.fpl.fs.usda.gov/documnts/fplgtr/fplgtr190/chapter_04.pdf",
        "https://tropix.cirad.fr/en/technical-sheets-available",
        "https://www.iso.org/standard/74683.html",
        "https://www.iso.org/standard/74684.html"
      ],
      "hasPart": [
        {
          "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#species-dataset"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#species-comparator"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#board-analyzer"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#selection-howto"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#faq-schema"
        }
      ]
    },
    {
      "@type": "Dataset",
      "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#species-dataset",
      "name": "Porównanie właściwości 15 gatunków drewna stosowanych na podłogi",
      "description": "Zestaw reprezentatywnych wartości gęstości, całkowitego skurczu promieniowego i stycznego, stosunku T/R, przewodności cieplnej oraz opisowej odporności na wgniecenia.",
      "url": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#rk-wood-comparator",
      "inLanguage": "pl-PL",
      "license": "https://creativecommons.org/licenses/by/4.0/",
      "creator": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "dateModified": "2026-09-10",
      "keywords": [
        "gęstość drewna",
        "skurcz promieniowy drewna",
        "skurcz styczny drewna",
        "anizotropia T/R",
        "przewodność cieplna drewna",
        "twardość drewna",
        "drewno podłogowe"
      ],
      "measurementTechnique": "Zestawienie wartości reprezentatywnych z kart CIRAD Tropix oraz USDA Forest Products Laboratory; wartości zaokrąglone, odnoszone do kierunku anatomicznego i warunków opisanych przez źródło.",
      "variableMeasured": [
        {
          "@type": "PropertyValue",
          "name": "Gęstość reprezentatywna",
          "unitText": "kg/m³"
        },
        {
          "@type": "PropertyValue",
          "name": "Całkowity skurcz promieniowy",
          "unitText": "%"
        },
        {
          "@type": "PropertyValue",
          "name": "Całkowity skurcz styczny",
          "unitText": "%"
        },
        {
          "@type": "PropertyValue",
          "name": "Stosunek skurczu stycznego do promieniowego",
          "unitText": "T/R"
        },
        {
          "@type": "PropertyValue",
          "name": "Przewodność cieplna reprezentatywna",
          "unitText": "W/(m·K)"
        },
        {
          "@type": "PropertyValue",
          "name": "Odporność na wgniecenia",
          "unitText": "ocena opisowa"
        }
      ],
      "mainEntity": {
        "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#species-list"
      },
      "isBasedOn": [
        "https://www.fpl.fs.usda.gov/documnts/fplgtr/fplgtr190/chapter_04.pdf",
        "https://tropix.cirad.fr/en/technical-sheets-available"
      ]
    },
    {
      "@type": "ItemList",
      "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#species-list",
      "name": "Gatunki drewna uwzględnione w porównaniu",
      "numberOfItems": 15,
      "itemListOrder": "https://schema.org/ItemListUnordered",
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Dąb europejski" },
        { "@type": "ListItem", "position": 2, "name": "Merbau" },
        { "@type": "ListItem", "position": 3, "name": "Iroko" },
        { "@type": "ListItem", "position": 4, "name": "Jesion europejski" },
        { "@type": "ListItem", "position": 5, "name": "Klon jawor" },
        { "@type": "ListItem", "position": 6, "name": "Robinia akacjowa" },
        { "@type": "ListItem", "position": 7, "name": "Orzech europejski" },
        { "@type": "ListItem", "position": 8, "name": "Orzech amerykański" },
        { "@type": "ListItem", "position": 9, "name": "Sosna zwyczajna" },
        { "@type": "ListItem", "position": 10, "name": "Modrzew europejski" },
        { "@type": "ListItem", "position": 11, "name": "Teak" },
        { "@type": "ListItem", "position": 12, "name": "Buk europejski" },
        { "@type": "ListItem", "position": 13, "name": "Doussie / afzelia" },
        { "@type": "ListItem", "position": 14, "name": "Jatoba" },
        { "@type": "ListItem", "position": 15, "name": "Wenge" }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#species-comparator",
      "name": "Porównywarka gatunków drewna na ogrzewanie podłogowe",
      "url": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#rk-wood-comparator",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Any",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "creator": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "description": "Interaktywne porównanie reprezentatywnej gęstości, skurczu, anizotropii, przewodności, odporności na wgniecenia i ryzyk dla 15 gatunków drewna."
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#board-analyzer",
      "name": "Analizator konkretnej deski na ogrzewanie podłogowe",
      "url": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#rk-wood-analyzer",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Any",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "creator": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "description": "Narzędzie rozdzielające analizę oporu cieplnego, stabilności eksploatacyjnej i kompletności dokumentacji konkretnego produktu drewnianego."
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#selection-howto",
      "name": "Jak wybrać drewnianą podłogę na ogrzewanie podłogowe",
      "description": "Sześć etapów od dokumentacji produktu do potwierdzenia parametrów ogrzewania.",
      "inLanguage": "pl-PL",
      "totalTime": "PT45M",
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Potwierdź zastosowanie",
          "text": "Sprawdź, czy producent dopuszcza dokładny produkt do wodnego ogrzewania podłogowego i wybranej metody montażu."
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Zbierz parametry produktu",
          "text": "Zapisz konstrukcję, grubość, szerokość, deklarowany opór cieplny, limit temperatury oraz zakres wilgotności względnej."
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Dodaj warstwę montażową",
          "text": "Dla montażu pływającego dodaj opór podkładu, a dla klejenia zweryfikuj zgodność kompletnego systemu klejowego."
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Sprawdź warunki podłoża",
          "text": "Połącz wymagania jastrychu, procedury rozruchu, pomiaru wilgotności, równości i dylatacji."
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Porównaj z obciążeniem pomieszczenia",
          "text": "Zestaw opór wykończenia i dopuszczalną temperaturę z obciążeniem cieplnym oraz aktywną powierzchnią podłogi."
        },
        {
          "@type": "HowToStep",
          "position": 6,
          "name": "Przelicz instalację",
          "text": "Dobierz rozstaw rur, temperaturę wody, podział pętli, przepływy i nastawy bez stosowania jednej reguły dla całego domu."
        }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#faq-schema",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Jakie drewno jest najlepsze na ogrzewanie podłogowe?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie ma jednego najlepszego gatunku dla każdego produktu i budynku. Należy wybrać konkretną deskę dopuszczoną do podłogówki, z deklarowanym oporem cieplnym, instrukcją montażu, limitem temperatury i zakresem wilgotności. Gatunek pomaga ocenić tendencję materiału, ale nie zastępuje tych danych."
          }
        },
        {
          "@type": "Question",
          "name": "Czy dąb nadaje się na ogrzewanie podłogowe?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Na rynku występują dębowe produkty przeznaczone do podłogówki, ale sama nazwa dąb nie potwierdza przydatności. Trzeba sprawdzić konstrukcję, grubość, szerokość, opór cieplny, montaż i dokumentację dokładnego modelu."
          }
        },
        {
          "@type": "Question",
          "name": "Czy merbau, iroko i teak są stabilniejsze od buku?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Reprezentatywne dane materiałowe wskazują zwykle mniejszy skurcz dla merbau, iroko i teaku niż dla buku. Nie jest to jednak ranking gotowych podłóg. Budowa deski, suszenie, format, klejenie, wilgotność oraz instrukcja produktu mogą zmienić praktyczną ocenę."
          }
        },
        {
          "@type": "Question",
          "name": "Czy deska warstwowa jest zawsze lepsza od litej?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie zawsze, choć prawidłowo zaprojektowana konstrukcja warstwowa może ograniczać zmiany geometryczne. Nie istnieje stała procentowa przewaga wspólna dla wszystkich produktów. Oba warianty wymagają potwierdzenia zastosowania, właściwego montażu i kontroli mikroklimatu."
          }
        },
        {
          "@type": "Question",
          "name": "Jaki opór cieplny drewna jest dopuszczalny?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie należy traktować pojedynczej wartości jako uniwersalnej zgody lub zakazu. Suma oporu deski i warstwy montażowej wpływa na wymaganą różnicę temperatur, dlatego trzeba ją zestawić z obciążeniem pomieszczenia, powierzchnią czynną oraz projektem systemu."
          }
        },
        {
          "@type": "Question",
          "name": "Czy 27°C to zawsze maksymalna temperatura drewnianej podłogi?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie należy przyjmować 27°C automatycznie dla każdego produktu. Trzeba stosować limit podany przez producenta konkretnej deski oraz uwzględnić wymagania komfortu, projektu ogrzewania, kleju i pozostałych warstw."
          }
        },
        {
          "@type": "Question",
          "name": "Czy pod drewnem lepiej kleić, czy układać podłogę pływającą?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Klejenie zwykle eliminuje osobny podkład, ale wymaga kompatybilnego systemu i dobrze przygotowanego jastrychu. Montaż pływający dodaje opór podkładu i wymaga dopuszczenia zamków. Wybór wynika z dokumentacji całego zestawu, nie z jednej ogólnej reguły."
          }
        },
        {
          "@type": "Question",
          "name": "Czy ogrzewanie podłogowe rozsycha drewno?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Drewno reaguje na zmiany wilgotności równowagowej i temperatury. Ryzyko szczelin lub odkształceń rośnie przy warunkach poza zakresem produktu, gwałtownym rozruchu albo błędnym montażu. Poprawny projekt i kontrola mikroklimatu ograniczają ryzyko, lecz go nie zerują."
          }
        },
        {
          "@type": "Question",
          "name": "Czy grubsza deska oznacza gorszą podłogówkę?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Większa grubość tego samego materiału zwiększa opór cieplny, ale o wyniku decyduje cały produkt i pomieszczenie. Grubsza deska nie jest automatycznie zakazana; może natomiast wymagać ponownego przeliczenia mocy i temperatur."
          }
        },
        {
          "@type": "Question",
          "name": "Jakie dokumenty powinien przekazać sprzedawca podłogi?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Najważniejsze są karta techniczna dokładnego produktu, instrukcja montażu i użytkowania, warunki gwarancji, deklarowany opór cieplny, dopuszczone metody układania, limit temperatury powierzchni oraz wymagany zakres wilgotności. Dla systemu montażowego potrzebne są również dokumenty kleju lub podkładu."
          }
        }
      ]
    }
  ]
}
</script>

<script>
(function () {
  "use strict";

  var root = document.getElementById("rk-wood-guide");
  if (!root) {
    return;
  }
  if (root.getAttribute("data-rk-wood-ready") === "1") {
    return;
  }
  root.setAttribute("data-rk-wood-ready", "1");

  var speciesData = [
    {
      id: "oak",
      name: "Dąb europejski",
      botanical: "Quercus robur / Quercus petraea — wartości reprezentatywne",
      density: 740,
      radial: 4.5,
      tangential: 9.7,
      ratio: 2.2,
      lambda: 0.24,
      hardness: "średnia (4,2 Monnina)",
      movement: "umiarkowana; wyższa anizotropia",
      movementLevel: 2,
      movementNote: "Skurcz styczny jest wyraźnie większy od promieniowego. Znaczenie ma sposób przetarcia oraz szerokość elementu.",
      solid: "Wybór warunkowy. Sprawdź szerokość, grubość, wilgotność początkową, układ słojów i jednoznaczne dopuszczenie produktu.",
      engineered: "Częsty wariant konstrukcyjny, ale oceniaj liczbę warstw, materiał podkładu, całkowity R i instrukcję konkretnej deski.",
      risk: "Szeroka deska lita może wyraźniej pokazać zmianę wymiaru; sama nazwa handlowa nie opisuje konstrukcji.",
      verify: "R całego produktu, limit temperatury, zakres RH, dopuszczony montaż i maksymalny format.",
      source: "CIRAD Tropix; właściwości drewna uzupełnione zasadami USDA FPL"
    },
    {
      id: "merbau",
      name: "Merbau",
      botanical: "Intsia spp. — wartości reprezentatywne",
      density: 830,
      radial: 2.7,
      tangential: 4.4,
      ratio: 1.6,
      lambda: 0.27,
      hardness: "bardzo wysoka (8,8 Monnina)",
      movement: "niższa tendencja materiałowa",
      movementLevel: 1,
      movementNote: "Reprezentatywny skurcz całkowity jest relatywnie mały, lecz gotowy wyrób nadal reaguje na mikroklimat.",
      solid: "Parametry gatunku są obiecujące, ale format, suszenie, montaż i dokumentacja produktu pozostają rozstrzygające.",
      engineered: "Konstrukcja może dodatkowo ograniczać zmiany geometryczne; nie zastępuje to deklaracji R i warunków producenta.",
      risk: "Duża gęstość oraz substancje ekstrakcyjne wymagają zgodnego systemu klejenia; ważne jest legalne i udokumentowane pochodzenie.",
      verify: "Kompatybilność kleju, R wyrobu, zakres RH, ograniczenia powierzchni oraz dokumenty pochodzenia.",
      source: "CIRAD Tropix"
    },
    {
      id: "iroko",
      name: "Iroko",
      botanical: "Milicia spp. — wartości reprezentatywne",
      density: 640,
      radial: 3.5,
      tangential: 5.4,
      ratio: 1.5,
      lambda: 0.22,
      hardness: "średnia (4,1 Monnina)",
      movement: "niższa tendencja materiałowa",
      movementLevel: 1,
      movementNote: "Niski stosunek T/R i umiarkowany skurcz sprzyjają przewidywalności materiału, ale nie gwarantują zachowania deski.",
      solid: "Możliwy wybór warunkowy przy kontrolowanym formacie, właściwym suszeniu i potwierdzeniu przez producenta.",
      engineered: "Może łączyć korzystne cechy gatunku ze stabilizującą konstrukcją; sprawdź budowę całego wyrobu.",
      risk: "Substancje ekstrakcyjne i zmienny układ włókien mogą wpływać na obróbkę, klejenie i wykończenie.",
      verify: "Zalecany klej i grunt, konstrukcję, R, temperaturę powierzchni i zakres mikroklimatu.",
      source: "CIRAD Tropix"
    },
    {
      id: "ash",
      name: "Jesion europejski",
      botanical: "Fraxinus excelsior — wartości reprezentatywne",
      density: 680,
      radial: 5.7,
      tangential: 9.6,
      ratio: 1.7,
      lambda: 0.23,
      hardness: "wysoka (5,1 Monnina)",
      movement: "umiarkowana–wyższa",
      movementLevel: 3,
      movementNote: "Całkowity skurcz jest wyraźny. Twardość użytkowa nie oznacza automatycznie małej pracy wilgotnościowej.",
      solid: "Szczególnej kontroli wymagają szerokość, kierunek słojów i zakres RH; nie zakładaj przydatności bez dokumentu produktu.",
      engineered: "Konstrukcja warstwowa może ograniczać geometrię zmian, ale musi być przeznaczona do podłogówki.",
      risk: "Mylenie wysokiej twardości z wysoką stabilnością wymiarową.",
      verify: "Dopuszczony format, konstrukcję, RH, limit temperatury, R i sposób montażu.",
      source: "CIRAD Tropix"
    },
    {
      id: "maple",
      name: "Klon jawor",
      botanical: "Acer pseudoplatanus — w handlu również jako jawor",
      density: 640,
      radial: 4.5,
      tangential: 7.8,
      ratio: 1.7,
      lambda: 0.22,
      hardness: "średnia (4,7 Monnina)",
      movement: "umiarkowana",
      movementLevel: 2,
      movementNote: "Parametry wskazują umiarkowaną pracę, lecz jasne drewno może mocno ujawniać szczeliny i zmiany wizualne.",
      solid: "Wybór warunkowy zależny od szerokości, sposobu przetarcia i dyscypliny mikroklimatu.",
      engineered: "Może być bardziej przewidywalny geometrycznie, jeśli cała konstrukcja została przebadana i opisana.",
      risk: "Nazwa „klon” może obejmować różne gatunki o innych wartościach; trzeba znać dokładne oznaczenie.",
      verify: "Gatunek botaniczny, konstrukcję, R, zakres RH, format i limit temperatury.",
      source: "CIRAD Tropix — karta great maple"
    },
    {
      id: "robinia",
      name: "Robinia akacjowa",
      botanical: "Robinia pseudoacacia — handlowo często nazywana akacją",
      density: 740,
      radial: 4.4,
      tangential: 6.9,
      ratio: 1.6,
      lambda: 0.24,
      hardness: "bardzo wysoka (9,5 Monnina)",
      movement: "niższa–umiarkowana",
      movementLevel: 2,
      movementNote: "Stosunek T/R jest umiarkowany, ale naturalna zmienność i układ włókien mogą wpływać na element.",
      solid: "Możliwy wariant przy dobrze przygotowanym materiale, kontrolowanym formacie i pełnej instrukcji.",
      engineered: "Konstrukcja może pomóc w kontroli geometrii; nie należy wnioskować wyłącznie z twardości gatunku.",
      risk: "Bardzo wysoka twardość komplikuje obróbkę, a określenie „akacja” bywa używane nieprecyzyjnie.",
      verify: "Łacińską nazwę gatunku, sposób suszenia, R, system klejenia i wymagany mikroklimat.",
      source: "CIRAD Tropix — black locust"
    },
    {
      id: "walnut-eu",
      name: "Orzech europejski",
      botanical: "Juglans regia — wartości reprezentatywne",
      density: 660,
      radial: 5.5,
      tangential: 7.5,
      ratio: 1.4,
      lambda: 0.22,
      hardness: "średnia (3,2 Monnina)",
      movement: "umiarkowana; równomierniejsza",
      movementLevel: 2,
      movementNote: "Niższy stosunek T/R oznacza bardziej zbliżoną zmianę w obu kierunkach, lecz skurcz całkowity nadal jest istotny.",
      solid: "Wybór warunkowy; kontroluj szerokość, wilgotność i sposób przetarcia.",
      engineered: "Może być przewidywalnym wariantem, gdy karta wyrobu potwierdza zastosowanie i parametry.",
      risk: "Nazwa „orzech” nie rozróżnia orzecha europejskiego od amerykańskiego ani budowy produktu.",
      verify: "Dokładny gatunek, konstrukcję, R, format, temperaturę oraz zakres RH.",
      source: "CIRAD Tropix"
    },
    {
      id: "walnut-us",
      name: "Orzech amerykański",
      botanical: "Juglans nigra — wartości reprezentatywne",
      density: 610,
      radial: 5.5,
      tangential: 7.8,
      ratio: 1.4,
      lambda: 0.17,
      hardness: "średnia; dane zależne od metody",
      movement: "umiarkowana; równomierniejsza",
      movementLevel: 2,
      movementNote: "Relatywnie niski stosunek T/R nie usuwa zmian wymiarowych; liczą się wilgotność i rozmiar elementu.",
      solid: "Możliwy po sprawdzeniu formatu, wilgotności i pisemnego dopuszczenia konkretnej deski.",
      engineered: "Konstrukcja warstwowa może ograniczyć widoczne zmiany, lecz wynik zależy od podkładu i klejenia warstw.",
      risk: "Przenoszenie danych z orzecha europejskiego lub innego źródła bez sprawdzenia gatunku i metody pomiaru.",
      verify: "Nazwę botaniczną, R produktu, konstrukcję, dopuszczony montaż, RH i temperaturę.",
      source: "USDA Forest Products Laboratory; wartości cieplne reprezentatywne"
    },
    {
      id: "pine",
      name: "Sosna zwyczajna",
      botanical: "Pinus sylvestris — wartości reprezentatywne",
      density: 550,
      radial: 5.2,
      tangential: 8.3,
      ratio: 1.6,
      lambda: 0.19,
      hardness: "niższa (2,6 Monnina)",
      movement: "umiarkowana",
      movementLevel: 2,
      movementNote: "Parametry ruchu są umiarkowane, lecz układ słojów, sęki i różnice między drewnem wczesnym a późnym zwiększają zmienność.",
      solid: "Wymaga świadomej akceptacji większej podatności na wgniecenia oraz sprawdzenia szerokości i jakości materiału.",
      engineered: "Może ograniczać zmiany geometrii, ale cienka warstwa użytkowa nie zmienia wymagań dokumentacyjnych.",
      risk: "Wgniecenia, sęki, żywica oraz duża zmienność wizualna i materiałowa.",
      verify: "Klasę jakości, konstrukcję, R, limit temperatury, montaż i zakres RH.",
      source: "CIRAD Tropix"
    },
    {
      id: "larch",
      name: "Modrzew europejski",
      botanical: "Larix decidua — wartości reprezentatywne",
      density: 600,
      radial: 4.2,
      tangential: 8.2,
      ratio: 2.0,
      lambda: 0.20,
      hardness: "średnia (3,8 Monnina)",
      movement: "umiarkowana; wyższa anizotropia",
      movementLevel: 2,
      movementNote: "Stosunek T/R wskazuje większą różnicę między kierunkami, dlatego układ słojów i szerokość są ważne.",
      solid: "Wybór warunkowy, szczególnie przy szerokich elementach; sprawdź wilgotność, przekrój i instrukcję.",
      engineered: "Może ograniczać efekt anizotropii, jeżeli konstrukcja i klejenie warstw są prawidłowo zaprojektowane.",
      risk: "Żywica, sęki i różnica pracy w kierunkach mogą wpływać na wygląd i montaż.",
      verify: "Format, selekcję materiału, R, kompatybilność wykończenia, RH i temperaturę.",
      source: "CIRAD Tropix"
    },
    {
      id: "teak",
      name: "Teak",
      botanical: "Tectona grandis — wartości reprezentatywne",
      density: 670,
      radial: 2.6,
      tangential: 4.7,
      ratio: 1.8,
      lambda: 0.22,
      hardness: "średnia (4,2 Monnina)",
      movement: "niższa tendencja materiałowa",
      movementLevel: 1,
      movementNote: "Niski skurcz całkowity jest korzystną cechą materiałową, ale nie jest zgodą na dowolną deskę lub montaż.",
      solid: "Możliwy przy kontrolowanym formacie i pisemnym dopuszczeniu; wymaga właściwego przygotowania do klejenia.",
      engineered: "Może tworzyć przewidywalny wyrób, jeśli warstwy, spoiwa i parametry cieplne są udokumentowane.",
      risk: "Naturalne oleje mogą utrudniać klejenie i wykończenie; ważne jest legalne, udokumentowane pochodzenie.",
      verify: "Technologię klejenia, R, zakres RH, limit temperatury, format i dokumenty pochodzenia.",
      source: "CIRAD Tropix"
    },
    {
      id: "beech",
      name: "Buk europejski",
      botanical: "Fagus sylvatica — wartości reprezentatywne",
      density: 710,
      radial: 5.7,
      tangential: 11.6,
      ratio: 2.0,
      lambda: 0.24,
      hardness: "średnia (4,2 Monnina)",
      movement: "wyższa tendencja materiałowa",
      movementLevel: 3,
      movementNote: "Wysoki skurcz styczny i wyraźna anizotropia zwiększają znaczenie konstrukcji, formatu oraz stabilnego mikroklimatu.",
      solid: "Podwyższone ryzyko dla szerokich elementów. Decyzja wymaga szczególnie mocnego potwierdzenia produktu i warunków.",
      engineered: "Konstrukcja może ograniczać zmiany, ale nie usuwa cech gatunku ani obowiązku przestrzegania RH i temperatury.",
      risk: "Zbyt szeroki format, wahania wilgotności i przyjęcie, że twardość równa się stabilności.",
      verify: "Jednoznaczne dopuszczenie, konstrukcję, maksymalną szerokość, R, RH i temperaturę.",
      source: "CIRAD Tropix"
    },
    {
      id: "afzelia",
      name: "Doussie / afzelia",
      botanical: "Afzelia spp. — doussie to nazwa handlowa",
      density: 800,
      radial: 3.0,
      tangential: 4.4,
      ratio: 1.5,
      lambda: 0.26,
      hardness: "wysoka (7,7 Monnina)",
      movement: "niższa tendencja materiałowa",
      movementLevel: 1,
      movementNote: "Niski skurcz i stosunek T/R są korzystne w porównaniu materiałowym, lecz produkt nadal musi mieć pełne dane.",
      solid: "Możliwy po sprawdzeniu wymiarów, suszenia, klejenia i dopuszczenia dokładnej deski.",
      engineered: "Może łączyć korzystne dane gatunku z kontrolą geometrii, o ile cała konstrukcja jest udokumentowana.",
      risk: "Substancje ekstrakcyjne, duża gęstość, zmienność handlowych nazw i pochodzenie materiału.",
      verify: "Nazwę botaniczną, system klejenia, R, temperaturę, RH oraz dokumenty pochodzenia.",
      source: "CIRAD Tropix"
    },
    {
      id: "jatoba",
      name: "Jatoba",
      botanical: "Hymenaea spp. — wartości reprezentatywne",
      density: 940,
      radial: 3.9,
      tangential: 7.5,
      ratio: 1.9,
      lambda: 0.30,
      hardness: "bardzo wysoka (10,5 Monnina)",
      movement: "umiarkowana",
      movementLevel: 2,
      movementNote: "Skurcz promieniowy jest umiarkowany, styczny większy; wysoka gęstość nie oznacza braku pracy wilgotnościowej.",
      solid: "Wymaga kontroli szerokości, wilgotności, obróbki oraz zgodnego systemu montażowego.",
      engineered: "Może ograniczać geometrię zmian, ale wysoka gęstość warstwy użytkowej nadal wpływa na obróbkę i klejenie.",
      risk: "Mylenie bardzo wysokiej twardości ze stabilnością oraz nieuwzględnienie wymagań klejenia gęstego drewna.",
      verify: "Klej i przygotowanie powierzchni, R, wymiary, zakres RH, limit temperatury i pochodzenie.",
      source: "CIRAD Tropix"
    },
    {
      id: "wenge",
      name: "Wenge",
      botanical: "Millettia laurentii — wartości reprezentatywne",
      density: 870,
      radial: 5.9,
      tangential: 9.1,
      ratio: 1.5,
      lambda: 0.28,
      hardness: "bardzo wysoka (9,1 Monnina)",
      movement: "wyższa w wartościach bezwzględnych",
      movementLevel: 3,
      movementNote: "Stosunek T/R jest umiarkowany, lecz całkowite wartości skurczu pozostają wysokie; oba aspekty trzeba czytać razem.",
      solid: "Podwyższone wymagania dla formatu, suszenia, jakości elementu i kontroli mikroklimatu.",
      engineered: "Może ograniczyć zmiany geometryczne, ale nie eliminuje ryzyka pęknięć ani wymagań montażowych.",
      risk: "Kruchość, drzazgi, pęknięcia, duża gęstość i konieczność udokumentowanego pochodzenia.",
      verify: "Konstrukcję, jakość selekcji, system klejenia, R, RH, temperaturę i dokumenty pochodzenia.",
      source: "CIRAD Tropix"
    }
  ];

  function formatNumber(value, digits) {
    return Number(value).toLocaleString("pl-PL", {
      minimumFractionDigits: digits,
      maximumFractionDigits: digits
    });
  }

  function findSpecies(id) {
    var found = speciesData[0];
    speciesData.forEach(function (item) {
      if (item.id === id) {
        found = item;
      }
    });
    return found;
  }

  function createSpeciesOptions(select, selectedId) {
    select.innerHTML = "";
    speciesData.forEach(function (item) {
      var option = document.createElement("option");
      option.value = item.id;
      option.textContent = item.name;
      if (item.id === selectedId) {
        option.selected = true;
      }
      select.appendChild(option);
    });
  }

  var compareSelects = root.querySelectorAll("[data-rk-wood-compare]");
  var compareDefaults = ["oak", "merbau", "beech"];

  Array.prototype.forEach.call(compareSelects, function (select, index) {
    createSpeciesOptions(select, compareDefaults[index]);
  });

  function refreshDisabledOptions() {
    var chosen = [];
    Array.prototype.forEach.call(compareSelects, function (select) {
      chosen.push(select.value);
    });
    Array.prototype.forEach.call(compareSelects, function (select) {
      Array.prototype.forEach.call(select.options, function (option) {
        option.disabled = false;
        if (option.value !== select.value) {
          if (chosen.indexOf(option.value) !== -1) {
            option.disabled = true;
          }
        }
      });
    });
  }

  function renderSpeciesCard(item) {
    var html = "";
    html += '<article class="rk-wood-species-card">';
    html += '<div class="rk-wood-species-head"><h4>' + item.name + '</h4><p>' + item.botanical + '</p></div>';
    html += '<div class="rk-wood-species-body">';
    html += '<div class="rk-wood-metrics">';
    html += '<div class="rk-wood-metric"><span>Gęstość</span><strong>' + item.density + ' kg/m³</strong></div>';
    html += '<div class="rk-wood-metric"><span>Przewodność λ</span><strong>' + formatNumber(item.lambda, 2) + ' W/(m·K)</strong></div>';
    html += '<div class="rk-wood-metric"><span>Skurcz promieniowy</span><strong>' + formatNumber(item.radial, 1) + '%</strong></div>';
    html += '<div class="rk-wood-metric"><span>Skurcz styczny</span><strong>' + formatNumber(item.tangential, 1) + '%</strong></div>';
    html += '<div class="rk-wood-metric"><span>Stosunek T/R</span><strong>' + formatNumber(item.ratio, 1) + '</strong></div>';
    html += '<div class="rk-wood-metric"><span>Wgniecenia</span><strong>' + item.hardness + '</strong></div>';
    html += '</div>';
    html += '<span class="rk-wood-tag">Ruch: ' + item.movement + '</span>';
    html += '<span class="rk-wood-tag rk-wood-tag-warn">Brak automatycznej kwalifikacji</span>';
    html += '<dl class="rk-wood-species-detail">';
    html += '<dt>Jak czytać ruch wilgotnościowy?</dt><dd>' + item.movementNote + '</dd>';
    html += '<dt>Deska lita</dt><dd>' + item.solid + '</dd>';
    html += '<dt>Deska warstwowa</dt><dd>' + item.engineered + '</dd>';
    html += '<dt>Kluczowe ryzyko</dt><dd>' + item.risk + '</dd>';
    html += '<dt>Co sprawdzić w dokumentacji?</dt><dd>' + item.verify + '</dd>';
    html += '<dt>Podstawa danych</dt><dd>' + item.source + '</dd>';
    html += '</dl></div></article>';
    return html;
  }

  function renderComparison() {
    var result = document.getElementById("rk-wood-compare-results");
    if (!result) {
      return;
    }
    var html = "";
    Array.prototype.forEach.call(compareSelects, function (select) {
      html += renderSpeciesCard(findSpecies(select.value));
    });
    result.innerHTML = html;
    refreshDisabledOptions();
  }

  Array.prototype.forEach.call(compareSelects, function (select) {
    select.addEventListener("change", renderComparison);
  });

  var boardSpecies = document.getElementById("rk-wood-board-species");
  createSpeciesOptions(boardSpecies, "oak");

  var installation = document.getElementById("rk-wood-install");
  var underlayInput = document.getElementById("rk-wood-underlay-r");
  var form = document.getElementById("rk-wood-board-form");
  var resultBox = document.getElementById("rk-wood-analysis-result");
  var resetButton = document.getElementById("rk-wood-example-reset");

  function syncInstallation() {
    if (installation.value === "floating") {
      underlayInput.disabled = false;
      if (Number(underlayInput.value) === 0) {
        underlayInput.value = "0.030";
      }
    } else {
      underlayInput.value = "0";
      underlayInput.disabled = true;
    }
  }

  function numberOrNull(id) {
    var field = document.getElementById(id);
    var raw = field.value.trim();
    if (raw === "") {
      return null;
    }
    var value = Number(raw.replace(",", "."));
    if (isFinite(value)) {
      return value;
    }
    return null;
  }

  function checkLine(type, text) {
    var symbol = "?";
    if (type === "ok") {
      symbol = "✓";
    }
    if (type === "alert") {
      symbol = "!";
    }
    return '<div class="rk-wood-check"><span class="rk-wood-check-mark rk-wood-check-' + type + '">' + symbol + '</span><span>' + text + '</span></div>';
  }

  function renderInputMessage(title, text) {
    resultBox.innerHTML = '<div class="rk-wood-result-status rk-wood-status-warn"><span class="rk-wood-status-icon" aria-hidden="true">!</span><div><strong>' + title + '</strong><p>' + text + '</p></div></div>';
  }

  function analyzeBoard(event) {
    if (event) {
      event.preventDefault();
    }

    var species = findSpecies(boardSpecies.value);
    var construction = document.getElementById("rk-wood-construction-input").value;
    var approval = document.getElementById("rk-wood-approval").value;
    var thickness = numberOrNull("rk-wood-thickness");
    var width = numberOrNull("rk-wood-width");
    var declaredR = numberOrNull("rk-wood-r-declared");
    var maxTemp = numberOrNull("rk-wood-max-temp");
    var rhMin = numberOrNull("rk-wood-rh-min");
    var rhMax = numberOrNull("rk-wood-rh-max");
    var heatLoad = numberOrNull("rk-wood-load");
    var underlayR = 0;

    if (!form.checkValidity()) {
      form.reportValidity();
      return;
    }

    if (installation.value === "floating") {
      underlayR = numberOrNull("rk-wood-underlay-r");
      if (underlayR === null) {
        underlayR = 0;
      }
    }

    if (rhMin !== null) {
      if (rhMax !== null) {
        if (rhMin > rhMax) {
          renderInputMessage("Popraw zakres wilgotności", "Minimalna wilgotność względna nie może być większa od wartości maksymalnej.");
          return;
        }
      }
    }

    var productR = declaredR;
    var rSource = "wartość zadeklarowana dla całego produktu";
    var rEstimated = false;

    if (productR === null) {
      if (thickness !== null) {
        productR = (thickness / 1000) / species.lambda;
        rEstimated = true;
        rSource = "orientacyjny szacunek d/λ z danych gatunku";
      }
    }

    var totalR = null;
    if (productR !== null) {
      totalR = productR + underlayR;
    }

    var missingCount = 0;
    var documentHtml = "";

    if (approval === "yes") {
      documentHtml += checkLine("ok", "Dopuszczenie produktu do ogrzewania zostało oznaczone jako potwierdzone.");
    }
    if (approval === "unknown") {
      missingCount += 1;
      documentHtml += checkLine("missing", "Brakuje jednoznacznego potwierdzenia zastosowania na podłogówce.");
    }
    if (approval === "no") {
      documentHtml += checkLine("alert", "Producent nie dopuszcza produktu — wpisane parametry nie zmieniają tego ograniczenia.");
    }

    if (declaredR !== null) {
      documentHtml += checkLine("ok", "Wpisano deklarowany opór cieplny całego produktu.");
    } else {
      missingCount += 1;
      documentHtml += checkLine("missing", "Brakuje deklarowanego R. Narzędzie może pokazać tylko orientacyjny szacunek.");
    }

    if (maxTemp !== null) {
      documentHtml += checkLine("ok", "Wpisano limit temperatury powierzchni: " + formatNumber(maxTemp, 1) + "°C.");
    } else {
      missingCount += 1;
      documentHtml += checkLine("missing", "Brakuje limitu temperatury powierzchni z dokumentacji produktu.");
    }

    var rhKnown = false;
    if (rhMin !== null) {
      if (rhMax !== null) {
        rhKnown = true;
      }
    }
    if (rhKnown) {
      documentHtml += checkLine("ok", "Wpisano zakres mikroklimatu: " + formatNumber(rhMin, 0) + "–" + formatNumber(rhMax, 0) + "% RH.");
    } else {
      missingCount += 1;
      documentHtml += checkLine("missing", "Brakuje pełnego zakresu wilgotności względnej wymaganego przez producenta.");
    }

    if (installation.value === "floating") {
      documentHtml += checkLine("ok", "Do bilansu dodano opór podkładu dla montażu pływającego.");
    } else {
      documentHtml += checkLine("ok", "Wybrano klejenie; zgodność kleju, gruntu i jastrychu trzeba potwierdzić poza kalkulacją R.");
    }

    var stabilityPoints = species.movementLevel;
    var stabilityNotes = [];

    if (construction === "solid") {
      stabilityPoints += 1;
      stabilityNotes.push("Deska lita przenosi reakcję jednego przekroju drewna; szerokość i układ słojów mają duże znaczenie.");
    } else {
      stabilityPoints -= 1;
      stabilityNotes.push("Konstrukcja warstwowa może ograniczać część zmian geometrycznych, jeśli warstwy i spoiwa są prawidłowo zaprojektowane.");
    }

    if (width !== null) {
      if (width >= 180) {
        stabilityPoints += 1;
        stabilityNotes.push("Format " + formatNumber(width, 0) + " mm wymaga sprawdzenia ograniczeń szerokości w instrukcji produktu.");
      } else {
        stabilityNotes.push("Mniejsza szerokość ogranicza bezwzględny wymiar zmiany, ale nie usuwa pracy drewna.");
      }
      if (width >= 220) {
        stabilityPoints += 1;
        stabilityNotes.push("Bardzo szeroki element zwiększa widoczny skutek tej samej procentowej zmiany wilgotnościowej.");
      }
    } else {
      missingCount += 1;
      stabilityNotes.push("Brak szerokości uniemożliwia pełniejszą ocenę formatu.");
    }

    if (rhKnown) {
      var rhSpan = rhMax - rhMin;
      if (rhMin < 35) {
        stabilityPoints += 1;
        stabilityNotes.push("Dolna wartość RH jest niska; potwierdź, że mieści się w instrukcji i że budynek może ją utrzymać.");
      }
      if (rhMax > 65) {
        stabilityPoints += 1;
        stabilityNotes.push("Górna wartość RH jest wysoka; sprawdź warunki gwarancji i wentylację.");
      }
      if (rhSpan > 25) {
        stabilityPoints += 1;
        stabilityNotes.push("Szeroki zakres RH oznacza większą zmianę wilgotności równowagowej drewna.");
      }
    } else {
      stabilityPoints += 1;
      stabilityNotes.push("Bez zakresu RH nie da się ocenić zgodności planowanego mikroklimatu z dokumentacją.");
    }

    if (stabilityPoints < 0) {
      stabilityPoints = 0;
    }

    var stabilityLabel = "umiarkowana kontrola warunków";
    if (stabilityPoints <= 1) {
      stabilityLabel = "niższe ryzyko w zakresie wpisanych danych";
    }
    if (stabilityPoints >= 3) {
      stabilityLabel = "wybór wymagający dodatkowej kontroli";
    }
    if (stabilityPoints >= 5) {
      stabilityLabel = "podwyższone ryzyko eksploatacyjne";
    }

    var thermalLevel = "brak pełnych danych";
    var thermalNote = "Uzupełnij R produktu, aby obliczyć sumę wykończenia.";
    var requiresProject = false;

    if (totalR !== null) {
      thermalLevel = "niższy opór w tym modelu";
      thermalNote = "Wynik nadal trzeba połączyć z mocą wymaganą w pomieszczeniu.";
      if (totalR > 0.10) {
        thermalLevel = "opór istotny dla obliczeń";
        thermalNote = "Nie oceniaj go bez powierzchni czynnej, temperatury wody i obciążenia pomieszczenia.";
      }
      if (totalR > 0.15) {
        thermalLevel = "wysoki opór wymagający weryfikacji";
        thermalNote = "To sygnał do ponownego przeliczenia, a nie automatyczny zakaz produktu.";
        requiresProject = true;
      }
    }

    if (heatLoad === null) {
      missingCount += 1;
      requiresProject = true;
    } else {
      if (heatLoad > 75) {
        requiresProject = true;
      }
    }

    var overall = "Parametry potwierdzone w zakresie wpisanych danych";
    var overallText = "Nie widać wyraźnego sygnału alarmowego, ale ostateczne potwierdzenie wymaga karty produktu, kontroli podłoża i obliczenia mocy podłogi.";
    var statusClass = "rk-wood-status-good";
    var statusSymbol = "✓";

    if (missingCount > 0) {
      overall = "Wybór warunkowy";
      overallText = "Część informacji jest niepełna lub opiera się na szacunku. Uzupełnij dokumentację przed decyzją.";
      statusClass = "rk-wood-status-warn";
      statusSymbol = "?";
    }
    if (missingCount >= 3) {
      overall = "Brak danych";
      overallText = "Liczba braków nie pozwala uznać parametrów za potwierdzone. Poproś o kartę techniczną i instrukcję dokładnego produktu.";
    }
    if (requiresProject) {
      overall = "Parametr wymagający przeliczenia projektowego";
      overallText = "Opór wykończenia lub obciążenie pomieszczenia wymaga sprawdzenia razem z powierzchnią czynną, temperaturą wody i geometrią instalacji.";
      statusClass = "rk-wood-status-warn";
      statusSymbol = "↗";
    }
    if (stabilityPoints >= 5) {
      overall = "Podwyższone ryzyko";
      overallText = "Połączenie gatunku, konstrukcji, formatu lub warunków RH wymaga dodatkowej weryfikacji dokumentacji i wykonania.";
      statusClass = "rk-wood-status-alert";
      statusSymbol = "!";
    }
    if (approval === "no") {
      overall = "Podwyższone ryzyko";
      overallText = "Producent nie dopuszcza produktu do ogrzewania podłogowego. Nie zastępuj tej informacji wynikiem uproszczonego obliczenia.";
      statusClass = "rk-wood-status-alert";
      statusSymbol = "!";
    }

    var productRDisplay = "brak";
    var totalRDisplay = "brak";
    if (productR !== null) {
      productRDisplay = formatNumber(productR, 3);
    }
    if (totalR !== null) {
      totalRDisplay = formatNumber(totalR, 3);
    }

    var loadText = "Brak obciążenia cieplnego z obliczeń.";
    if (heatLoad !== null) {
      loadText = "Wpisane obciążenie: " + formatNumber(heatLoad, 0) + " W/m² aktywnej podłogi.";
      if (heatLoad > 75) {
        loadText += " To poziom wymagający uważnej weryfikacji mocy przy dopuszczalnej temperaturze powierzchni.";
      }
    }

    var constructionLabel = "deska lita";
    var supportLabel = "jeden przekrój drewna";
    if (construction === "two") {
      constructionLabel = "deska dwuwarstwowa";
      supportLabel = "warstwa nośna produktu";
    }
    if (construction === "three") {
      constructionLabel = "deska trójwarstwowa";
      supportLabel = "krzyżowe warstwy nośne";
    }

    var installationLabel = "klej do jastrychu";
    if (installation.value === "floating") {
      installationLabel = "podkład podłogowy";
    }

    var stabilityList = "";
    stabilityNotes.forEach(function (note) {
      stabilityList += "<li>" + note + "</li>";
    });

    var estimateWarning = "";
    if (rEstimated) {
      estimateWarning = "<li>R produktu jest szacunkiem z grubości i λ. Dla deski warstwowej może różnić się od wartości całego wyrobu.</li>";
    }

    var heatList = "";
    heatList += "<li>R produktu: " + productRDisplay + " m²K/W — " + rSource + ".</li>";
    heatList += "<li>R podkładu uwzględniony w modelu: " + formatNumber(underlayR, 3) + " m²K/W.</li>";
    heatList += "<li>" + loadText + "</li>";
    heatList += estimateWarning;

    var productShare = 0;
    var underlayShare = 0;
    if (totalR !== null) {
      if (totalR > 0) {
        productShare = (productR / totalR) * 100;
        underlayShare = (underlayR / totalR) * 100;
      }
    }

    var layerProductText = constructionLabel + ", " + (thickness === null ? "grubość niepodana" : formatNumber(thickness, 1) + " mm");
    var maxTempText = maxTemp === null ? "limit temperatury: brak danych" : "limit: " + formatNumber(maxTemp, 1) + "°C";

    var html = "";
    html += '<div class="rk-wood-result-status ' + statusClass + '"><span class="rk-wood-status-icon" aria-hidden="true">' + statusSymbol + '</span><div><strong>' + overall + '</strong><p>' + overallText + '</p></div></div>';
    html += '<div class="rk-wood-result-grid">';
    html += '<article class="rk-wood-result-card"><h3>1. Przepływ ciepła</h3><div class="rk-wood-result-number">' + totalRDisplay + ' m²K/W</div><div class="rk-wood-result-caption">suma R produktu i podkładu uwzględniona w narzędziu</div><p><strong>' + thermalLevel + '.</strong> ' + thermalNote + '</p><ul>' + heatList + '</ul></article>';
    html += '<article class="rk-wood-result-card"><h3>2. Stabilność eksploatacyjna</h3><div class="rk-wood-result-number">' + species.name + '</div><div class="rk-wood-result-caption">' + stabilityLabel + '</div><ul>' + stabilityList + '</ul></article>';
    html += '<article class="rk-wood-result-card"><h3>3. Kompletność dokumentacji</h3>' + documentHtml + '<p class="rk-wood-result-caption">Dodatkowo sprawdź instrukcję przygotowania jastrychu, dylatacje, aklimatyzację, powłokę i warunki gwarancji.</p></article>';
    html += '</div>';
    html += '<div class="rk-wood-layer-module"><h4>Modułowa droga ciepła — warstwy do wspólnego sprawdzenia</h4>';
    html += '<div class="rk-wood-layers">';
    html += '<div class="rk-wood-layer rk-wood-layer-1"><span>1. Wierzch</span><strong>' + species.name + '</strong><small>' + maxTempText + '</small></div>';
    html += '<div class="rk-wood-layer rk-wood-layer-2"><span>2. Produkt</span><strong>' + supportLabel + '</strong><small>' + layerProductText + '</small></div>';
    html += '<div class="rk-wood-layer rk-wood-layer-3"><span>3. Montaż</span><strong>' + installationLabel + '</strong><small>zgodność systemu i opór warstwy</small></div>';
    html += '<div class="rk-wood-layer rk-wood-layer-4"><span>4. Jastrych</span><strong>podłoże grzewcze</strong><small>wilgotność, równość, dylatacje i rozruch</small></div>';
    html += '<div class="rk-wood-layer rk-wood-layer-5"><span>5. Instalacja</span><strong>rury i izolacja</strong><small>rozstaw, temperatura, przepływ i powierzchnia czynna</small></div>';
    html += '</div>';
    html += '<div class="rk-wood-rbar-wrap"><div class="rk-wood-rbar-labels"><span>Produkt: ' + formatNumber(productShare, 0) + '%</span><span>Podkład: ' + formatNumber(underlayShare, 0) + '%</span></div>';
    html += '<div class="rk-wood-rbar" aria-label="Udział produktu i podkładu w sumie oporu wykończenia"><span class="rk-wood-rbar-product" style="width:' + productShare + '%"></span><span class="rk-wood-rbar-underlay" style="width:' + underlayShare + '%"></span></div>';
    html += '<p class="rk-wood-rbar-note">Pasek pokazuje wyłącznie udział produktu i podkładu w obliczonej sumie R wykończenia. Jastrych, rury, izolacja i warunki wymiany ciepła nie są częścią tego paska, lecz muszą wejść do projektu całego emitera.</p></div></div>';

    resultBox.innerHTML = html;
  }

  installation.addEventListener("change", function () {
    syncInstallation();
  });

  form.addEventListener("submit", analyzeBoard);

  resetButton.addEventListener("click", function () {
    form.reset();
    syncInstallation();
    analyzeBoard();
  });

  renderComparison();
  syncInstallation();
  analyzeBoard();
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/">Drewno na ogrzewanie podłogowe – tabela gatunków i analizator deski.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Układ meandrowy ogrzewania podłogowego – schemat, zastosowanie i błędy</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/">Układ meandrowy ogrzewania podłogowego – schemat, zastosowanie i błędy</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-pipe-guide {
    --rk-navy: #0b2536;
    --rk-navy-2: #12394d;
    --rk-navy-3: #1b465b;
    --rk-cyan: #29c4d7;
    --rk-cyan-dark: #078fb3;
    --rk-cyan-soft: #def7fa;
    --rk-orange: #ff6846;
    --rk-orange-dark: #e44f31;
    --rk-yellow: #f2b526;
    --rk-green: #2fcda1;
    --rk-green-dark: #168267;
    --rk-red: #d7504a;
    --rk-purple: #6963ce;
    --rk-ink: #10283a;
    --rk-copy: #3c5668;
    --rk-muted: #6b8191;
    --rk-line: #d3e2e8;
    --rk-bg: #f3f8fa;
    --rk-white: #ffffff;
    color: var(--rk-ink);
    font-family: Arial, Helvetica, sans-serif;
    line-height: 1.62;
    margin: 0 auto;
    max-width: 1360px;
    overflow-wrap: anywhere;
    width: 100%;
  }

  #rk-pipe-guide,
  #rk-pipe-guide * {
    box-sizing: border-box;
    min-width: 0;
  }

  #rk-pipe-guide a {
    color: var(--rk-cyan-dark);
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }

  #rk-pipe-guide a:hover,
  #rk-pipe-guide a:focus-visible {
    color: var(--rk-orange-dark);
  }

  #rk-pipe-guide button,
  #rk-pipe-guide input,
  #rk-pipe-guide select {
    font: inherit;
  }

  #rk-pipe-guide button:focus-visible,
  #rk-pipe-guide a:focus-visible,
  #rk-pipe-guide summary:focus-visible,
  #rk-pipe-guide input:focus-visible,
  #rk-pipe-guide select:focus-visible {
    outline: 3px solid rgba(41, 196, 215, 0.48);
    outline-offset: 3px;
  }

  #rk-pipe-guide img {
    display: block;
    height: auto;
    max-width: 100%;
  }

  #rk-pipe-guide .rk-pipe-shell {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    box-shadow: 0 22px 65px rgba(13, 41, 57, 0.12);
    overflow: hidden;
  }

  #rk-pipe-guide .rk-pipe-hero {
    background:
      radial-gradient(circle at 89% 111%, rgba(41, 196, 215, 0.24) 0, rgba(41, 196, 215, 0.24) 17%, transparent 17.2%),
      linear-gradient(120deg, #0b2536 0%, #143e52 61%, #0d6576 100%);
    color: var(--rk-white);
    overflow: hidden;
    padding: 62px 58px 56px;
    position: relative;
  }

  #rk-pipe-guide .rk-pipe-hero::before {
    background: var(--rk-orange);
    border-radius: 50%;
    box-shadow: 0 0 0 9px rgba(255, 104, 70, 0.14);
    content: "";
    height: 12px;
    left: 58px;
    position: absolute;
    top: 43px;
    width: 12px;
  }

  #rk-pipe-guide .rk-pipe-kicker {
    color: #6ce5ef;
    display: block;
    font-size: 0.77rem;
    font-weight: 900;
    letter-spacing: 0.13em;
    margin: 0 0 19px 28px;
    text-transform: uppercase;
  }

  #rk-pipe-guide .rk-pipe-hero-title,
  #rk-pipe-guide .rk-pipe-section-title,
  #rk-pipe-guide .rk-pipe-cta-title,
  #rk-pipe-guide .rk-pipe-author-title {
    font-family: Arial, Helvetica, sans-serif;
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.06;
  }

  #rk-pipe-guide .rk-pipe-hero-title {
    font-size: clamp(2.4rem, 6vw, 5.35rem);
    margin: 0;
    max-width: 1180px;
  }

  #rk-pipe-guide .rk-pipe-hero-title span {
    color: #69e7f2;
  }

  #rk-pipe-guide .rk-pipe-hero-lead {
    color: #e3f0f4;
    font-size: clamp(1.08rem, 2vw, 1.43rem);
    line-height: 1.55;
    margin: 27px 0 0;
    max-width: 1080px;
  }

  #rk-pipe-guide .rk-pipe-hero-tags,
  #rk-pipe-guide .rk-pipe-meta,
  #rk-pipe-guide .rk-pipe-shortcuts {
    display: flex;
    flex-wrap: wrap;
  }

  #rk-pipe-guide .rk-pipe-hero-tags {
    gap: 10px;
    margin-top: 30px;
  }

  #rk-pipe-guide .rk-pipe-hero-tags span {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 999px;
    color: #ffffff;
    font-size: 0.82rem;
    font-weight: 800;
    padding: 8px 14px;
  }

  #rk-pipe-guide .rk-pipe-meta {
    color: #c5d9df;
    font-size: 0.83rem;
    font-weight: 700;
    gap: 12px 24px;
    margin-top: 34px;
  }

  #rk-pipe-guide .rk-pipe-meta strong {
    color: #ffffff;
  }

  #rk-pipe-guide .rk-pipe-shortcuts {
    align-items: center;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-line);
    gap: 9px;
    padding: 22px 34px;
    position: static;
  }

  #rk-pipe-guide .rk-pipe-shortcuts-label {
    color: var(--rk-ink);
    flex: 1 0 100%;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    margin-bottom: 2px;
    text-transform: uppercase;
  }

  #rk-pipe-guide .rk-pipe-shortcuts a {
    background: #f1f6f8;
    border: 1px solid transparent;
    border-radius: 999px;
    color: var(--rk-ink);
    font-size: 0.76rem;
    font-weight: 800;
    line-height: 1.25;
    padding: 8px 12px;
    text-decoration: none;
  }

  #rk-pipe-guide .rk-pipe-shortcuts a:hover,
  #rk-pipe-guide .rk-pipe-shortcuts a:focus-visible {
    background: var(--rk-cyan-soft);
    border-color: #91dce5;
    color: #075f78;
  }

  #rk-pipe-guide .rk-pipe-section {
    padding: 64px 58px;
  }

  #rk-pipe-guide .rk-pipe-section + .rk-pipe-section {
    border-top: 1px solid var(--rk-line);
  }

  #rk-pipe-guide .rk-pipe-section-soft {
    background: var(--rk-bg);
  }

  #rk-pipe-guide .rk-pipe-section-dark {
    background: var(--rk-navy);
    color: #ffffff;
  }

  #rk-pipe-guide .rk-pipe-eyebrow {
    color: var(--rk-cyan-dark);
    display: block;
    font-size: 0.75rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    margin-bottom: 12px;
    text-transform: uppercase;
  }

  #rk-pipe-guide .rk-pipe-section-dark .rk-pipe-eyebrow {
    color: #68e6ef;
  }

  #rk-pipe-guide .rk-pipe-section-title,
  #rk-pipe-guide .rk-pipe-author-title {
    color: var(--rk-ink);
    font-size: clamp(2rem, 4vw, 3.65rem);
    margin: 0;
    max-width: 1050px;
  }

  #rk-pipe-guide .rk-pipe-section-dark .rk-pipe-section-title {
    color: #ffffff;
  }

  #rk-pipe-guide .rk-pipe-lead {
    color: var(--rk-copy);
    font-size: clamp(1.03rem, 1.7vw, 1.25rem);
    line-height: 1.7;
    margin: 22px 0 0;
    max-width: 1120px;
  }

  #rk-pipe-guide .rk-pipe-section-dark .rk-pipe-lead,
  #rk-pipe-guide .rk-pipe-section-dark .rk-pipe-copy {
    color: #c8dbe2;
  }

  #rk-pipe-guide .rk-pipe-copy {
    color: var(--rk-copy);
    margin: 22px 0 0;
  }

  #rk-pipe-guide .rk-pipe-copy strong,
  #rk-pipe-guide .rk-pipe-lead strong {
    color: var(--rk-ink);
  }

  #rk-pipe-guide .rk-pipe-section-dark .rk-pipe-copy strong,
  #rk-pipe-guide .rk-pipe-section-dark .rk-pipe-lead strong {
    color: #ffffff;
  }

  #rk-pipe-guide .rk-pipe-answer {
    background: linear-gradient(135deg, #e6fafd 0%, #f8fcfd 100%);
    border: 1px solid #9cdfe8;
    border-left: 7px solid var(--rk-cyan);
    border-radius: 18px;
    margin-top: 28px;
    padding: 27px 29px;
  }

  #rk-pipe-guide .rk-pipe-answer strong {
    color: var(--rk-ink);
    display: block;
    font-size: 1.24rem;
    line-height: 1.4;
  }

  #rk-pipe-guide .rk-pipe-answer p {
    color: var(--rk-copy);
    margin: 10px 0 0;
  }

  #rk-pipe-guide .rk-pipe-grid-2,
  #rk-pipe-guide .rk-pipe-grid-3,
  #rk-pipe-guide .rk-pipe-grid-4,
  #rk-pipe-guide .rk-pipe-source-grid,
  #rk-pipe-guide .rk-pipe-author-facts,
  #rk-pipe-guide .rk-meander-step-grid,
  #rk-pipe-guide .rk-meander-results,
  #rk-pipe-guide .rk-meander-check-grid {
    display: grid;
    gap: 18px;
    margin-top: 30px;
  }

  #rk-pipe-guide .rk-pipe-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-pipe-guide .rk-pipe-grid-3,
  #rk-pipe-guide .rk-meander-step-grid,
  #rk-pipe-guide .rk-meander-check-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-pipe-guide .rk-pipe-grid-4,
  #rk-pipe-guide .rk-meander-results {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #rk-pipe-guide .rk-pipe-card {
    background: #ffffff;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    padding: 24px;
  }

  #rk-pipe-guide .rk-pipe-section-soft .rk-pipe-card {
    background: rgba(255, 255, 255, 0.88);
  }

  #rk-pipe-guide .rk-pipe-card-number,
  #rk-pipe-guide .rk-pipe-icon {
    align-items: center;
    background: var(--rk-cyan-soft);
    border-radius: 10px;
    color: #076c85;
    display: inline-flex;
    font-size: 0.82rem;
    font-weight: 900;
    height: 36px;
    justify-content: center;
    margin-bottom: 14px;
    min-width: 36px;
    padding: 0 10px;
  }

  #rk-pipe-guide .rk-pipe-card h3 {
    color: var(--rk-ink);
    font-size: 1.12rem;
    line-height: 1.3;
    margin: 0 0 9px;
  }

  #rk-pipe-guide .rk-pipe-card p {
    color: var(--rk-copy);
    margin: 0;
  }

  #rk-pipe-guide .rk-pipe-note {
    background: #fff6e2;
    border-left: 6px solid var(--rk-yellow);
    border-radius: 14px;
    color: #5b4a1d;
    margin-top: 26px;
    padding: 18px 21px;
  }

  #rk-pipe-guide .rk-pipe-note p {
    margin: 0;
  }

  #rk-pipe-guide .rk-pipe-note-good {
    background: #e9faf5;
    border-left-color: var(--rk-green);
    color: #145e4d;
  }

  #rk-pipe-guide .rk-pipe-note-bad {
    background: #fff0ec;
    border-left-color: var(--rk-orange);
    color: #743425;
  }

  #rk-pipe-guide .rk-pipe-table-wrap {
    margin-top: 30px;
    overflow-x: auto;
  }

  #rk-pipe-guide table {
    border-collapse: separate;
    border-spacing: 0;
    min-width: 760px;
    width: 100%;
  }

  #rk-pipe-guide th {
    background: var(--rk-navy);
    border-bottom: 1px solid #31576a;
    color: #ffffff;
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    padding: 15px 16px;
    text-align: left;
    text-transform: uppercase;
  }

  #rk-pipe-guide th:first-child {
    border-radius: 14px 0 0;
  }

  #rk-pipe-guide th:last-child {
    border-radius: 0 14px 0 0;
  }

  #rk-pipe-guide td {
    background: #ffffff;
    border-bottom: 1px solid var(--rk-line);
    color: var(--rk-copy);
    padding: 16px;
    vertical-align: top;
  }

  #rk-pipe-guide tbody tr td:first-child {
    border-left: 1px solid var(--rk-line);
  }

  #rk-pipe-guide tbody tr td:last-child {
    border-right: 1px solid var(--rk-line);
  }

  #rk-pipe-guide tbody tr:last-child td:first-child {
    border-radius: 0 0 0 14px;
  }

  #rk-pipe-guide tbody tr:last-child td:last-child {
    border-radius: 0 0 14px;
  }

  #rk-pipe-guide td strong {
    color: var(--rk-ink);
  }

  #rk-pipe-guide .rk-pipe-formula {
    background: #edf8fa;
    border: 1px solid #b4e1e7;
    border-radius: 13px;
    color: #086b82;
    font-family: Consolas, Monaco, monospace;
    font-size: 1rem;
    font-weight: 700;
    margin-top: 20px;
    padding: 15px 18px;
  }

  #rk-pipe-guide .rk-pipe-bullets {
    color: var(--rk-copy);
    margin: 20px 0 0;
    padding-left: 22px;
  }

  #rk-pipe-guide .rk-pipe-bullets li + li {
    margin-top: 9px;
  }

  #rk-pipe-guide .rk-meander-visual {
    background: #102f42;
    border: 1px solid #315a70;
    border-radius: 22px;
    margin-top: 32px;
    padding: 28px;
  }

  #rk-pipe-guide .rk-meander-visual-head {
    border-bottom: 1px solid #315a70;
    margin-bottom: 25px;
    padding-bottom: 20px;
  }

  #rk-pipe-guide .rk-meander-visual-head h3 {
    color: #ffffff;
    font-size: clamp(1.55rem, 3vw, 2.3rem);
    line-height: 1.2;
    margin: 0;
  }

  #rk-pipe-guide .rk-meander-visual-head p {
    color: #bad3dc;
    margin: 9px 0 0;
  }

  #rk-pipe-guide .rk-meander-stage-panel {
    background: #17394b;
    border: 1px solid #376177;
    border-radius: 18px;
    display: flex;
    flex-direction: column;
    padding: 24px;
  }

  #rk-pipe-guide .rk-meander-stage-kicker {
    color: #70e5ef;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  #rk-pipe-guide .rk-meander-stage-panel h3 {
    color: #ffffff;
    font-size: 1.55rem;
    line-height: 1.25;
    margin: 9px 0 10px;
  }

  #rk-pipe-guide .rk-meander-stage-panel > p {
    color: #c8dce3;
    margin: 0;
  }

  #rk-pipe-guide .rk-meander-stage-facts {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 21px;
  }

  #rk-pipe-guide .rk-meander-stage-fact {
    background: rgba(255, 255, 255, 0.055);
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 12px;
    padding: 14px;
  }

  #rk-pipe-guide .rk-meander-stage-fact strong {
    color: #70e5ef;
    display: block;
    font-size: 0.7rem;
    letter-spacing: 0.07em;
    margin-bottom: 4px;
    text-transform: uppercase;
  }

  #rk-pipe-guide .rk-meander-stage-fact span {
    color: #ffffff;
    font-size: 0.9rem;
  }

  #rk-pipe-guide .rk-meander-step-button {
    background: #173e51;
    border: 1px solid #356178;
    border-radius: 15px;
    color: #ffffff;
    cursor: pointer;
    min-height: 112px;
    padding: 17px;
    text-align: left;
  }

  #rk-pipe-guide .rk-meander-step-button[aria-pressed="true"] {
    background: var(--rk-cyan);
    border-color: var(--rk-cyan);
    color: #072838;
  }

  #rk-pipe-guide .rk-meander-step-number {
    align-items: center;
    background: rgba(255, 255, 255, 0.13);
    border-radius: 8px;
    display: inline-flex;
    font-weight: 900;
    height: 32px;
    justify-content: center;
    margin-bottom: 10px;
    width: 32px;
  }

  #rk-pipe-guide .rk-meander-step-button[aria-pressed="true"] .rk-meander-step-number {
    background: rgba(7, 40, 56, 0.13);
  }

  #rk-pipe-guide .rk-meander-step-button strong {
    display: block;
    font-size: 0.94rem;
    line-height: 1.3;
  }

  #rk-pipe-guide .rk-meander-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 20px;
    margin-top: 18px;
  }

  #rk-pipe-guide .rk-meander-legend span {
    align-items: center;
    color: #c8dce3;
    display: inline-flex;
    font-size: 0.82rem;
    font-weight: 800;
    gap: 8px;
  }

  #rk-pipe-guide .rk-meander-legend i {
    border-radius: 999px;
    display: inline-block;
    height: 7px;
    width: 32px;
  }

  #rk-pipe-guide .rk-meander-legend .is-hot {
    background: var(--rk-orange);
  }

  #rk-pipe-guide .rk-meander-legend .is-cool {
    background: #168cb7;
  }

  #rk-pipe-guide .rk-meander-calculator {
    background: #102f42;
    border: 1px solid #315a70;
    border-radius: 22px;
    margin-top: 32px;
    padding: 28px;
  }

  #rk-pipe-guide .rk-meander-calculator-head {
    border-bottom: 1px solid #315a70;
    margin-bottom: 24px;
    padding-bottom: 19px;
  }

  #rk-pipe-guide .rk-meander-calculator-head h3 {
    color: #ffffff;
    font-size: clamp(1.55rem, 3vw, 2.3rem);
    line-height: 1.2;
    margin: 0;
  }

  #rk-pipe-guide .rk-meander-calculator-head p {
    color: #bad3dc;
    margin: 9px 0 0;
  }

  #rk-pipe-guide .rk-meander-fields {
    display: grid;
    gap: 15px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #rk-pipe-guide .rk-meander-field {
    display: block;
  }

  #rk-pipe-guide .rk-meander-field span {
    color: #eaf6f8;
    display: block;
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1.35;
    margin-bottom: 7px;
  }

  #rk-pipe-guide .rk-meander-field input,
  #rk-pipe-guide .rk-meander-field select {
    background: #ffffff;
    border: 1px solid #b8ccd5;
    border-radius: 10px;
    color: var(--rk-ink);
    min-height: 48px;
    padding: 10px 12px;
    width: 100%;
  }

  #rk-pipe-guide .rk-meander-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    margin-top: 20px;
  }

  #rk-pipe-guide .rk-meander-calculate,
  #rk-pipe-guide .rk-meander-reset {
    border-radius: 11px;
    cursor: pointer;
    font-weight: 900;
    min-height: 48px;
    padding: 11px 18px;
  }

  #rk-pipe-guide .rk-meander-calculate {
    background: var(--rk-orange);
    border: 1px solid var(--rk-orange);
    color: #ffffff;
  }

  #rk-pipe-guide .rk-meander-calculate:hover {
    background: var(--rk-orange-dark);
  }

  #rk-pipe-guide .rk-meander-reset {
    background: transparent;
    border: 1px solid #5d7c8d;
    color: #ffffff;
  }

  #rk-pipe-guide .rk-meander-calculator-result {
    background: #ffffff;
    border-left: 7px solid var(--rk-yellow);
    border-radius: 17px;
    margin-top: 22px;
    padding: 24px;
  }

  #rk-pipe-guide .rk-meander-calculator-result.is-good {
    border-left-color: var(--rk-green);
  }

  #rk-pipe-guide .rk-meander-calculator-result.is-stop {
    border-left-color: var(--rk-orange);
  }

  #rk-pipe-guide .rk-meander-result-status {
    color: var(--rk-ink);
    font-size: clamp(1.3rem, 2.5vw, 1.95rem);
    font-weight: 900;
    line-height: 1.25;
    margin: 0;
  }

  #rk-pipe-guide .rk-meander-result-intro {
    color: var(--rk-copy);
    margin: 8px 0 0;
  }

  #rk-pipe-guide .rk-meander-result-card {
    background: #f4f9fa;
    border: 1px solid var(--rk-line);
    border-radius: 13px;
    padding: 16px;
  }

  #rk-pipe-guide .rk-meander-result-card strong {
    color: var(--rk-cyan-dark);
    display: block;
    font-size: 0.7rem;
    letter-spacing: 0.06em;
    margin-bottom: 6px;
    text-transform: uppercase;
  }

  #rk-pipe-guide .rk-meander-result-card span {
    color: var(--rk-ink);
    display: block;
    font-size: 1.35rem;
    font-weight: 900;
    line-height: 1.2;
  }

  #rk-pipe-guide .rk-meander-result-card small {
    color: var(--rk-muted);
    display: block;
    font-size: 0.75rem;
    margin-top: 5px;
  }

  #rk-pipe-guide .rk-meander-disclaimer {
    color: #6c8190;
    font-size: 0.78rem;
    margin: 16px 0 0;
  }

  #rk-pipe-guide .rk-pipe-cta {
    background:
      radial-gradient(circle at 93% 120%, rgba(41, 196, 215, 0.22) 0, rgba(41, 196, 215, 0.22) 19%, transparent 19.2%),
      linear-gradient(125deg, #0b2536 0%, #153e51 62%, #0d6272 100%);
    border-radius: 21px;
    color: #ffffff;
    margin-top: 34px;
    overflow: hidden;
    padding: 36px;
  }

  #rk-pipe-guide .rk-pipe-cta-title {
    color: #ffffff;
    font-size: clamp(1.7rem, 3.3vw, 2.8rem);
    margin: 0;
    max-width: 970px;
  }

  #rk-pipe-guide .rk-pipe-cta p {
    color: #cee0e6;
    margin: 14px 0 0;
    max-width: 970px;
  }

  #rk-pipe-guide .rk-pipe-cta-button {
    background: var(--rk-orange);
    border-radius: 12px;
    box-shadow: 0 12px 25px rgba(255, 104, 70, 0.24);
    color: #ffffff;
    display: inline-block;
    font-weight: 900;
    margin-top: 22px;
    padding: 14px 20px;
    text-decoration: none;
  }

  #rk-pipe-guide .rk-pipe-cta-button:hover,
  #rk-pipe-guide .rk-pipe-cta-button:focus-visible {
    background: #ffffff;
    color: var(--rk-orange-dark);
  }

  #rk-pipe-guide .rk-pipe-link-disclosure {
    color: #a9c4ce;
    display: block;
    font-size: 0.75rem;
    margin-top: 12px;
  }

  #rk-pipe-guide .rk-pipe-final {
    background: linear-gradient(180deg, #f4fafb 0%, #ffffff 100%);
  }

  #rk-pipe-guide .rk-pipe-source-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-pipe-guide .rk-pipe-source-card {
    background: #f2f7f9;
    border: 1px solid #cfe0e7;
    border-radius: 15px;
    padding: 20px;
  }

  #rk-pipe-guide .rk-pipe-source-card a {
    color: var(--rk-cyan-dark);
    font-size: 1rem;
    font-weight: 900;
  }

  #rk-pipe-guide .rk-pipe-source-card p {
    color: var(--rk-copy);
    margin: 8px 0 0;
  }

  #rk-pipe-guide .rk-pipe-responsibility {
    background: #fff0eb;
    border-left: 6px solid var(--rk-orange);
    border-radius: 14px;
    color: #613427;
    margin-top: 26px;
    padding: 19px 22px;
  }

  #rk-pipe-guide .rk-pipe-responsibility p {
    margin: 0;
  }

  #rk-pipe-guide .rk-pipe-faq {
    display: grid;
    gap: 12px;
    margin-top: 30px;
  }

  #rk-pipe-guide .rk-pipe-faq details {
    background: #ffffff;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    overflow: hidden;
  }

  #rk-pipe-guide .rk-pipe-faq summary {
    color: var(--rk-ink);
    cursor: pointer;
    font-weight: 900;
    list-style: none;
    padding: 19px 52px 19px 20px;
    position: relative;
  }

  #rk-pipe-guide .rk-pipe-faq summary::-webkit-details-marker {
    display: none;
  }

  #rk-pipe-guide .rk-pipe-faq summary::after {
    color: var(--rk-cyan-dark);
    content: "+";
    font-size: 1.55rem;
    font-weight: 700;
    position: absolute;
    right: 20px;
    top: 12px;
  }

  #rk-pipe-guide .rk-pipe-faq details[open] summary::after {
    content: "−";
  }

  #rk-pipe-guide .rk-pipe-faq-answer {
    border-top: 1px solid var(--rk-line);
    color: var(--rk-copy);
    padding: 18px 20px;
  }

  #rk-pipe-guide .rk-pipe-faq-answer p {
    margin: 0;
  }

  #rk-pipe-guide .rk-pipe-author {
    background: #eef6f8;
    border-top: 1px solid var(--rk-line);
    padding: 64px 58px;
  }

  #rk-pipe-guide .rk-pipe-author-layout {
    background: #ffffff;
    border: 1px solid #cbdde5;
    border-radius: 21px;
    display: grid;
    grid-template-columns: 290px minmax(0, 1fr);
    overflow: hidden;
  }

  #rk-pipe-guide .rk-pipe-author-side {
    align-items: center;
    background: var(--rk-navy);
    color: #ffffff;
    display: flex;
    flex-direction: column;
    padding: 35px 25px;
    text-align: center;
  }

  #rk-pipe-guide .rk-pipe-author-photo {
    background: #ffffff;
    border: 6px solid rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    overflow: hidden;
    width: 158px;
  }

  #rk-pipe-guide .rk-pipe-author-name {
    font-size: 1.25rem;
    font-weight: 900;
    margin-top: 20px;
  }

  #rk-pipe-guide .rk-pipe-author-role {
    color: #bcd2db;
    font-size: 0.82rem;
    margin: 8px 0 0;
  }

  #rk-pipe-guide .rk-pipe-author-social {
    display: flex;
    gap: 10px;
    margin-top: 21px;
  }

  #rk-pipe-guide .rk-pipe-author-social a {
    align-items: center;
    border: 1px solid #497185;
    border-radius: 50%;
    color: #d8e9ee;
    display: inline-flex;
    height: 42px;
    justify-content: center;
    text-decoration: none;
    width: 42px;
  }

  #rk-pipe-guide .rk-pipe-author-social a:hover {
    background: var(--rk-cyan);
    color: var(--rk-navy);
  }

  #rk-pipe-guide .rk-pipe-author-main {
    padding: 37px;
  }

  #rk-pipe-guide .rk-pipe-author-title {
    font-size: clamp(1.85rem, 3.5vw, 3rem);
  }

  #rk-pipe-guide .rk-pipe-author-quote {
    background: #f7fbfc;
    border: 1px solid #cfe0e7;
    border-left: 6px solid var(--rk-cyan);
    border-radius: 14px;
    color: var(--rk-ink);
    font-size: 1.04rem;
    font-style: italic;
    font-weight: 700;
    line-height: 1.7;
    margin-top: 24px;
    padding: 20px 22px;
  }

  #rk-pipe-guide .rk-pipe-author-main > p {
    color: var(--rk-copy);
    margin: 18px 0 0;
  }

  #rk-pipe-guide .rk-pipe-author-facts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-pipe-guide .rk-pipe-author-fact {
    background: #eef7f9;
    border: 1px solid #d2e4e9;
    border-radius: 13px;
    color: var(--rk-copy);
    font-size: 0.84rem;
    padding: 15px;
  }

  #rk-pipe-guide .rk-pipe-author-fact strong {
    color: var(--rk-cyan-dark);
    display: block;
    font-size: 0.73rem;
    letter-spacing: 0.06em;
    margin-bottom: 5px;
    text-transform: uppercase;
  }

  #rk-pipe-guide .rk-pipe-visually-hidden {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
  }

  @media (max-width: 1050px) {
    #rk-pipe-guide .rk-pipe-grid-4,
    #rk-pipe-guide .rk-meander-results {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-pipe-guide .rk-meander-fields {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

  }

  @media (max-width: 820px) {
    #rk-pipe-guide .rk-pipe-hero,
    #rk-pipe-guide .rk-pipe-section,
    #rk-pipe-guide .rk-pipe-author {
      padding-left: 28px;
      padding-right: 28px;
    }

    #rk-pipe-guide .rk-pipe-hero::before {
      left: 28px;
    }

    #rk-pipe-guide .rk-pipe-shortcuts {
      padding-left: 22px;
      padding-right: 22px;
    }

    #rk-pipe-guide .rk-pipe-grid-3,
    #rk-pipe-guide .rk-meander-step-grid,
    #rk-pipe-guide .rk-meander-check-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-pipe-guide .rk-pipe-author-layout {
      grid-template-columns: minmax(0, 1fr);
    }
  }

  @media (max-width: 660px) {
    #rk-pipe-guide .rk-pipe-hero {
      padding-bottom: 42px;
      padding-top: 52px;
    }

    #rk-pipe-guide .rk-pipe-section,
    #rk-pipe-guide .rk-pipe-author {
      padding-bottom: 46px;
      padding-top: 46px;
    }

    #rk-pipe-guide .rk-pipe-grid-2,
    #rk-pipe-guide .rk-pipe-grid-3,
    #rk-pipe-guide .rk-pipe-grid-4,
    #rk-pipe-guide .rk-pipe-source-grid,
    #rk-pipe-guide .rk-pipe-author-facts,
    #rk-pipe-guide .rk-meander-step-grid,
    #rk-pipe-guide .rk-meander-results,
    #rk-pipe-guide .rk-meander-check-grid,
    #rk-pipe-guide .rk-meander-fields {
      grid-template-columns: minmax(0, 1fr);
    }

    #rk-pipe-guide .rk-meander-visual,
    #rk-pipe-guide .rk-meander-calculator,
    #rk-pipe-guide .rk-pipe-cta {
      border-radius: 17px;
      padding: 20px;
    }

    #rk-pipe-guide .rk-meander-stage-panel,
    #rk-pipe-guide .rk-meander-calculator-result {
      padding: 18px;
    }

    #rk-pipe-guide .rk-meander-stage-facts {
      grid-template-columns: minmax(0, 1fr);
    }

    #rk-pipe-guide .rk-meander-actions {
      display: grid;
      grid-template-columns: minmax(0, 1fr);
    }

    #rk-pipe-guide .rk-meander-calculate,
    #rk-pipe-guide .rk-meander-reset,
    #rk-pipe-guide .rk-pipe-cta-button {
      text-align: center;
      width: 100%;
    }

    #rk-pipe-guide .rk-pipe-table-wrap {
      overflow: visible;
    }

    #rk-pipe-guide table,
    #rk-pipe-guide thead,
    #rk-pipe-guide tbody,
    #rk-pipe-guide tr,
    #rk-pipe-guide th,
    #rk-pipe-guide td {
      display: block;
      min-width: 0;
      width: 100%;
    }

    #rk-pipe-guide thead {
      clip: rect(0 0 0 0);
      clip-path: inset(50%);
      height: 1px;
      overflow: hidden;
      position: absolute;
      white-space: nowrap;
      width: 1px;
    }

    #rk-pipe-guide tbody {
      display: grid;
      gap: 14px;
    }

    #rk-pipe-guide tbody tr {
      background: #ffffff;
      border: 1px solid var(--rk-line);
      border-radius: 14px;
      overflow: hidden;
    }

    #rk-pipe-guide td,
    #rk-pipe-guide tbody tr td:first-child,
    #rk-pipe-guide tbody tr td:last-child {
      border: 0;
      border-bottom: 1px solid #e1ebef;
      border-radius: 0;
      padding: 13px 15px;
    }

    #rk-pipe-guide td:last-child {
      border-bottom: 0;
    }

    #rk-pipe-guide td::before {
      color: var(--rk-cyan-dark);
      content: attr(data-label);
      display: block;
      font-size: 0.69rem;
      font-weight: 900;
      letter-spacing: 0.07em;
      margin-bottom: 4px;
      text-transform: uppercase;
    }

    #rk-pipe-guide .rk-pipe-author-main {
      padding: 25px 20px;
    }
  }

  @media (max-width: 430px) {
    #rk-pipe-guide .rk-pipe-hero,
    #rk-pipe-guide .rk-pipe-section,
    #rk-pipe-guide .rk-pipe-author {
      padding-left: 18px;
      padding-right: 18px;
    }

    #rk-pipe-guide .rk-pipe-hero::before {
      left: 18px;
    }

    #rk-pipe-guide .rk-pipe-shortcuts {
      padding-left: 14px;
      padding-right: 14px;
    }

    #rk-pipe-guide .rk-pipe-shortcuts a {
      flex: 1 1 calc(50% - 9px);
      text-align: center;
    }

    #rk-pipe-guide .rk-pipe-hero-title {
      font-size: 2.25rem;
    }

    #rk-pipe-guide .rk-pipe-section-title {
      font-size: 1.9rem;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    #rk-pipe-guide *,
    #rk-pipe-guide *::before,
    #rk-pipe-guide *::after {
      scroll-behavior: auto;
      transition-duration: 0.01ms;
    }
  }

  #rk-pipe-guide .rk-meander-tabs {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: 20px;
  }

  #rk-pipe-guide .rk-meander-tab {
    background: #173e51;
    border: 1px solid #3a6479;
    border-radius: 12px;
    color: #ffffff;
    cursor: pointer;
    font-weight: 900;
    line-height: 1.3;
    min-height: 50px;
    padding: 10px 12px;
  }

  #rk-pipe-guide .rk-meander-tab[aria-selected="true"] {
    background: var(--rk-cyan);
    border-color: var(--rk-cyan);
    color: #072838;
  }

  #rk-pipe-guide .rk-meander-result-list {
    color: var(--rk-copy);
    margin: 15px 0 0;
    padding-left: 20px;
  }

  #rk-pipe-guide .rk-meander-result-list li + li {
    margin-top: 8px;
  }

  #rk-pipe-guide .rk-meander-calculator-result.is-conditional {
    border-left-color: var(--rk-yellow);
  }

  #rk-pipe-guide .rk-meander-score {
    background: #eef7f9;
    border-radius: 999px;
    color: var(--rk-cyan-dark);
    display: inline-flex;
    font-size: 0.75rem;
    font-weight: 900;
    margin-top: 15px;
    padding: 7px 11px;
  }

  @media (max-width: 660px) {
    #rk-pipe-guide .rk-meander-tabs {
      grid-template-columns: minmax(0, 1fr);
    }
  }
</style>

<article id="rk-pipe-guide" aria-labelledby="rk-meander-visual-title">
  <div class="rk-pipe-shell">
    <header class="rk-pipe-hero">
      <span class="rk-pipe-kicker">Od kierunku zasilania do policzonej pętli</span>
      <div class="rk-pipe-hero-title" id="rk-meander-visual-title">Układ meandrowy podłogówki: <span>kierunek ma znaczenie</span></div>
      <p class="rk-pipe-hero-lead">Meander prowadzi rurę kolejnymi równoległymi pasami, dlatego cieplejszy początek pętli i chłodniejszy koniec mogą tworzyć zamierzony kierunek oddawania ciepła. To zaleta tylko wtedy, gdy zasilanie rozpoczyna się we właściwym miejscu, a moc, rozstaw, długość i przepływ wynikają z obliczeń.</p>
      <div class="rk-pipe-hero-tags" aria-label="Zakres poradnika">
        <span>meander pojedynczy</span>
        <span>meander podwójny</span>
        <span>kierunek zasilania</span>
        <span>strefa brzegowa</span>
        <span>hydraulika i montaż</span>
      </div>
      <div class="rk-pipe-meta">
        <span>Autor: <strong>Robert Kucharski</strong></span>
        <span>Czas czytania: <strong>około 25 minut</strong></span>
        <span>Aktualizacja techniczna: <strong>15 września 2026 r.</strong></span>
      </div>
    </header>

    <nav class="rk-pipe-shortcuts" aria-label="Na skróty — wszystkie sekcje artykułu">
      <span class="rk-pipe-shortcuts-label">Na skróty</span>
      <a href="#rk-meander-answer">Szybka odpowiedź</a>
      <a href="#rk-meander-operation">Jak działa</a>
      <a href="#rk-meander-variants">Trzy układy</a>
      <a href="#rk-meander-visual">Porównanie układów</a>
      <a href="#rk-meander-analyzer-section">Analizator</a>
      <a href="#rk-meander-inputs">Dane projektowe</a>
      <a href="#rk-meander-edge">Zasilanie i brzeg</a>
      <a href="#rk-meander-spacing">Rozstaw i nawroty</a>
      <a href="#rk-meander-hydraulics">Hydraulika</a>
      <a href="#rk-meander-systems">System mokry i suchy</a>
      <a href="#rk-meander-installation">Układanie krok po kroku</a>
      <a href="#rk-meander-comparison">Meander czy ślimak</a>
      <a href="#rk-meander-errors">Błędy</a>
      <a href="#rk-meander-checklist">Checklista</a>
      <a href="#rk-meander-final">Podsumowanie</a>
      <a href="#rk-meander-sources">Źródła</a>
      <a href="#rk-meander-faq">FAQ</a>
      <a href="#rk-meander-author">Autor</a>
    </nav>

    <section class="rk-pipe-section" id="rk-meander-answer">
      <span class="rk-pipe-eyebrow">Odpowiedź w 60 sekund</span>
      <h2 class="rk-pipe-section-title">Czym jest układ meandrowy ogrzewania podłogowego?</h2>
      <p class="rk-pipe-lead"><strong>Układ meandrowy, nazywany także wężownicą, prowadzi jedną rurę równoległymi pasami po powierzchni grzewczej.</strong> Woda stopniowo oddaje ciepło podczas przepływu, więc początek pętli ma zwykle większy potencjał grzewczy niż jej końcowa część.</p>
      <div class="rk-pipe-answer">
        <strong>Meander jest dobrym wyborem wtedy, gdy projektant chce świadomie skierować cieplejszy początek pętli do obszaru o większych stratach albo gdy geometrię narzuca suchy system płytowy.</strong>
        <p>Nie jest automatycznie lepszy ani gorszy od ślimaka. Jeżeli pomieszczenie wymaga możliwie równomiernej temperatury powierzchni, częściej rozważa się ślimak lub meander podwójny. W każdym wariancie wynik zależy również od konstrukcji podłogi, okładziny, rozstawu, temperatury wody i przepływu.</p>
      </div>
      <div class="rk-pipe-grid-3">
        <article class="rk-pipe-card"><span class="rk-pipe-icon">1</span><h3>Kierunek jest funkcją</h3><p>Zasilanie można rozpocząć przy chłodniejszej przegrodzie, ale dopiero obciążenie cieplne pokazuje, czy taki profil jest rzeczywiście potrzebny.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-icon">2</span><h3>Jastrych wygładza różnice</h3><p>Temperatura wody zmienia się wzdłuż rury, lecz przewodzenie ciepła w warstwach podłogi łagodzi profil widoczny na powierzchni.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-icon">3</span><h3>Schemat nie zastępuje projektu</h3><p>Sam rysunek nie określa mocy, liczby pętli, długości, przepływów, oporów ani nastaw rozdzielacza.</p></article>
      </div>
      <p class="rk-pipe-copy">Jeżeli dopiero poznajesz cały system, zacznij od wyjaśnienia, <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/">jak działa ogrzewanie podłogowe</a>. Ten poradnik zawęża temat do geometrii meandra oraz decyzji potrzebnych przed jego ułożeniem.</p>
    </section>

<section class="rk-pipe-section rk-pipe-section-soft" id="rk-meander-operation">
      <span class="rk-pipe-eyebrow">Fizyka bez skrótów</span>
      <h2 class="rk-pipe-section-title">Jak pracuje meander od zasilania do powrotu?</h2>
      <p class="rk-pipe-lead">Czynnik wpływa do pętli z temperaturą zasilania, przepływa przez kolejne równoległe odcinki i wraca do rozdzielacza z niższą temperaturą. Spadek nie jest uniwersalną stałą przypisaną do meandra — wynika z oddawanej mocy i przepływu.</p>
      <div class="rk-pipe-grid-4">
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">Tz</span><h3>Początek pętli</h3><p>Ma najwyższą temperaturę czynnika w obrębie obwodu. Dlatego miejsce rozpoczęcia układania może wpływać na profil oddawania ciepła.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">q</span><h3>Oddawanie ciepła</h3><p>Zależy od średniej różnicy temperatur, budowy podłogi, rozstawu rur, oporu okładziny i warunków w pomieszczeniu.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">ΔT</span><h3>Schłodzenie wody</h3><p>Jest skutkiem przekazanej mocy przy konkretnym przepływie. Nie należy wpisywać go bez sprawdzenia całego obwodu.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">Tp</span><h3>Koniec pętli</h3><p>Wraca do rozdzielacza jako powrót. Jego położenie względem początku odróżnia meander pojedynczy od układów bardziej wyrównanych.</p></article>
      </div>
      <div class="rk-pipe-formula">moc przekazywana przez pętlę ≈ przepływ masowy × ciepło właściwe czynnika × (Tz − Tp)</div>
      <p class="rk-pipe-copy">Wzór porządkuje zależność energetyczną, ale nie wyznacza samodzielnie temperatury powierzchni. Wydajność ogrzewania płaszczyznowego trzeba powiązać z konstrukcją podłogi, średnią temperaturą czynnika i <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">oporem cieplnym warstw nad rurą</a>.</p>
      <div class="rk-pipe-note"><p><strong>Ważne rozróżnienie:</strong> temperatura wody w rurze, temperatura jastrychu i temperatura gotowej powierzchni podłogi to trzy różne wielkości. Nie wolno ich stosować zamiennie.</p></div>
    </section>

<section class="rk-pipe-section" id="rk-meander-variants">
      <span class="rk-pipe-eyebrow">Podobne nazwy, różny profil</span>
      <h2 class="rk-pipe-section-title">Meander pojedynczy, meander podwójny i ślimak</h2>
      <p class="rk-pipe-lead">Najważniejsza różnica nie polega na liczbie zakrętów, lecz na sąsiedztwie przewodów o różnych temperaturach. To ono wpływa na to, czy rozkład na powierzchni będzie bardziej kierunkowy, czy bardziej wyrównany.</p>
      <div class="rk-pipe-table-wrap">
        <table>
          <thead><tr><th>Układ</th><th>Sąsiedztwo rur</th><th>Profil temperatury</th><th>Typowy powód wyboru</th></tr></thead>
          <tbody>
            <tr><td data-label="Układ"><strong>Meander pojedynczy</strong></td><td data-label="Sąsiedztwo rur">Kolejne odcinki należą do kolejnych fragmentów tej samej drogi przepływu.</td><td data-label="Profil temperatury">Wyraźniej kierunkowy: od cieplejszego początku do chłodniejszego końca.</td><td data-label="Typowy powód wyboru">Celowe rozpoczęcie pętli przy strefie większych strat lub geometria systemu suchego.</td></tr>
            <tr><td data-label="Układ"><strong>Meander podwójny</strong></td><td data-label="Sąsiedztwo rur">Cieplejsze i chłodniejsze odcinki są przeplatane częściej niż w meandrze pojedynczym.</td><td data-label="Profil temperatury">Bardziej wyrównany, choć zależny od dokładnej trasy i konstrukcji podłogi.</td><td data-label="Typowy powód wyboru">Kiedy trzeba połączyć prostoliniowe prowadzenie z ograniczeniem gradientu powierzchni.</td></tr>
            <tr><td data-label="Układ"><strong>Ślimak</strong></td><td data-label="Sąsiedztwo rur">Zasilanie biegnie obok powrotu na dużej części powierzchni.</td><td data-label="Profil temperatury">Zwykle najbardziej równomierny w regularnym polu grzewczym.</td><td data-label="Typowy powód wyboru">Pomieszczenia mieszkalne bez potrzeby silnie kierunkowego profilu.</td></tr>
          </tbody>
        </table>
      </div>
      <p class="rk-pipe-copy">Pełne wykonanie wariantu spiralnego opisuje artykuł o <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/">układzie ślimakowym ogrzewania podłogowego</a>. Szersze porównanie decyzji projektowej pozostaje w osobnym poradniku: <a href="https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/">ślimak, meander czy podwójny meander</a>.</p>
    </section>

<section class="rk-pipe-section rk-pipe-section-dark" id="rk-meander-visual">
      <span class="rk-pipe-eyebrow">Interaktywne porównanie bez uproszczonego schematu</span>
      <h2 class="rk-pipe-section-title">Jak czytać różnice między meandrem pojedynczym, podwójnym i ślimakiem?</h2>
      <p class="rk-pipe-lead">Wybierz układ i porównaj cztery osobne kwestie: zmianę temperatury czynnika, wpływ na powierzchnię podłogi, uzasadnione zastosowanie oraz dane, które trzeba sprawdzić w projekcie. Nie rysujemy tu uniwersalnej trasy, ponieważ rzeczywisty przebieg zależy od kształtu pomieszczenia, przeszkód, stref wyłączonych i położenia rozdzielacza.</p>
      <div class="rk-meander-visual" id="rk-meander-visual-tool">
        <div class="rk-meander-visual-head">
          <h3>Porównaj zasadę działania, nie przykładowy rysunek</h3>
          <p>Zakładki nie wskazują gotowego sposobu ułożenia. Pokazują, jakie konsekwencje ma sąsiedztwo cieplejszych i chłodniejszych fragmentów tej samej pętli.</p>
        </div>
        <div class="rk-meander-tabs" role="tablist" aria-label="Wybór geometrii ułożenia rur">
          <button class="rk-meander-tab" type="button" role="tab" aria-selected="true" data-rk-layout="single">Meander pojedynczy</button>
          <button class="rk-meander-tab" type="button" role="tab" aria-selected="false" data-rk-layout="double">Meander podwójny</button>
          <button class="rk-meander-tab" type="button" role="tab" aria-selected="false" data-rk-layout="spiral">Ślimak</button>
        </div>
        <div class="rk-meander-stage-panel" role="tabpanel" aria-live="polite">
          <span class="rk-meander-stage-kicker" id="rk-meander-layout-label">Meander pojedynczy</span>
          <h3 id="rk-meander-layout-title">Profil kierunkowy</h3>
          <p id="rk-meander-layout-summary">Czynnik przepływa kolejno przez sąsiadujące pasy pola grzewczego. Z tego powodu początek i koniec pętli oddziałują na inne części podłogi.</p>
          <div class="rk-meander-stage-facts">
            <div class="rk-meander-stage-fact"><strong>Temperatura czynnika</strong><span id="rk-meander-layout-medium">Jest najwyższa na zasilaniu i stopniowo obniża się wzdłuż całej drogi przepływu.</span></div>
            <div class="rk-meander-stage-fact"><strong>Znaczenie dla powierzchni</strong><span id="rk-meander-layout-surface">Układ może tworzyć kierunkową tendencję oddawania ciepła, ale jastrych i okładzina częściowo ją wygładzają.</span></div>
            <div class="rk-meander-stage-fact"><strong>Kiedy ma sens</strong><span id="rk-meander-layout-use">Gdy obliczenia potwierdzają większe obciążenie po jednej stronie albo prostoliniową trasę narzuca system.</span></div>
            <div class="rk-meander-stage-fact"><strong>Co trzeba sprawdzić</strong><span id="rk-meander-layout-verify">Stronę rozpoczęcia zasilania, moc pomieszczenia, rozstaw, powierzchnię czynną, przepływ i schłodzenie czynnika.</span></div>
          </div>
        </div>
        <div class="rk-meander-step-grid">
          <article class="rk-pipe-card"><span class="rk-pipe-card-number">01</span><h3>Kierunek nie jest domyślny</h3><p>W meandrze pojedynczym początek zasilania kieruje się do konkretnej części pola tylko wtedy, gdy uzasadnia to bilans pomieszczenia i przyjęta funkcja układu.</p></article>
          <article class="rk-pipe-card"><span class="rk-pipe-card-number">02</span><h3>Rura to nie powierzchnia</h3><p>Spadek temperatury wody wzdłuż przewodu nie jest gotową mapą temperatury posadzki. Warstwy podłogi przewodzą ciepło również poprzecznie.</p></article>
          <article class="rk-pipe-card"><span class="rk-pipe-card-number">03</span><h3>Geometria nie wyznacza mocy</h3><p>Nazwa układu nie określa wydajności. Moc zależy między innymi od średniej temperatury czynnika, rozstawu, konstrukcji podłogi i oporu okładziny.</p></article>
        </div>
        <div class="rk-pipe-note"><p><strong>Przykład właściwej interpretacji:</strong> jeśli obliczenia potwierdzają większą stratę przy jednej elewacji, meander pojedynczy może rozpocząć zasilanie w tej strefie. Jeżeli takiej potrzeby nie ma, bardziej logiczny może być układ wyrównujący sąsiedztwo cieplejszych i chłodniejszych odcinków. O wyborze nie decyduje samo występowanie okna.</p></div>
        <p class="rk-meander-disclaimer">Moduł wyjaśnia zależności jakościowe. Nie zastępuje rzutu pętli, obliczenia mocy powierzchni, kontroli temperatury podłogi ani obliczeń hydraulicznych.</p>
      </div>
    </section>

<section class="rk-pipe-section rk-pipe-section-dark" id="rk-meander-analyzer-section">
      <span class="rk-pipe-eyebrow">Narzędzie decyzyjne przed trasowaniem</span>
      <h2 class="rk-pipe-section-title">Czy meander pasuje do tego pomieszczenia?</h2>
      <p class="rk-pipe-lead">Analizator nie projektuje pętli. Porządkuje warunki, które przemawiają za profilem kierunkowym, wariantem wyrównanym albo wstrzymaniem decyzji do czasu uzyskania danych.</p>
      <div class="rk-meander-calculator" id="rk-meander-analyzer">
        <div class="rk-meander-calculator-head">
          <h3>Analizator warunków zastosowania meandra</h3>
          <p>Odpowiedz na podstawie rzutu, konstrukcji podłogi i obliczeń pomieszczenia. Jeżeli danych nie ma, wybierz odpowiedź „nieustalone”.</p>
        </div>
        <div class="rk-meander-fields">
          <label class="rk-meander-field"><span>Jaki profil jest potrzebny?</span><select id="rk-meander-purpose"><option value="unknown">Nieustalone</option><option value="directional">Większa moc po jednej stronie</option><option value="uniform">Możliwie równomierna podłoga</option><option value="forced">Trasę narzuca płyta systemowa</option></select></label>
          <label class="rk-meander-field"><span>Obszar największych strat</span><select id="rk-meander-loss-zone"><option value="unknown">Tylko przypuszczenie</option><option value="known">Potwierdzony w obliczeniach</option><option value="none">Brak wyraźnej strefy</option></select></label>
          <label class="rk-meander-field"><span>Geometria pola grzewczego</span><select id="rk-meander-geometry"><option value="unknown">Jeszcze nie rozrysowana</option><option value="regular">Regularny prostokąt</option><option value="long">Wąski lub wydłużony pas</option><option value="irregular">Liczne wnęki i przeszkody</option></select></label>
          <label class="rk-meander-field"><span>Rodzaj systemu</span><select id="rk-meander-system"><option value="unknown">Nieustalony</option><option value="wet">Mokry — rura w jastrychu</option><option value="dry">Suchy — płyty i lamele</option></select></label>
          <label class="rk-meander-field"><span>OZC dla pomieszczenia</span><select id="rk-meander-ozc"><option value="unknown">Nie mam wyniku</option><option value="yes">Moc projektowa jest znana</option><option value="no">Dobór wyłącznie z metrażu</option></select></label>
          <label class="rk-meander-field"><span>Powierzchnia czynna i okładzina</span><select id="rk-meander-floor"><option value="unknown">Nieustalone</option><option value="yes">Znane i uwzględnione</option><option value="no">Brak analizy wyłączonych pól</option></select></label>
          <label class="rk-meander-field"><span>Promień nawrotów</span><select id="rk-meander-bend"><option value="unknown">Nie sprawdzono</option><option value="yes">Zgodny z rurą i systemem</option><option value="no">Nawrót wymaga wymuszania rury</option></select></label>
          <label class="rk-meander-field"><span>Długość, przepływ i opór</span><select id="rk-meander-hydraulic"><option value="unknown">Niepoliczone</option><option value="yes">Sprawdzone dla tej pętli</option><option value="no">Przyjęte z uniwersalnej reguły</option></select></label>
        </div>
        <div class="rk-meander-actions">
          <button class="rk-meander-calculate" id="rk-meander-run" type="button">Przeanalizuj warunki</button>
          <button class="rk-meander-reset" id="rk-meander-reset" type="button">Wyczyść odpowiedzi</button>
        </div>
        <div class="rk-meander-calculator-result" id="rk-meander-result" aria-live="polite">
          <p class="rk-meander-result-status" id="rk-meander-result-status">Uzupełnij warunki pomieszczenia</p>
          <p class="rk-meander-result-intro" id="rk-meander-result-intro">Wynik wskaże najbardziej logiczny kierunek dalszej analizy i dane, których nadal brakuje.</p>
          <span class="rk-meander-score" id="rk-meander-score">Ocena pojawi się po analizie</span>
          <div class="rk-pipe-grid-3">
            <div class="rk-meander-result-card"><strong>Co przemawia za</strong><ul class="rk-meander-result-list" id="rk-meander-for-list"><li>Jeszcze brak ocenionych odpowiedzi.</li></ul></div>
            <div class="rk-meander-result-card"><strong>Co trzeba sprawdzić</strong><ul class="rk-meander-result-list" id="rk-meander-check-list"><li>Uzupełnij formularz na podstawie danych budynku.</li></ul></div>
            <div class="rk-meander-result-card"><strong>Co może zmienić wybór</strong><ul class="rk-meander-result-list" id="rk-meander-against-list"><li>Brak oceny nie oznacza akceptacji układu.</li></ul></div>
          </div>
          <p class="rk-meander-disclaimer">Analizator nie wyznacza rozstawu, mocy powierzchni, długości, przepływu, straty ciśnienia ani temperatury zasilania. Wynik jest wskazówką koncepcyjną, nie projektem wykonawczym.</p>
        </div>
      </div>
      <aside class="rk-pipe-cta" aria-label="Indywidualny projekt ogrzewania podłogowego">
        <div class="rk-pipe-cta-title">Wiesz już, czy meander odpowiada funkcji pomieszczenia. Teraz trzeba policzyć pętlę.</div>
        <p>Kierunek rury nie odpowiada jeszcze na pytanie, czy podłoga pokryje straty ciepła przy bezpiecznej temperaturze powierzchni. Projekt łączy OZC każdego pomieszczenia, powierzchnię czynną, okładzinę, rozstaw, temperaturę wody, długości, przepływy i opory hydrauliczne.</p>
        <a class="rk-pipe-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Sprawdź zakres indywidualnego projektu podłogówki</a>
        <small class="rk-pipe-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </aside>
    </section>

<section class="rk-pipe-section" id="rk-meander-inputs">
      <span class="rk-pipe-eyebrow">Najpierw dane, potem linie na rzucie</span>
      <h2 class="rk-pipe-section-title">Jakie dane są potrzebne przed wyborem meandra?</h2>
      <p class="rk-pipe-lead">Trasowanie zaczyna się dopiero po sprawdzeniu, ile ciepła potrzebuje pomieszczenie i z jakiej powierzchni można je bezpiecznie oddać. Geometria rury jest wynikiem tych decyzji, a nie ich zamiennikiem.</p>
      <div class="rk-meander-check-grid">
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">01</span><h3>Projektowe obciążenie cieplne</h3><p>Wynik w watach dla konkretnego pomieszczenia, policzony dla założonej temperatury wewnętrznej i warunków zewnętrznych.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">02</span><h3>Powierzchnia czynna</h3><p>Obszar, na którym rura może pracować bez stałej zabudowy, urządzeń i innych wyłączeń przyjętych w projekcie.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">03</span><h3>Konstrukcja podłogi</h3><p>Izolacja, system mokry lub suchy, jastrych albo płyty, warstwy rozprowadzające i rodzaj mocowania rury.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">04</span><h3>Okładzina</h3><p>Płytki, drewno, panele i podkład mają różny opór cieplny oraz ograniczenia temperatury wynikające z dokumentacji wyrobów.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">05</span><h3>Źródło i parametry wody</h3><p>Temperatura zasilania i powrotu powinna być wspólna dla założeń systemu oraz zgodna z możliwościami źródła ciepła.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">06</span><h3>Lokalizacja rozdzielacza</h3><p>Dobiegi zużywają długość pętli, oddają ciepło po drodze i wpływają na opór całego obwodu.</p></article>
      </div>
      <p class="rk-pipe-copy">Punktem wyjścia jest <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne OZC</a>, najlepiej rozbite na pomieszczenia. Zobacz też, <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">jak oblicza się straty cieplne w budynku</a> i dlaczego całkowity wynik domu nie wystarcza do rozrysowania pętli.</p>
    </section>

<section class="rk-pipe-section rk-pipe-section-soft" id="rk-meander-edge">
      <span class="rk-pipe-eyebrow">Najcieplejszy odcinek w świadomie wybranym miejscu</span>
      <h2 class="rk-pipe-section-title">Gdzie rozpocząć zasilanie meandra i kiedy tworzyć strefę brzegową?</h2>
      <p class="rk-pipe-lead">Jeżeli obliczenia wykazują większe lokalne straty przy przeszkleniu albo ścianie zewnętrznej, początek meandra można skierować właśnie tam. Nie oznacza to jednak, że każde okno automatycznie wymaga zagęszczenia rur.</p>
      <div class="rk-pipe-grid-2">
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">ZASILANIE</span><h3>Rozpoczęcie przy większej stracie</h3><p>Cieplejszy czynnik trafia najpierw do obszaru o większym obciążeniu. To celowa cecha meandra pojedynczego, pod warunkiem że kierunek został zaznaczony na rzucie i zachowany podczas montażu.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">POWRÓT</span><h3>Chłodniejsza część w głębi</h3><p>Końcowe pasy mogą znaleźć się w obszarze o mniejszym zapotrzebowaniu. Jeśli taki gradient nie jest potrzebny, korzystniejszy może być układ wyrównujący sąsiedztwo zasilania i powrotu.</p></article>
      </div>
      <div class="rk-pipe-note rk-pipe-note-bad"><p><strong>Nie zakładaj, że ciepła podłoga naprawi każde „zimne okno”.</strong> Kondensacja i chłód przy przeszkleniu zależą również od współczynników przegród, mostków cieplnych, szczelności, temperatury powierzchni oraz wilgotności powietrza.</p></div>
      <p class="rk-pipe-copy">Zasady wydzielania pasa przy przegrodzie wyjaśnia artykuł o <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/">strefie brzegowej ogrzewania podłogowego</a>. Dla salonów z dużymi oknami pomocny jest także poradnik o <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/">projekcie podłogówki przy dużych przeszkleniach</a>.</p>
    </section>

<section class="rk-pipe-section" id="rk-meander-spacing">
      <span class="rk-pipe-eyebrow">Rozstaw wynika z mocy, nawrót z geometrii rury</span>
      <h2 class="rk-pipe-section-title">Rozstaw rur i zakręty 180° w układzie meandrowym</h2>
      <p class="rk-pipe-lead">Wężownica wymaga powtarzalnych nawrotów. Im mniejszy rozstaw, tym trudniej wykonać łuk bez spłaszczenia lub załamania rury. Dlatego rozstaw cieplny i minimalny promień gięcia trzeba sprawdzić łącznie.</p>
      <div class="rk-pipe-grid-3">
        <article class="rk-pipe-card"><span class="rk-pipe-icon">R</span><h3>Promień z dokumentacji</h3><p>Minimalny promień zależy od konkretnej konstrukcji rury, temperatury montażu, użytego narzędzia i zaleceń systemowych.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-icon">s</span><h3>Rozstaw projektowy</h3><p>Ma zapewnić wymaganą moc przy przyjętych temperaturach i warstwach podłogi. Nie dobiera się go wyłącznie z metrażu domu.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-icon">U</span><h3>Nawrót bez przewężenia</h3><p>Łuk musi zachować przekrój i stabilne mocowanie. Zbyt ciasnego nawrotu nie wolno „dociągać” do linii kosztem rury.</p></article>
      </div>
      <p class="rk-pipe-copy">W praktyce może się okazać, że wymagany rozstaw jest łatwiejszy do uzyskania przez zmianę geometrii nawrotu, zastosowanie meandra podwójnego albo inny podział pola. Więcej zależności opisują poradniki o <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstawie rur w wodnej podłogówce</a> oraz o wyborze <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstawu 10 czy 15 cm</a>.</p>
      <div class="rk-pipe-note"><p><strong>Nie ma uniwersalnego przyzwolenia na rozstaw 5 cm.</strong> Najpierw trzeba potwierdzić możliwość wykonania łuków, konstrukcję systemu, wymaganą moc i wpływ takiego rozwiązania na długość oraz hydraulikę pętli.</p></div>
    </section>

<section class="rk-pipe-section rk-pipe-section-soft" id="rk-meander-hydraulics">
      <span class="rk-pipe-eyebrow">Geometria nie tworzy osobnego prawa hydrauliki</span>
      <h2 class="rk-pipe-section-title">Długość, przepływ i strata ciśnienia meandra</h2>
      <p class="rk-pipe-lead">Nie istnieje jeden „bezpieczny opór meandra” ani uniwersalna długość poprawna dla każdej pętli 16 × 2 mm. O wyniku decydują rzeczywiste światło rury, przepływ, długość, temperatura i rodzaj czynnika oraz opory pozostałych elementów drogi.</p>
      <div class="rk-pipe-table-wrap">
        <table>
          <thead><tr><th>Wielkość</th><th>Skąd ją przyjąć</th><th>Na co wpływa</th><th>Czego nie robić</th></tr></thead>
          <tbody>
            <tr><td data-label="Wielkość"><strong>Moc pętli</strong></td><td data-label="Skąd ją przyjąć">Z bilansu pomieszczenia i podziału powierzchni na obwody.</td><td data-label="Na co wpływa">Wraz z różnicą temperatur wyznacza wymagany przepływ.</td><td data-label="Czego nie robić">Nie dodawać automatycznego zapasu procentowego do prawidłowo policzonego OZC.</td></tr>
            <tr><td data-label="Wielkość"><strong>Przepływ</strong></td><td data-label="Skąd ją przyjąć">Z mocy przypisanej do pętli, właściwości czynnika i projektowego ΔT.</td><td data-label="Na co wpływa">Prędkość, liniową stratę ciśnienia i ustawienie na rotametrze.</td><td data-label="Czego nie robić">Nie przepisywać tej samej wartości do wszystkich pętli.</td></tr>
            <tr><td data-label="Wielkość"><strong>Opór liniowy</strong></td><td data-label="Skąd ją przyjąć">Z obliczeń lub wiarygodnej charakterystyki dokładnej rury dla danego przepływu.</td><td data-label="Na co wpływa">Spadek ciśnienia na długości obwodu.</td><td data-label="Czego nie robić">Nie stosować jednej stałej Pa/m niezależnie od przepływu.</td></tr>
            <tr><td data-label="Wielkość"><strong>Opór drogi krytycznej</strong></td><td data-label="Skąd ją przyjąć">Z całej trasy najbardziej niekorzystnego obiegu wraz z elementami wspólnymi.</td><td data-label="Na co wpływa">Wymagany napór pompy przy przepływie projektowym instalacji.</td><td data-label="Czego nie robić">Nie sumować oporów wszystkich równoległych pętli.</td></tr>
          </tbody>
        </table>
      </div>
      <p class="rk-pipe-copy">Około 100 m może być praktycznym punktem kontrolnym dla niektórych obwodów z rury 16 × 2 mm, ale nie jest samodzielnym wynikiem ani normowym limitem pasującym do każdej instalacji. Zobacz szczegółowe omówienie <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">maksymalnej długości pętli ogrzewania podłogowego</a> oraz skutków <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/">zbyt długiej pętli podłogówki</a>.</p>
      <p class="rk-pipe-copy">Przepływ jest ustawiany na podstawie projektu, a nie „na kolor rury”. Zasady odczytu wyjaśnia poradnik o <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrze w rozdzielaczu</a>, natomiast punkt pracy układu pomaga uporządkować <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">kalkulator doboru pompy obiegowej</a>.</p>
    </section>

<section class="rk-pipe-section" id="rk-meander-systems">
      <span class="rk-pipe-eyebrow">Ten sam motyw, inne ograniczenia konstrukcyjne</span>
      <h2 class="rk-pipe-section-title">Meander w systemie mokrym i suchym</h2>
      <p class="rk-pipe-lead">W jastrychu wykonawca ma zwykle większą swobodę trasowania. W systemie suchym przebieg może być częściowo narzucony przez rowki płyt, lamele przewodzące i gotowe elementy nawrotne.</p>
      <div class="rk-pipe-grid-2">
        <article class="rk-pipe-card">
          <span class="rk-pipe-card-number">MOKRY</span>
          <h3>Rura zatopiona w jastrychu</h3>
          <ul class="rk-pipe-bullets">
            <li>trasę wyznacza rysunek wykonawczy i przyjęty system mocowania,</li>
            <li>jastrych rozprowadza ciepło i zwiększa bezwładność układu,</li>
            <li>przed zakryciem trzeba udokumentować przebieg i wykonać próbę,</li>
            <li>przejścia przez dylatacje wymagają rozwiązania przewidzianego w projekcie.</li>
          </ul>
        </article>
        <article class="rk-pipe-card">
          <span class="rk-pipe-card-number">SUCHY</span>
          <h3>Rura w płytach i elementach rozprowadzających</h3>
          <ul class="rk-pipe-bullets">
            <li>wymiar rury musi dokładnie pasować do rowków i elementów systemu,</li>
            <li>nawroty wykonuje się w przewidzianych polach i promieniach,</li>
            <li>lamele lub płyty przewodzące wpływają na rozkład powierzchniowy,</li>
            <li>nie każdy system suchy wymusza ten sam rodzaj meandra.</li>
          </ul>
        </article>
      </div>
      <p class="rk-pipe-copy">Budowę warstw porównują poradniki o <a href="https://projekt-ogrzewania.pl/czym-jest-system-mokry-w-wodnym-ogrzewaniu-podlogowym/">systemie mokrym ogrzewania podłogowego</a> i <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">systemie suchym podłogówki</a>. Jeżeli strop ma ograniczoną nośność, właściwym kolejnym krokiem jest analiza opisana w artykule <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/">czy podłogówka nadaje się do drewnianego stropu</a>.</p>
      <div class="rk-pipe-note"><p><strong>Ciężaru warstw nie wolno oceniać wyłącznie z wieku budynku.</strong> Rodzaj i grubość jastrychu określa się z dokumentacji materiałowej, a dopuszczalne obciążenie istniejącego stropu powinno wynikać z oceny konstrukcyjnej.</p></div>
    </section>

<section class="rk-pipe-section rk-pipe-section-soft" id="rk-meander-installation">
      <span class="rk-pipe-eyebrow">Od rozdzielacza do powrotu</span>
      <h2 class="rk-pipe-section-title">Jak ułożyć ogrzewanie podłogowe w meander krok po kroku?</h2>
      <p class="rk-pipe-lead">Poniższa kolejność jest checklistą wykonawczą. Wymiary i trasę należy odczytać z projektu oraz dokumentacji systemu, a nie skalować z przykładowej grafiki internetowej.</p>
      <div class="rk-pipe-grid-4">
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">1</span><h3>Zweryfikuj podłoże</h3><p>Sprawdź równość, izolację, taśmę brzegową, dylatacje, stabilność mocowań i zgodność warstw z projektem.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">2</span><h3>Przenieś rysunek</h3><p>Zaznacz powierzchnie wyłączone, pola grzewcze, rozstaw, przejścia, oś pierwszego pasa i kierunek zasilania.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">3</span><h3>Poprowadź dobieg</h3><p>Wyjdź z właściwej belki rozdzielacza, zabezpiecz rurę w przejściach i prowadź ją do początku pola bez krzyżowania tras.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">4</span><h3>Zacznij we właściwej strefie</h3><p>Jeżeli projekt przewiduje kierunkowy profil, pierwsze pasy ułóż po stronie wskazanego obciążenia cieplnego.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">5</span><h3>Utrzymaj rozstaw</h3><p>Kontroluj odstęp pomiędzy osiami rur oraz odległości od przegród zgodnie z rysunkiem i systemem.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">6</span><h3>Wykonuj łagodne nawroty</h3><p>Nie przekraczaj minimalnego promienia, nie spłaszczaj przekroju i nie naprawiaj załamania metodą nieprzewidzianą przez system.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">7</span><h3>Zamknij pętlę</h3><p>Doprowadź powrót do właściwej belki, opisz obwód i porównaj rzeczywisty metraż z dokumentacją.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">8</span><h3>Sprawdź przed zakryciem</h3><p>Wykonaj próbę według przyjętej procedury, zapisz protokół i sfotografuj całą powierzchnię z punktami odniesienia.</p></article>
      </div>
      <p class="rk-pipe-copy">Pola pod stałą zabudową trzeba rozstrzygnąć przed trasowaniem — zobacz, <a href="https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/">gdzie nie układać ogrzewania podłogowego</a>. Podział obwodów opisuje poradnik <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">jak zaplanować rozmieszczenie pętli grzewczych</a>, a procedurę przed zakryciem — <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próba szczelności podłogówki</a>.</p>
    </section>

<section class="rk-pipe-section" id="rk-meander-comparison">
      <span class="rk-pipe-eyebrow">Decyzja projektowa, nie ranking</span>
      <h2 class="rk-pipe-section-title">Kiedy wybrać meander, a kiedy układ ślimakowy?</h2>
      <p class="rk-pipe-lead">Meander pojedynczy wykorzystuje kierunkowy profil, natomiast ślimak i meander podwójny pomagają wyrównać sąsiedztwo cieplejszych oraz chłodniejszych odcinków. Ostateczny wybór zależy od funkcji pola, geometrii pomieszczenia i ograniczeń systemu.</p>
      <div class="rk-pipe-table-wrap">
        <table>
          <thead><tr><th>Sytuacja</th><th>Meander pojedynczy</th><th>Meander podwójny</th><th>Ślimak</th></tr></thead>
          <tbody>
            <tr><td data-label="Sytuacja"><strong>Celowy profil od cieplejszej do chłodniejszej strony</strong></td><td data-label="Meander pojedynczy">Najbardziej naturalne zastosowanie.</td><td data-label="Meander podwójny">Profil będzie bardziej wyrównany.</td><td data-label="Ślimak">Zwykle nie wykorzystuje kierunkowości w ten sam sposób.</td></tr>
            <tr><td data-label="Sytuacja"><strong>Regularne pomieszczenie wymagające równomierności</strong></td><td data-label="Meander pojedynczy">Możliwy, ale wymaga świadomej akceptacji gradientu.</td><td data-label="Meander podwójny">Dobry kandydat.</td><td data-label="Ślimak">Częsty punkt wyjścia.</td></tr>
            <tr><td data-label="Sytuacja"><strong>Wąski pas albo korytarz</strong></td><td data-label="Meander pojedynczy">Często prosty do poprowadzenia.</td><td data-label="Meander podwójny">Zależy od szerokości i nawrotów.</td><td data-label="Ślimak">Może być niepraktyczny geometrycznie.</td></tr>
            <tr><td data-label="Sytuacja"><strong>Gotowe płyty systemu suchego</strong></td><td data-label="Meander pojedynczy">Możliwy, jeśli przewiduje go system.</td><td data-label="Meander podwójny">Możliwy tylko przy odpowiednich elementach.</td><td data-label="Ślimak">Zależny od siatki rowków i nawrotów.</td></tr>
            <tr><td data-label="Sytuacja"><strong>Nieregularne pola i liczne wyłączenia</strong></td><td data-label="Meander pojedynczy">Może wymagać podziału na logiczne pasy.</td><td data-label="Meander podwójny">Rośnie złożoność trasowania.</td><td data-label="Ślimak">Może wymagać kilku pól lub rozwiązania mieszanego.</td></tr>
          </tbody>
        </table>
      </div>
      <div class="rk-pipe-note rk-pipe-note-good"><p><strong>Rozwiązanie mieszane jest pełnoprawną decyzją projektową.</strong> W jednym budynku różne pomieszczenia mogą otrzymać ślimak, meander albo układ wynikający z konkretnego systemu suchego. Nie ma technicznego obowiązku stosowania jednego schematu wszędzie.</p></div>
    </section>

<section class="rk-pipe-section rk-pipe-section-soft" id="rk-meander-errors">
      <span class="rk-pipe-eyebrow">Błędy widoczne dopiero po uruchomieniu albo po wylewce</span>
      <h2 class="rk-pipe-section-title">Najczęstsze błędy przy układzie meandrowym</h2>
      <div class="rk-pipe-grid-3">
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">BŁĄD 1</span><h3>Zasilanie od przypadkowej strony</h3><p>Wykonawca zaczyna tam, gdzie wygodniej rozwinąć rurę, chociaż projekt przewiduje cieplejszy początek po przeciwnej stronie.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">BŁĄD 2</span><h3>Meander zamiast obliczeń</h3><p>Kierunek rury zostaje potraktowany jak sposób na pokrycie dużej straty bez sprawdzenia możliwej mocy powierzchni.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">BŁĄD 3</span><h3>Uniwersalny rozstaw</h3><p>Cały dom otrzymuje 10 albo 15 cm niezależnie od OZC, okładziny, powierzchni czynnej i temperatury zasilania.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">BŁĄD 4</span><h3>Załamanie na nawrocie</h3><p>Zbyt ciasny łuk spłaszcza rurę, zwiększa lokalny opór i może naruszyć konstrukcję przewodu.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">BŁĄD 5</span><h3>100 m jako automatyczna zgoda</h3><p>Długość mieści się w obiegowej regule, ale przepływ i strata ciśnienia nie zostały policzone dla tej pętli.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">BŁĄD 6</span><h3>Brak powierzchni wyłączonych</h3><p>Trasa wchodzi pod stałą zabudowę albo po zmianie aranżacji zostaje za mało aktywnej powierzchni do pokrycia mocy.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">BŁĄD 7</span><h3>Dylatacja z reguły „między strefami”</h3><p>Podział jastrychu jest wykonywany automatycznie na granicy cieplejszej i chłodniejszej części, bez projektu pól oraz wymagań posadzki.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">BŁĄD 8</span><h3>Brak zdjęć i opisów</h3><p>Po zakryciu nie wiadomo, którędy biegnie pętla, gdzie jest zasilanie ani czy montaż odpowiadał dokumentacji.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">BŁĄD 9</span><h3>Podnoszenie temperatury zamiast diagnozy</h3><p>Nierówne grzanie jest maskowane wyższą krzywą grzewczą, bez sprawdzenia przepływu, powietrza, nastaw i kierunku obwodu.</p></article>
      </div>
      <p class="rk-pipe-copy">Część problemów może przypominać <a href="https://projekt-ogrzewania.pl/objawy-zapowietrzenia-ogrzewania-podlogowego/">objawy zapowietrzenia ogrzewania podłogowego</a>, dlatego diagnoza powinna obejmować również przepływy, odpowietrzenie, temperatury zasilania i powrotu oraz nastawy rozdzielacza. Szerszą listę wykonawczą zawiera poradnik o <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">najczęstszych błędach montażu podłogówki</a>.</p>
    </section>

<section class="rk-pipe-section" id="rk-meander-checklist">
      <span class="rk-pipe-eyebrow">Kontrola przed zalaniem lub zamknięciem podłogi</span>
      <h2 class="rk-pipe-section-title">Checklista odbioru pętli meandrowej</h2>
      <p class="rk-pipe-lead">Odbiór powinien potwierdzić nie tylko szczelność, lecz także zgodność trasy z funkcją, dla której wybrano meander.</p>
      <div class="rk-meander-check-grid">
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">RYSUNEK</span><h3>Geometria i kierunek</h3><ul class="rk-pipe-bullets"><li>właściwa pętla i pomieszczenie,</li><li>zasilanie od oznaczonej strony,</li><li>zgodne pola wyłączone,</li><li>rozstaw według rysunku,</li><li>przejścia i dobiegi bez kolizji.</li></ul></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">RURA</span><h3>Stan i mocowanie</h3><ul class="rk-pipe-bullets"><li>brak załamań i spłaszczeń,</li><li>łagodne, powtarzalne nawroty,</li><li>stabilne mocowanie,</li><li>osłony przy przejściach,</li><li>brak ukrytych przypadkowych połączeń.</li></ul></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">DOKUMENTY</span><h3>Parametry i zapis</h3><ul class="rk-pipe-bullets"><li>rzeczywisty metraż pętli,</li><li>opis belki zasilania i powrotu,</li><li>protokół wymaganej próby,</li><li>zdjęcia z punktami odniesienia,</li><li>odnotowane i zaakceptowane zmiany.</li></ul></article>
      </div>
      <p class="rk-pipe-copy">Prawidłowa trasa musi współpracować z <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielaczem ogrzewania podłogowego</a>, podziałem pól jastrychu oraz <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacją brzegową i dylatacjami</a>. Przed wylewką warto także sprawdzić zasady z poradnika <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewka na ogrzewanie podłogowe</a>.</p>
    </section>

<section class="rk-pipe-section rk-pipe-final" id="rk-meander-final">
      <span class="rk-pipe-eyebrow">Najważniejszy wniosek</span>
      <h2 class="rk-pipe-section-title">Meander działa dobrze wtedy, gdy jego kierunek ma uzasadnienie</h2>
      <p class="rk-pipe-lead">Wężownica nie jest ani awaryjnym zamiennikiem ślimaka, ani uniwersalną „kurtyną cieplną”. To narzędzie projektowe, które pozwala nadać oddawaniu ciepła określony kierunek albo dopasować trasę do geometrii systemu.</p>
      <div class="rk-pipe-cta">
        <div class="rk-pipe-cta-title">Zamień wybrany schemat w policzony układ grzewczy</div>
        <p>Indywidualny projekt pokazuje rozmieszczenie i rozstaw rur, podział na pętle, ich długości, przepływy, nastawy oraz wymagane parametry pracy. Dzięki temu wykonawca otrzymuje konkretną trasę, a nie ogólny rysunek meandra.</p>
        <a class="rk-pipe-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
        <small class="rk-pipe-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </div>
    </section>

<section class="rk-pipe-section" id="rk-meander-sources">
      <span class="rk-pipe-eyebrow">Podstawa techniczna</span>
      <h2 class="rk-pipe-section-title">Źródła oficjalne i zakres poradnika</h2>
      <p class="rk-pipe-lead">Normy nie wybierają schematu wyłącznie na podstawie nazwy pomieszczenia. Porządkują kryteria komfortu, obliczanie wydajności, wymiarowanie oraz wykonanie wodnych systemów płaszczyznowych.</p>
      <div class="rk-pipe-source-grid">
        <article class="rk-pipe-source-card"><a href="https://www.iso.org/standard/74682.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-1:2021 — definicje i kryteria komfortu</a><p>Oficjalna karta części normy obejmującej podstawowe pojęcia, symbole oraz kryteria komfortu systemów ogrzewania i chłodzenia płaszczyznowego.</p></article>
        <article class="rk-pipe-source-card"><a href="https://www.iso.org/standard/74683.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-2:2021 — określanie mocy projektowej</a><p>Oficjalna karta metod wyznaczania strumienia ciepła i parametrów wydajności w zależności od zmiennych systemu oraz konstrukcji.</p></article>
        <article class="rk-pipe-source-card"><a href="https://www.iso.org/standard/74684.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-3:2021 — projektowanie i wymiarowanie</a><p>Oficjalna karta metody projektowania i wymiarowania służącej zapewnieniu wymaganej wydajności systemu płaszczyznowego.</p></article>
        <article class="rk-pipe-source-card"><a href="https://www.iso.org/standard/74685.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-5:2021 — wymagania instalacyjne</a><p>Oficjalna karta części normy dotyczącej wymagań montażowych dla wbudowanych wodnych systemów ogrzewania i chłodzenia.</p></article>
      </div>
      <div class="rk-pipe-responsibility"><p><strong>Zakres odpowiedzialności:</strong> artykuł pomaga zrozumieć geometrię meandra, wybrać właściwe pytania i skontrolować wykonanie. Nie jest projektem instalacji, obliczeniem normowym mocy, charakterystyką konkretnej rury, oceną nośności stropu, projektem pól dylatacyjnych ani instrukcją producenta wybranego systemu. W realizacji obowiązują dokumentacja projektowa, wymagania zastosowanych wyrobów i rzeczywiste warunki budynku.</p></div>
    </section>

<section class="rk-pipe-section rk-pipe-section-soft" id="rk-meander-faq">
      <span class="rk-pipe-eyebrow">Pytania inwestorów i wykonawców</span>
      <h2 class="rk-pipe-section-title">FAQ — układ meandrowy ogrzewania podłogowego</h2>
      <div class="rk-pipe-faq">
        <details><summary>Czym układ meandrowy różni się od ślimakowego?</summary><div class="rk-pipe-faq-answer"><p>W meandrze pojedynczym rura przechodzi kolejnymi równoległymi pasami, przez co cieplejszy początek i chłodniejszy koniec zajmują kolejne części pola. W ślimaku odcinki zasilające i powrotne biegną obok siebie na większej części powierzchni, co zwykle sprzyja bardziej wyrównanemu profilowi.</p></div></details>
        <details><summary>Czy meander grzeje gorzej niż ślimak?</summary><div class="rk-pipe-faq-answer"><p>Nie można tak ocenić układu na podstawie samej geometrii. Oba mogą dostarczyć wymaganą moc, jeśli zostały prawidłowo obliczone. Różnią się przede wszystkim sposobem rozmieszczenia cieplejszych i chłodniejszych fragmentów pętli oraz przydatnością do określonego pola.</p></div></details>
        <details><summary>Gdzie powinno zaczynać się zasilanie meandra?</summary><div class="rk-pipe-faq-answer"><p>Jeżeli projekt wykorzystuje kierunkowy profil, zasilanie rozpoczyna się zwykle po stronie większego obciążenia, na przykład przy wskazanej przegrodzie zewnętrznej. Lokalizacja musi wynikać z obliczeń i być jednoznacznie zaznaczona na rysunku.</p></div></details>
        <details><summary>Czy każde duże okno wymaga meandra i strefy brzegowej?</summary><div class="rk-pipe-faq-answer"><p>Nie. Potrzebę strefy i jej moc ocenia się z parametrów przeszklenia, warunków projektowych, geometrii, powierzchni czynnej oraz bilansu pomieszczenia. Sam rozmiar okna nie wyznacza rozstawu ani rodzaju trasy.</p></div></details>
        <details><summary>Czy meander powoduje nierówną temperaturę podłogi?</summary><div class="rk-pipe-faq-answer"><p>Może tworzyć bardziej kierunkowy profil niż ślimak, lecz warstwy podłogi rozprowadzają ciepło poprzecznie i wygładzają różnice. Rzeczywisty rozkład zależy także od przepływu, schłodzenia czynnika, rozstawu, jastrychu oraz okładziny.</p></div></details>
        <details><summary>Co to jest meander podwójny?</summary><div class="rk-pipe-faq-answer"><p>To sposób prowadzenia rury, który częściej przeplata odcinki o wyższej i niższej temperaturze. Dzięki temu zachowuje prostoliniowy charakter trasy, a jednocześnie ogranicza kierunkowy gradient typowy dla meandra pojedynczego.</p></div></details>
        <details><summary>Jaki rozstaw rur stosuje się w układzie meandrowym?</summary><div class="rk-pipe-faq-answer"><p>Rozstaw wynika z wymaganej mocy, temperatury czynnika, konstrukcji podłogi, oporu okładziny i ograniczeń temperatury powierzchni. Typowe wartości nie są zamiennikiem obliczeń, a mały rozstaw musi być możliwy do wykonania bez przekroczenia promienia gięcia.</p></div></details>
        <details><summary>Czy można wykonać nawrót przy rozstawie 5 cm?</summary><div class="rk-pipe-faq-answer"><p>Nie da się udzielić ogólnej zgody. Trzeba sprawdzić rurę, jej konstrukcję, minimalny promień, temperaturę montażu, narzędzia oraz geometrię systemu. Jeżeli nawrót wymusza spłaszczenie, należy zmienić trasę lub rozwiązanie.</p></div></details>
        <details><summary>Czy 100 m to maksymalna długość pętli meandrowej?</summary><div class="rk-pipe-faq-answer"><p>Nie jest to uniwersalny limit właściwy dla każdej instalacji. Dopuszczalna długość zależy od światła rury, wymaganego przepływu, czynnika, oporów miejscowych, drogi wspólnej i możliwości regulacji. Długość trzeba sprawdzić hydraulicznie.</p></div></details>
        <details><summary>Czy meander ma zawsze większy opór niż ślimak?</summary><div class="rk-pipe-faq-answer"><p>Nie można przypisać stałego oporu samej nazwie schematu. Przy tej samej rurze przepływie i długości dominują opory wzdłużne, a wpływ łuków zależy od ich liczby i rzeczywistego promienia. Porównuje się konkretne trasy, nie etykiety.</p></div></details>
        <details><summary>Czy meander nadaje się do systemu suchego?</summary><div class="rk-pipe-faq-answer"><p>Tak, jeżeli przewidują go płyty, lamele, elementy nawrotne i dokumentacja danego systemu. W wielu rozwiązaniach prostoliniowe rowki sprzyjają meandrowi, ale nie oznacza to, że każdy system suchy ma identyczny przebieg.</p></div></details>
        <details><summary>Czy granica strefy brzegowej zawsze wymaga dylatacji?</summary><div class="rk-pipe-faq-answer"><p>Nie. Podział jastrychu i lokalizacja szczelin wynikają z geometrii pól, rodzaju oraz wymagań materiału, konstrukcji podłoża i projektu posadzki. Sama zmiana rozstawu lub profilu temperatury nie tworzy automatycznej zasady wykonania szczeliny.</p></div></details>
        <details><summary>Czy można zmienić na budowie meander na ślimak?</summary><div class="rk-pipe-faq-answer"><p>Zmiana może wpłynąć na długość, dobiegi, strefę brzegową, sąsiedztwo temperatur i podział pola. Powinna zostać oceniona względem mocy oraz hydrauliki i odnotowana w dokumentacji, a nie wykonana wyłącznie dlatego, że monterowi wygodniej układa się inny schemat.</p></div></details>
        <details><summary>Co trzeba sprawdzić przed wykonaniem wylewki?</summary><div class="rk-pipe-faq-answer"><p>Należy sprawdzić zgodność trasy, kierunek zasilania, rozstaw, stan nawrotów, mocowania, przejścia przez dylatacje, długość i opis pętli oraz wymaganą próbę. Całą instalację warto sfotografować z punktami pozwalającymi później odtworzyć przebieg rur.</p></div></details>
      </div>
    </section>

<section class="rk-pipe-author" id="rk-meander-author">
      <span class="rk-pipe-eyebrow">Opracowanie eksperckie</span>
      <h2 class="rk-pipe-author-title">Autor i weryfikacja merytoryczna</h2>
      <div class="rk-pipe-author-layout">
        <aside class="rk-pipe-author-side">
          <div class="rk-pipe-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji sanitarnych" width="400" height="400" loading="lazy" decoding="async"></div>
          <div class="rk-pipe-author-name"><a href="https://projekt-ogrzewania.pl/author/admin3399/">Robert Kucharski</a></div>
          <p class="rk-pipe-author-role">Projektant instalacji sanitarnych<br>specjalista HVAC i ogrzewania podłogowego</p>
          <div class="rk-pipe-author-social" aria-label="Profile autora">
            <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="nofollow noopener noreferrer me" aria-label="LinkedIn Roberta Kucharskiego">in</a>
            <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Facebook Projekt Ogrzewania">f</a>
            <a href="https://x.com/Projekt_HVAC" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Profil Projekt HVAC w serwisie X">X</a>
          </div>
        </aside>
        <div class="rk-pipe-author-main">
          <div class="rk-pipe-author-quote">„Moim zdaniem największy błąd przy meandrze powstaje wtedy, gdy wykonawca widzi tylko zygzak rury. W projekcie ten zygzak ma jeszcze kierunek, przypisaną moc, konkretny przepływ i sprawdzony opór.”</div>
          <p>Robert Kucharski opracowuje projekty ogrzewania podłogowego, obliczenia cieplne i hydrauliczne oraz materiały techniczne dla inwestorów i wykonawców. W projektach traktuje geometrię rury jako część kompletnego modelu pomieszczenia, a nie samodzielny schemat montażowy.</p>
          <p>Przy weryfikacji układu meandrowego analizuje stronę zasilania, lokalne obciążenia, powierzchnię czynną, konstrukcję podłogi, promienie nawrotów, długości, przepływy i opory. Treść została sprawdzona pod kątem spójności z oficjalnymi kartami norm serii ISO 11855 i praktyką projektową wodnych instalacji niskotemperaturowych.</p>
          <p>Publikuje również w portalach <a href="https://remont.biz.pl/" target="_blank" rel="nofollow noopener noreferrer">Remont.biz.pl</a> i <a href="https://sobir.pl/" target="_blank" rel="nofollow noopener noreferrer">Sobir.pl</a>. <a href="https://projekt-ogrzewania.pl/author/admin3399/">Zobacz pozostałe artykuły Roberta Kucharskiego w serwisie Projekt-Ogrzewania.pl</a>.</p>
          <div class="rk-pipe-author-facts">
            <div class="rk-pipe-author-fact"><strong>Zakres</strong>ogrzewanie podłogowe, bilanse cieplne i hydraulika instalacji</div>
            <div class="rk-pipe-author-fact"><strong>Metoda pracy</strong>OZC pomieszczeń, powierzchnie czynne, pętle, przepływy i opory</div>
            <div class="rk-pipe-author-fact"><strong>Aktualizacja</strong>stan techniczny materiału sprawdzony 15 września 2026 r.</div>
          </div>
        </div>
      </div>
    </section>

  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "inLanguage": "pl-PL"
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt-Ogrzewania.pl",
      "url": "https://projekt-ogrzewania.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" }
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" }
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski-image" },
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "knowsAbout": [
        "ogrzewanie podłogowe",
        "układ meandrowy ogrzewania podłogowego",
        "projektowe obciążenie cieplne",
        "hydraulika instalacji grzewczych",
        "rozstaw rur",
        "równoważenie hydrauliczne"
      ],
      "worksFor": [
        { "@id": "https://projekt-ogrzewania.pl/#organization" },
        { "@id": "https://remont.biz.pl/#organization" },
        { "@id": "https://sobir.pl/#organization" }
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski-image",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "caption": "Robert Kucharski — projektant instalacji sanitarnych i specjalista HVAC"
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#primaryimage",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym-1.webp",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym-1.webp",
      "width": 1050,
      "height": 1050,
      "caption": "Instalacja ogrzewania podłogowego w układzie meandrowym"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#breadcrumb",
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Strona główna", "item": "https://projekt-ogrzewania.pl/" },
        { "@type": "ListItem", "position": 2, "name": "Poradniki", "item": "https://projekt-ogrzewania.pl/blog/" },
        { "@type": "ListItem", "position": 3, "name": "Ogrzewanie podłogowe", "item": "https://projekt-ogrzewania.pl/category/ogrzewanie-podlogowe/" },
        { "@type": "ListItem", "position": 4, "name": "Układ meandrowy ogrzewania podłogowego", "item": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/" }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webpage",
      "url": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/",
      "name": "Układ meandrowy ogrzewania podłogowego – schemat, zastosowanie i błędy",
      "description": "Jak działa układ meandrowy podłogówki, gdzie rozpocząć zasilanie, kiedy wybrać meander pojedynczy lub podwójny i jak uniknąć błędów wykonawczych.",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
      "breadcrumb": { "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#breadcrumb" },
      "primaryImageOfPage": { "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#primaryimage" },
      "datePublished": "2025-05-11T15:30:59+00:00",
      "dateModified": "2026-09-15T10:00:00+02:00",
      "inLanguage": "pl-PL",
      "mainEntity": { "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article" }
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article",
      "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webpage" },
      "headline": "Układ meandrowy ogrzewania podłogowego – schemat, zastosowanie i błędy",
      "description": "Techniczny poradnik o meandrze pojedynczym i podwójnym, kierunku zasilania, strefach brzegowych, rozstawie, hydraulice oraz kontroli wykonania.",
      "image": { "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#primaryimage" },
      "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "datePublished": "2025-05-11T15:30:59+00:00",
      "dateModified": "2026-09-15T10:00:00+02:00",
      "inLanguage": "pl-PL",
      "about": [
        "układ meandrowy ogrzewania podłogowego",
        "meander pojedynczy",
        "meander podwójny",
        "kierunek zasilania pętli",
        "strefa brzegowa",
        "hydraulika pętli ogrzewania podłogowego"
      ],
      "keywords": "układ meandrowy ogrzewania podłogowego, meander podłogówka, schemat meandra, meander pojedynczy, meander podwójny, meander czy ślimak, kierunek zasilania podłogówki",
      "isAccessibleForFree": true,
      "hasPart": [
        { "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#visual-app" },
        { "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#analyzer-app" },
        { "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#howto" },
        { "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#checklist" },
        { "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#faq-schema" }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#visual-app",
      "name": "Interaktywny moduł porównawczy układów rur",
      "url": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#rk-meander-visual",
      "applicationCategory": "EducationalApplication",
      "operatingSystem": "Dowolny system z nowoczesną przeglądarką internetową",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "description": "Tekstowy moduł porównujący zmianę temperatury czynnika, wpływ na powierzchnię, zastosowanie i warunki projektowe meandra pojedynczego, meandra podwójnego oraz ślimaka."
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#analyzer-app",
      "name": "Analizator warunków zastosowania meandra",
      "url": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#rk-meander-analyzer-section",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Dowolny system z nowoczesną przeglądarką internetową",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "description": "Narzędzie edukacyjne porządkujące funkcję pola, strefę strat, geometrię, system, OZC, powierzchnię czynną, promień gięcia i hydraulikę."
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#howto",
      "name": "Jak ułożyć ogrzewanie podłogowe w meander",
      "description": "Ośmioetapowa procedura przeniesienia zaprojektowanej pętli meandrowej na podłogę i kontroli przed zakryciem.",
      "totalTime": "PT30M",
      "step": [
        { "@type": "HowToStep", "position": 1, "name": "Zweryfikuj podłoże", "text": "Sprawdź warstwy, izolację brzegową, dylatacje i stabilność systemu mocowania." },
        { "@type": "HowToStep", "position": 2, "name": "Przenieś rysunek", "text": "Zaznacz pola grzewcze, wyłączenia, rozstaw i kierunek zasilania." },
        { "@type": "HowToStep", "position": 3, "name": "Poprowadź dobieg", "text": "Wyjdź z właściwej belki rozdzielacza i doprowadź rurę do początku pola." },
        { "@type": "HowToStep", "position": 4, "name": "Zacznij we właściwej strefie", "text": "Rozpocznij zasilanie po stronie wskazanej w projekcie." },
        { "@type": "HowToStep", "position": 5, "name": "Utrzymaj rozstaw", "text": "Kontroluj odstęp osi rur zgodnie z rysunkiem wykonawczym." },
        { "@type": "HowToStep", "position": 6, "name": "Wykonuj łagodne nawroty", "text": "Zachowaj promień gięcia i nie spłaszczaj przekroju rury." },
        { "@type": "HowToStep", "position": 7, "name": "Zamknij pętlę", "text": "Doprowadź powrót do właściwej belki, zmierz i opisz obwód." },
        { "@type": "HowToStep", "position": 8, "name": "Sprawdź przed zakryciem", "text": "Wykonaj wymaganą próbę, protokół i dokumentację fotograficzną." }
      ]
    },
    {
      "@type": "ItemList",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#checklist",
      "name": "Checklista odbioru pętli meandrowej",
      "numberOfItems": 3,
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Geometria i kierunek", "description": "Właściwa pętla, strona zasilania, powierzchnie wyłączone, rozstaw i dobiegi." },
        { "@type": "ListItem", "position": 2, "name": "Stan rury i mocowanie", "description": "Brak załamań, prawidłowe nawroty, stabilne mocowanie i zabezpieczone przejścia." },
        { "@type": "ListItem", "position": 3, "name": "Parametry i dokumentacja", "description": "Metraż, opis rozdzielacza, protokół próby, zdjęcia oraz zaakceptowane zmiany." }
      ]
    },
    {
      "@type": "Service",
      "@id": "https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/#service",
      "name": "Indywidualny projekt instalacji ogrzewania podłogowego",
      "url": "https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/",
      "provider": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "areaServed": { "@type": "Country", "name": "Polska" },
      "serviceType": "Projekt ogrzewania podłogowego",
      "description": "Projekt rozmieszczenia pętli z obliczeniami cieplnymi i hydraulicznymi, długościami, przepływami oraz nastawami instalacji."
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#faq-schema",
      "mainEntity": [
        { "@type": "Question", "name": "Czym układ meandrowy różni się od ślimakowego?", "acceptedAnswer": { "@type": "Answer", "text": "W meandrze pojedynczym rura przechodzi kolejnymi równoległymi pasami, przez co cieplejszy początek i chłodniejszy koniec zajmują kolejne części pola. W ślimaku odcinki zasilające i powrotne biegną obok siebie na większej części powierzchni, co zwykle sprzyja bardziej wyrównanemu profilowi." } },
        { "@type": "Question", "name": "Czy meander grzeje gorzej niż ślimak?", "acceptedAnswer": { "@type": "Answer", "text": "Oba układy mogą dostarczyć wymaganą moc, jeśli zostały prawidłowo obliczone. Różnią się przede wszystkim sposobem rozmieszczenia cieplejszych i chłodniejszych fragmentów pętli oraz przydatnością do określonego pola." } },
        { "@type": "Question", "name": "Gdzie powinno zaczynać się zasilanie meandra?", "acceptedAnswer": { "@type": "Answer", "text": "Jeżeli projekt wykorzystuje kierunkowy profil, zasilanie rozpoczyna się zwykle po stronie większego obciążenia. Lokalizacja musi wynikać z obliczeń i być zaznaczona na rysunku." } },
        { "@type": "Question", "name": "Czy każde duże okno wymaga meandra i strefy brzegowej?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Potrzebę strefy ocenia się z parametrów przeszklenia, warunków projektowych, geometrii, powierzchni czynnej oraz bilansu pomieszczenia." } },
        { "@type": "Question", "name": "Czy meander powoduje nierówną temperaturę podłogi?", "acceptedAnswer": { "@type": "Answer", "text": "Może tworzyć bardziej kierunkowy profil niż ślimak, lecz warstwy podłogi rozprowadzają ciepło poprzecznie. Rzeczywisty rozkład zależy także od przepływu, rozstawu, jastrychu i okładziny." } },
        { "@type": "Question", "name": "Co to jest meander podwójny?", "acceptedAnswer": { "@type": "Answer", "text": "To sposób prowadzenia rury, który częściej przeplata odcinki o wyższej i niższej temperaturze, ograniczając kierunkowy gradient typowy dla meandra pojedynczego." } },
        { "@type": "Question", "name": "Jaki rozstaw rur stosuje się w układzie meandrowym?", "acceptedAnswer": { "@type": "Answer", "text": "Rozstaw wynika z wymaganej mocy, temperatury czynnika, konstrukcji podłogi, oporu okładziny i ograniczeń temperatury powierzchni. Typowe wartości nie zastępują obliczeń." } },
        { "@type": "Question", "name": "Czy można wykonać nawrót przy rozstawie 5 cm?", "acceptedAnswer": { "@type": "Answer", "text": "Trzeba sprawdzić konkretną rurę, minimalny promień, temperaturę montażu, narzędzia i geometrię systemu. Jeżeli nawrót wymusza spłaszczenie, należy zmienić trasę." } },
        { "@type": "Question", "name": "Czy 100 m to maksymalna długość pętli meandrowej?", "acceptedAnswer": { "@type": "Answer", "text": "Nie jest to uniwersalny limit. Dopuszczalna długość zależy od światła rury, przepływu, czynnika, oporów i możliwości regulacji. Długość trzeba sprawdzić hydraulicznie." } },
        { "@type": "Question", "name": "Czy meander ma zawsze większy opór niż ślimak?", "acceptedAnswer": { "@type": "Answer", "text": "Nie można przypisać stałego oporu samej nazwie schematu. Porównuje się konkretne trasy przy tej samej rurze, długości, przepływie i rzeczywistych promieniach łuków." } },
        { "@type": "Question", "name": "Czy meander nadaje się do systemu suchego?", "acceptedAnswer": { "@type": "Answer", "text": "Tak, jeżeli przewidują go płyty, lamele, elementy nawrotne i dokumentacja danego systemu. Nie każdy system suchy ma identyczny przebieg." } },
        { "@type": "Question", "name": "Czy granica strefy brzegowej zawsze wymaga dylatacji?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Podział jastrychu i lokalizacja szczelin wynikają z geometrii pól, rodzaju materiału, konstrukcji podłoża oraz projektu posadzki." } },
        { "@type": "Question", "name": "Czy można zmienić na budowie meander na ślimak?", "acceptedAnswer": { "@type": "Answer", "text": "Zmiana może wpłynąć na długość, dobiegi, strefę brzegową i hydraulikę. Powinna zostać oceniona względem projektu i odnotowana w dokumentacji." } },
        { "@type": "Question", "name": "Co trzeba sprawdzić przed wykonaniem wylewki?", "acceptedAnswer": { "@type": "Answer", "text": "Należy sprawdzić trasę, kierunek zasilania, rozstaw, nawroty, mocowanie, przejścia przez dylatacje, długość, opis pętli i wymaganą próbę oraz wykonać zdjęcia." } }
      ]
    }
  ]
}
</script>

<script>
(function () {
  "use strict";

  var guide = document.getElementById("rk-pipe-guide");
  if (!guide) {
    return;
  }

  var layoutData = {
    single: {
      label: "Meander pojedynczy",
      title: "Profil kierunkowy",
      summary: "Czynnik przepływa kolejno przez sąsiadujące pasy pola grzewczego. Z tego powodu początek i koniec pętli oddziałują na inne części podłogi.",
      medium: "Jest najwyższa na zasilaniu i stopniowo obniża się wzdłuż całej drogi przepływu.",
      surface: "Układ może tworzyć kierunkową tendencję oddawania ciepła, ale jastrych i okładzina częściowo ją wygładzają.",
      use: "Gdy obliczenia potwierdzają większe obciążenie po jednej stronie albo prostoliniową trasę narzuca system.",
      verify: "Stronę rozpoczęcia zasilania, moc pomieszczenia, rozstaw, powierzchnię czynną, przepływ i schłodzenie czynnika."
    },
    double: {
      label: "Meander podwójny",
      title: "Profil częściowo wyrównany",
      summary: "Trasa częściej przeplata fragmenty bliższe zasilaniu i powrotowi. Zachowuje prostoliniowy charakter, lecz ogranicza kierunkowość typową dla pojedynczej wężownicy.",
      medium: "Temperatura nadal spada od zasilania do powrotu, ale kolejne fragmenty tej drogi są inaczej rozmieszczone na polu.",
      surface: "Sąsiedztwo odcinków o różnych temperaturach sprzyja częściowemu wyrównaniu profilu na powierzchni.",
      use: "Gdy potrzebne jest prostoliniowe prowadzenie, ale bez tak wyraźnego gradientu jak w meandrze pojedynczym.",
      verify: "Dokładną kolejność pasów, promienie nawrotów, osiągalny rozstaw, całkowitą długość i opór pętli."
    },
    spiral: {
      label: "Układ ślimakowy",
      title: "Profil najbardziej wyrównany",
      summary: "Na dużej części pola fragment prowadzący w stronę środka biegnie obok fragmentu wracającego do rozdzielacza. Warstwy podłogi dodatkowo uśredniają ich oddziaływanie.",
      medium: "Temperatura obniża się wzdłuż jednej pętli tak samo jak w innych układach; zmienia się sposób rozmieszczenia jej kolejnych odcinków.",
      surface: "Sąsiedztwo cieplejszych i chłodniejszych fragmentów zwykle sprzyja najbardziej równomiernemu profilowi powierzchni.",
      use: "W regularnych polach mieszkalnych, gdy nie ma potrzeby celowego skierowania większego potencjału na jedną stronę.",
      verify: "Geometrię pola, przejście do środka, nawrót, wyłączenia stałej zabudowy, długość oraz hydraulikę całej pętli."
    }
  };

  var selectedLayout = "single";
  var layoutTabs = guide.querySelectorAll("[data-rk-layout]");

  function showLayout(layoutKey) {
    var data = layoutData[layoutKey];
    if (!data) {
      return;
    }
    selectedLayout = layoutKey;

    layoutTabs.forEach(function (button) {
      var current = button.getAttribute("data-rk-layout") === layoutKey;
      button.setAttribute("aria-selected", current ? "true" : "false");
    });

    document.getElementById("rk-meander-layout-label").textContent = data.label;
    document.getElementById("rk-meander-layout-title").textContent = data.title;
    document.getElementById("rk-meander-layout-summary").textContent = data.summary;
    document.getElementById("rk-meander-layout-medium").textContent = data.medium;
    document.getElementById("rk-meander-layout-surface").textContent = data.surface;
    document.getElementById("rk-meander-layout-use").textContent = data.use;
    document.getElementById("rk-meander-layout-verify").textContent = data.verify;
  }

  layoutTabs.forEach(function (button) {
    button.addEventListener("click", function () {
      showLayout(button.getAttribute("data-rk-layout"));
    });
  });

  function fieldValue(id) {
    var field = document.getElementById(id);
    if (!field) {
      return "unknown";
    }
    return field.value;
  }

  function renderList(id, items, emptyText) {
    var list = document.getElementById(id);
    if (!list) {
      return;
    }
    list.textContent = "";
    if (items.length === 0) {
      var emptyItem = document.createElement("li");
      emptyItem.textContent = emptyText;
      list.appendChild(emptyItem);
      return;
    }
    items.forEach(function (text) {
      var item = document.createElement("li");
      item.textContent = text;
      list.appendChild(item);
    });
  }

  function analyzeMeander() {
    var supports = [];
    var checks = [];
    var concerns = [];
    var score = 0;
    var critical = false;
    var purpose = fieldValue("rk-meander-purpose");
    var lossZone = fieldValue("rk-meander-loss-zone");
    var geometry = fieldValue("rk-meander-geometry");
    var system = fieldValue("rk-meander-system");
    var ozc = fieldValue("rk-meander-ozc");
    var floor = fieldValue("rk-meander-floor");
    var bend = fieldValue("rk-meander-bend");
    var hydraulic = fieldValue("rk-meander-hydraulic");

    if (purpose === "directional") {
      score += 3;
      supports.push("Potrzebny jest celowy profil od cieplejszej do chłodniejszej strony.");
    } else if (purpose === "forced") {
      score += 2;
      supports.push("Geometria płyt systemowych może uzasadniać prostoliniowe prowadzenie rury.");
    } else if (purpose === "uniform") {
      score -= 2;
      concerns.push("Priorytetem jest równomierność — porównaj meander podwójny albo ślimak.");
    } else {
      checks.push("Ustal, czy pole ma mieć profil kierunkowy czy możliwie równomierny.");
    }

    if (lossZone === "known") {
      score += 2;
      supports.push("Obszar większych strat został potwierdzony obliczeniowo.");
    } else if (lossZone === "none") {
      score -= 1;
      concerns.push("Brak wyraźnej strefy strat ogranicza korzyść z kierunkowego meandra.");
    } else {
      checks.push("Nie kieruj zasilania do strefy wybranej wyłącznie na podstawie przypuszczenia.");
    }

    if (geometry === "long") {
      score += 2;
      supports.push("Wydłużone pole może być naturalnym kandydatem do prostoliniowej wężownicy.");
    } else if (geometry === "regular") {
      score += 1;
      supports.push("Regularne pole ułatwia zachowanie powtarzalnych pasów i nawrotów.");
    } else if (geometry === "irregular") {
      score -= 1;
      concerns.push("Wnęki i wyłączenia mogą wymagać podziału pola albo innej geometrii.");
    } else {
      checks.push("Rozrysuj rzeczywistą powierzchnię czynną wraz z przeszkodami.");
    }

    if (system === "dry") {
      score += 1;
      supports.push("System suchy może sprzyjać meandrowi, jeśli tak prowadzą jego rowki i nawroty.");
    } else if (system === "wet") {
      checks.push("W systemie mokrym porównaj swobodnie także wariant ślimakowy lub mieszany.");
    } else {
      checks.push("Ustal konstrukcję podłogi i sposób rozprowadzania ciepła.");
    }

    if (ozc === "yes") {
      supports.push("Znana jest projektowa moc pomieszczenia.");
    } else if (ozc === "no") {
      critical = true;
      concerns.push("Dobór z samego metrażu nie pozwala zweryfikować mocy ani strefy większych strat.");
    } else {
      checks.push("Uzupełnij projektowe obciążenie cieplne pomieszczenia.");
    }

    if (floor === "yes") {
      supports.push("Powierzchnia czynna i okładzina są znane.");
    } else if (floor === "no") {
      critical = true;
      concerns.push("Bez powierzchni czynnej i okładziny nie da się potwierdzić możliwej mocy podłogi.");
    } else {
      checks.push("Ustal pola wyłączone i opór kompletnego wykończenia podłogi.");
    }

    if (bend === "yes") {
      supports.push("Promień nawrotów jest zgodny z wybraną rurą i systemem.");
    } else if (bend === "no") {
      critical = true;
      concerns.push("Wymuszany nawrót grozi spłaszczeniem lub uszkodzeniem rury — zmień trasę.");
    } else {
      checks.push("Sprawdź minimalny promień i sposób wykonania nawrotów.");
    }

    if (hydraulic === "yes") {
      supports.push("Długość, przepływ i opór zostały sprawdzone dla tej pętli.");
    } else if (hydraulic === "no") {
      critical = true;
      concerns.push("Uniwersalna reguła długości nie zastępuje obliczenia hydraulicznego.");
    } else {
      checks.push("Policz przepływ i opór całej drogi przed zatwierdzeniem pętli.");
    }

    var result = document.getElementById("rk-meander-result");
    var status = document.getElementById("rk-meander-result-status");
    var intro = document.getElementById("rk-meander-result-intro");
    var scoreLabel = document.getElementById("rk-meander-score");
    result.classList.remove("is-good");
    result.classList.remove("is-stop");
    result.classList.remove("is-conditional");

    if (critical) {
      result.classList.add("is-stop");
      status.textContent = "Wstrzymaj wybór trasy i uzupełnij dane krytyczne";
      intro.textContent = "Co najmniej jeden warunek uniemożliwia odpowiedzialne zatwierdzenie meandra przed zakryciem podłogi.";
      scoreLabel.textContent = "Status: brakuje podstaw do zatwierdzenia";
    } else if (score >= 5) {
      result.classList.add("is-good");
      status.textContent = "Meander pojedynczy jest logicznym kandydatem";
      intro.textContent = "Warunki wskazują wartość kierunkowego profilu, ale wymiary pętli nadal muszą wynikać z projektu cieplnego i hydraulicznego.";
      scoreLabel.textContent = "Kierunek analizy: meander pojedynczy";
    } else if (score <= 0) {
      result.classList.add("is-conditional");
      status.textContent = "Porównaj układ bardziej wyrównany";
      intro.textContent = "Z odpowiedzi nie wynika wyraźna korzyść z kierunkowego meandra. Sprawdź meander podwójny, ślimak lub rozwiązanie mieszane.";
      scoreLabel.textContent = "Kierunek analizy: wyrównanie temperatury";
    } else {
      result.classList.add("is-conditional");
      status.textContent = "Meander jest możliwy warunkowo";
      intro.textContent = "Istnieją argumenty za prostoliniowym prowadzeniem, ale nie są jeszcze wystarczające do zatwierdzenia kompletnej pętli.";
      scoreLabel.textContent = "Kierunek analizy: porównaj warianty";
    }

    renderList("rk-meander-for-list", supports, "Brak jednoznacznego argumentu za meandrem.");
    renderList("rk-meander-check-list", checks, "Nie wskazano dodatkowego braku informacyjnego.");
    renderList("rk-meander-against-list", concerns, "Nie wskazano warunku przemawiającego przeciw temu kierunkowi analizy.");
  }

  var runButton = document.getElementById("rk-meander-run");
  var resetButton = document.getElementById("rk-meander-reset");

  if (runButton) {
    runButton.addEventListener("click", analyzeMeander);
  }

  if (resetButton) {
    resetButton.addEventListener("click", function () {
      var fields = guide.querySelectorAll("#rk-meander-analyzer select");
      fields.forEach(function (field) {
        field.selectedIndex = 0;
      });
      var result = document.getElementById("rk-meander-result");
      result.classList.remove("is-good");
      result.classList.remove("is-stop");
      result.classList.remove("is-conditional");
      document.getElementById("rk-meander-result-status").textContent = "Uzupełnij warunki pomieszczenia";
      document.getElementById("rk-meander-result-intro").textContent = "Wynik wskaże najbardziej logiczny kierunek dalszej analizy i dane, których nadal brakuje.";
      document.getElementById("rk-meander-score").textContent = "Ocena pojawi się po analizie";
      renderList("rk-meander-for-list", [], "Jeszcze brak ocenionych odpowiedzi.");
      renderList("rk-meander-check-list", [], "Uzupełnij formularz na podstawie danych budynku.");
      renderList("rk-meander-against-list", [], "Brak oceny nie oznacza akceptacji układu.");
    });
  }

  showLayout(selectedLayout);
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/">Układ meandrowy ogrzewania podłogowego – schemat, zastosowanie i błędy</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Kalkulator do obliczania ilości metrów rury potrzebnych do ogrzewania podłogowego.</title>
		<link>https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/</link>
					<comments>https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Fri, 14 Mar 2025 11:52:06 +0000</pubDate>
				<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Kalkulatory budowlane]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Narzędzia i kalkulatory]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Optymalizacja kosztów]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Systemy grzewcze]]></category>
		<category><![CDATA[budowa domu]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[kalkulator rury]]></category>
		<category><![CDATA[materiały budowlane]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[poradniki]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[remonty]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2407</guid>

					<description><![CDATA[<p>Planujesz montaż ogrzewania podłogowego i zastanawiasz się, ile metrów rury będzie potrzebnych? Kalkulator do obliczania ilości metrów rury do ogrzewania podłogowego to narzędzie, które pomoże Ci precyzyjnie oszacować potrzebne materiały. Dzięki niemu unikniesz błędów, które mogą wpłynąć na efektywność systemu. W artykule znajdziesz praktyczne przykłady obliczeń, wskazówki dotyczące stref grzewczych oraz informacje, dlaczego warto zlecić projekt profesjonalistom. Sprawdź, jak zaoszczędzić czas i pieniądze!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/">Kalkulator do obliczania ilości metrów rury potrzebnych do ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-pipe-calc {
    --rk-dark: #102536;
    --rk-navy: #14384d;
    --rk-blue: #078fbe;
    --rk-cyan: #28c9da;
    --rk-cyan-soft: #eafcff;
    --rk-orange: #ff7438;
    --rk-red: #e34837;
    --rk-green: #148369;
    --rk-green-soft: #eaf8f4;
    --rk-yellow: #f1b83d;
    --rk-yellow-soft: #fff9e8;
    --rk-ink: #1f2937;
    --rk-text: #465866;
    --rk-muted: #687986;
    --rk-line: #dce8ee;
    --rk-soft: #f5f9fb;
    --rk-warm: #fff4ed;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1180px;
    margin: 34px auto 70px;
    color: var(--rk-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 18px;
    line-height: 1.76;
  }

  #rk-pipe-calc,
  #rk-pipe-calc * {
    box-sizing: border-box;
  }

  #rk-pipe-calc img,
  #rk-pipe-calc svg {
    max-width: 100%;
  }

  #rk-pipe-calc button,
  #rk-pipe-calc input,
  #rk-pipe-calc select,
  #rk-pipe-calc label,
  #rk-pipe-calc a,
  #rk-pipe-calc summary {
    font: inherit;
    -webkit-tap-highlight-color: transparent;
  }

  #rk-pipe-calc a {
    color: var(--rk-blue);
    font-weight: 760;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }

  #rk-pipe-calc a:hover,
  #rk-pipe-calc a:focus-visible {
    color: var(--rk-red);
  }

  #rk-pipe-calc h2,
  #rk-pipe-calc h3,
  #rk-pipe-calc h4 {
    margin-top: 0;
    color: var(--rk-dark);
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.16;
  }

  #rk-pipe-calc h2 {
    margin-bottom: 18px;
    font-size: clamp(1.65rem, 3.7vw, 2.6rem);
  }

  #rk-pipe-calc h3 {
    margin-bottom: 12px;
    font-size: clamp(1.16rem, 2.5vw, 1.52rem);
  }

  #rk-pipe-calc h4 {
    margin-bottom: 8px;
    font-size: 1.04rem;
    letter-spacing: -0.018em;
  }

  #rk-pipe-calc h2::before,
  #rk-pipe-calc h2::after,
  #rk-pipe-calc h3::before,
  #rk-pipe-calc h3::after,
  #rk-pipe-calc h4::before,
  #rk-pipe-calc h4::after {
    content: none !important;
    display: none !important;
  }

  #rk-pipe-calc p {
    margin: 0 0 1.18em;
    color: var(--rk-text);
  }

  #rk-pipe-calc strong {
    color: var(--rk-dark);
  }

  #rk-pipe-calc section[id] {
    scroll-margin-top: 28px;
  }

  #rk-pipe-calc .rk-pipe-shell {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 30px;
    background: var(--rk-white);
    box-shadow: 0 25px 70px rgba(16, 37, 54, 0.12);
  }

  #rk-pipe-calc .rk-pipe-progress-track {
    position: sticky;
    z-index: 30;
    top: 0;
    width: 100%;
    height: 5px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.9);
  }

  #rk-pipe-calc .rk-pipe-progress {
    width: 0;
    height: 100%;
    background: linear-gradient(90deg, var(--rk-cyan), var(--rk-blue), var(--rk-orange), var(--rk-red));
  }

  #rk-pipe-calc .rk-pipe-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(38px, 6.5vw, 78px);
    color: var(--rk-white);
    background:
      radial-gradient(circle at 88% 10%, rgba(255, 116, 56, 0.38), transparent 26%),
      radial-gradient(circle at 78% 88%, rgba(40, 201, 218, 0.24), transparent 31%),
      linear-gradient(135deg, #0d2230 0%, #143b50 58%, #095e78 100%);
  }

  #rk-pipe-calc .rk-pipe-hero::before {
    content: "";
    position: absolute;
    z-index: -1;
    right: -115px;
    bottom: -178px;
    width: 410px;
    height: 410px;
    border: 58px solid rgba(255, 255, 255, 0.055);
    border-radius: 50%;
    pointer-events: none;
  }

  #rk-pipe-calc .rk-pipe-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.18fr) minmax(260px, 0.82fr);
    gap: clamp(28px, 5vw, 62px);
    align-items: center;
  }

  #rk-pipe-calc .rk-pipe-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 23px;
    padding: 8px 15px;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 999px;
    color: #9ef5ff;
    background: rgba(255, 255, 255, 0.06);
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.105em;
    line-height: 1.25;
    text-transform: uppercase;
  }

  #rk-pipe-calc .rk-pipe-eyebrow b {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--rk-orange);
    box-shadow: 0 0 0 7px rgba(255, 116, 56, 0.17);
  }

  #rk-pipe-calc .rk-pipe-hero-title {
    max-width: 800px;
    margin: 0 0 24px;
    color: var(--rk-white);
    font-size: clamp(2.05rem, 5vw, 4rem);
    font-weight: 950;
    letter-spacing: -0.055em;
    line-height: 1.02;
  }

  #rk-pipe-calc .rk-pipe-hero-lead {
    max-width: 790px;
    margin-bottom: 26px;
    color: #dcecf4;
    font-size: clamp(1.02rem, 2.1vw, 1.24rem);
    line-height: 1.62;
  }

  #rk-pipe-calc .rk-pipe-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 11px 22px;
    color: #c8d9e3;
    font-size: 0.82rem;
    font-weight: 780;
  }

  #rk-pipe-calc .rk-pipe-meta span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
  }

  #rk-pipe-calc .rk-pipe-meta i {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--rk-orange);
  }

  #rk-pipe-calc .rk-pipe-hero-formula {
    padding: 28px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.08);
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.12);
    backdrop-filter: blur(7px);
  }

  #rk-pipe-calc .rk-pipe-hero-formula small {
    display: block;
    margin-bottom: 13px;
    color: #89effa;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-pipe-calc .rk-pipe-hero-formula code {
    display: block;
    color: var(--rk-white);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: clamp(1.05rem, 2.5vw, 1.45rem);
    font-weight: 850;
    line-height: 1.5;
    white-space: normal;
  }

  #rk-pipe-calc .rk-pipe-hero-formula p {
    margin: 16px 0 0;
    color: #d0e3ec;
    font-size: 0.82rem;
    line-height: 1.6;
  }

  #rk-pipe-calc .rk-pipe-nav {
    display: flex;
    gap: 9px;
    overflow-x: auto;
    padding: 15px clamp(20px, 5vw, 56px);
    border-bottom: 1px solid var(--rk-line);
    background: var(--rk-white);
    scrollbar-width: thin;
  }

  #rk-pipe-calc .rk-pipe-nav a {
    flex: 0 0 auto;
    padding: 8px 13px;
    border: 1px solid var(--rk-line);
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-soft);
    font-size: 0.74rem;
    font-weight: 880;
    text-decoration: none;
    white-space: nowrap;
  }

  #rk-pipe-calc .rk-pipe-nav a:hover,
  #rk-pipe-calc .rk-pipe-nav a:focus-visible {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-pipe-calc .rk-pipe-body {
    padding: clamp(28px, 6vw, 70px);
  }

  #rk-pipe-calc .rk-pipe-section {
    margin-bottom: clamp(55px, 8vw, 94px);
  }

  #rk-pipe-calc .rk-pipe-section:last-child {
    margin-bottom: 0;
  }

  #rk-pipe-calc .rk-pipe-kicker {
    display: block;
    margin-bottom: 9px;
    color: var(--rk-orange);
    font-size: 0.73rem;
    font-weight: 930;
    letter-spacing: 0.095em;
    line-height: 1.4;
    text-transform: uppercase;
  }

  #rk-pipe-calc .rk-pipe-lead {
    max-width: 930px;
    font-size: 1.08rem;
    line-height: 1.82;
  }

  #rk-pipe-calc .rk-pipe-dropcap::first-letter {
    float: left;
    margin: 0.08em 0.12em 0 0;
    color: var(--rk-orange);
    font-size: 3.65rem;
    font-weight: 950;
    line-height: 0.82;
  }

  #rk-pipe-calc .rk-pipe-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: 28px;
  }

  #rk-pipe-calc .rk-pipe-summary-card {
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-soft);
  }

  #rk-pipe-calc .rk-pipe-summary-card b {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    margin-bottom: 13px;
    border-radius: 13px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 0.8rem;
  }

  #rk-pipe-calc .rk-pipe-summary-card h3 {
    font-size: 1.12rem;
  }

  #rk-pipe-calc .rk-pipe-summary-card p {
    margin-bottom: 0;
    font-size: 0.88rem;
    line-height: 1.65;
  }

  #rk-pipe-calc .rk-pipe-correction {
    display: grid;
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    gap: 0;
    overflow: hidden;
    border: 1px solid #f0c7b6;
    border-radius: 25px;
    background: var(--rk-white);
  }

  #rk-pipe-calc .rk-pipe-correction-copy {
    padding: clamp(25px, 4vw, 42px);
    background: var(--rk-warm);
  }

  #rk-pipe-calc .rk-pipe-correction-copy p:last-child {
    margin-bottom: 0;
  }

  #rk-pipe-calc .rk-pipe-correction-math {
    display: grid;
    gap: 15px;
    align-content: center;
    padding: clamp(25px, 4vw, 42px);
  }

  #rk-pipe-calc .rk-pipe-equation {
    padding: 18px 20px;
    border-left: 5px solid var(--rk-blue);
    border-radius: 8px 15px 15px 8px;
    background: var(--rk-soft);
  }

  #rk-pipe-calc .rk-pipe-equation.is-wrong {
    border-left-color: var(--rk-red);
    background: #fff1ef;
  }

  #rk-pipe-calc .rk-pipe-equation small {
    display: block;
    margin-bottom: 6px;
    color: var(--rk-muted);
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.07em;
    text-transform: uppercase;
  }

  #rk-pipe-calc .rk-pipe-equation code {
    color: var(--rk-dark);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.96rem;
    font-weight: 850;
    white-space: normal;
  }

  #rk-pipe-calc .rk-pipe-calculator {
    overflow: hidden;
    border: 1px solid #b9dce7;
    border-radius: 28px;
    background: var(--rk-white);
    box-shadow: 0 24px 62px rgba(16, 37, 54, 0.12);
  }

  #rk-pipe-calc .rk-pipe-calculator-head {
    padding: clamp(30px, 5vw, 54px);
    color: var(--rk-white);
    background:
      radial-gradient(circle at 90% 5%, rgba(255, 116, 56, 0.34), transparent 28%),
      linear-gradient(125deg, var(--rk-dark), #174b63);
  }

  #rk-pipe-calc .rk-pipe-calculator-head h2 {
    max-width: 860px;
    margin-bottom: 13px;
    color: var(--rk-white);
  }

  #rk-pipe-calc .rk-pipe-calculator-head p {
    max-width: 880px;
    margin-bottom: 0;
    color: #d7e9f1;
  }

  #rk-pipe-calc .rk-pipe-calculator-layout {
    display: grid;
    grid-template-columns: minmax(320px, 0.86fr) minmax(0, 1.14fr);
  }

  #rk-pipe-calc .rk-pipe-controls {
    padding: clamp(25px, 4vw, 40px);
    border-right: 1px solid var(--rk-line);
    background: var(--rk-soft);
  }

  #rk-pipe-calc .rk-pipe-control {
    margin-bottom: 21px;
  }

  #rk-pipe-calc .rk-pipe-control:last-child {
    margin-bottom: 0;
  }

  #rk-pipe-calc .rk-pipe-control label {
    display: block;
    margin-bottom: 8px;
    color: var(--rk-dark);
    font-size: 0.82rem;
    font-weight: 880;
    line-height: 1.45;
  }

  #rk-pipe-calc .rk-pipe-control small {
    display: block;
    margin-top: 6px;
    color: var(--rk-muted);
    font-size: 0.7rem;
    line-height: 1.5;
  }

  #rk-pipe-calc .rk-pipe-control input,
  #rk-pipe-calc .rk-pipe-control select {
    display: block;
    width: 100%;
    min-height: 49px;
    padding: 9px 12px;
    border: 1px solid #bfd4de;
    border-radius: 12px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-weight: 780;
    outline: none;
  }

  #rk-pipe-calc .rk-pipe-control input:focus,
  #rk-pipe-calc .rk-pipe-control select:focus {
    border-color: var(--rk-blue);
    box-shadow: 0 0 0 4px rgba(7, 143, 190, 0.12);
  }

  #rk-pipe-calc .rk-pipe-results {
    min-width: 0;
    padding: clamp(25px, 4vw, 40px);
  }

  #rk-pipe-calc .rk-pipe-result-primary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 18px;
  }

  #rk-pipe-calc .rk-pipe-result-card {
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: var(--rk-soft);
  }

  #rk-pipe-calc .rk-pipe-result-card.is-main {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: linear-gradient(135deg, var(--rk-blue), #0a718f);
  }

  #rk-pipe-calc .rk-pipe-result-card small {
    display: block;
    margin-bottom: 6px;
    color: var(--rk-muted);
    font-size: 0.68rem;
    font-weight: 880;
    letter-spacing: 0.045em;
    line-height: 1.4;
    text-transform: uppercase;
  }

  #rk-pipe-calc .rk-pipe-result-card.is-main small {
    color: #caf6ff;
  }

  #rk-pipe-calc .rk-pipe-result-number {
    overflow-wrap: anywhere;
    color: var(--rk-dark);
    font-size: clamp(1.42rem, 3vw, 2.1rem);
    font-weight: 950;
    letter-spacing: -0.04em;
    line-height: 1.1;
  }

  #rk-pipe-calc .rk-pipe-result-card.is-main .rk-pipe-result-number {
    color: var(--rk-white);
  }

  #rk-pipe-calc .rk-pipe-result-secondary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
  }

  #rk-pipe-calc .rk-pipe-result-note {
    margin-top: 18px;
    padding: 16px 18px;
    border-left: 5px solid var(--rk-cyan);
    border-radius: 8px 14px 14px 8px;
    background: var(--rk-cyan-soft);
    color: var(--rk-dark);
    font-size: 0.82rem;
    font-weight: 730;
    line-height: 1.6;
  }

  #rk-pipe-calc .rk-pipe-result-note.is-warning {
    border-left-color: var(--rk-orange);
    background: var(--rk-warm);
  }

  #rk-pipe-calc .rk-pipe-chart {
    margin-top: 24px;
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 19px;
    background: var(--rk-white);
  }

  #rk-pipe-calc .rk-pipe-chart h3 {
    margin-bottom: 5px;
    font-size: 1.14rem;
  }

  #rk-pipe-calc .rk-pipe-chart-intro {
    margin-bottom: 18px;
    font-size: 0.76rem;
  }

  #rk-pipe-calc .rk-pipe-bar-row {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr) 88px;
    gap: 11px;
    align-items: center;
    margin: 10px 0;
  }

  #rk-pipe-calc .rk-pipe-bar-label,
  #rk-pipe-calc .rk-pipe-bar-value {
    color: var(--rk-dark);
    font-size: 0.72rem;
    font-weight: 900;
  }

  #rk-pipe-calc .rk-pipe-bar-value {
    text-align: right;
  }

  #rk-pipe-calc .rk-pipe-bar-track {
    height: 14px;
    overflow: hidden;
    border-radius: 999px;
    background: #e8f0f4;
  }

  #rk-pipe-calc .rk-pipe-bar {
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--rk-cyan), var(--rk-blue));
    transition: width 220ms ease;
  }

  #rk-pipe-calc .rk-pipe-bar-row.is-selected .rk-pipe-bar {
    background: linear-gradient(90deg, var(--rk-orange), var(--rk-red));
  }

  #rk-pipe-calc .rk-pipe-bar-row.is-selected .rk-pipe-bar-label,
  #rk-pipe-calc .rk-pipe-bar-row.is-selected .rk-pipe-bar-value {
    color: var(--rk-red);
  }

  #rk-pipe-calc .rk-pipe-inline-cta {
    padding: clamp(26px, 4vw, 42px);
    border-top: 1px solid rgba(255, 255, 255, 0.14);
    color: var(--rk-white);
    background: var(--rk-dark);
  }

  #rk-pipe-calc .rk-pipe-inline-cta h3 {
    margin-bottom: 9px;
    color: var(--rk-white);
  }

  #rk-pipe-calc .rk-pipe-inline-cta p {
    color: #d7e8ef;
  }

  #rk-pipe-calc .rk-pipe-cta-button {
    display: flex;
    width: 100%;
    min-height: 62px;
    align-items: center;
    justify-content: center;
    margin-top: 21px;
    padding: 15px 22px;
    border-radius: 16px;
    color: var(--rk-white);
    background: linear-gradient(90deg, var(--rk-orange), var(--rk-red));
    box-shadow: 0 16px 36px rgba(227, 72, 55, 0.28);
    font-weight: 950;
    line-height: 1.35;
    text-align: center;
    text-decoration: none;
  }

  #rk-pipe-calc .rk-pipe-cta-button:hover,
  #rk-pipe-calc .rk-pipe-cta-button:focus-visible {
    color: var(--rk-white);
    background: linear-gradient(90deg, var(--rk-red), var(--rk-orange));
    transform: translateY(-1px);
  }

  #rk-pipe-calc .rk-pipe-disclosure {
    display: block;
    margin-top: 11px;
    color: #bcd1dc;
    font-size: 0.69rem;
    line-height: 1.5;
    text-align: center;
  }

  #rk-pipe-calc .rk-pipe-grid-2,
  #rk-pipe-calc .rk-pipe-grid-3 {
    display: grid;
    gap: 17px;
  }

  #rk-pipe-calc .rk-pipe-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-pipe-calc .rk-pipe-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-pipe-calc .rk-pipe-card {
    min-width: 0;
    padding: 24px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-white);
  }

  #rk-pipe-calc .rk-pipe-card-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 48px;
    height: 48px;
    margin-bottom: 16px;
    padding: 0 12px;
    border-radius: 14px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 0.8rem;
    font-weight: 930;
  }

  #rk-pipe-calc .rk-pipe-card p:last-child {
    margin-bottom: 0;
  }

  #rk-pipe-calc .rk-pipe-formulas {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }

  #rk-pipe-calc .rk-pipe-formula {
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 19px;
    background: var(--rk-soft);
  }

  #rk-pipe-calc .rk-pipe-formula span {
    display: block;
    margin-bottom: 8px;
    color: var(--rk-orange);
    font-size: 0.7rem;
    font-weight: 930;
    letter-spacing: 0.07em;
    text-transform: uppercase;
  }

  #rk-pipe-calc .rk-pipe-formula code {
    display: block;
    margin-bottom: 9px;
    color: var(--rk-dark);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.91rem;
    font-weight: 850;
    line-height: 1.55;
    white-space: normal;
  }

  #rk-pipe-calc .rk-pipe-formula p {
    margin-bottom: 0;
    font-size: 0.79rem;
    line-height: 1.62;
  }

  #rk-pipe-calc .rk-pipe-table-wrap {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
  }

  #rk-pipe-calc table {
    width: 100%;
    margin: 0;
    border-collapse: collapse;
    table-layout: fixed;
  }

  #rk-pipe-calc th,
  #rk-pipe-calc td {
    padding: 15px 17px;
    border: 0;
    border-bottom: 1px solid var(--rk-line);
    color: var(--rk-text);
    text-align: left;
    vertical-align: top;
  }

  #rk-pipe-calc th {
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.74rem;
    font-weight: 900;
    line-height: 1.4;
  }

  #rk-pipe-calc td {
    font-size: 0.84rem;
    line-height: 1.55;
  }

  #rk-pipe-calc tbody tr:nth-child(even) td {
    background: var(--rk-soft);
  }

  #rk-pipe-calc tbody tr:last-child td {
    border-bottom: 0;
  }

  #rk-pipe-calc .rk-pipe-note,
  #rk-pipe-calc .rk-pipe-warning,
  #rk-pipe-calc .rk-pipe-success {
    margin-top: 22px;
    padding: 20px 22px;
    border-left: 6px solid var(--rk-blue);
    border-radius: 9px 17px 17px 9px;
    background: var(--rk-cyan-soft);
  }

  #rk-pipe-calc .rk-pipe-warning {
    border-left-color: var(--rk-orange);
    background: var(--rk-warm);
  }

  #rk-pipe-calc .rk-pipe-success {
    border-left-color: var(--rk-green);
    background: var(--rk-green-soft);
  }

  #rk-pipe-calc .rk-pipe-note p:last-child,
  #rk-pipe-calc .rk-pipe-warning p:last-child,
  #rk-pipe-calc .rk-pipe-success p:last-child {
    margin-bottom: 0;
  }

  #rk-pipe-calc .rk-pipe-example-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    margin-top: 24px;
  }

  #rk-pipe-calc .rk-pipe-example {
    padding: 19px 15px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: var(--rk-soft);
    text-align: center;
  }

  #rk-pipe-calc .rk-pipe-example strong {
    display: block;
    color: var(--rk-blue);
    font-size: 1.45rem;
    font-weight: 950;
    letter-spacing: -0.04em;
  }

  #rk-pipe-calc .rk-pipe-example b {
    display: block;
    margin: 5px 0;
    color: var(--rk-dark);
    font-size: 0.78rem;
  }

  #rk-pipe-calc .rk-pipe-example small {
    display: block;
    color: var(--rk-muted);
    font-size: 0.66rem;
    line-height: 1.45;
  }

  #rk-pipe-calc .rk-pipe-checklist {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px;
    margin: 22px 0 0;
    padding: 0;
    list-style: none;
  }

  #rk-pipe-calc .rk-pipe-checklist li {
    position: relative;
    margin: 0;
    padding: 17px 18px 17px 52px;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    color: var(--rk-text);
    background: var(--rk-soft);
    font-size: 0.84rem;
    line-height: 1.6;
  }

  #rk-pipe-calc .rk-pipe-checklist li::before {
    content: "✓";
    position: absolute;
    top: 17px;
    left: 17px;
    display: inline-flex;
    width: 24px;
    height: 24px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-green);
    font-size: 0.72rem;
    font-weight: 950;
  }

  #rk-pipe-calc .rk-pipe-faq {
    display: grid;
    gap: 12px;
  }

  #rk-pipe-calc .rk-pipe-faq details {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    background: var(--rk-white);
  }

  #rk-pipe-calc .rk-pipe-faq summary {
    position: relative;
    padding: 18px 52px 18px 20px;
    color: var(--rk-dark);
    background: var(--rk-soft);
    font-weight: 880;
    line-height: 1.45;
    cursor: pointer;
    list-style: none;
  }

  #rk-pipe-calc .rk-pipe-faq summary::-webkit-details-marker {
    display: none;
  }

  #rk-pipe-calc .rk-pipe-faq summary::after {
    content: "+";
    position: absolute;
    top: 50%;
    right: 20px;
    color: var(--rk-blue);
    font-size: 1.35rem;
    font-weight: 900;
    transform: translateY(-50%);
  }

  #rk-pipe-calc .rk-pipe-faq details[open] summary::after {
    content: "−";
  }

  #rk-pipe-calc .rk-pipe-faq-answer {
    padding: 18px 20px;
  }

  #rk-pipe-calc .rk-pipe-faq-answer p:last-child {
    margin-bottom: 0;
  }

  #rk-pipe-calc .rk-pipe-sources {
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-soft);
    font-size: 0.76rem;
    line-height: 1.65;
  }

  #rk-pipe-calc .rk-pipe-sources strong {
    display: block;
    margin-bottom: 7px;
  }

  #rk-pipe-calc .rk-pipe-author {
    overflow: hidden;
    margin-bottom: clamp(55px, 8vw, 90px);
    border: 1px solid #bdd9e5;
    border-radius: 27px;
    background: var(--rk-white);
    box-shadow: 0 22px 50px rgba(16, 37, 54, 0.09);
  }

  #rk-pipe-calc .rk-pipe-author > input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
  }

  #rk-pipe-calc .rk-pipe-author-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 28px clamp(28px, 5vw, 50px);
    border-bottom: 6px solid var(--rk-cyan);
    color: var(--rk-white);
    background: var(--rk-dark);
  }

  #rk-pipe-calc .rk-pipe-author-head h2 {
    margin-bottom: 7px;
    color: var(--rk-white);
  }

  #rk-pipe-calc .rk-pipe-author-head p {
    margin-bottom: 0;
    color: #d5e7ef;
  }

  #rk-pipe-calc .rk-pipe-author-mark {
    flex: 0 0 auto;
    padding: 10px 15px;
    border: 1px solid rgba(40, 201, 218, 0.38);
    border-radius: 15px;
    color: #6aefff;
    font-size: 0.75rem;
    font-weight: 950;
    letter-spacing: 0.08em;
    white-space: nowrap;
  }

  #rk-pipe-calc .rk-pipe-author-layout {
    display: grid;
    grid-template-columns: 330px minmax(0, 1fr);
  }

  #rk-pipe-calc .rk-pipe-author-side {
    padding: 38px 28px;
    border-right: 1px solid var(--rk-line);
    background: #f2f8fa;
    text-align: center;
  }

  #rk-pipe-calc .rk-pipe-author-photo {
    width: 184px;
    height: 184px;
    margin: 0 auto 21px;
    overflow: hidden;
    border: 8px solid var(--rk-white);
    border-radius: 50%;
    box-shadow: 0 14px 34px rgba(16, 37, 54, 0.15);
  }

  #rk-pipe-calc .rk-pipe-author-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  #rk-pipe-calc .rk-pipe-author-name {
    color: var(--rk-dark);
    font-size: 1.35rem;
    font-weight: 950;
    letter-spacing: -0.035em;
  }

  #rk-pipe-calc .rk-pipe-author-role {
    margin-top: 6px;
    color: var(--rk-blue);
    font-size: 0.73rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    line-height: 1.55;
    text-transform: uppercase;
  }

  #rk-pipe-calc .rk-pipe-author-main {
    min-width: 0;
    padding: 34px 38px 38px;
  }

  #rk-pipe-calc .rk-pipe-author-quote {
    margin: 0 0 26px;
    padding: 23px 25px 23px 72px;
    border: 0;
    border-radius: 19px;
    background: var(--rk-cyan-soft);
  }

  #rk-pipe-calc .rk-pipe-author-quote::before {
    content: "“";
    position: absolute;
    margin: -15px 0 0 -49px;
    color: var(--rk-cyan);
    font-size: 3.7rem;
    font-weight: 950;
    line-height: 1;
  }

  #rk-pipe-calc .rk-pipe-author-quote p {
    margin-bottom: 0;
    color: var(--rk-dark);
    font-style: italic;
    font-weight: 820;
  }

  #rk-pipe-calc .rk-pipe-author-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: 0;
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 15px 15px 0 0;
  }

  #rk-pipe-calc .rk-pipe-author-tab {
    padding: 14px 10px;
    color: var(--rk-muted);
    background: var(--rk-soft);
    font-size: 0.73rem;
    font-weight: 900;
    line-height: 1.35;
    text-align: center;
    text-transform: uppercase;
    cursor: pointer;
  }

  #rk-pipe-calc .rk-pipe-author-tab + .rk-pipe-author-tab {
    border-left: 1px solid var(--rk-line);
  }

  #rk-pipe-calc .rk-pipe-author-panel {
    display: none;
    min-height: 168px;
    padding: 25px;
    border: 1px solid var(--rk-line);
    border-top: 0;
    border-radius: 0 0 15px 15px;
  }

  #rk-pipe-calc .rk-pipe-author-panel p:last-child {
    margin-bottom: 0;
  }

  #rk-pipe-author-about:checked ~ .rk-pipe-author-layout .rk-pipe-author-panel-about,
  #rk-pipe-author-exp:checked ~ .rk-pipe-author-layout .rk-pipe-author-panel-exp,
  #rk-pipe-author-sites:checked ~ .rk-pipe-author-layout .rk-pipe-author-panel-sites {
    display: block;
  }

  #rk-pipe-author-about:checked ~ .rk-pipe-author-layout label[for="rk-pipe-author-about"],
  #rk-pipe-author-exp:checked ~ .rk-pipe-author-layout label[for="rk-pipe-author-exp"],
  #rk-pipe-author-sites:checked ~ .rk-pipe-author-layout label[for="rk-pipe-author-sites"] {
    color: var(--rk-blue);
    background: var(--rk-white);
    box-shadow: inset 0 -5px 0 var(--rk-blue);
  }

  #rk-pipe-calc .rk-pipe-site-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
  }

  #rk-pipe-calc .rk-pipe-site-links a {
    padding: 8px 13px;
    border: 1px solid #c6dbe4;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.75rem;
    font-weight: 900;
    text-decoration: none;
  }

  #rk-pipe-calc .rk-pipe-site-links a:hover,
  #rk-pipe-calc .rk-pipe-site-links a:focus-visible {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-pipe-calc .rk-pipe-final-cta {
    overflow: hidden;
    border-radius: 27px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 92% 15%, rgba(255, 116, 56, 0.38), transparent 28%),
      linear-gradient(125deg, var(--rk-dark), #15465e);
  }

  #rk-pipe-calc .rk-pipe-final-cta-content {
    padding: clamp(30px, 5vw, 53px);
  }

  #rk-pipe-calc .rk-pipe-final-cta h2 {
    max-width: 900px;
    margin-bottom: 13px;
    color: var(--rk-white);
  }

  #rk-pipe-calc .rk-pipe-final-cta p {
    max-width: 900px;
    color: #d8e9f1;
  }

  @media (max-width: 980px) {
    #rk-pipe-calc .rk-pipe-hero-grid,
    #rk-pipe-calc .rk-pipe-calculator-layout,
    #rk-pipe-calc .rk-pipe-correction,
    #rk-pipe-calc .rk-pipe-author-layout {
      grid-template-columns: 1fr;
    }

    #rk-pipe-calc .rk-pipe-controls,
    #rk-pipe-calc .rk-pipe-author-side {
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }

    #rk-pipe-calc .rk-pipe-summary-grid,
    #rk-pipe-calc .rk-pipe-grid-3 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-pipe-calc .rk-pipe-example-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
  }

  @media (max-width: 720px) {
    #rk-pipe-calc {
      margin-top: 20px;
      font-size: 16px;
    }

    #rk-pipe-calc .rk-pipe-shell {
      border-radius: 20px;
    }

    #rk-pipe-calc .rk-pipe-hero,
    #rk-pipe-calc .rk-pipe-body {
      padding: 27px 19px;
    }

    #rk-pipe-calc .rk-pipe-result-secondary,
    #rk-pipe-calc .rk-pipe-summary-grid,
    #rk-pipe-calc .rk-pipe-grid-2,
    #rk-pipe-calc .rk-pipe-grid-3,
    #rk-pipe-calc .rk-pipe-formulas,
    #rk-pipe-calc .rk-pipe-checklist,
    #rk-pipe-calc .rk-pipe-example-grid {
      grid-template-columns: 1fr;
    }

    #rk-pipe-calc .rk-pipe-result-primary {
      grid-template-columns: 1fr 1fr;
    }

    #rk-pipe-calc .rk-pipe-bar-row {
      grid-template-columns: 50px minmax(0, 1fr) 75px;
      gap: 8px;
    }

    #rk-pipe-calc .rk-pipe-author-head {
      display: block;
    }

    #rk-pipe-calc .rk-pipe-author-mark {
      display: inline-block;
      margin-top: 16px;
    }

    #rk-pipe-calc .rk-pipe-author-main {
      padding: 25px 18px 28px;
    }

    #rk-pipe-calc .rk-pipe-author-quote {
      padding: 22px;
    }

    #rk-pipe-calc .rk-pipe-author-quote::before {
      display: none;
    }

    #rk-pipe-calc .rk-pipe-author-tabs {
      grid-template-columns: 1fr;
      border-radius: 14px 14px 0 0;
    }

    #rk-pipe-calc .rk-pipe-author-tab + .rk-pipe-author-tab {
      border-top: 1px solid var(--rk-line);
      border-left: 0;
    }

    #rk-pipe-calc .rk-pipe-table-wrap {
      overflow: visible;
      border: 0;
      border-radius: 0;
    }

    #rk-pipe-calc table,
    #rk-pipe-calc thead,
    #rk-pipe-calc tbody,
    #rk-pipe-calc tr,
    #rk-pipe-calc th,
    #rk-pipe-calc td {
      display: block;
      width: 100%;
    }

    #rk-pipe-calc thead {
      position: absolute;
      width: 1px;
      height: 1px;
      overflow: hidden;
      clip: rect(0 0 0 0);
      white-space: nowrap;
    }

    #rk-pipe-calc tbody tr {
      margin-bottom: 14px;
      overflow: hidden;
      border: 1px solid var(--rk-line);
      border-radius: 15px;
      background: var(--rk-white);
    }

    #rk-pipe-calc td,
    #rk-pipe-calc tbody tr:nth-child(even) td {
      display: grid;
      grid-template-columns: minmax(115px, 0.75fr) minmax(0, 1.25fr);
      gap: 12px;
      padding: 12px 14px;
      background: var(--rk-white);
    }

    #rk-pipe-calc td::before {
      content: attr(data-label);
      color: var(--rk-dark);
      font-size: 0.72rem;
      font-weight: 900;
      line-height: 1.45;
    }
  }

  @media (max-width: 430px) {
    #rk-pipe-calc .rk-pipe-result-primary {
      grid-template-columns: 1fr;
    }

    #rk-pipe-calc td,
    #rk-pipe-calc tbody tr:nth-child(even) td {
      grid-template-columns: 1fr;
      gap: 4px;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    #rk-pipe-calc *,
    #rk-pipe-calc *::before,
    #rk-pipe-calc *::after {
      scroll-behavior: auto !important;
      transition-duration: 0.01ms !important;
    }
  }
</style>

<article id="rk-pipe-calc" data-rk-pipe-version="2026-08-26" aria-label="Kalkulator długości rury do ogrzewania podłogowego">
  <div class="rk-pipe-shell">
    <div class="rk-pipe-progress-track" aria-hidden="true"><div class="rk-pipe-progress"></div></div>

    <header class="rk-pipe-hero">
      <div class="rk-pipe-hero-grid">
        <div>
          <span class="rk-pipe-eyebrow"><b aria-hidden="true"></b> Kalkulator techniczny • aktualizacja 2026</span>
          <div class="rk-pipe-hero-title" role="heading" aria-level="2">Kalkulator długości rury do ogrzewania podłogowego</div>
          <p class="rk-pipe-hero-lead">Oblicz orientacyjną ilość rury na powierzchni, długość podejść do rozdzielacza, liczbę pętli i zapas zakupowy. Wynik pokazuje materiał — nie zastępuje obliczeń cieplnych ani hydraulicznych.</p>
          <div class="rk-pipe-meta">
            <span><i aria-hidden="true"></i> Autor: Robert Kucharski</span>
            <span><i aria-hidden="true"></i> Aktualizacja: 26 sierpnia 2026 r.</span>
            <span><i aria-hidden="true"></i> Czas czytania: ok. 15 minut</span>
          </div>
        </div>
        <aside class="rk-pipe-hero-formula" aria-label="Podstawowa zasada obliczenia">
          <small>Najważniejsza zasada</small>
          <code>L<sub>pow.</sub> ≈ A<sub>czynna</sub> ÷ s</code>
          <p>Rozstaw <strong style="color:#fff">s</strong> należy podać w metrach. Podejścia od rozdzielacza do pól grzewczych dolicza się osobno — nie przez mnożenie całego wyniku razy dwa.</p>
        </aside>
      </div>
    </header>

    <nav class="rk-pipe-nav" aria-label="Spis treści artykułu">
      <a href="#rk-pipe-answer">Szybka odpowiedź</a>
      <a href="#rk-pipe-tool">Kalkulator</a>
      <a href="#rk-pipe-formulas">Wzory</a>
      <a href="#rk-pipe-spacing">Rozstaw rur</a>
      <a href="#rk-pipe-loops">Pętle i podejścia</a>
      <a href="#rk-pipe-examples">Przykłady</a>
      <a href="#rk-pipe-errors">Błędy</a>
      <a href="#rk-pipe-faq">FAQ</a>
      <a href="#rk-pipe-author">Autor</a>
    </nav>

    <div class="rk-pipe-body">
      <section class="rk-pipe-section" id="rk-pipe-answer">
        <span class="rk-pipe-kicker">Odpowiedź bez zgadywania</span>
        <h2>Ile metrów rury potrzeba do ogrzewania podłogowego?</h2>
        <p class="rk-pipe-lead rk-pipe-dropcap"><strong>Kalkulator długości rury do ogrzewania podłogowego</strong> powinien rozdzielać trzy różne wartości: rurę układaną na czynnej powierzchni podłogi, odcinki zasilające i powrotne prowadzone do rozdzielacza oraz zapas potrzebny przy zamówieniu. Przy rozstawie 10 cm na 1 m² przypada geometrycznie około 10 m rury, przy 15 cm około 6,67 m, a przy 20 cm około 5 m. To jednak dopiero początek obliczenia.</p>

        <div class="rk-pipe-summary-grid">
          <article class="rk-pipe-summary-card"><b>01</b><h3>Powierzchnia czynna</h3><p>Od całej podłogi odejmuje się tylko strefy świadomie i trwale wyłączone z ogrzewania, a nie każdy ruchomy mebel.</p></article>
          <article class="rk-pipe-summary-card"><b>02</b><h3>Rozstaw projektowy</h3><p>Rozstaw 10, 15 lub 20 cm nie jest wyborem kalkulatora. Musi wynikać z obciążenia cieplnego, okładziny i temperatury wody.</p></article>
          <article class="rk-pipe-summary-card"><b>03</b><h3>Pętle i podejścia</h3><p>Każda pętla potrzebuje drogi do rozdzielacza i z powrotem. Im więcej obwodów, tym większa łączna długość podejść.</p></article>
        </div>
      </section>

      <section class="rk-pipe-section" aria-labelledby="rk-pipe-correction-title">
        <div class="rk-pipe-correction">
          <div class="rk-pipe-correction-copy">
            <span class="rk-pipe-kicker">Ważna korekta metodologii</span>
            <h2 id="rk-pipe-correction-title">Wzór nie może podwajać długości rury</h2>
            <p>W regularnym układzie równoległych przewodów długość na powierzchni wynika w przybliżeniu z podzielenia pola przez rozstaw. Zasilanie i powrót są już elementami tej samej pętli; nie stanowią powodu, aby cały wynik mnożyć przez dwa.</p>
            <p><strong>Przykład:</strong> 30 m² przy rozstawie 15 cm to około 200 m rury na powierzchni, a nie 400 m. Dopiero potem dodaje się indywidualnie policzone podejścia.</p>
          </div>
          <div class="rk-pipe-correction-math">
            <div class="rk-pipe-equation is-wrong"><small>Błędne uproszczenie</small><code>(A ÷ s) × 2</code></div>
            <div class="rk-pipe-equation"><small>Poprawny szacunek powierzchniowy</small><code>L<sub>pow.</sub> ≈ A<sub>czynna</sub> ÷ s</code></div>
            <div class="rk-pipe-equation"><small>Całość instalowana</small><code>L<sub>inst.</sub> ≈ L<sub>pow.</sub> + N × 2d</code></div>
          </div>
        </div>
      </section>

      <section class="rk-pipe-section" id="rk-pipe-tool">
        <div class="rk-pipe-calculator">
          <div class="rk-pipe-calculator-head">
            <span class="rk-pipe-kicker" style="color:#76f2ff">Interaktywne narzędzie obliczeniowe</span>
            <h2>Kalkulator ilości rury do podłogówki i liczby pętli</h2>
            <p>Wprowadź założenia. Narzędzie najpierw obliczy rurę na powierzchni, następnie minimalną liczbę pętli, łączne podejścia i zapas materiałowy. Wszystkie etapy pozostają widoczne.</p>
          </div>

          <div class="rk-pipe-calculator-layout">
            <form class="rk-pipe-controls" id="rk-pipe-form" aria-label="Dane do kalkulatora" onsubmit="return false;">
              <div class="rk-pipe-control">
                <label for="rk-pipe-area">Całkowita powierzchnia podłogi [m²]</label>
                <input id="rk-pipe-area" type="number" min="1" max="1000" step="1" value="100" inputmode="decimal">
                <small>Powierzchnia analizowanej kondygnacji lub zespołu pomieszczeń.</small>
              </div>
              <div class="rk-pipe-control">
                <label for="rk-pipe-excluded">Powierzchnia trwale wyłączona [m²]</label>
                <input id="rk-pipe-excluded" type="number" min="0" max="999" step="0.5" value="10" inputmode="decimal">
                <small>Na przykład stała zabudowa, schody, brodzik lub inne strefy określone w projekcie.</small>
              </div>
              <div class="rk-pipe-control">
                <label for="rk-pipe-spacing-input">Założony rozstaw rur [cm]</label>
                <select id="rk-pipe-spacing-input">
                  <option value="10">10 cm</option>
                  <option value="12.5">12,5 cm</option>
                  <option value="15" selected="">15 cm</option>
                  <option value="20">20 cm</option>
                  <option value="25">25 cm</option>
                </select>
                <small>Rozstaw powinien wynikać z projektu cieplnego; kalkulator go nie dobiera.</small>
              </div>
              <div class="rk-pipe-control">
                <label for="rk-pipe-distance">Średnia odległość pola od rozdzielacza w jedną stronę [m]</label>
                <input id="rk-pipe-distance" type="number" min="0" max="30" step="0.5" value="4" inputmode="decimal">
                <small>Jedna pętla wymaga drogi tam i z powrotem, dlatego w podejściach występuje mnożnik 2.</small>
              </div>
              <div class="rk-pipe-control">
                <label for="rk-pipe-zones">Minimalna liczba pomieszczeń lub niezależnych stref</label>
                <input id="rk-pipe-zones" type="number" min="1" max="100" step="1" value="8" inputmode="numeric">
                <small>Kalkulator nie połączy różnych stref w mniejszą liczbę obwodów niż podana.</small>
              </div>
              <div class="rk-pipe-control">
                <label for="rk-pipe-loop-max">Założony limit całkowitej długości jednej pętli</label>
                <select id="rk-pipe-loop-max">
                  <option value="80">80 m</option>
                  <option value="90" selected="">90 m</option>
                  <option value="100">100 m</option>
                </select>
                <small>To ograniczenie szacunkowe. Ostateczny limit wynika z przepływu, średnicy i dopuszczalnej straty ciśnienia.</small>
              </div>
              <div class="rk-pipe-control">
                <label for="rk-pipe-reserve">Zapas materiałowy do zakupu [%]</label>
                <input id="rk-pipe-reserve" type="number" min="0" max="10" step="1" value="5" inputmode="numeric">
                <small>Zapas zakupowy nie jest dodawany do projektowej długości hydraulicznej pętli.</small>
              </div>
            </form>

            <div class="rk-pipe-results" aria-live="polite">
              <div class="rk-pipe-result-primary">
                <div class="rk-pipe-result-card is-main"><small>Orientacyjnie do zamówienia</small><div class="rk-pipe-result-number" id="rk-pipe-order-result">0 m</div></div>
                <div class="rk-pipe-result-card"><small>Łącznie w instalacji</small><div class="rk-pipe-result-number" id="rk-pipe-installed-result">0 m</div></div>
              </div>
              <div class="rk-pipe-result-secondary">
                <div class="rk-pipe-result-card"><small>Powierzchnia czynna</small><div class="rk-pipe-result-number" id="rk-pipe-active-result">0 m²</div></div>
                <div class="rk-pipe-result-card"><small>Rura na powierzchni</small><div class="rk-pipe-result-number" id="rk-pipe-surface-result">0 m</div></div>
                <div class="rk-pipe-result-card"><small>Łączne podejścia</small><div class="rk-pipe-result-number" id="rk-pipe-approach-result">0 m</div></div>
                <div class="rk-pipe-result-card"><small>Szacowana liczba pętli</small><div class="rk-pipe-result-number" id="rk-pipe-loops-result">0</div></div>
                <div class="rk-pipe-result-card"><small>Średnia długość pętli</small><div class="rk-pipe-result-number" id="rk-pipe-average-result">0 m</div></div>
                <div class="rk-pipe-result-card"><small>Średnio na jedną pętlę</small><div class="rk-pipe-result-number" id="rk-pipe-area-loop-result">0 m²</div></div>
              </div>
              <div class="rk-pipe-result-note" id="rk-pipe-result-note">Uzupełnij dane, aby otrzymać wynik.</div>

              <div class="rk-pipe-chart" aria-label="Porównanie ilości rury dla różnych rozstawów">
                <h3>Jak rozstaw zmienia ilość rury?</h3>
                <p class="rk-pipe-chart-intro">Porównanie pokazuje orientacyjną długość do zamówienia dla tej samej powierzchni i pozostałych założeń.</p>
                <div class="rk-pipe-bar-row" id="rk-pipe-row-10"><span class="rk-pipe-bar-label">10 cm</span><span class="rk-pipe-bar-track"><span class="rk-pipe-bar" id="rk-pipe-bar-10"></span></span><span class="rk-pipe-bar-value" id="rk-pipe-bar-value-10">0 m</span></div>
                <div class="rk-pipe-bar-row" id="rk-pipe-row-12-5"><span class="rk-pipe-bar-label">12,5 cm</span><span class="rk-pipe-bar-track"><span class="rk-pipe-bar" id="rk-pipe-bar-12-5"></span></span><span class="rk-pipe-bar-value" id="rk-pipe-bar-value-12-5">0 m</span></div>
                <div class="rk-pipe-bar-row" id="rk-pipe-row-15"><span class="rk-pipe-bar-label">15 cm</span><span class="rk-pipe-bar-track"><span class="rk-pipe-bar" id="rk-pipe-bar-15"></span></span><span class="rk-pipe-bar-value" id="rk-pipe-bar-value-15">0 m</span></div>
                <div class="rk-pipe-bar-row" id="rk-pipe-row-20"><span class="rk-pipe-bar-label">20 cm</span><span class="rk-pipe-bar-track"><span class="rk-pipe-bar" id="rk-pipe-bar-20"></span></span><span class="rk-pipe-bar-value" id="rk-pipe-bar-value-20">0 m</span></div>
                <div class="rk-pipe-bar-row" id="rk-pipe-row-25"><span class="rk-pipe-bar-label">25 cm</span><span class="rk-pipe-bar-track"><span class="rk-pipe-bar" id="rk-pipe-bar-25"></span></span><span class="rk-pipe-bar-value" id="rk-pipe-bar-value-25">0 m</span></div>
              </div>
            </div>
          </div>

          <div class="rk-pipe-inline-cta">
            <h3>Kalkulator ma charakter poglądowy</h3>
            <p>Nie dobiera rozstawu, nie rozrysowuje rzeczywistych tras, nie oblicza strat ciśnienia, wymaganych przepływów ani nastaw rozdzielacza. Jeżeli chcesz znać dokładną długość rur, liczbę obwodów i parametry każdej pętli, należy wykonać projekt ogrzewania podłogowego.</p>
            <a class="rk-pipe-cta-button rk-pipe-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów dokładny projekt ogrzewania podłogowego</a>
            <small class="rk-pipe-disclosure">Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
          </div>
        </div>
      </section>

      <section class="rk-pipe-section" id="rk-pipe-formulas">
        <span class="rk-pipe-kicker">Pełna przejrzystość obliczeń</span>
        <h2>Jak kalkulator oblicza długość rury do podłogówki?</h2>
        <p>Kolejność jest ważna. Najpierw powstaje czynna powierzchnia, następnie długość przewodu pokrywającego tę powierzchnię. Dopiero z założonego limitu obwodu i średniej odległości od rozdzielacza wynika orientacyjna liczba pętli oraz suma podejść. Rezerwa jest ostatnim, zakupowym etapem rachunku.</p>

        <div class="rk-pipe-formulas">
          <article class="rk-pipe-formula"><span>Krok 1 • powierzchnia</span><code>A<sub>czynna</sub> = A<sub>całkowita</sub> − A<sub>wyłączona</sub></code><p>Odejmowane strefy muszą być znane i trwale wyłączone z układania rur.</p></article>
          <article class="rk-pipe-formula"><span>Krok 2 • rura na podłodze</span><code>L<sub>pow.</sub> ≈ A<sub>czynna</sub> ÷ (s / 100)</code><p>Rozstaw wpisany w centymetrach jest dzielony przez 100, aby uzyskać metry.</p></article>
          <article class="rk-pipe-formula"><span>Krok 3 • liczba pętli</span><code>N ≥ L<sub>pow.</sub> ÷ (L<sub>max</sub> − 2d)</code><p>Wynik zaokrągla się w górę i porównuje z minimalną liczbą niezależnych stref.</p></article>
          <article class="rk-pipe-formula"><span>Krok 4 • podejścia</span><code>L<sub>podejść</sub> ≈ N × 2d</code><p>Każdy obwód biegnie od rozdzielacza do pola grzewczego i wraca do rozdzielacza.</p></article>
          <article class="rk-pipe-formula"><span>Krok 5 • instalacja</span><code>L<sub>inst.</sub> ≈ L<sub>pow.</sub> + L<sub>podejść</sub></code><p>To orientacyjna długość rzeczywiście znajdująca się w pętlach, jeszcze bez zapasu zakupowego.</p></article>
          <article class="rk-pipe-formula"><span>Krok 6 • zamówienie</span><code>L<sub>zakup</sub> ≈ L<sub>inst.</sub> × (1 + r / 100)</code><p>Rezerwę należy zestawić z długościami dostępnych kręgów i zakazem wykonywania połączeń w jastrychu.</p></article>
        </div>

        <div class="rk-pipe-warning">
          <p><strong>Co oznacza „≈”?</strong> Rzeczywisty rzut pętli zawiera łuki, omijanie dylatacji, wejścia do pomieszczeń, lokalne zagęszczenia i różne odległości od rozdzielacza. Wzór daje kontrolowany szacunek materiału, ale dokładne metry uzyskuje się dopiero z rozrysowanych tras.</p>
        </div>
      </section>

      <section class="rk-pipe-section" id="rk-pipe-spacing">
        <span class="rk-pipe-kicker">Ile rury przypada na 1 m²?</span>
        <h2>Tabela długości rury dla rozstawu 10, 12,5, 15, 20 i 25 cm</h2>
        <p>Współczynnik metrów rury na 1 m² jest geometryczną odwrotnością rozstawu wyrażonego w metrach. Tabela dotyczy wyłącznie rury układanej na powierzchni. Nie zawiera podejść ani zapasu.</p>

        <div class="rk-pipe-table-wrap">
          <table>
            <thead><tr><th>Rozstaw rur</th><th>Rura na 1 m² powierzchni czynnej</th><th>Rura na 10 m²</th><th>Znaczenie wyniku</th></tr></thead>
            <tbody>
              <tr><td data-label="Rozstaw"><strong>10 cm</strong></td><td data-label="Na 1 m²">10,00 m/m²</td><td data-label="Na 10 m²">100 m</td><td data-label="Znaczenie">Duża gęstość ułożenia; musi wynikać z wymaganej mocy i parametrów podłogi.</td></tr>
              <tr><td data-label="Rozstaw"><strong>12,5 cm</strong></td><td data-label="Na 1 m²">8,00 m/m²</td><td data-label="Na 10 m²">80 m</td><td data-label="Znaczenie">Rozstaw pośredni, przydatny wtedy, gdy wynika z obliczeń i siatki montażowej.</td></tr>
              <tr><td data-label="Rozstaw"><strong>15 cm</strong></td><td data-label="Na 1 m²">6,67 m/m²</td><td data-label="Na 10 m²">66,7 m</td><td data-label="Znaczenie">Często spotykane założenie, ale nie uniwersalna wartość dla całego domu.</td></tr>
              <tr><td data-label="Rozstaw"><strong>20 cm</strong></td><td data-label="Na 1 m²">5,00 m/m²</td><td data-label="Na 10 m²">50 m</td><td data-label="Znaczenie">Mniej rury i potencjalnie mniejsza moc jednostkowa przy tych samych parametrach wody.</td></tr>
              <tr><td data-label="Rozstaw"><strong>25 cm</strong></td><td data-label="Na 1 m²">4,00 m/m²</td><td data-label="Na 10 m²">40 m</td><td data-label="Znaczenie">Wartość geometryczna; przy dużym rozstawie trzeba szczególnie sprawdzić równomierność temperatury.</td></tr>
            </tbody>
          </table>
        </div>

        <p class="rk-pipe-note"><strong>Nie wybieraj rozstawu na podstawie ceny rury.</strong> O tym, czy zastosować 10, 15 czy 20 cm, decydują obliczeniowe straty ciepła pomieszczenia, dopuszczalna temperatura powierzchni, konstrukcja i opór okładziny, temperatura zasilania oraz planowany przepływ. Szczegóły opisuje analiza <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstawu rur w wodnym ogrzewaniu podłogowym</a>.</p>
      </section>

      <section class="rk-pipe-section" aria-labelledby="rk-pipe-active-title">
        <span class="rk-pipe-kicker">Powierzchnia wejściowa</span>
        <h2 id="rk-pipe-active-title">Jak obliczyć czynną powierzchnię ogrzewania podłogowego?</h2>
        <div class="rk-pipe-grid-2">
          <article class="rk-pipe-card"><span class="rk-pipe-card-number">Wlicz</span><h3>Strefy dostępne dla podłogówki</h3><p>Uwzględnia się podłogę, na której zgodnie z planem można poprowadzić pętlę i bezpiecznie oddawać ciepło. Ruchomy stół, krzesła czy meble na nóżkach nie muszą automatycznie wyłączać powierzchni.</p></article>
          <article class="rk-pipe-card"><span class="rk-pipe-card-number">Odejmij</span><h3>Trwale wyłączone pola</h3><p>Do odjęcia mogą kwalifikować się zabudowy stałe, szafki bez prześwitu, wanna lub brodzik, schody, kominek i strefy techniczne — jeśli tak przewiduje dokumentacja.</p></article>
        </div>
        <div class="rk-pipe-warning"><p>Nie należy mechanicznie odejmować całej powierzchni pod każdym meblem. Układ wnętrz może się zmienić, a zbyt duże ograniczenie czynnej podłogi zwiększa wymaganą moc z pozostałych metrów kwadratowych. Zasady planowania zabudowy opisuje artykuł <a href="https://projekt-ogrzewania.pl/wodne-ogrzewanie-podlogowe-a-meble-jak-polaczyc-komfort-i-aranzacje/">wodne ogrzewanie podłogowe a meble</a>.</p></div>
      </section>

      <section class="rk-pipe-section" id="rk-pipe-loops">
        <span class="rk-pipe-kicker">Długość to także hydraulika</span>
        <h2>Jak obliczyć liczbę pętli ogrzewania podłogowego?</h2>
        <p>Proste dzielenie łącznej ilości rury przez 100 m może być mylące. Do limitu jednej pętli wlicza się również odcinek od rozdzielacza do pola grzewczego oraz powrót. Jeżeli średnia odległość w jedną stronę wynosi 8 m, to każda pętla „zużywa” orientacyjnie 16 m limitu jeszcze przed rozpoczęciem układania właściwego pola.</p>

        <div class="rk-pipe-grid-3">
          <article class="rk-pipe-card"><span class="rk-pipe-card-number">01</span><h3>Najpierw odejmij podejście</h3><p>Przy limicie 90 m i podejściu 4 m w jedną stronę na część powierzchniową pozostaje średnio około 82 m.</p></article>
          <article class="rk-pipe-card"><span class="rk-pipe-card-number">02</span><h3>Uwzględnij strefy</h3><p>Nawet gdy matematycznie wystarczyłoby pięć obwodów, osiem niezależnych pomieszczeń może wymagać co najmniej ośmiu pętli.</p></article>
          <article class="rk-pipe-card"><span class="rk-pipe-card-number">03</span><h3>Sprawdź opory</h3><p>Dwie pętle o tej samej długości nie muszą mieć identycznej straty ciśnienia, jeśli różnią się średnicą, przepływem lub liczbą łuków.</p></article>
        </div>

        <p class="rk-pipe-note"><strong>Limit 80, 90 lub 100 m nie jest prawem fizyki.</strong> To założenie robocze. Dopuszczalną długość trzeba powiązać z przepływem wymaganym przez moc pętli, średnicą wewnętrzną, właściwościami przewodu, stratą ciśnienia i dyspozycyjną wysokością podnoszenia pompy. Zobacz osobno: <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">maksymalna długość pętli ogrzewania podłogowego</a>, <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/">skutki zbyt długiej pętli</a> oraz <a href="https://projekt-ogrzewania.pl/ile-metrow-podlogowki-na-jednej-petli/">ile metrów podłogówki można ułożyć na jednej pętli</a>.</p>
      </section>

      <section class="rk-pipe-section" id="rk-pipe-examples">
        <span class="rk-pipe-kicker">Przykłady porównawcze</span>
        <h2>Ile rury na 20, 50, 100, 150 i 200 m² podłogówki?</h2>
        <p>Poniższe wyniki przyjmują ten sam uproszczony scenariusz: cała wskazana powierzchnia jest czynna, rozstaw wynosi 15 cm, limit pętli 90 m, średnie podejście 4 m w jedną stronę, minimum jedna strefa i 5% zapasu. Liczby nie są projektem konkretnego budynku.</p>

        <div class="rk-pipe-table-wrap">
          <table>
            <thead><tr><th>Powierzchnia czynna</th><th>Rura na powierzchni</th><th>Szacowana liczba pętli</th><th>Podejścia łącznie</th><th>Orientacyjnie do zamówienia</th></tr></thead>
            <tbody>
              <tr><td data-label="Powierzchnia"><strong>20 m²</strong></td><td data-label="Na powierzchni">133,3 m</td><td data-label="Pętle">2</td><td data-label="Podejścia">16 m</td><td data-label="Do zamówienia"><strong>156,8 m</strong></td></tr>
              <tr><td data-label="Powierzchnia"><strong>50 m²</strong></td><td data-label="Na powierzchni">333,3 m</td><td data-label="Pętle">5</td><td data-label="Podejścia">40 m</td><td data-label="Do zamówienia"><strong>392,0 m</strong></td></tr>
              <tr><td data-label="Powierzchnia"><strong>100 m²</strong></td><td data-label="Na powierzchni">666,7 m</td><td data-label="Pętle">9</td><td data-label="Podejścia">72 m</td><td data-label="Do zamówienia"><strong>775,6 m</strong></td></tr>
              <tr><td data-label="Powierzchnia"><strong>150 m²</strong></td><td data-label="Na powierzchni">1000,0 m</td><td data-label="Pętle">13</td><td data-label="Podejścia">104 m</td><td data-label="Do zamówienia"><strong>1159,2 m</strong></td></tr>
              <tr><td data-label="Powierzchnia"><strong>200 m²</strong></td><td data-label="Na powierzchni">1333,3 m</td><td data-label="Pętle">17</td><td data-label="Podejścia">136 m</td><td data-label="Do zamówienia"><strong>1542,8 m</strong></td></tr>
            </tbody>
          </table>
        </div>

        <div class="rk-pipe-example-grid" aria-label="Skrócone przykłady ilości rury">
          <div class="rk-pipe-example"><strong>157 m</strong><b>dla 20 m²</b><small>2 pętle • 15 cm • zapas 5%</small></div>
          <div class="rk-pipe-example"><strong>392 m</strong><b>dla 50 m²</b><small>5 pętli • 15 cm • zapas 5%</small></div>
          <div class="rk-pipe-example"><strong>776 m</strong><b>dla 100 m²</b><small>9 pętli • 15 cm • zapas 5%</small></div>
          <div class="rk-pipe-example"><strong>1159 m</strong><b>dla 150 m²</b><small>13 pętli • 15 cm • zapas 5%</small></div>
          <div class="rk-pipe-example"><strong>1543 m</strong><b>dla 200 m²</b><small>17 pętli • 15 cm • zapas 5%</small></div>
        </div>

        <p class="rk-pipe-warning"><strong>Ile rury na 100 m² ogrzewania podłogowego?</strong> Nie istnieje jedna poprawna liczba bez podania rozstawu, powierzchni wyłączonej, liczby pętli i odległości od rozdzielacza. Sam odcinek powierzchniowy dla 100 m² wynosi około 1000 m przy 10 cm, 667 m przy 15 cm i 500 m przy 20 cm. Oddzielne omówienie znajdziesz w poradniku <a href="https://projekt-ogrzewania.pl/ile-rury-na-m%c2%b2-ogrzewania-podlogowego/">ile rury na m² ogrzewania podłogowego</a>.</p>
      </section>

      <section class="rk-pipe-section" aria-labelledby="rk-pipe-material-title">
        <span class="rk-pipe-kicker">Średnica i rodzaj przewodu</span>
        <h2 id="rk-pipe-material-title">Czy kalkulator działa dla rury 16×2, PEX i PE-RT?</h2>
        <p>Wzór powierzchniowy wynika z geometrii rozstawu, dlatego sam w sobie nie zależy od tego, czy przewód wykonano jako PEX czy PE-RT. Materiał i wymiar mają jednak duże znaczenie dla promienia gięcia, średnicy wewnętrznej, straty ciśnienia, wymaganej pracy pompy oraz dopuszczalnych parametrów eksploatacyjnych.</p>
        <div class="rk-pipe-grid-3">
          <article class="rk-pipe-card"><span class="rk-pipe-card-number">16×2</span><h3>Popularny wymiar nie oznacza jednego limitu</h3><p>Dwie rury opisane jako 16×2 mogą różnić się właściwościami i wymaganiami systemowymi. Długość pętli trzeba sprawdzić hydraulicznie.</p></article>
          <article class="rk-pipe-card"><span class="rk-pipe-card-number">PEX</span><h3>Materiał nie naprawia złego projektu</h3><p>Dobór <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/">rury PEX do ogrzewania podłogowego</a> nie zastępuje obliczenia przepływów i oporów.</p></article>
          <article class="rk-pipe-card"><span class="rk-pipe-card-number">PE-RT</span><h3>Sprawdź system i dokumentację</h3><p>Także <a href="https://projekt-ogrzewania.pl/rura-pert-do-ogrzewania-podlogowego/">rura PE-RT do ogrzewania podłogowego</a> powinna być oceniana w ramach kompletnego systemu.</p></article>
        </div>
        <p class="rk-pipe-note">Przed zakupem warto porównać <a href="https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/">średnice rur w ogrzewaniu podłogowym</a> i upewnić się, że rozdzielacz, złączki oraz sposób mocowania są zgodne z wybranym systemem.</p>
      </section>

      <section class="rk-pipe-section" id="rk-pipe-errors">
        <span class="rk-pipe-kicker">Kontrola przed zamówieniem</span>
        <h2>Najczęstsze błędy przy obliczaniu ilości rury do podłogówki</h2>
        <ul class="rk-pipe-checklist">
          <li><strong>Mnożenie wyniku powierzchniowego przez dwa</strong> pod pretekstem zasilania i powrotu, mimo że pętla już zawiera oba kierunki.</li>
          <li><strong>Liczenie całej powierzchni zabudowy</strong> bez odjęcia stref faktycznie i trwale wyłączonych z ogrzewania.</li>
          <li><strong>Odejmowanie wszystkich mebli</strong>, także ruchomych lub ustawionych na nóżkach, bez analizy obciążenia czynnej podłogi.</li>
          <li><strong>Brak podejść do rozdzielacza</strong>, szczególnie kosztowny przy wielu pętlach i centralnie lub niekorzystnie położonej szafce.</li>
          <li><strong>Dobór rozstawu z tabeli materiałowej</strong> zamiast na podstawie strat ciepła, okładziny i parametrów wody.</li>
          <li><strong>Traktowanie 100 m jako uniwersalnego limitu</strong> niezależnego od średnicy, przepływu i oporu hydraulicznego.</li>
          <li><strong>Dodawanie zapasu do długości projektowej pętli</strong> zamiast użycia go wyłącznie przy organizacji zakupu.</li>
          <li><strong>Dzielenie instalacji na zbyt mało obwodów</strong> bez uwzględnienia pomieszczeń, sterowania i możliwości hydraulicznego zrównoważenia.</li>
          <li><strong>Kupowanie przypadkowych długości kręgów</strong>, które wymuszają odpady albo niedopuszczalne połączenia w warstwie podłogi.</li>
          <li><strong>Brak rysunku tras</strong>, przez co kalkulacja nie uwzględnia dylatacji, stref brzegowych, przeszkód i realnych łuków.</li>
        </ul>
        <div class="rk-pipe-success"><p><strong>Dobra praktyka:</strong> najpierw oblicz straty ciepła pomieszczeń i dobierz rozstaw, potem rozrysuj każdą <a href="https://projekt-ogrzewania.pl/petla-grzewcza/">pętlę grzewczą</a>, policz jej rzeczywistą długość, przypisz wymagany przepływ, sprawdź opór i dopiero na tej podstawie przygotuj zestawienie materiałowe.</p></div>
      </section>

      <section class="rk-pipe-section" aria-labelledby="rk-pipe-interpret-title">
        <span class="rk-pipe-kicker">Jak czytać wynik?</span>
        <h2 id="rk-pipe-interpret-title">Kalkulator materiału nie jest projektem ogrzewania</h2>
        <div class="rk-pipe-grid-2">
          <article class="rk-pipe-card"><span class="rk-pipe-card-number">Policzy</span><h3>Kontrolny rząd wielkości</h3><p>Narzędzie porządkuje powierzchnię, rozstaw, podejścia, orientacyjną liczbę pętli i zapas. Pozwala szybko wykryć wynik zawyżony dwa razy albo nieuwzględniający rozdzielacza.</p></article>
          <article class="rk-pipe-card"><span class="rk-pipe-card-number">Nie dobierze</span><h3>Mocy, przepływu i oporu</h3><p>Kalkulator nie zna strat ciepła poszczególnych pomieszczeń, konstrukcji podłogi, temperatury wody, oporu okładziny ani charakterystyki pompy.</p></article>
        </div>
        <p class="rk-pipe-note">Do wstępnego sprawdzania kilku zależności w jednym miejscu służy także <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/">kompleksowy kalkulator ogrzewania podłogowego</a>. Bieżąca strona pozostaje wyspecjalizowana w jednym zadaniu: szacowaniu metrów rury oraz liczby pętli.</p>
      </section>

      <section class="rk-pipe-section" id="rk-pipe-faq">
        <span class="rk-pipe-kicker">Najczęściej zadawane pytania</span>
        <h2>FAQ: kalkulator długości rury do ogrzewania podłogowego</h2>
        <div class="rk-pipe-faq">
          <details><summary>Ile metrów rury potrzeba na 1 m² ogrzewania podłogowego?</summary><div class="rk-pipe-faq-answer"><p>Geometrycznie około 10 m przy rozstawie 10 cm, 8 m przy 12,5 cm, 6,67 m przy 15 cm, 5 m przy 20 cm i 4 m przy 25 cm. Są to wartości dla czynnej powierzchni, bez podejść do rozdzielacza i zapasu zakupowego.</p></div></details>
          <details><summary>Ile rury potrzeba na 100 m² podłogówki?</summary><div class="rk-pipe-faq-answer"><p>Na samej powierzchni około 1000 m przy rozstawie 10 cm, 667 m przy 15 cm lub 500 m przy 20 cm. Do tego trzeba dodać wszystkie podejścia, których długość zależy od liczby pętli i położenia rozdzielacza.</p></div></details>
          <details><summary>Czy długość rury oblicza się jako powierzchnia podzielona przez rozstaw razy dwa?</summary><div class="rk-pipe-faq-answer"><p>Nie. Dla regularnego układu część powierzchniową szacuje się jako powierzchnię czynną podzieloną przez rozstaw wyrażony w metrach. Mnożenie całego wyniku przez dwa podwaja go bez podstawy. Oddzielnie dolicza się drogę każdej pętli do rozdzielacza i z powrotem.</p></div></details>
          <details><summary>Jak doliczyć rurę od rozdzielacza?</summary><div class="rk-pipe-faq-answer"><p>Orientacyjnie należy pomnożyć liczbę pętli przez dwa i przez średnią odległość pola grzewczego od rozdzielacza w jedną stronę. Dokładny projekt liczy każde podejście oddzielnie, ponieważ pomieszczenia leżą w różnych odległościach.</p></div></details>
          <details><summary>Ile pętli ogrzewania podłogowego wychodzi z kalkulatora?</summary><div class="rk-pipe-faq-answer"><p>Narzędzie dzieli długość powierzchniową przez część limitu pętli pozostałą po odjęciu podejścia, zaokrągla wynik w górę i porównuje go z minimalną liczbą stref. To szacunek; projekt może wymagać dodatkowego podziału ze względu na geometrię lub hydraulikę.</p></div></details>
          <details><summary>Czy jedna pętla może mieć 100 metrów?</summary><div class="rk-pipe-faq-answer"><p>Może, jeżeli średnica, wymagany przepływ, strata ciśnienia i możliwości pompy na to pozwalają. Nie jest to jednak bezwarunkowa reguła. W wielu układach przyjmuje się krótsze obwody, aby ułatwić zrównoważenie hydrauliczne.</p></div></details>
          <details><summary>Ile procent zapasu rury należy kupić?</summary><div class="rk-pipe-faq-answer"><p>Do wstępnego zamówienia często analizuje się 3–10%, ale właściwa rezerwa zależy od dokładności rysunku i długości dostępnych kręgów. Zapas nie może sztucznie zwiększać długości hydraulicznej projektowanej pętli i nie uzasadnia połączeń w jastrychu.</p></div></details>
          <details><summary>Czy kalkulator dobiera rozstaw rur?</summary><div class="rk-pipe-faq-answer"><p>Nie. Użytkownik podaje założony rozstaw. Jego prawidłowa wartość musi wynikać z obliczeń strat ciepła, mocy podłogi, temperatury zasilania, dopuszczalnej temperatury powierzchni oraz oporu cieplnego okładziny.</p></div></details>
        </div>

        <div class="rk-pipe-sources" style="margin-top:24px">
          <strong>Podstawa techniczna i zakres opracowania</strong>
          Ogólne zasady wyznaczania mocy wodnego ogrzewania płaszczyznowego opisują m.in. <a href="https://sklep.pkn.pl/pn-en-1264-2-2021-10e.html" target="_blank" rel="noopener nofollow">PN-EN 1264-2:2021-10 — Polski Komitet Normalizacyjny</a> oraz <a href="https://www.iso.org/standard/74683.html" target="_blank" rel="noopener nofollow">ISO 11855-2:2021 — International Organization for Standardization</a>. Kalkulator jest autorskim modelem geometryczno-materiałowym. Nie odtwarza pełnej procedury normowej i nie zastępuje obliczeń cieplnych ani hydraulicznych.
        </div>
      </section>

      <section class="rk-pipe-author" id="rk-pipe-author" aria-labelledby="rk-pipe-author-title">
        <input type="radio" name="rk-pipe-author-tabs" id="rk-pipe-author-about" checked="">
        <input type="radio" name="rk-pipe-author-tabs" id="rk-pipe-author-exp">
        <input type="radio" name="rk-pipe-author-tabs" id="rk-pipe-author-sites">

        <div class="rk-pipe-author-head">
          <div><h2 id="rk-pipe-author-title">Autor opracowania</h2><p>Praktyka projektowa, wiedza techniczna i przejrzyste założenia obliczeniowe.</p></div>
          <div class="rk-pipe-author-mark">E-E-A-T • HVAC</div>
        </div>

        <div class="rk-pipe-author-layout">
          <div class="rk-pipe-author-side">
            <div class="rk-pipe-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski – projektant instalacji sanitarnych i specjalista systemów HVAC" width="500" height="500" loading="lazy" decoding="async"></div>
            <div class="rk-pipe-author-name">Robert Kucharski</div>
            <div class="rk-pipe-author-role">CEO<br>Specjalista systemów HVAC i ogrzewania podłogowego</div>
          </div>

          <div class="rk-pipe-author-main">
            <blockquote class="rk-pipe-author-quote"><p>„Rura na powierzchni to dopiero połowa rachunku. Liczbę pętli, długość podejść, przepływy i opory trzeba policzyć razem — inaczej nawet poprawna liczba metrów może dać zły układ.”</p></blockquote>

            <div class="rk-pipe-author-tabs" role="tablist" aria-label="Informacje o autorze">
              <label class="rk-pipe-author-tab" for="rk-pipe-author-about">O autorze</label>
              <label class="rk-pipe-author-tab" for="rk-pipe-author-exp">Doświadczenie</label>
              <label class="rk-pipe-author-tab" for="rk-pipe-author-sites">Portale</label>
            </div>

            <div class="rk-pipe-author-panel rk-pipe-author-panel-about">
              <p>Specjalizuję się w projektowaniu wodnego ogrzewania podłogowego, obliczeniach obciążenia cieplnego i hydrauliki instalacji. W opracowaniach łączę parametry budynku, konstrukcję podłogi, długości pętli, przepływy i wymagania źródła ciepła w jeden możliwy do wykonania system.</p>
            </div>
            <div class="rk-pipe-author-panel rk-pipe-author-panel-exp">
              <p>Przygotowuję dokumentacje techniczne dla nowych i modernizowanych budynków. Analizuję rozstaw i przebieg rur, rzeczywistą długość każdego obwodu, wymagane przepływy, opory instalacji, rozdzielacze oraz nastawy. W publikacjach wyraźnie oddzielam szybki szacunek materiałowy od parametrów wymagających pełnych obliczeń.</p>
            </div>
            <div class="rk-pipe-author-panel rk-pipe-author-panel-sites">
              <p>Jestem właścicielem trzech serwisów branżowych. Informację podaję transparentnie, aby czytelnik znał autorstwo publikacji i kontekst linkowania.</p>
              <div class="rk-pipe-site-links">
                <a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a>
                <a href="https://remont.biz.pl/" target="_blank" rel="noopener nofollow">Remont.biz.pl</a>
                <a href="https://sobir.pl/" target="_blank" rel="noopener nofollow">Sobir.pl</a>
              </div>
            </div>
          </div>
        </div>
      </section>

      <section class="rk-pipe-final-cta" aria-labelledby="rk-pipe-final-cta-title">
        <div class="rk-pipe-final-cta-content">
          <span class="rk-pipe-kicker" style="color:#72efff">Dokładność zaczyna się od rysunku każdej pętli</span>
          <h2 id="rk-pipe-final-cta-title">Nie zamawiaj kilkuset metrów rury na podstawie jednego uśrednionego wyniku</h2>
          <p>Projekt określa rozstaw w każdym pomieszczeniu, długość i przebieg każdej pętli, podejścia, wymagane przepływy, opory hydrauliczne oraz nastawy rozdzielacza. Dzięki temu zestawienie materiałowe wynika z rzeczywistego układu, a nie z samej powierzchni domu.</p>
          <a class="rk-pipe-cta-button rk-pipe-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt instalacji ogrzewania podłogowego</a>
          <small class="rk-pipe-disclosure">Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
        </div>
      </section>
    </div>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/#article",
      "url": "https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/",
      "headline": "Kalkulator długości rury do ogrzewania podłogowego – ile metrów rury i ile pętli?",
      "alternativeHeadline": "Kalkulator ilości rury do podłogówki z obliczeniem podejść i liczby pętli",
      "description": "Kalkulator długości rury do ogrzewania podłogowego oblicza metry, podejścia i liczbę pętli dla rozstawów 10–25 cm. Sprawdź wynik i uniknij błędów przed zakupem.",
      "inLanguage": "pl-PL",
      "datePublished": "2025-05-11T08:00:00+02:00",
      "dateModified": "2026-08-26T12:00:00+02:00",
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "mainEntityOfPage": {
        "@id": "https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/#webpage"
      },
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/#website"
      },
      "about": [
        {
          "@type": "Thing",
          "name": "Ogrzewanie podłogowe"
        },
        {
          "@type": "Thing",
          "name": "Długość rury ogrzewania podłogowego"
        },
        {
          "@type": "Thing",
          "name": "Pętla grzewcza"
        },
        {
          "@type": "Thing",
          "name": "Rozstaw rur"
        }
      ],
      "mentions": [
        {
          "@type": "Thing",
          "name": "Rura PEX"
        },
        {
          "@type": "Thing",
          "name": "Rura PE-RT"
        },
        {
          "@type": "Thing",
          "name": "Rozdzielacz ogrzewania podłogowego"
        },
        {
          "@type": "Thing",
          "name": "Strata ciśnienia"
        }
      ],
      "keywords": [
        "kalkulator długości rury do ogrzewania podłogowego",
        "kalkulator ilości rury do podłogówki",
        "ile metrów rury do ogrzewania podłogowego",
        "ile rury na 100 m² podłogówki",
        "ile rury przy rozstawie 10 cm",
        "ile rury przy rozstawie 15 cm",
        "ile rury przy rozstawie 20 cm",
        "jak obliczyć liczbę pętli podłogówki",
        "podejścia do rozdzielacza",
        "maksymalna długość pętli 16×2"
      ],
      "citation": [
        "https://sklep.pkn.pl/pn-en-1264-2-2021-10e.html",
        "https://www.iso.org/standard/74683.html"
      ],
      "mainEntity": [
        {
          "@id": "https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/#calculator"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/#howto"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/#faq"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/#webpage",
      "url": "https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/",
      "name": "Kalkulator długości rury do ogrzewania podłogowego – ile metrów rury i ile pętli?",
      "description": "Kalkulator długości rury do ogrzewania podłogowego oblicza metry, podejścia i liczbę pętli dla rozstawów 10–25 cm. Sprawdź wynik i uniknij błędów przed zakupem.",
      "inLanguage": "pl-PL",
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/#website"
      },
      "breadcrumb": {
        "@id": "https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/#breadcrumb"
      },
      "potentialAction": {
        "@type": "ReadAction",
        "target": "https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Strona główna",
          "item": "https://projekt-ogrzewania.pl/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": "https://projekt-ogrzewania.pl/blog/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Kalkulator długości rury do ogrzewania podłogowego",
          "item": "https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/"
        }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/#calculator",
      "name": "Kalkulator długości rury do ogrzewania podłogowego",
      "url": "https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/#rk-pipe-tool",
      "description": "Bezpłatny kalkulator szacujący długość rury na powierzchni, podejścia do rozdzielacza, liczbę pętli i zapas materiałowy.",
      "applicationCategory": "UtilitiesApplication",
      "applicationSubCategory": "Kalkulator instalacyjny",
      "operatingSystem": "Any",
      "browserRequirements": "Włączona obsługa JavaScript",
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "PLN",
        "availability": "https://schema.org/InStock"
      },
      "featureList": [
        "Obliczenie czynnej powierzchni ogrzewania",
        "Obliczenie długości rury na powierzchni",
        "Szacowanie liczby pętli",
        "Obliczenie podejść do rozdzielacza",
        "Obliczenie zapasu zakupowego",
        "Porównanie rozstawów 10–25 cm"
      ]
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/#howto",
      "name": "Jak obliczyć orientacyjną długość rury do ogrzewania podłogowego",
      "description": "Sześć etapów szacowania rury na powierzchni, liczby pętli, podejść do rozdzielacza i zapasu zakupowego.",
      "inLanguage": "pl-PL",
      "totalTime": "PT10M",
      "supply": [
        {
          "@type": "HowToSupply",
          "name": "Rzut pomieszczeń z wymiarami"
        },
        {
          "@type": "HowToSupply",
          "name": "Informacja o położeniu rozdzielacza"
        }
      ],
      "tool": [
        {
          "@type": "HowToTool",
          "name": "Kalkulator długości rury do ogrzewania podłogowego"
        }
      ],
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Wyznacz powierzchnię czynną",
          "text": "Odejmij od całej podłogi wyłącznie powierzchnie trwale wyłączone z ogrzewania."
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Wprowadź rozstaw wynikający z projektu",
          "text": "Podaj rozstaw rur dobrany na podstawie obciążenia cieplnego, konstrukcji podłogi i parametrów wody."
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Oblicz rurę na powierzchni",
          "text": "Podziel powierzchnię czynną przez rozstaw wyrażony w metrach."
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Oszacuj liczbę pętli",
          "text": "Uwzględnij założony limit pętli, długość podejścia i minimalną liczbę niezależnych stref."
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Dodaj podejścia do rozdzielacza",
          "text": "Pomnóż liczbę pętli przez podwójną średnią odległość od rozdzielacza."
        },
        {
          "@type": "HowToStep",
          "position": 6,
          "name": "Dodaj zapas zakupowy",
          "text": "Dodaj rezerwę materiałową dopiero po obliczeniu orientacyjnej długości instalowanej."
        }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/#faq",
      "inLanguage": "pl-PL",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Ile metrów rury potrzeba na 1 m² ogrzewania podłogowego?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Geometrycznie około 10 m przy rozstawie 10 cm, 8 m przy 12,5 cm, 6,67 m przy 15 cm, 5 m przy 20 cm i 4 m przy 25 cm. Są to wartości dla czynnej powierzchni, bez podejść do rozdzielacza i zapasu zakupowego."
          }
        },
        {
          "@type": "Question",
          "name": "Ile rury potrzeba na 100 m² podłogówki?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Na samej powierzchni około 1000 m przy rozstawie 10 cm, 667 m przy 15 cm lub 500 m przy 20 cm. Do tego trzeba dodać wszystkie podejścia, których długość zależy od liczby pętli i położenia rozdzielacza."
          }
        },
        {
          "@type": "Question",
          "name": "Czy długość rury oblicza się jako powierzchnia podzielona przez rozstaw razy dwa?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie. Dla regularnego układu część powierzchniową szacuje się jako powierzchnię czynną podzieloną przez rozstaw wyrażony w metrach. Mnożenie całego wyniku przez dwa podwaja go bez podstawy. Oddzielnie dolicza się drogę każdej pętli do rozdzielacza i z powrotem."
          }
        },
        {
          "@type": "Question",
          "name": "Jak doliczyć rurę od rozdzielacza?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Orientacyjnie należy pomnożyć liczbę pętli przez dwa i przez średnią odległość pola grzewczego od rozdzielacza w jedną stronę. Dokładny projekt liczy każde podejście oddzielnie, ponieważ pomieszczenia leżą w różnych odległościach."
          }
        },
        {
          "@type": "Question",
          "name": "Ile pętli ogrzewania podłogowego wychodzi z kalkulatora?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Narzędzie dzieli długość powierzchniową przez część limitu pętli pozostałą po odjęciu podejścia, zaokrągla wynik w górę i porównuje go z minimalną liczbą stref. To szacunek; projekt może wymagać dodatkowego podziału ze względu na geometrię lub hydraulikę."
          }
        },
        {
          "@type": "Question",
          "name": "Czy jedna pętla może mieć 100 metrów?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Może, jeżeli średnica, wymagany przepływ, strata ciśnienia i możliwości pompy na to pozwalają. Nie jest to jednak bezwarunkowa reguła. W wielu układach przyjmuje się krótsze obwody, aby ułatwić zrównoważenie hydrauliczne."
          }
        },
        {
          "@type": "Question",
          "name": "Ile procent zapasu rury należy kupić?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Do wstępnego zamówienia często analizuje się 3–10%, ale właściwa rezerwa zależy od dokładności rysunku i długości dostępnych kręgów. Zapas nie może sztucznie zwiększać długości hydraulicznej projektowanej pętli i nie uzasadnia połączeń w jastrychu."
          }
        },
        {
          "@type": "Question",
          "name": "Czy kalkulator dobiera rozstaw rur?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie. Użytkownik podaje założony rozstaw. Jego prawidłowa wartość musi wynikać z obliczeń strat ciepła, mocy podłogi, temperatury zasilania, dopuszczalnej temperatury powierzchni oraz oporu cieplnego okładziny."
          }
        }
      ]
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
        "width": 500,
        "height": 500
      },
      "jobTitle": "Projektant instalacji sanitarnych i specjalista systemów HVAC",
      "description": "Projektant instalacji sanitarnych specjalizujący się w wodnym ogrzewaniu podłogowym, obciążeniach cieplnych i hydraulice instalacji. Właściciel serwisów Projekt-Ogrzewania.pl, Remont.biz.pl i Sobir.pl.",
      "knowsAbout": [
        "Projektowanie ogrzewania podłogowego",
        "Hydraulika instalacji grzewczych",
        "Obliczenia obciążenia cieplnego",
        "Rozstaw i długość pętli grzewczych",
        "Rozdzielacze ogrzewania podłogowego",
        "Systemy HVAC"
      ],
      "sameAs": [
        "https://projekt-ogrzewania.pl/",
        "https://remont.biz.pl/",
        "https://sobir.pl/",
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy"
      ],
      "owns": [
        {
          "@id": "https://projekt-ogrzewania.pl/#organization"
        },
        {
          "@id": "https://remont.biz.pl/#organization"
        },
        {
          "@id": "https://sobir.pl/#organization"
        }
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt Ogrzewania",
      "url": "https://projekt-ogrzewania.pl/",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-ogrzewania-logo-1.jpg"
      },
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "foundingDate": "2024",
      "knowsAbout": [
        "Ogrzewanie podłogowe",
        "Projektowanie instalacji grzewczych",
        "Hydraulika instalacji"
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      }
    },
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "inLanguage": "pl-PL",
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      }
    }
  ]
}
</script>

<script>
  (function (window, document) {
    "use strict";

    function byId(id) {
      return document.getElementById(id);
    }

    function clamp(value, minimum, maximum) {
      return Math.min(Math.max(value, minimum), maximum);
    }

    function numberFrom(element, fallback) {
      var parsed = parseFloat(element ? element.value : "");
      return Number.isFinite(parsed) ? parsed : fallback;
    }

    function formatPolish(value, decimals) {
      return Number(value).toLocaleString("pl-PL", {
        minimumFractionDigits: decimals,
        maximumFractionDigits: decimals
      });
    }

    function setText(id, value) {
      var element = byId(id);
      if (element) element.textContent = value;
    }

    function initializePipeCalculator() {
      var root = byId("rk-pipe-calc");
      var areaInput;
      var excludedInput;
      var spacingInput;
      var distanceInput;
      var zonesInput;
      var loopMaxInput;
      var reserveInput;
      var progress;
      var navLinks;
      var i;

      if (!root) return false;
      if (root.getAttribute("data-rk-pipe-ready") === "1") return true;
      root.setAttribute("data-rk-pipe-ready", "1");

      areaInput = byId("rk-pipe-area");
      excludedInput = byId("rk-pipe-excluded");
      spacingInput = byId("rk-pipe-spacing-input");
      distanceInput = byId("rk-pipe-distance");
      zonesInput = byId("rk-pipe-zones");
      loopMaxInput = byId("rk-pipe-loop-max");
      reserveInput = byId("rk-pipe-reserve");

      function calculateForSpacing(activeArea, spacingCm, distance, minimumZones, loopMaximum, reserve) {
        var spacingMetres = spacingCm / 100;
        var surfaceLength = activeArea / spacingMetres;
        var usableSurfaceLength = loopMaximum - (2 * distance);
        var hydraulicLoops;
        var loops;
        var approaches;
        var installed;
        var order;

        if (usableSurfaceLength > 0) {
          hydraulicLoops = Math.ceil(surfaceLength / usableSurfaceLength);
        } else {
          hydraulicLoops = Math.ceil(surfaceLength);
        }

        loops = Math.max(minimumZones, hydraulicLoops, 1);
        approaches = loops * 2 * distance;
        installed = surfaceLength + approaches;
        order = installed * (1 + reserve / 100);

        return {
          surface: surfaceLength,
          usable: usableSurfaceLength,
          loops: loops,
          approaches: approaches,
          installed: installed,
          order: order,
          averageLoop: installed / loops,
          areaPerLoop: activeArea / loops
        };
      }

      function updateComparison(activeArea, distance, minimumZones, loopMaximum, reserve, selectedSpacing) {
        var spacings = [10, 12.5, 15, 20, 25];
        var values = [];
        var maximum = 1;
        var index;
        var result;
        var key;
        var bar;
        var row;
        var width;

        for (index = 0; index < spacings.length; index += 1) {
          result = calculateForSpacing(activeArea, spacings[index], distance, minimumZones, loopMaximum, reserve);
          values.push(result.order);
          if (result.order > maximum) maximum = result.order;
        }

        for (index = 0; index < spacings.length; index += 1) {
          key = String(spacings[index]).replace(".", "-");
          bar = byId("rk-pipe-bar-" + key);
          row = byId("rk-pipe-row-" + key);
          width = (values[index] / maximum) * 100;
          if (bar) bar.style.width = width.toFixed(1) + "%";
          setText("rk-pipe-bar-value-" + key, formatPolish(Math.ceil(values[index]), 0) + " m");
          if (row) {
            row.classList.remove("is-selected");
            if (Math.abs(spacings[index] - selectedSpacing) < 0.01) row.classList.add("is-selected");
          }
        }
      }

      function updateCalculator() {
        var area = clamp(numberFrom(areaInput, 100), 1, 1000);
        var maximumExcluded = Math.max(area - 0.1, 0);
        var excluded = clamp(numberFrom(excludedInput, 10), 0, maximumExcluded);
        var spacing = clamp(numberFrom(spacingInput, 15), 5, 50);
        var distance = clamp(numberFrom(distanceInput, 4), 0, 30);
        var minimumZones = Math.round(clamp(numberFrom(zonesInput, 8), 1, 100));
        var loopMaximum = clamp(numberFrom(loopMaxInput, 90), 40, 150);
        var reserve = clamp(numberFrom(reserveInput, 5), 0, 10);
        var activeArea = area - excluded;
        var result = calculateForSpacing(activeArea, spacing, distance, minimumZones, loopMaximum, reserve);
        var resultNote = byId("rk-pipe-result-note");
        var note;

        if (areaInput) areaInput.value = String(area);
        if (excludedInput) excludedInput.value = String(excluded);
        if (distanceInput) distanceInput.value = String(distance);
        if (zonesInput) zonesInput.value = String(minimumZones);
        if (reserveInput) reserveInput.value = String(reserve);

        setText("rk-pipe-order-result", formatPolish(Math.ceil(result.order), 0) + " m");
        setText("rk-pipe-installed-result", formatPolish(result.installed, 1) + " m");
        setText("rk-pipe-active-result", formatPolish(activeArea, 1) + " m²");
        setText("rk-pipe-surface-result", formatPolish(result.surface, 1) + " m");
        setText("rk-pipe-approach-result", formatPolish(result.approaches, 1) + " m");
        setText("rk-pipe-loops-result", String(result.loops));
        setText("rk-pipe-average-result", formatPolish(result.averageLoop, 1) + " m");
        setText("rk-pipe-area-loop-result", formatPolish(result.areaPerLoop, 1) + " m²");

        if (resultNote) resultNote.className = "rk-pipe-result-note";

        if (result.usable <= 10) {
          note = "Założona droga do rozdzielacza zużywa prawie cały limit pętli. Zmień lokalizację rozdzielacza albo wykonaj indywidualny podział i obliczenia hydrauliczne.";
          if (resultNote) resultNote.classList.add("is-warning");
        } else if (excluded > area * 0.45) {
          note = "Wyłączono ponad 45% powierzchni. Sprawdź, czy pozostała czynna podłoga może pokryć obciążenie cieplne pomieszczeń i czy nie odjęto ruchomych mebli.";
          if (resultNote) resultNote.classList.add("is-warning");
        } else if (result.averageLoop > loopMaximum) {
          note = "Średnia długość przekracza założony limit. Wynik wymaga dodatkowego podziału pętli oraz sprawdzenia rzeczywistych tras.";
          if (resultNote) resultNote.classList.add("is-warning");
        } else {
          note = "Przy rozstawie " + formatPolish(spacing, spacing % 1 === 0 ? 0 : 1) + " cm na powierzchnię przypada około " + formatPolish(100 / spacing, 2) + " m rury na 1 m². Podejścia stanowią w tym wariancie " + formatPolish(result.approaches, 1) + " m. Wynik zakupowy zaokrąglono w górę do pełnego metra.";
        }

        if (resultNote) resultNote.textContent = note;
        updateComparison(activeArea, distance, minimumZones, loopMaximum, reserve, spacing);
      }

      if (areaInput) areaInput.addEventListener("input", updateCalculator, false);
      if (excludedInput) excludedInput.addEventListener("input", updateCalculator, false);
      if (spacingInput) spacingInput.addEventListener("change", updateCalculator, false);
      if (distanceInput) distanceInput.addEventListener("input", updateCalculator, false);
      if (zonesInput) zonesInput.addEventListener("input", updateCalculator, false);
      if (loopMaxInput) loopMaxInput.addEventListener("change", updateCalculator, false);
      if (reserveInput) reserveInput.addEventListener("input", updateCalculator, false);
      updateCalculator();

      navLinks = root.querySelectorAll('a[href^="#"]');
      for (i = 0; i < navLinks.length; i += 1) {
        navLinks[i].addEventListener("click", function (event) {
          var href = this.getAttribute("href");
          var target = href ? root.querySelector(href) : null;
          var reducedMotion;
          if (!target) return;
          event.preventDefault();
          reducedMotion = typeof window.matchMedia === "function" ? window.matchMedia("(prefers-reduced-motion: reduce)").matches : false;
          target.scrollIntoView({
            behavior: reducedMotion ? "auto" : "smooth",
            block: "start"
          });
        }, false);
      }

      progress = root.querySelector(".rk-pipe-progress");
      function updateProgress() {
        var rect;
        var viewport;
        var total;
        var passed;
        var percentage;
        if (!progress) return;
        rect = root.getBoundingClientRect();
        viewport = window.innerHeight || document.documentElement.clientHeight;
        total = Math.max(root.offsetHeight - viewport, 1);
        passed = Math.min(Math.max(-rect.top, 0), total);
        percentage = (passed / total) * 100;
        progress.style.width = percentage.toFixed(2) + "%";
      }

      window.addEventListener("scroll", updateProgress, { passive: true });
      window.addEventListener("resize", updateProgress, false);
      updateProgress();
      return true;
    }

    if (document.readyState === "loading") {
      document.addEventListener("DOMContentLoaded", initializePipeCalculator, false);
    } else {
      initializePipeCalculator();
    }

    window.addEventListener("load", initializePipeCalculator, false);
    window.setTimeout(initializePipeCalculator, 250);
    window.setTimeout(initializePipeCalculator, 1200);
    window.setTimeout(initializePipeCalculator, 3000);

    if (window.MutationObserver ? !byId("rk-pipe-calc") : false) {
      var observer = new MutationObserver(function () {
        if (initializePipeCalculator()) observer.disconnect();
      });
      observer.observe(document.documentElement, { childList: true, subtree: true });
      window.setTimeout(function () { observer.disconnect(); }, 10000);
    }
  }(window, document));
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/">Kalkulator do obliczania ilości metrów rury potrzebnych do ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Projektowanie ogrzewania podłogowego w domach pasywnych.</title>
		<link>https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Wed, 05 Mar 2025 13:06:27 +0000</pubDate>
				<category><![CDATA[Dom pasywny]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Ekologiczne rozwiązania grzewcze]]></category>
		<category><![CDATA[Izolacja termiczna]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Odnawialne źródła energii]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Systemy niskotemperaturowe]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[domy pasywne]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[ekologia]]></category>
		<category><![CDATA[izolacja termiczna]]></category>
		<category><![CDATA[niskotemperaturowe ogrzewanie]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[OZE]]></category>
		<category><![CDATA[pompy ciepła]]></category>
		<category><![CDATA[projektowanie instalacji]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2350</guid>

					<description><![CDATA[<p>Projektowanie ogrzewania podłogowego w domach pasywnych to wyzwanie, które wymaga precyzji i wiedzy technicznej. Domy pasywne, charakteryzujące się minimalnym zużyciem energii, potrzebują systemów grzewczych doskonale zintegrowanych z ich konstrukcją. W artykule omawiamy specyfikę takich instalacji, najlepsze praktyki oraz pokazujemy, jak połączyć komfort cieplny z ekologią. Dowiesz się, jak dobrać optymalny rozstaw rur, wybrać materiały o niskiej bezwładności cieplnej oraz zintegrować ogrzewanie z odnawialnymi źródłami energii.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/">Projektowanie ogrzewania podłogowego w domach pasywnych.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #1e293b;
    --rk-intro-blue: #0284c7;
    --rk-intro-blue-light: #e0f2fe;
    --rk-intro-accent: #0ea5e9;
    --rk-intro-passive: #10b981; /* Zielony dla pasywnego */
    --rk-intro-standard: #f97316; /* Pomarańczowy dla standardu */
    --rk-intro-bg: #ffffff;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #475569;
}

.rk-intro-wrap {
    max-width: 900px;
    margin: 40px auto;
    background: var(--rk-intro-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.1);
    border: 1px solid var(--rk-intro-blue-light);
    font-family: 'Inter', system-ui, sans-serif;
    overflow: hidden;
}

/* Sekcja Opisowa Wstępu */
.rk-intro-content {
    padding: 45px 45px 30px;
    background: linear-gradient(to bottom, #f8fafc, #ffffff);
}

.rk-intro-content h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    margin: 0 0 20px 0;
    line-height: 1.3;
}

.rk-intro-text-body {
    font-size: 17px;
    line-height: 1.7;
    color: var(--rk-intro-text);
    margin: 0;
}

.rk-intro-text-body a {
    color: var(--rk-intro-blue);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.3s;
}

.rk-intro-text-body a:hover {
    color: var(--rk-intro-accent);
}

.rk-intro-highlight {
    display: inline-block;
    background: var(--rk-intro-blue-light);
    color: var(--rk-intro-blue);
    padding: 4px 10px;
    border-radius: 6px;
    font-weight: 800;
    font-size: 15px;
    margin-top: 15px;
    border: 1px solid rgba(2, 132, 199, 0.2);
}

/* Symulator Suwakowy */
.rk-intro-sim {
    padding: 0 45px 45px;
}

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

/* Custom Slider */
.rk-slider-container {
    background: #f1f5f9;
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-intro-border);
    margin-bottom: 30px;
}

.rk-slider-labels {
    display: flex;
    justify-content: space-between;
    margin-bottom: 15px;
    font-size: 13px;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-range-input {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: linear-gradient(to right, var(--rk-intro-passive) 0%, #cbd5e1 50%, var(--rk-intro-standard) 100%);
    outline: none;
    transition: opacity .2s;
}

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

.rk-range-input::-webkit-slider-thumb:active {
    transform: scale(1.1);
}

/* Wizualizacja SVG i Dane */
.rk-sim-dashboard {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 30px;
    align-items: center;
}

.rk-svg-house {
    width: 100%;
    max-width: 180px;
    margin: 0 auto;
    display: block;
}

.anim-heat-loss {
    transition: opacity 0.3s, transform 0.3s;
}

.anim-wall {
    transition: stroke-width 0.3s, stroke 0.3s;
}

.anim-floor-heat {
    transition: fill 0.3s;
}

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

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

.rk-metric-box h4 {
    margin: 0 0 5px 0;
    font-size: 12px;
    text-transform: uppercase;
    color: #94a3b8;
    font-weight: 700;
    letter-spacing: 0.5px;
}

.rk-metric-value {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    margin-bottom: 2px;
}

.rk-metric-unit {
    font-size: 12px;
    color: #64748b;
    font-weight: 600;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-intro-content, .rk-intro-sim { padding: 30px 20px; }
    .rk-sim-dashboard { grid-template-columns: 1fr; gap: 20px; text-align: center; }
    .rk-metrics-grid { grid-template-columns: 1fr 1fr; }
    .rk-svg-house { max-width: 150px; }
}
@media (max-width: 480px) {
    .rk-metrics-grid { grid-template-columns: 1fr; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/"
    },
    "headline": "Inżynieryjny fundament: OZC i skrajnie niskie zapotrzebowanie na energię w domu pasywnym",
    "description": "Projektowanie instalacji dla domów pasywnych (zapotrzebowanie poniżej 15 kWh/(m²·rok)) wymaga idealnego zbilansowania mocy, przepływów i zasilania. Tu nie ma miejsca na błędy.",
    "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-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#dataset-ozc",
    "name": "Zestawienie Zapotrzebowania Energetycznego: Standard vs Dom Pasywny",
    "description": "Porównanie skrajnych wartości projektowego obciążenia cieplnego (OZC) dla budownictwa tradycyjnego oraz standardu pasywnego poniżej 15 kWh.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projektowe obciążenie cieplne OZC",
      "ogrzewanie podłogowe dom pasywny",
      "zapotrzebowanie na energię 15 kWh",
      "temperatura czynnika grzewczego",
      "bezwładność cieplna budynku"
    ],
    "measurementTechnique": "Dynamiczna interpolacja algorytmiczna określająca zapotrzebowanie (W/m²), przepływ i temperaturę zasilania w zależności od współczynnika izolacyjności budynku.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Dom Pasywny (<15 kWh): Wymaga zasilania 28°C i mocy grzewczej rzędu 10 W/m².",
        "Dom Standardowy: Wymaga zasilania >35°C i mocy rzędu 40-50 W/m²."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#webapp-ozc",
    "name": "Symulator Projektowego Obciążenia Cieplnego (OZC)",
    "description": "Interaktywny suwak pozwalający obserwować w czasie rzeczywistym spadek wymaganej mocy grzewczej oraz temperatury zasilania wraz ze wzrostem izolacyjności przegród.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5 SVG",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-intro-wrap" id="ozc-intro-app">
    
    <!-- Opis Inżynieryjny -->
    <div class="rk-intro-content">
        <h2>Od teorii do fizyki budowli: Czym różni się projekt pasywny?</h2>
        <p class="rk-intro-text-body">
            Projektowanie ogrzewania podłogowego w domach pasywnych to proces inżynieryjny polegający na precyzyjnym obliczeniu <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowego obciążenia cieplnego (OZC)</a> dla budynku o ekstremalnie niskim zapotrzebowaniu na energię (poniżej <strong>15 kWh/(m²·rok)</strong>) oraz <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/">doborze parametrów instalacji hydraulicznej</a> w taki sposób, aby system pracował efektywnie przy skrajnie niskich temperaturach czynnika grzewczego. W standardzie pasywnym kluczowe jest zapewnienie stabilności termicznej przy jednoczesnym uniknięciu przegrzewania pomieszczeń, co wymaga uwzględnienia <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładności cieplnej przegród</a> oraz <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">integracji z systemem wentylacji mechanicznej z odzyskiem ciepła</a>.
        </p>
        <div class="rk-intro-highlight">
            Tu nie ma miejsca na &#8222;dobór na oko&#8221; – liczy się każdy wat mocy i litr przepływu.
        </div>
    </div>

    <!-- Symulator OZC -->
    <div class="rk-intro-sim">
        <div class="rk-sim-header">
            <h3>Symulacja OZC: Wpływ izolacji na podłogówkę</h3>
        </div>

        <div class="rk-slider-container">
            <div class="rk-slider-labels">
                <span style="color: var(--rk-intro-passive);">Dom Pasywny</span>
                <span>Energooszczędny</span>
                <span style="color: var(--rk-intro-standard);">Standard (WT2021)</span>
            </div>
            <!-- Suwak: od 1 (Pasywny) do 100 (Standard) -->
            <input type="range" min="1" max="100" value="1" class="rk-range-input" id="ozc-slider" aria-label="Wybierz standard energetyczny budynku">
        </div>

        <div class="rk-sim-dashboard">
            <!-- Animowana grafika domku -->
            <div class="rk-svg-display">
                <svg class="rk-svg-house" viewBox="0 0 200 200">
                    <!-- Fale uciekającego ciepła (animowane opacity) -->
                    <g id="heat-loss-waves" stroke="var(--rk-intro-standard)" stroke-width="3" fill="none" stroke-linecap="round" opacity="0.1">
                        <path d="M 30 70 Q 20 40 40 10" />
                        <path d="M 170 70 Q 180 40 160 10" />
                        <path d="M 100 30 Q 110 10 90 -10" />
                    </g>
                    <!-- Dach i Ściany -->
                    <path class="anim-wall" id="house-walls" d="M 40 160 L 40 90 L 100 40 L 160 90 L 160 160 Z" fill="none" stroke="#64748b" stroke-width="12" stroke-linejoin="round" />
                    <!-- Podłoga (Wylewka) -->
                    <rect x="25" y="160" width="150" height="20" fill="#cbd5e1" rx="2" />
                    <!-- Rury podłogówki -->
                    <g id="floor-pipes" fill="var(--rk-intro-passive)">
                        <circle cx="50" cy="170" r="5" />
                        <circle cx="80" cy="170" r="5" />
                        <circle cx="110" cy="170" r="5" />
                        <circle cx="140" cy="170" r="5" />
                    </g>
                    <!-- Centralna ikona temperatury -->
                    <text x="100" y="125" text-anchor="middle" font-size="28" font-weight="900" fill="var(--rk-intro-dark)" font-family="sans-serif">20°C</text>
                </svg>
            </div>

            <!-- Dynamiczne parametry OZC -->
            <div class="rk-metrics-grid">
                <div class="rk-metric-box">
                    <h4>Zapotrzebowanie EUco</h4>
                    <div class="rk-metric-value" id="val-euco" style="color: var(--rk-intro-passive);">15</div>
                    <div class="rk-metric-unit">kWh/(m²·rok)</div>
                </div>
                <div class="rk-metric-box">
                    <h4>Moc z podłogi (q)</h4>
                    <div class="rk-metric-value" id="val-q">10</div>
                    <div class="rk-metric-unit">W/m²</div>
                </div>
                <div class="rk-metric-box">
                    <h4>Max Temp. Zasilania</h4>
                    <div class="rk-metric-value" id="val-temp" style="color: var(--rk-intro-passive);">28°C</div>
                    <div class="rk-metric-unit">przy mrozie -20°C</div>
                </div>
                <div class="rk-metric-box">
                    <h4>Praca Pompy Ciepła</h4>
                    <div class="rk-metric-value" id="val-cop" style="color: var(--rk-intro-passive);">COP Maksymalne</div>
                    <div class="rk-metric-unit">Stabilność układu</div>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Anti-Theft) bez H2/H3
    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('ozc-intro-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #1e293b; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">⚠️</div>
                    <div style="font-size: 18px; font-weight: bold; color: #ef4444; margin-bottom: 10px; text-transform: uppercase;">Nieautoryzowane Użycie Kodu</div>
                    <div style="color: #cbd5e1; font-size: 14px; line-height: 1.6;">
                        Ten kalkulator OZC oraz struktura Schema.org stanowią własność portalu Projekt-Ogrzewania.pl. 
                        Skrypt zablokował renderowanie na obcej domenie.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Suwaka (Interpolacja OZC)
    const slider = document.getElementById('ozc-slider');
    
    // Elementy UI
    const valEuco = document.getElementById('val-euco');
    const valQ = document.getElementById('val-q');
    const valTemp = document.getElementById('val-temp');
    const valCop = document.getElementById('val-cop');
    
    // Elementy SVG
    const heatLossWaves = document.getElementById('heat-loss-waves');
    const houseWalls = document.getElementById('house-walls');
    const floorPipes = document.getElementById('floor-pipes');

    // Kolory do płynnego przejścia
    const colorPassive = [16, 185, 129]; // #10b981
    const colorStandard = [249, 115, 22]; // #f97316

    function interpolateColor(color1, color2, factor) {
        let result = color1.slice();
        for (let i = 0; i < 3; i++) {
            result[i] = Math.round(result[i] + factor * (color2[i] - color1[i]));
        }
        return `rgb(${result[0]}, ${result[1]}, ${result[2]})`;
    }

    function updateSimulation() {
        const factor = (slider.value - 1) / 99; // 0 (Pasywny) do 1 (Standard)

        // Obliczenia wartości
        const euco = Math.round(15 + factor * (65 - 15)); // od 15 do 65 kWh
        const q = Math.round(10 + factor * (45 - 10)); // od 10 do 45 W/m2
        const tempZasilania = Math.round(28 + factor * (38 - 28)); // od 28 do 38 C
        
        // Kolor stanu
        const currentColor = interpolateColor(colorPassive, colorStandard, factor);

        // Aktualizacja HTML
        valEuco.textContent = euco;
        valEuco.style.color = currentColor;
        
        valQ.textContent = q;
        valQ.style.color = currentColor;
        
        valTemp.textContent = tempZasilania + '°C';
        valTemp.style.color = currentColor;

        if (factor < 0.33) {
            valCop.textContent = "COP Maksymalne";
            valCop.style.color = "var(--rk-intro-passive)";
        } else if (factor < 0.66) {
            valCop.textContent = "COP Standardowe";
            valCop.style.color = "#64748b";
        } else {
            valCop.textContent = "Ryzyko Spadku COP";
            valCop.style.color = "var(--rk-intro-standard)";
        }

        // Animacja SVG
        // Grubosć ścian maleje im gorszy standard (więcej strat)
        const wallThickness = 14 - (factor * 8); // od 14px do 6px
        houseWalls.style.strokeWidth = wallThickness;
        houseWalls.style.stroke = factor < 0.5 ? '#64748b' : '#94a3b8';

        // Intensywność fal uciekającego ciepła rośnie
        heatLossWaves.style.opacity = 0.1 + (factor * 0.9); // od 0.1 do 1.0

        // Kolor rur podłogówki robi się coraz "gorętszy"
        floorPipes.setAttribute('fill', currentColor);
    }

    // Nasłuchiwanie zdarzeń
    slider.addEventListener('input', updateSimulation);
    
    // Inicjalizacja
    updateSimulation();
});
</script>



<style>
:root {
    --rk-pwr-dark: #1e293b;
    --rk-pwr-blue: #0284c7;
    --rk-pwr-blue-light: #f0f9ff;
    --rk-pwr-green: #10b981;
    --rk-pwr-green-bg: #ecfdf5;
    --rk-pwr-red: #ef4444;
    --rk-pwr-red-bg: #fef2f2;
    --rk-pwr-gray: #64748b;
    --rk-pwr-border: #e2e8f0;
    --rk-pwr-bg: #ffffff;
}

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

/* Sekcja Treści */
.rk-pwr-content {
    padding: 40px 40px 25px;
    background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
    border-bottom: 1px solid var(--rk-pwr-border);
}

.rk-pwr-content h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-pwr-dark);
    margin: 0 0 20px 0;
    line-height: 1.3;
}

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

.rk-pwr-text a {
    color: var(--rk-pwr-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid #bae6fd;
    transition: all 0.3s;
}

.rk-pwr-text a:hover {
    background: var(--rk-pwr-blue-light);
    border-color: var(--rk-pwr-blue);
}

/* Interfejs Symulatora */
.rk-pwr-interactive {
    padding: 30px 40px 40px;
}

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

/* Slider / Suwak */
.rk-pwr-slider-box {
    background: #f8fafc;
    padding: 25px 30px;
    border-radius: 16px;
    border: 1px solid var(--rk-pwr-border);
    margin-bottom: 35px;
}

.rk-slider-labels {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 15px;
}

.rk-slider-input {
    -webkit-appearance: none;
    width: 100%;
    height: 10px;
    border-radius: 5px;
    background: linear-gradient(90deg, var(--rk-pwr-green) 0%, #cbd5e1 50%, var(--rk-pwr-red) 100%);
    outline: none;
}

.rk-slider-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #ffffff;
    border: 4px solid var(--rk-pwr-blue);
    cursor: pointer;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.15);
    transition: transform 0.1s;
}

.rk-slider-input::-webkit-slider-thumb:active {
    transform: scale(1.15);
}

/* Wyświetlacz: SVG + Kafelki */
.rk-pwr-dashboard {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 30px;
    align-items: center;
}

.rk-pwr-svg-wrap {
    text-align: center;
}

.rk-svg-heat {
    width: 100%;
    max-width: 180px;
}

.anim-heat-wave {
    fill: none;
    stroke-width: 5;
    stroke-linecap: round;
    transition: stroke 0.3s, transform 0.3s;
}

/* Kafelki parametrów */
.rk-pwr-metrics {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

.rk-pwr-card {
    background: #ffffff;
    border: 1px solid var(--rk-pwr-border);
    padding: 20px;
    border-radius: 14px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    transition: all 0.3s;
}

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

.rk-pwr-value {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-pwr-dark);
    line-height: 1.1;
    margin-bottom: 4px;
}

.rk-pwr-unit {
    font-size: 13px;
    color: #94a3b8;
    font-weight: 600;
}

.status-badge {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    margin-top: 10px;
}

.badge-ok { background: var(--rk-pwr-green-bg); color: var(--rk-pwr-green); border: 1px solid #a7f3d0; }
.badge-warn { background: var(--rk-pwr-red-bg); color: var(--rk-pwr-red); border: 1px solid #fecaca; }

@media (max-width: 768px) {
    .rk-pwr-content, .rk-pwr-interactive { padding: 25px; }
    .rk-pwr-dashboard { grid-template-columns: 1fr; gap: 20px; }
    .rk-pwr-svg-wrap { margin-bottom: 10px; }
    .rk-svg-heat { max-width: 140px; }
}

@media (max-width: 480px) {
    .rk-pwr-metrics { grid-template-columns: 1fr; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#article-moc-grzewcza",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/"
    },
    "headline": "Maksymalna moc grzewcza ogrzewania podłogowego w domu pasywnym",
    "description": "Zrozumienie różnicy w mocy grzewczej między budownictwem tradycyjnym (60-80 W/m2) a pasywnym (10-20 W/m2). Wpływ na temperaturę podłogi według 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.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-03-05",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#dataset-moc",
    "name": "Zestawienie Mocy Grzewczej: Dom Pasywny vs Tradycyjny",
    "description": "Porównanie parametrów obciążenia cieplnego dla salonu 35 m2 w zależności od standardu izolacji budynku.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna moc grzewcza podłogówki",
      "obciążenie cieplne W/m2",
      "temperatura powierzchni podłogi 29°C",
      "przegrzewanie domu pasywnego",
      "norma PN-EN 12831"
    ],
    "measurementTechnique": "Dynamiczna estymacja mocy i temperatury podłogi w oparciu o wytyczne norm PN-EN 12831 (obliczanie strat) oraz PN-EN 1264 (parametry podłogówki).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Dom Pasywny: Zapotrzebowanie ~10-20 W/m2, moc całkowita salonu 35m2 ~400W, temperatura podłogi 24-25°C.",
        "Budownictwo Tradycyjne: Zapotrzebowanie ~60-80 W/m2, ryzyko przekroczenia normatywnych 29°C w domach wysoce izolowanych przy błędnym projekcie."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#webapp-moc",
    "name": "Symulator Przegrzewania Podłogi",
    "description": "Aplikacja internetowa wizualizująca ryzyko przegrzania pomieszczenia pasywnego w przypadku zastosowania mocy grzewczej właściwej dla starego budownictwa.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-pwr-container" id="pwr-sim-app">
    
    <div class="rk-pwr-content">
        <h2>Jaka jest maksymalna moc grzewcza w domu pasywnym?</h2>
        <p class="rk-pwr-text">
            Moc grzewcza w domu pasywnym nie powinna przekraczać <strong>10–20 W/m²</strong> przy parametrach obliczeniowych dla danej strefy klimatycznej, zgodnie z <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">normą PN-EN 12831</a>. W tradycyjnym budownictwie wartości te sięgają 60–80 W/m², co w standardzie pasywnym doprowadziłoby do natychmiastowego przegrzania i dyskomfortu.
        </p>
        <p class="rk-pwr-text">
            W domach pasywnych <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">obliczenia strat ciepła</a> muszą być wykonane z dokładnością do 1 W. Przykładowo, dla salonu o powierzchni 35 m² projektowe obciążenie cieplne wynosi zaledwie 350–450 W. Zgodnie z <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">normą PN-EN 1264</a>, musimy tak dobrać rozstaw i temperaturę, aby nie przekroczyć granicy 29°C. Prawidłowo zaprojektowana <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/">optymalna temperatura podłogi</a> w domu pasywnym rzadko przekracza jednak 24–25°C.
        </p>
    </div>

    <div class="rk-pwr-interactive">
        <h3>Symulator Salonu 35 m²: Ryzyko Przegrzania</h3>
        
        <div class="rk-pwr-slider-box">
            <div class="rk-slider-labels">
                <span style="color: var(--rk-pwr-green);">Dom Pasywny</span>
                <span style="color: var(--rk-pwr-red);">Stare Budownictwo</span>
            </div>
            <input type="range" min="1" max="100" value="10" class="rk-slider-input" id="rk-pwr-slider" aria-label="Symulacja obciążenia cieplnego budynku">
        </div>

        <div class="rk-pwr-dashboard">
            <!-- Animacja SVG -->
            <div class="rk-pwr-svg-wrap">
                <svg class="rk-svg-heat" viewBox="0 0 200 200">
                    <!-- Fale promieniowania -->
                    <g id="heat-waves" stroke="var(--rk-pwr-green)">
                        <path class="anim-heat-wave" id="wave1" d="M 50 140 Q 60 90 50 40" />
                        <path class="anim-heat-wave" id="wave2" d="M 100 140 Q 110 90 100 40" />
                        <path class="anim-heat-wave" id="wave3" d="M 150 140 Q 160 90 150 40" />
                    </g>
                    <!-- Przekrój podłogi -->
                    <rect x="20" y="160" width="160" height="24" fill="#cbd5e1" rx="4" />
                    <!-- Rury grzewcze -->
                    <g id="floor-pipes" fill="var(--rk-pwr-green)">
                        <circle cx="50" cy="172" r="6" />
                        <circle cx="83" cy="172" r="6" />
                        <circle cx="116" cy="172" r="6" />
                        <circle cx="150" cy="172" r="6" />
                    </g>
                </svg>
            </div>

            <!-- Karty Danych -->
            <div class="rk-pwr-metrics">
                <div class="rk-pwr-card">
                    <h4>Moc z 1 m² (q)</h4>
                    <div class="rk-pwr-value" id="val-wm2">12</div>
                    <div class="rk-pwr-unit">W/m²</div>
                    <div class="status-badge badge-ok" id="badge-wm2">Zgodnie z normą</div>
                </div>
                <div class="rk-pwr-card">
                    <h4>Moc Całkowita Salonu</h4>
                    <div class="rk-pwr-value" id="val-total">420</div>
                    <div class="rk-pwr-unit">Watów (W)</div>
                </div>
                <div class="rk-pwr-card">
                    <h4>Temp. Powierzchni</h4>
                    <div class="rk-pwr-value" id="val-temp">24.5</div>
                    <div class="rk-pwr-unit">°C</div>
                    <div class="status-badge badge-ok" id="badge-temp">Komfortowa</div>
                </div>
                <div class="rk-pwr-card">
                    <h4>Zasilanie Pętli</h4>
                    <div class="rk-pwr-value" id="val-supply">30</div>
                    <div class="rk-pwr-unit">°C</div>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Anti-Theft) bez H2/H3
    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('pwr-sim-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 30px; text-align: center; background: #1e293b; border: 2px solid #ef4444; border-radius: 16px; font-family: sans-serif;">
                    <div style="font-size: 32px; margin-bottom: 10px;">⚠️</div>
                    <div style="font-size: 16px; font-weight: bold; color: #ef4444; margin-bottom: 10px; text-transform: uppercase;">Zablokowano</div>
                    <div style="color: #cbd5e1; font-size: 13px; line-height: 1.5;">
                        Kod kalkulatora mocy grzewczej oraz dane ustrukturyzowane Schema.org są chronione. Uruchamianie na nieautoryzowanej domenie zostało przerwane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Suwaka
    const slider = document.getElementById('rk-pwr-slider');
    
    // Elementy DOM
    const valWm2 = document.getElementById('val-wm2');
    const valTotal = document.getElementById('val-total');
    const valTemp = document.getElementById('val-temp');
    const valSupply = document.getElementById('val-supply');
    
    const badgeWm2 = document.getElementById('badge-wm2');
    const badgeTemp = document.getElementById('badge-temp');
    
    // SVG
    const heatWaves = document.getElementById('heat-waves');
    const floorPipes = document.getElementById('floor-pipes');
    const wavePaths = document.querySelectorAll('.anim-heat-wave');

    const AREA = 35; // Powierzchnia salonu stała = 35 m2

    function interpolateColor(color1, color2, factor) {
        let result = color1.slice();
        for (let i = 0; i < 3; i++) {
            result[i] = Math.round(result[i] + factor * (color2[i] - color1[i]));
        }
        return `rgb(${result[0]}, ${result[1]}, ${result[2]})`;
    }

    const rgbGreen = [16, 185, 129]; // #10b981
    const rgbRed = [239, 68, 68];    // #ef4444

    function updateSim() {
        const factor = (slider.value - 1) / 99; // 0.0 to 1.0

        // Obliczenia
        const powerPerSqm = Math.round(10 + factor * (80 - 10)); // 10 do 80 W/m2
        const totalPower = powerPerSqm * AREA;
        const surfaceTemp = (24 + factor * (33 - 24)).toFixed(1); // 24.0 do 33.0 °C
        const supplyTemp = Math.round(28 + factor * (45 - 28)); // 28 do 45 °C

        const currentColor = interpolateColor(rgbGreen, rgbRed, factor);

        // Aktualizacja Wartości
        valWm2.textContent = powerPerSqm;
        valWm2.style.color = currentColor;
        
        valTotal.textContent = totalPower;
        
        valTemp.textContent = surfaceTemp;
        valTemp.style.color = currentColor;
        
        valSupply.textContent = supplyTemp;

        // Logika Odznak (Badges)
        if (powerPerSqm <= 20) {
            badgeWm2.className = 'status-badge badge-ok';
            badgeWm2.textContent = 'Standard Pasywny';
        } else {
            badgeWm2.className = 'status-badge badge-warn';
            badgeWm2.textContent = 'Straty Tradycyjne';
        }

        if (surfaceTemp <= 29) {
            badgeTemp.className = 'status-badge badge-ok';
            badgeTemp.textContent = 'Norma zachowana';
        } else {
            badgeTemp.className = 'status-badge badge-warn';
            badgeTemp.textContent = 'Przegrzewanie (>29°C)';
        }

        // Animacja SVG
        heatWaves.setAttribute('stroke', currentColor);
        floorPipes.setAttribute('fill', currentColor);

        // Intensywność fal na podstawie mocy (wymuszenie ruchu)
        const waveOffset = factor * 20;
        wavePaths[0].setAttribute('d', `M 50 140 Q ${60 + waveOffset} 90 50 40`);
        wavePaths[1].setAttribute('d', `M 100 140 Q ${110 - waveOffset} 90 100 40`);
        wavePaths[2].setAttribute('d', `M 150 140 Q ${160 + waveOffset} 90 150 40`);
        
        heatWaves.style.opacity = 0.4 + (factor * 0.6); // Zwiększa widoczność ciepła
    }

    slider.addEventListener('input', updateSim);
    updateSim(); // Init
});
</script>




<style>
:root {
    --rk-therm-dark: #1e293b;
    --rk-therm-brand: #0ea5e9;
    --rk-therm-sun: #fbbf24;
    --rk-therm-heat: #ef4444;
    --rk-therm-cool: #3b82f6;
    --rk-therm-bg: #ffffff;
    --rk-therm-panel: #f8fafc;
    --rk-therm-border: #e2e8f0;
    --rk-therm-text: #475569;
}

.rk-therm-wrap {
    max-width: 920px;
    margin: 50px auto;
    font-family: 'Inter', system-ui, sans-serif;
    background: var(--rk-therm-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(14, 165, 233, 0.15);
    border: 1px solid #bae6fd;
    overflow: hidden;
}

/* Sekcja Treści */
.rk-therm-content {
    padding: 45px 50px 30px;
    background: linear-gradient(180deg, #f0f9ff 0%, #ffffff 100%);
    border-bottom: 1px solid var(--rk-therm-border);
}

.rk-therm-content h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-therm-dark);
    margin: 0 0 20px 0;
    line-height: 1.3;
    letter-spacing: -0.5px;
}

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

.rk-therm-text a {
    color: #0284c7;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid #bae6fd;
    transition: all 0.3s;
}

.rk-therm-text a:hover {
    background: #e0f2fe;
    border-color: #0284c7;
}

.rk-highlight-box {
    background: #fffbeb;
    border-left: 4px solid var(--rk-therm-sun);
    padding: 15px 20px;
    border-radius: 0 12px 12px 0;
    margin: 25px 0;
    font-size: 15px;
    color: #92400e;
    font-weight: 600;
}

/* Symulator Samoregulacji */
.rk-therm-interactive {
    padding: 40px 50px;
}

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

/* Unikalny Kontroler - Suwak Słoneczny */
.rk-sun-controller {
    background: var(--rk-therm-panel);
    border: 1px solid var(--rk-therm-border);
    padding: 25px 35px;
    border-radius: 16px;
    margin-bottom: 40px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.02);
}

.rk-sun-labels {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
    font-weight: 800;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #64748b;
}

.rk-sun-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 12px;
    border-radius: 6px;
    background: linear-gradient(90deg, #cbd5e1 0%, var(--rk-therm-sun) 100%);
    outline: none;
}

.rk-sun-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #ffffff;
    border: 4px solid var(--rk-therm-sun);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(251, 191, 36, 0.4);
    transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

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

/* Dashboard: SVG + Dane (Układ zintegrowany) */
.rk-therm-dashboard {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: center;
}

/* Wizualizacja interaktywna SVG */
.rk-svg-stage {
    background: #ffffff;
    border-radius: 20px;
    padding: 20px;
    border: 1px solid var(--rk-therm-border);
    box-shadow: 0 10px 20px -5px rgba(0,0,0,0.05);
    position: relative;
}

.rk-anim-sun-rays {
    transition: opacity 0.3s ease;
}

.rk-anim-therm-fill {
    transition: y 0.3s ease, height 0.3s ease, fill 0.3s ease;
}

.rk-anim-pipe {
    transition: fill 0.4s ease;
}

/* Kafelki Danych (H4) */
.rk-metrics-grid {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-metric-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #ffffff;
    border: 1px solid var(--rk-therm-border);
    padding: 16px 24px;
    border-radius: 14px;
    transition: all 0.3s;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-metric-row:hover {
    border-color: #bae6fd;
    transform: translateX(5px);
}

.rk-metric-info h4 {
    margin: 0 0 4px 0;
    font-size: 13px;
    text-transform: uppercase;
    color: var(--rk-therm-text);
    letter-spacing: 0.5px;
}

.rk-metric-info p {
    margin: 0;
    font-size: 11px;
    color: #94a3b8;
}

.rk-metric-value {
    font-size: 26px;
    font-weight: 900;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.rk-metric-value span {
    font-size: 13px;
    font-weight: 700;
    margin-left: 2px;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-therm-content, .rk-therm-interactive { padding: 30px 25px; }
    .rk-therm-dashboard { grid-template-columns: 1fr; gap: 30px; }
    .rk-metric-row { padding: 15px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/"
    },
    "headline": "Optymalna temperatura zasilania pompy ciepła i efekt samoregulacji podłogówki",
    "description": "Dlaczego temperatura zasilania 28°C-32°C to ideał dla pomp ciepła? Poznaj efekt samoregulacji instalacji według normy ISO 10508 i wpływ pasywnych zysków ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#dataset",
    "name": "Analiza Efektu Samoregulacji Ogrzewania Podłogowego",
    "description": "Zestawienie spadku mocy grzewczej podłogi w funkcji wzrostu temperatury wewnętrznej pomieszczenia wywołanej pasywnymi zyskami słonecznymi.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "temperatura zasilania pompy ciepła",
      "współczynnik COP pompy ciepła",
      "samoregulacja ogrzewania podłogowego",
      "pasywne zyski słoneczne dom pasywny",
      "norma ISO 10508 podłogówka"
    ],
    "measurementTechnique": "Algorytmiczna interpolacja liniowa odwzorowująca spadek gęstości strumienia cieplnego przy zmniejszającej się różnicy temperatur między podłogą a powietrzem.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stan bazowy: Temp. pokoju 20.0°C, moc podłogi 100%, zasilanie 30°C.",
        "Efekt samoregulacji: Wzrost temp. pokoju do 22.0°C od słońca automatycznie dławi oddawanie ciepła przez podłogę o 30%, redukując zużycie prądu przez pompę."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#webapp",
    "name": "Symulator Samoregulacji Termicznej Płyty Grzewczej",
    "description": "Narzędzie interaktywne ilustrujące zjawisko fizyczne, w którym podłoga przestaje oddawać ciepło pod wpływem nasłonecznienia zewnętrznego, bez ingerencji termostatów.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-therm-wrap" id="samoregulacja-app">
    
    <div class="rk-therm-content">
        <h2>Jaka temperatura zasilania jest idealna dla pompy ciepła w standardzie pasywnym?</h2>
        <p class="rk-therm-text">
            Idealna temperatura zasilania (T_z) w domu pasywnym oscyluje w granicach <strong>28°C – 32°C</strong> przy temperaturze zewnętrznej -20°C. Obniżenie temperatury zasilania o każdy 1°C zwiększa <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">współczynnik COP pompy ciepła</a> o około 2-3%, co w skali roku generuje wymierne oszczędności na rachunkach za prąd.
        </p>
        <p class="rk-therm-text">
            Projektując układ, dążymy do tzw. "grzania ciągłego" o bardzo niskiej mocy. <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">Norma EN 1264</a> oraz ISO 10508 klasyfikują takie systemy w Klasie 4 (niskotemperaturowe <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/">wodne ogrzewanie podłogowe</a>). Przy zasilaniu 30°C i powrocie 25°C (spadek temperatury Delta T = 5K), średnia temperatura jastrychu wynosi zaledwie 27,5°C.
        </p>
        
        <div class="rk-highlight-box">
            Przy temperaturze docelowej w pomieszczeniu 20°C, różnica między powietrzem a podłogą to tylko 7,5K. Uruchamia to zjawisko fizycznej samoregulacji.
        </div>
        
        <p class="rk-therm-text">
            To sprawia, że system dławi się samoczynnie. Jeśli <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/">pasywne zyski ciepła od nasłonecznienia</a> podniosą temperaturę w salonie o 2°C, moc oddawana przez podłogę spadnie automatycznie o blisko <strong>30%</strong>, bez jakiejkolwiek ingerencji elektroniki sterującej!
        </p>
    </div>

    <div class="rk-therm-interactive">
        <h3>Przetestuj zjawisko: Symulator Samoregulacji</h3>
        
        <div class="rk-sun-controller">
            <div class="rk-sun-labels">
                <span style="color: #94a3b8;">Brak słońca (Zima/Noc)</span>
                <span style="color: var(--rk-therm-sun);">Duże zyski przez okna (Dzień)</span>
            </div>
            <input type="range" min="0" max="100" value="0" class="rk-sun-slider" id="rk-sun-input" aria-label="Poziom nasłonecznienia pomieszczenia">
        </div>

        <div class="rk-therm-dashboard">
            <!-- Grafika Pokoju, Słońca i Termometru -->
            <div class="rk-svg-stage">
                <svg viewBox="0 0 300 200" width="100%" height="auto">
                    <!-- Słońce (animowane) -->
                    <g id="svg-sun" opacity="0.3">
                        <circle cx="50" cy="50" r="20" fill="var(--rk-therm-sun)" />
                        <g class="rk-anim-sun-rays" id="sun-rays">
                            <line x1="50" y1="15" x2="50" y2="5" stroke="var(--rk-therm-sun)" stroke-width="4" stroke-linecap="round"/>
                            <line x1="50" y1="85" x2="50" y2="95" stroke="var(--rk-therm-sun)" stroke-width="4" stroke-linecap="round"/>
                            <line x1="15" y1="50" x2="5" y2="50" stroke="var(--rk-therm-sun)" stroke-width="4" stroke-linecap="round"/>
                            <line x1="85" y1="50" x2="95" y2="50" stroke="var(--rk-therm-sun)" stroke-width="4" stroke-linecap="round"/>
                            <line x1="25" y1="25" x2="18" y2="18" stroke="var(--rk-therm-sun)" stroke-width="4" stroke-linecap="round"/>
                            <line x1="75" y1="75" x2="82" y2="82" stroke="var(--rk-therm-sun)" stroke-width="4" stroke-linecap="round"/>
                            <line x1="25" y1="75" x2="18" y2="82" stroke="var(--rk-therm-sun)" stroke-width="4" stroke-linecap="round"/>
                            <line x1="75" y1="25" x2="82" y2="18" stroke="var(--rk-therm-sun)" stroke-width="4" stroke-linecap="round"/>
                        </g>
                    </g>
                    
                    <!-- Termometr -->
                    <rect x="220" y="30" width="20" height="120" rx="10" fill="#f1f5f9" stroke="#cbd5e1" stroke-width="2"/>
                    <rect x="224" y="80" width="12" height="70" rx="6" fill="#ef4444" id="therm-fill" class="rk-anim-therm-fill"/>
                    <circle cx="230" cy="150" r="14" fill="#ef4444" id="therm-bulb" class="rk-anim-therm-fill"/>
                    <!-- Skala -->
                    <path d="M 245 50 L 255 50 M 245 70 L 255 70 M 245 90 L 255 90 M 245 110 L 255 110 M 245 130 L 255 130" stroke="#94a3b8" stroke-width="1.5"/>

                    <!-- Podłoga i Rury (animowane) -->
                    <rect x="20" y="170" width="260" height="20" fill="#e2e8f0" rx="4"/>
                    <g id="floor-pipes">
                        <circle cx="50" cy="180" r="6" class="rk-anim-pipe" fill="var(--rk-therm-heat)"/>
                        <circle cx="90" cy="180" r="6" class="rk-anim-pipe" fill="var(--rk-therm-heat)"/>
                        <circle cx="130" cy="180" r="6" class="rk-anim-pipe" fill="var(--rk-therm-heat)"/>
                        <circle cx="170" cy="180" r="6" class="rk-anim-pipe" fill="var(--rk-therm-heat)"/>
                        <circle cx="210" cy="180" r="6" class="rk-anim-pipe" fill="var(--rk-therm-heat)"/>
                        <circle cx="250" cy="180" r="6" class="rk-anim-pipe" fill="var(--rk-therm-heat)"/>
                    </g>
                </svg>
            </div>

            <!-- Parametry Dynamiczne -->
            <div class="rk-metrics-grid">
                <div class="rk-metric-row">
                    <div class="rk-metric-info">
                        <h4>Zyski Słoneczne</h4>
                        <p>Dodatkowa darmowa energia</p>
                    </div>
                    <div class="rk-metric-value" style="color: var(--rk-therm-sun);">
                        <span id="val-sun" style="font-size: 26px;">0</span><span>%</span>
                    </div>
                </div>

                <div class="rk-metric-row">
                    <div class="rk-metric-info">
                        <h4>Temperatura w salonie</h4>
                        <p>Baza: 20°C (różnica 7,5K do podłogi)</p>
                    </div>
                    <div class="rk-metric-value" style="color: var(--rk-therm-dark);">
                        <span id="val-room" style="font-size: 26px;">20.0</span><span>°C</span>
                    </div>
                </div>

                <div class="rk-metric-row" style="border-left: 4px solid var(--rk-therm-brand);">
                    <div class="rk-metric-info">
                        <h4>Moc grzewcza podłogi</h4>
                        <p>Efekt automatycznego dławienia</p>
                    </div>
                    <div class="rk-metric-value" style="color: var(--rk-therm-heat);" id="color-power">
                        <span id="val-power" style="font-size: 26px;">100</span><span>%</span>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Anti-Theft) bez 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('samoregulacja-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 25px; text-align: center; background: #fffbeb; border: 2px solid #f59e0b; border-radius: 12px; font-family: sans-serif;">
                    <div style="font-size: 32px; margin-bottom: 10px;">🛑</div>
                    <div style="font-size: 15px; font-weight: bold; color: #b45309; margin-bottom: 8px;">Blokada Własności Intelektualnej</div>
                    <div style="color: #92400e; font-size: 13px; line-height: 1.5;">
                        Moduł symulacji samoregulacji oraz kod strukturalny zostały zablokowane. Wykryto próbę uruchomienia skryptu Projekt-Ogrzewania.pl na innej domenie.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora (Efekt Samoregulacji)
    const slider = document.getElementById('rk-sun-input');
    
    // UI Elements
    const valSun = document.getElementById('val-sun');
    const valRoom = document.getElementById('val-room');
    const valPower = document.getElementById('val-power');
    const colorPower = document.getElementById('color-power');
    
    // SVG Elements
    const sunGroup = document.getElementById('svg-sun');
    const thermFill = document.getElementById('therm-fill');
    const pipes = document.querySelectorAll('.rk-anim-pipe');

    // Kolory interpolacji dla rur (od gorącego czerwonego do chłodnego niebieskawego)
    const colorHot = [239, 68, 68]; // #ef4444 (100% mocy)
    const colorCool = [148, 163, 184]; // #94a3b8 (70% mocy, uśpienie)

    function interpolateColor(c1, c2, factor) {
        let result = [];
        for (let i = 0; i < 3; i++) {
            result[i] = Math.round(c1[i] + factor * (c2[i] - c1[i]));
        }
        return `rgb(${result[0]}, ${result[1]}, ${result[2]})`;
    }

    function updateSimulation() {
        const factor = slider.value / 100; // 0.0 do 1.0

        // Obliczenia parametrów fizycznych
        // Zyski rosną od 0 do 100%
        valSun.textContent = Math.round(factor * 100);
        
        // Temperatura wzrasta od 20.0 do 22.0 °C
        const currentTemp = 20.0 + (factor * 2.0);
        valRoom.textContent = currentTemp.toFixed(1);
        
        // Moc podłogi spada od 100% do 70% (dławienie o 30%)
        const currentPower = 100 - (factor * 30);
        valPower.textContent = Math.round(currentPower);

        // --- Aktualizacja Wizualna SVG ---
        
        // Słońce rozjaśnia się bez transformacji promieni
        sunGroup.setAttribute('opacity', 0.2 + (factor * 0.8));

        // Termometr idzie do góry (y maleje, height rośnie)
        // Baza y=80, h=70 (20 st). Max y=40, h=110 (22 st)
        const newY = 80 - (factor * 40);
        const newH = 70 + (factor * 40);
        thermFill.setAttribute('y', newY);
        thermFill.setAttribute('height', newH);
        
        // Zmiana koloru termometru i rur w miarę samoregulacji
        // Termometr staje się cieplejszy (pomarańcz) od słońca, a rury stygną
        const pipeColor = interpolateColor(colorHot, colorCool, factor);
        
        pipes.forEach(pipe => {
            pipe.setAttribute('fill', pipeColor);
        });
        
        colorPower.style.color = pipeColor;
    }

    // Inicjalizacja nasłuchiwania
    slider.addEventListener('input', updateSimulation);
    
    // Uruchomienie stanu zero
    updateSimulation();
});
</script>



<style>
:root {
    --rk-sp-dark: #0f172a;
    --rk-sp-brand: #0284c7;
    --rk-sp-brand-light: #f0f9ff;
    --rk-sp-accent: #38bdf8;
    --rk-sp-eco: #10b981;
    --rk-sp-warn: #f59e0b;
    --rk-sp-text: #475569;
    --rk-sp-border: #e2e8f0;
    --rk-sp-bg: #ffffff;
}

.rk-sp-wrap {
    max-width: 920px;
    margin: 50px auto;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: var(--rk-sp-bg);
    border-radius: 28px;
    box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.12);
    border: 1px solid #bae6fd;
    overflow: hidden;
}

/* Header */
.rk-sp-header {
    padding: 45px 50px 35px;
    background: linear-gradient(180deg, #f0f9ff 0%, #ffffff 100%);
    border-bottom: 1px solid var(--rk-sp-border);
}

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

.rk-sp-formula {
    background: var(--rk-sp-dark);
    color: #cbd5e1;
    padding: 22px 25px;
    border-radius: 16px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 14px;
    border-left: 5px solid var(--rk-sp-brand);
    margin-top: 20px;
}

.rk-sp-formula .hl { color: var(--rk-sp-eco); font-weight: 800; }

/* Dashboard */
.rk-sp-dashboard {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-sp-selector {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-bottom: 35px;
}

.rk-sp-card {
    background: #ffffff;
    border: 2px solid var(--rk-sp-border);
    padding: 20px;
    border-radius: 20px;
    cursor: pointer;
    text-align: center;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-sp-card.active {
    border-color: var(--rk-sp-brand);
    background: var(--rk-sp-brand-light);
    box-shadow: 0 10px 15px -3px rgba(2, 132, 199, 0.15);
}

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

.rk-sp-grid {
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: 30px;
    align-items: start;
}

/* SVG Visualization */
.rk-sp-visual {
    background: #ffffff;
    border: 1px solid var(--rk-sp-border);
    border-radius: 24px;
    padding: 35px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.02);
}

.rk-svg-main { width: 100%; height: auto; display: block; }
.layer-text { font-size: 8px; font-weight: 700; fill: #94a3b8; text-transform: uppercase; }
.pipe-anim { transition: opacity 0.4s ease; }

/* Stats */
.rk-sp-stats {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-stat-row {
    background: #ffffff;
    border: 1px solid var(--rk-sp-border);
    padding: 18px 22px;
    border-radius: 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: all 0.3s ease;
}

.rk-stat-row:hover { border-color: var(--rk-sp-accent); transform: translateX(5px); }

.rk-stat-info h4 { margin: 0; font-size: 12px; color: #64748b; text-transform: uppercase; letter-spacing: 0.5px; }
.rk-stat-info p { margin: 4px 0 0 0; font-size: 11px; color: #94a3b8; }
.rk-stat-num { font-size: 24px; font-weight: 900; color: var(--rk-sp-dark); display: block; }

@media (max-width: 850px) {
    .rk-sp-grid { grid-template-columns: 1fr; }
    .rk-sp-selector { grid-template-columns: 1fr; }
}
</style>

<div class="rk-sp-wrap" id="rk-spacing-app">
    
    <div class="rk-sp-header">
        <h2>Jaki rozstaw rur jest optymalny przy niskim zapotrzebowaniu na ciepło?</h2>
        <p>W domach pasywnych (10-15 W/m²) optymalny rozstaw to <strong>15 cm lub 20 cm</strong>. Zapewnia to idealne przepływy dla pompy ciepła i eliminuje zbędne koszty materiału.</p>
        <div class="rk-sp-formula">
            // Bilans hydrauliczny pętli 15 m²<br>
            Moc (Q) = 225 W | Przepływ (m) = <span class="hl">0,64 l/min</span>
        </div>
    </div>

    <div class="rk-sp-dashboard">
        <div class="rk-sp-selector">
            <div class="rk-sp-card active" data-mode="1">
                <span class="rk-sp-label">Standard WT2021</span>
                <span class="rk-sp-val">co 10 cm</span>
            </div>
            <div class="rk-sp-card" data-mode="2">
                <span class="rk-sp-label">Energooszczędny</span>
                <span class="rk-sp-val">co 15 cm</span>
            </div>
            <div class="rk-sp-card" data-mode="3">
                <span class="rk-sp-label">Standard Pasywny</span>
                <span class="rk-sp-val">co 20 cm</span>
            </div>
        </div>

        <div class="rk-sp-grid">
            <div class="rk-sp-visual">
                <svg class="rk-svg-main" viewBox="0 0 240 160">
                    <defs>
                        <linearGradient id="g-pipe" x1="0%" y1="0%" x2="0%" y2="100%">
                            <stop offset="0%" style="stop-color:#38bdf8" />
                            <stop offset="100%" style="stop-color:#0284c7" />
                        </linearGradient>
                    </defs>
                    <rect x="10" y="40" width="220" height="60" fill="#f1f5f9" stroke="#cbd5e1" stroke-width="1"/>
                    <text x="20" y="55" class="layer-text">Wylewka Anhydrytowa (60mm)</text>
                    <rect x="10" y="100" width="220" height="50" fill="#e2e8f0" stroke="#cbd5e1" stroke-width="1"/>
                    <text x="20" y="115" class="layer-text">Izolacja EPS 200 (200mm)</text>

                    <g id="pipes">
                        <circle cx="30" cy="85" r="8" fill="url(#g-pipe)" stroke="#fff" stroke-width="2"/>
                        <circle cx="65" cy="85" r="8" fill="url(#g-pipe)" stroke="#fff" stroke-width="2" class="pipe-anim p10"/>
                        <circle cx="100" cy="85" r="8" fill="url(#g-pipe)" stroke="#fff" stroke-width="2" class="pipe-anim p15"/>
                        <circle cx="135" cy="85" r="8" fill="url(#g-pipe)" stroke="#fff" stroke-width="2" class="pipe-anim p10"/>
                        <!-- Ta rura (170) jest kluczowa dla widoku 20cm -->
                        <circle cx="170" cy="85" r="8" fill="url(#g-pipe)" stroke="#fff" stroke-width="2" class="pipe-anim p15 p20"/>
                        <circle cx="205" cy="85" r="8" fill="url(#g-pipe)" stroke="#fff" stroke-width="2" class="pipe-anim p10"/>
                    </g>
                    
                    <path d="M 30 35 L 65 35 M 30 30 L 30 40 M 65 30 L 65 40" stroke="#94a3b8" stroke-width="1.5" id="m-line"/>
                    <text x="47.5" y="25" text-anchor="middle" font-size="10" font-weight="900" fill="#0284c7" id="m-text">10 cm</text>
                </svg>
            </div>

            <div class="rk-sp-stats">
                <div class="rk-stat-row">
                    <div class="rk-stat-info"><h4>Długość rur</h4><p>Dom 150 m²</p></div>
                    <div class="rk-stat-value"><span class="rk-stat-num" id="s-meters">1500</span><span class="rk-stat-unit">mb</span></div>
                </div>
                <div class="rk-stat-row" style="border-left: 5px solid var(--rk-sp-eco);">
                    <div class="rk-stat-info"><h4>Koszt materiału</h4><p id="s-label">Baza porównawcza</p></div>
                    <div class="rk-stat-value"><span class="rk-stat-num" id="s-price">6750</span><span class="rk-stat-unit">PLN</span></div>
                </div>
                <div class="rk-stat-row">
                    <div class="rk-stat-info"><h4>Opory</h4><p>Hydraulika</p></div>
                    <div class="rk-stat-value"><span class="rk-stat-num" id="s-hydro" style="font-size:18px;color:var(--rk-sp-warn)">Wysokie</span></div>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-spacing-app').innerHTML = '<div style="padding:40px;text-align:center;background:#0f172a;color:#ef4444;border-radius:20px;font-weight:900;">🛡️ MODUŁ CHRONIONY</div>';
        return;
    }

    const cards = document.querySelectorAll('.rk-sp-card');
    const p10 = document.querySelectorAll('.p10'), p15 = document.querySelectorAll('.p15'), p20 = document.querySelectorAll('.p20');
    const mLine = document.getElementById('m-line'), mText = document.getElementById('m-text');
    const sMeters = document.getElementById('s-meters'), sPrice = document.getElementById('s-price'), sHydro = document.getElementById('s-hydro'), sLabel = document.getElementById('s-label');

    cards.forEach(card => {
        card.addEventListener('click', function() {
            cards.forEach(c => c.classList.remove('active'));
            this.classList.add('active');
            const mode = this.getAttribute('data-mode');

            if (mode === '1') {
                p10.forEach(p => p.style.opacity = '1'); p15.forEach(p => p.style.opacity = '1');
                mLine.setAttribute('d', 'M 30 35 L 65 35 M 30 30 L 30 40 M 65 30 L 65 40');
                mText.textContent = '10 cm'; mText.setAttribute('x', '47.5');
                update('1500', '6750', 'Wysokie', '#f59e0b', 'Baza porównawcza');
            } else if (mode === '2') {
                p10.forEach(p => p.style.opacity = '0'); p15.forEach(p => p.style.opacity = '1');
                mLine.setAttribute('d', 'M 30 35 L 100 35 M 30 30 L 30 40 M 100 30 L 100 40');
                mText.textContent = '15 cm'; mText.setAttribute('x', '65');
                update('1000', '4500', 'Optymalne', '#0284c7', 'Oszczędzasz 2250 PLN');
            } else {
                p10.forEach(p => p.style.opacity = '0'); p15.forEach(p => p.style.opacity = '0');
                p20.forEach(p => p.style.opacity = '1'); // Pokazuje rurę na 20 cm
                mLine.setAttribute('d', 'M 30 35 L 170 35 M 30 30 L 30 40 M 170 30 L 170 40');
                mText.textContent = '20 cm'; mText.setAttribute('x', '100');
                update('900', '4050', 'Minimalne', '#10b981', 'Oszczędzasz 2700 PLN');
            }
        });
    });

    function update(m, p, h, c, l) {
        sMeters.textContent = m; sPrice.textContent = p; sHydro.textContent = h; sHydro.style.color = c; sLabel.textContent = l;
    }
});
</script>



<style>
:root {
    --rk-sys-dark: #0f172a;
    --rk-sys-wet: #f97316;     /* Pomarańcz - akumulacja, ciepło */
    --rk-sys-wet-light: #fff7ed;
    --rk-sys-dry: #06b6d4;     /* Cyjan - szybkość, aluminium */
    --rk-sys-dry-light: #ecfeff;
    --rk-sys-text: #334155;
    --rk-sys-muted: #64748b;
    --rk-sys-border: #cbd5e1;
    --rk-sys-bg: #ffffff;
}

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

/* Sekcja Treści - Akapit */
.rk-sys-content {
    padding: 40px 45px 30px;
    background: linear-gradient(to bottom right, #f8fafc, #ffffff);
    border-bottom: 1px solid var(--rk-sys-border);
}

.rk-sys-content h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-sys-dark);
    margin: 0 0 20px 0;
    line-height: 1.3;
}

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

.rk-sys-text a {
    color: #2563eb;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid #bfdbfe;
    transition: all 0.3s;
}

.rk-sys-text a:hover {
    background: #dbeafe;
    border-color: #2563eb;
}

.rk-sys-note {
    background: #f1f5f9;
    border-left: 4px solid var(--rk-sys-dark);
    padding: 15px 20px;
    margin: 20px 0;
    border-radius: 0 12px 12px 0;
    font-size: 14px;
    color: var(--rk-sys-dark);
    font-weight: 600;
}

/* Interaktywny Symulator */
.rk-sys-interactive {
    padding: 40px 45px;
}

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

/* Unikalny Przełącznik (Toggle) */
.rk-toggle-station {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    background: #f8fafc;
    padding: 20px;
    border-radius: 100px;
    border: 1px solid var(--rk-sys-border);
    margin-bottom: 40px;
}

.rk-toggle-label {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--rk-sys-muted);
    transition: color 0.3s;
    cursor: pointer;
}

.rk-toggle-label.active-wet { color: var(--rk-sys-wet); }
.rk-toggle-label.active-dry { color: var(--rk-sys-dry); }

.rk-main-switch {
    position: relative;
    width: 80px;
    height: 40px;
    background: var(--rk-sys-wet);
    border-radius: 40px;
    cursor: pointer;
    transition: background 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);
}

.rk-main-switch.mode-dry {
    background: var(--rk-sys-dry);
}

.rk-switch-knob {
    position: absolute;
    top: 4px;
    left: 4px;
    width: 32px;
    height: 32px;
    background: #ffffff;
    border-radius: 50%;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-main-switch.mode-dry .rk-switch-knob {
    transform: translateX(40px);
}

/* Dashboard SVG + Kafelki */
.rk-sys-dashboard {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: stretch;
}

/* Kontener SVG */
.rk-svg-box {
    background: #ffffff;
    border-radius: 20px;
    border: 1px solid var(--rk-sys-border);
    padding: 25px;
    display: flex;
    justify-content: center;
    align-items: center;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
}

.rk-svg-cross-section {
    width: 100%;
    max-width: 250px;
}

/* Warstwy SVG */
.layer-screed { transition: opacity 0.4s; }
.layer-lamella { transition: opacity 0.4s; }
.wave-heat { fill: none; stroke-linecap: round; }

/* Animacje Bezwładności */
.state-wet .wave-heat { 
    stroke: var(--rk-sys-wet); 
    stroke-width: 6; 
    animation: flowUp 3s infinite linear; 
}
.state-dry .wave-heat { 
    stroke: var(--rk-sys-dry); 
    stroke-width: 3; 
    animation: flowUp 0.8s infinite linear; 
}

@keyframes flowUp {
    0% { transform: translateY(10px); opacity: 0; }
    50% { opacity: 1; }
    100% { transform: translateY(-30px); opacity: 0; }
}

/* Kafelki Danych (Grid) */
.rk-sys-tiles {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-tile {
    background: #ffffff;
    border: 1px solid var(--rk-sys-border);
    border-radius: 14px;
    padding: 15px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    transition: all 0.3s;
}

.rk-tile h4 {
    margin: 0 0 5px 0;
    font-size: 11px;
    text-transform: uppercase;
    color: var(--rk-sys-muted);
    letter-spacing: 0.5px;
}

.rk-tile .val {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-sys-dark);
    margin-bottom: 2px;
    line-height: 1.2;
}

.rk-tile .desc {
    font-size: 12px;
    color: var(--rk-sys-text);
}

/* Mobilna responsywność */
@media (max-width: 768px) {
    .rk-sys-content, .rk-sys-interactive { padding: 25px 20px; }
    .rk-toggle-station { flex-direction: column; gap: 15px; border-radius: 20px; padding: 15px; }
    .rk-sys-dashboard { grid-template-columns: 1fr; }
    .rk-sys-tiles { grid-template-columns: 1fr; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/"
    },
    "headline": "System mokry czy suchy – co wybrać do domu pasywnym?",
    "description": "Porównanie systemów ogrzewania podłogowego. System mokry (anhydryt, wysoka bezwładność, domy murowane) kontra system suchy (lamele aluminiowe, niska bezwładność, domy szkieletowe). Wymagania izolacji EPS.",
    "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-03-05",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/#dataset",
    "name": "Parametry Techniczne: Wylewka Anhydrytowa vs Sucha Zabudowa",
    "description": "Tabela porównawcza parametrów przewodzenia ciepła, grubości wylewki oraz izolacji wymaganej w budownictwie pasywnym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wylewka anhydrytowa ogrzewanie podłogowe",
      "system suchy podłogówki",
      "bezwładność cieplna wylewki",
      "grubość styropianu dom pasywny",
      "lamele aluminiowe system suchy"
    ],
    "measurementTechnique": "Analiza współczynnika przewodzenia ciepła lambda (W/mK) oraz oporu cieplnego R dla jastrychów i izolacji EPS na gruncie.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Anhydryt (System Mokry): Lambda 1,6–1,8 W/(m·K), grubość 35-45 mm nad rurą, wysoka akumulacja.",
        "System Suchy (Lamele): Błyskawiczna reakcja, dedykowane do domów szkieletowych.",
        "Izolacja dom pasywny: 20-25 cm EPS 100/200, Lambda = 0,031 W/(m·K), Opór R = 6,0-8,0 (m²·K)/W."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/#webapp",
    "name": "Symulator Bezwładności Termicznej Posadzki",
    "description": "Interaktywna animacja SVG obrazująca różnicę w prędkości przekazywania ciepła (reakcji na zyski słoneczne) pomiędzy ciężkim systemem mokrym a lekkim systemem suchym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-sys-container" id="sys-simulator-app">
    
    <div class="rk-sys-content">
        <h2>System mokry czy suchy – co wybrać do domu pasywnego?</h2>
        <p class="rk-sys-text">
            W domach pasywnych o konstrukcji ciężkiej (murowanej) zalecam <a href="https://projekt-ogrzewania.pl/czym-jest-system-mokry-w-wodnym-ogrzewaniu-podlogowym/">system mokry</a> z <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewką anhydrytową</a> o grubości 35–45 mm nad rurą, natomiast w <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/">budownictwie szkieletowym</a> jedynym rozsądnym wyborem jest <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">system suchy</a> o niskiej bezwładności. Wylewka anhydrytowa ma współczynnik przewodzenia ciepła lambda 1,6–1,8 W/(m·K), co jest wartością znacznie lepszą niż w przypadku jastrychu cementowego lambda 1,1–1,2 W/(m·K).
        </p>
        <p class="rk-sys-text">
            Niska <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplna</a> systemu suchego (płyty systemowe z lamelami aluminiowymi) pozwala na szybszą reakcję na zyski ciepła od słońca, co w domach pasywnych z dużymi przeszkleniami od południa jest kluczowe. System mokry z kolei działa jak akumulator energii.
        </p>
        <div class="rk-sys-note">
            <strong>Parametry techniczne izolacji:</strong> Pod ogrzewaniem podłogowym na gruncie w domu pasywnym wymagane jest minimum <strong>20–25 cm <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/" style="color:var(--rk-sys-dark); text-decoration:underline;">styropianu EPS 100 lub EPS 200</a></strong> o współczynniku lambda = 0,031 W/(m·K), aby opór cieplny izolacji R wynosił minimum 6,0–8,0 (m²·K)/W.
        </div>
    </div>

    <div class="rk-sys-interactive">
        <h3>Symulator Bezwładności Termicznej</h3>
        
        <div class="rk-toggle-station">
            <div class="rk-toggle-label active-wet" id="lbl-wet" onclick="document.getElementById('rk-mode-switch').click()">
                System Mokry (Anhydryt)
            </div>
            <div class="rk-main-switch" id="rk-mode-switch">
                <div class="rk-switch-knob"></div>
            </div>
            <div class="rk-toggle-label" id="lbl-dry" onclick="document.getElementById('rk-mode-switch').click()">
                System Suchy (Lamele)
            </div>
        </div>

        <div class="rk-sys-dashboard">
            <!-- Animacja SVG Przekroju -->
            <div class="rk-svg-box state-wet" id="svg-anim-state">
                <svg class="rk-svg-cross-section" viewBox="0 0 200 150">
                    <!-- Baza: Izolacja EPS 200 (Zawsze widoczna) -->
                    <rect x="20" y="100" width="160" height="40" fill="#e2e8f0" rx="4"/>
                    <text x="100" y="125" text-anchor="middle" fill="#64748b" font-size="12" font-weight="bold">EPS 200 (Izolacja)</text>

                    <!-- System Mokry (Wylewka Anhydrytowa) -->
                    <g class="layer-screed" id="svg-screed">
                        <rect x="20" y="40" width="160" height="60" fill="#cbd5e1" rx="4"/>
                    </g>

                    <!-- System Suchy (Płyta z Lamelem) -->
                    <g class="layer-lamella" id="svg-lamella" opacity="0">
                        <rect x="20" y="70" width="160" height="30" fill="#f8fafc" rx="4" stroke="#cbd5e1" stroke-width="2"/>
                        <!-- Aluminiowe Lamele -->
                        <path d="M 20 70 L 180 70 M 20 75 L 180 75" stroke="#06b6d4" stroke-width="3"/>
                    </g>

                    <!-- Rury Grzewcze -->
                    <g fill="#ef4444">
                        <circle cx="50" cy="85" r="8"/>
                        <circle cx="100" cy="85" r="8"/>
                        <circle cx="150" cy="85" r="8"/>
                    </g>

                    <!-- Fale Ciepła (Animacja CSS definiuje prędkość) -->
                    <path class="wave-heat" d="M 50 70 Q 60 40 50 10" />
                    <path class="wave-heat" d="M 100 70 Q 110 40 100 10" style="animation-delay: 0.3s;" />
                    <path class="wave-heat" d="M 150 70 Q 160 40 150 10" style="animation-delay: 0.6s;" />
                </svg>
            </div>

            <!-- Dynamiczne Kafelki Danych -->
            <div class="rk-sys-tiles">
                <div class="rk-tile" id="tile-lambda">
                    <h4>Przewodzenie (Lambda)</h4>
                    <div class="val" style="color: var(--rk-sys-wet);">1,6 - 1,8</div>
                    <div class="desc">W/(m·K) - Anhydryt</div>
                </div>
                <div class="rk-tile" id="tile-inertia">
                    <h4>Bezwładność Cieplna</h4>
                    <div class="val" style="color: var(--rk-sys-wet);">Wysoka</div>
                    <div class="desc">Działa jak akumulator</div>
                </div>
                <div class="rk-tile" id="tile-thick">
                    <h4>Wysokość Zabudowy</h4>
                    <div class="val">35 - 45 mm</div>
                    <div class="desc">Zalewane nad rurą</div>
                </div>
                <div class="rk-tile" id="tile-build">
                    <h4>Konstrukcja Budynku</h4>
                    <div class="val">Murowana</div>
                    <div class="desc">Wysoka nośność stropu</div>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Anti-Theft) bez 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('sys-simulator-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 25px; text-align: center; background: #f8fafc; border: 2px solid #ef4444; border-radius: 12px; font-family: sans-serif;">
                    <div style="font-size: 32px; margin-bottom: 10px;">⚠️</div>
                    <div style="font-size: 15px; font-weight: bold; color: #dc2626; margin-bottom: 8px;">Blokada Praw Autorskich</div>
                    <div style="color: #475569; font-size: 13px; line-height: 1.5;">
                        Interaktywny kalkulator systemów (mokry/suchy) został zablokowany, ponieważ domena nie posiada licencji na renderowanie kodu Projekt-Ogrzewania.pl.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Przełącznika i Aktualizacji Danych
    const switchBtn = document.getElementById('rk-mode-switch');
    const lblWet = document.getElementById('lbl-wet');
    const lblDry = document.getElementById('lbl-dry');
    const svgState = document.getElementById('svg-anim-state');
    
    // Warstwy SVG
    const svgScreed = document.getElementById('svg-screed');
    const svgLamella = document.getElementById('svg-lamella');

    // Kafelki
    const tileLambda = document.getElementById('tile-lambda');
    const tileInertia = document.getElementById('tile-inertia');
    const tileThick = document.getElementById('tile-thick');
    const tileBuild = document.getElementById('tile-build');

    let isDry = false;

    function updateCard(card, valText, descText, color = 'var(--rk-sys-dark)') {
        const valEl = card.querySelector('.val');
        const descEl = card.querySelector('.desc');
        
        valEl.style.opacity = 0;
        descEl.style.opacity = 0;
        
        setTimeout(() => {
            valEl.textContent = valText;
            valEl.style.color = color;
            descEl.textContent = descText;
            
            valEl.style.opacity = 1;
            descEl.style.opacity = 1;
        }, 150);
    }

    switchBtn.addEventListener('click', () => {
        isDry = !isDry;

        if (isDry) {
            // Przejście na System Suchy
            switchBtn.classList.add('mode-dry');
            lblWet.classList.remove('active-wet');
            lblDry.classList.add('active-dry');
            
            // Zmiana animacji SVG
            svgState.classList.remove('state-wet');
            svgState.classList.add('state-dry');
            svgScreed.style.opacity = 0;
            svgLamella.style.opacity = 1;

            // Aktualizacja Danych
            updateCard(tileLambda, 'Aluminium', 'Doskonałe przewodzenie', 'var(--rk-sys-dry)');
            updateCard(tileInertia, 'Niska', 'Błyskawiczna reakcja', 'var(--rk-sys-dry)');
            updateCard(tileThick, 'Minimalna', 'Tylko grubość płyty', 'var(--rk-sys-dark)');
            updateCard(tileBuild, 'Szkieletowa', 'Lekka konstrukcja', 'var(--rk-sys-dark)');
            
        } else {
            // Powrót do Systemu Mokrego
            switchBtn.classList.remove('mode-dry');
            lblDry.classList.remove('active-dry');
            lblWet.classList.add('active-wet');

            // Zmiana animacji SVG
            svgState.classList.remove('state-dry');
            svgState.classList.add('state-wet');
            svgLamella.style.opacity = 0;
            svgScreed.style.opacity = 1;

            // Aktualizacja Danych
            updateCard(tileLambda, '1,6 - 1,8', 'W/(m·K) - Anhydryt', 'var(--rk-sys-wet)');
            updateCard(tileInertia, 'Wysoka', 'Działa jak akumulator', 'var(--rk-sys-wet)');
            updateCard(tileThick, '35 - 45 mm', 'Zalewane nad rurą', 'var(--rk-sys-dark)');
            updateCard(tileBuild, 'Murowana', 'Wysoka nośność stropu', 'var(--rk-sys-dark)');
        }
    });
});
</script>



<style>
:root {
    --rk-comp-dark: #1e293b;
    --rk-comp-brand: #3b82f6;
    --rk-comp-wet: #8b5cf6;     /* Fiolet dla Anhydrytu (masa, pojemność) */
    --rk-comp-wet-light: #f5f3ff;
    --rk-comp-dry: #10b981;     /* Zielony dla Suchego (lekkość, eko) */
    --rk-comp-dry-light: #ecfdf5;
    --rk-comp-text: #475569;
    --rk-comp-border: #e2e8f0;
    --rk-comp-bg: #ffffff;
}

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

/* Nagłówek i Tekst SEO */
.rk-comp-header {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
    border-bottom: 1px solid var(--rk-comp-border);
}

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

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

.rk-comp-text a {
    color: var(--rk-comp-brand);
    font-weight: 700;
    text-decoration: none;
    box-shadow: inset 0 -2px 0 #bfdbfe;
    transition: background 0.3s, box-shadow 0.3s;
}

.rk-comp-text a:hover {
    background: #dbeafe;
    box-shadow: inset 0 -10px 0 #bfdbfe;
}

/* Interaktywny Komparator */
.rk-comp-interactive {
    padding: 40px 45px;
}

.rk-comp-interactive h3 {
    text-align: center;
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-comp-dark);
    margin: 0 0 30px 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Przełącznik Systemów (Taby) */
.rk-comp-tabs {
    display: flex;
    background: #f1f5f9;
    padding: 8px;
    border-radius: 16px;
    margin-bottom: 40px;
    gap: 8px;
}

.rk-comp-tab {
    flex: 1;
    text-align: center;
    padding: 16px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-comp-tab.active[data-system="wet"] {
    background: #ffffff;
    color: var(--rk-comp-wet);
    box-shadow: 0 4px 10px rgba(139, 92, 246, 0.15);
}

.rk-comp-tab.active[data-system="dry"] {
    background: #ffffff;
    color: var(--rk-comp-dry);
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.15);
}

.rk-tab-icon {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e2e8f0;
    color: #fff;
    transition: background 0.3s;
}

.rk-comp-tab.active[data-system="wet"] .rk-tab-icon { background: var(--rk-comp-wet); }
.rk-comp-tab.active[data-system="dry"] .rk-tab-icon { background: var(--rk-comp-dry); }

/* Dashboard: SVG i Kafelki Parametrów */
.rk-comp-dashboard {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 30px;
    align-items: start;
}

/* SVG Wizualizacja */
.rk-svg-panel {
    background: #ffffff;
    border: 1px solid var(--rk-comp-border);
    border-radius: 16px;
    padding: 20px;
    text-align: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-svg-stage {
    width: 100%;
    max-width: 180px;
}

.anim-thickness { transition: height 0.4s ease, y 0.4s ease, fill 0.4s ease; }
.anim-weight-text { transition: opacity 0.3s; }
.anim-scale { transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1); transform-origin: 100px 150px; }

/* Grid Kafelków (Zastępstwo Tabeli) */
.rk-comp-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

.rk-param-card {
    background: #ffffff;
    border: 1px solid var(--rk-comp-border);
    border-radius: 14px;
    padding: 18px 20px;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-param-card h4 {
    margin: 0 0 6px 0;
    font-size: 11px;
    text-transform: uppercase;
    color: #94a3b8;
    letter-spacing: 0.5px;
}

.rk-param-val {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-comp-dark);
    margin-bottom: 4px;
    transition: color 0.3s;
}

.rk-param-norm {
    font-size: 11px;
    color: #64748b;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 4px;
}

.rk-param-norm::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #cbd5e1;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-comp-header, .rk-comp-interactive { padding: 30px 25px; }
    .rk-comp-dashboard { grid-template-columns: 1fr; }
    .rk-comp-tabs { flex-direction: column; }
    .rk-svg-panel { margin-bottom: 20px; }
}
@media (max-width: 480px) {
    .rk-comp-grid { grid-template-columns: 1fr; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/#article-porownanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/"
    },
    "headline": "Porównanie parametrów systemów podłogowych w domu pasywnym",
    "description": "Szczegółowe zestawienie parametrów technicznych: wylewka anhydrytowa kontra system suchy. Analiza przewodności cieplnej, grubości zabudowy i wagi stropu.",
    "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-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/#dataset-porownanie",
    "name": "Zestawienie Parametrów: System Mokry vs System Suchy",
    "description": "Tabela analityczna zestawiająca kluczowe różnice fizyczne pomiędzy systemami grzewczymi stosowanymi w budownictwie pasywnym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wylewka anhydrytowa ogrzewanie podłogowe",
      "system suchy ogrzewania podłogowego",
      "przewodność cieplna lambda",
      "bezwładność cieplna posadzki",
      "waga systemu ogrzewania podłogowego"
    ],
    "measurementTechnique": "Kompilacja danych laboratoryjnych ITB, wytycznych producentów oraz normy europejskiej PN-EN 1264 w odniesieniu do wydajności termicznej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System Mokry (Anhydryt): Przewodność 1,8 W/(mK), Waga ~120 kg/m2, Grubość 55-65 mm, Bezwładność wysoka (3-5 h).",
        "System Suchy (Lekki): Przewodność 0,4-0,5 W/(mK), Waga ~30 kg/m2, Grubość 25-30 mm, Bezwładność niska (30-60 min)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/#webapp-porownanie",
    "name": "Interaktywny Komparator Systemów Podłogowych",
    "description": "Cyfrowe narzędzie pozwalające inwestorom na wizualne i techniczne porównanie wagi, grubości i bezwładności wylewki mokrej względem lekkiej suchej zabudowy.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript, SVG",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-comp-wrap" id="komparator-app">
    
    <div class="rk-comp-header">
        <h2>Porównanie parametrów systemów w domu pasywnym</h2>
        <p class="rk-comp-text">
            Zrozumienie różnic fizycznych między <a href="https://projekt-ogrzewania.pl/czym-jest-system-mokry-w-wodnym-ogrzewaniu-podlogowym/">systemem mokrym (wylewka anhydrytowa)</a> a <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">systemem suchym (lekka zabudowa)</a> jest fundamentem poprawnego zaprojektowania ogrzewania dla domu pasywnego. Poniższy interaktywny komparator obrazuje, jak masa, <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplna</a> oraz grubość wpływają na parametry pracy instalacji w świetle normy PN-EN 1264.
        </p>
    </div>

    <div class="rk-comp-interactive">
        <h3>Zestawienie Technologiczne</h3>
        
        <!-- Przełącznik -->
        <div class="rk-comp-tabs" id="rk-tabs">
            <div class="rk-comp-tab active" data-system="wet">
                <div class="rk-tab-icon">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"/></svg>
                </div>
                System Mokry (Anhydryt)
            </div>
            <div class="rk-comp-tab" data-system="dry">
                <div class="rk-tab-icon">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/></svg>
                </div>
                System Suchy (Lekki)
            </div>
        </div>

        <div class="rk-comp-dashboard">
            <!-- SVG Wizualizacja Grubości i Wagi -->
            <div class="rk-svg-panel">
                <svg class="rk-svg-stage" viewBox="0 0 200 200">
                    <!-- Szala Wagi -->
                    <path d="M 100 150 L 100 190 M 60 190 L 140 190" stroke="#94a3b8" stroke-width="4" stroke-linecap="round"/>
                    
                    <g class="anim-scale" id="svg-scale">
                        <!-- Podstawa szali -->
                        <path d="M 20 150 L 180 150" stroke="#64748b" stroke-width="4" stroke-linecap="round"/>
                        
                        <!-- Przekrój posadzki na szali -->
                        <rect x="50" y="80" width="100" height="60" fill="var(--rk-comp-wet)" rx="4" id="svg-floor-layer" class="anim-thickness" />
                        
                        <!-- Rury -->
                        <circle cx="70" cy="120" r="6" fill="#ffffff" />
                        <circle cx="100" cy="120" r="6" fill="#ffffff" />
                        <circle cx="130" cy="120" r="6" fill="#ffffff" />

                        <!-- Etykieta wagi -->
                        <rect x="75" y="40" width="50" height="24" rx="12" fill="#1e293b" />
                        <text x="100" y="56" text-anchor="middle" fill="#ffffff" font-size="12" font-weight="bold" id="svg-weight-text">120 kg</text>
                        <!-- Linia wskazująca -->
                        <line x1="100" y1="64" x2="100" y2="80" stroke="#1e293b" stroke-width="2" />
                    </g>
                </svg>
            </div>

            <!-- Karty Danych (Zastępują Tabelę) -->
            <div class="rk-comp-grid">
                <div class="rk-param-card">
                    <h4>Przewodność cieplna (λ)</h4>
                    <div class="rk-param-val" id="val-lambda" style="color: var(--rk-comp-wet);">1,8 W/(m·K)</div>
                    <div class="rk-param-norm">PN-EN 1264-4</div>
                </div>
                <div class="rk-param-card">
                    <h4>Wysokość zabudowy</h4>
                    <div class="rk-param-val" id="val-height">55–65 mm</div>
                    <div class="rk-param-norm">Dane producenta</div>
                </div>
                <div class="rk-param-card">
                    <h4>Bezwładność cieplna</h4>
                    <div class="rk-param-val" id="val-inertia">Wysoka (3-5 h)</div>
                    <div class="rk-param-norm">Badania ITB</div>
                </div>
                <div class="rk-param-card">
                    <h4>Waga systemu</h4>
                    <div class="rk-param-val" id="val-weight">~100–120 kg/m²</div>
                    <div class="rk-param-norm">Obciążenia stropu</div>
                </div>
                <div class="rk-param-card" style="grid-column: 1 / -1;">
                    <h4>Max. Temp. Zasilania</h4>
                    <div class="rk-param-val" id="val-temp" style="color: #ef4444;">55°C (niezalecana)</div>
                    <div class="rk-param-norm">PN-EN 1264</div>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe bez tagów H
    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('komparator-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 30px; text-align: center; background: #0f172a; border: 2px solid #ef4444; border-radius: 16px; font-family: sans-serif;">
                    <div style="font-size: 36px; margin-bottom: 10px;">⚠️</div>
                    <div style="font-size: 16px; font-weight: 900; color: #ef4444; margin-bottom: 10px; text-transform: uppercase;">Zablokowano Renderowanie</div>
                    <div style="color: #cbd5e1; font-size: 14px; line-height: 1.6;">
                        Interaktywna tabela porównawcza jest objęta prawami autorskimi serwisu Projekt-Ogrzewania.pl. Uruchomienie na nieautoryzowanej domenie zostało przerwane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Komparatora
    const tabs = document.querySelectorAll('.rk-comp-tab');
    
    // SVG Elements
    const svgLayer = document.getElementById('svg-floor-layer');
    const svgWeight = document.getElementById('svg-weight-text');
    const svgScale = document.getElementById('svg-scale');

    // DOM Cards
    const valLambda = document.getElementById('val-lambda');
    const valHeight = document.getElementById('val-height');
    const valInertia = document.getElementById('val-inertia');
    const valWeight = document.getElementById('val-weight');
    const valTemp = document.getElementById('val-temp');

    function updateCard(element, htmlContent, color = 'var(--rk-comp-dark)') {
        element.style.opacity = '0';
        setTimeout(() => {
            element.innerHTML = htmlContent;
            element.style.color = color;
            element.style.opacity = '1';
        }, 150);
    }

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

            const system = this.getAttribute('data-system');

            if (system === 'wet') {
                // SVG Update (Ciężki/Mokry)
                svgLayer.setAttribute('height', '60');
                svgLayer.setAttribute('y', '80');
                svgLayer.setAttribute('fill', 'var(--rk-comp-wet)');
                svgScale.style.transform = 'rotate(5deg) translateY(5px)';
                
                svgWeight.style.opacity = '0';
                setTimeout(() => {
                    svgWeight.textContent = '120 kg';
                    svgWeight.style.opacity = '1';
                }, 150);

                // Cards Update
                updateCard(valLambda, '1,8 W/(m·K)', 'var(--rk-comp-wet)');
                updateCard(valHeight, '55–65 mm');
                updateCard(valInertia, 'Wysoka (3-5 h)');
                updateCard(valWeight, '~100–120 kg/m²');
                updateCard(valTemp, '55°C (niezalecana)', '#ef4444');
                
            } else {
                // SVG Update (Lekki/Suchy)
                svgLayer.setAttribute('height', '30');
                svgLayer.setAttribute('y', '110'); // Obniżamy żeby rury były w środku
                svgLayer.setAttribute('fill', 'var(--rk-comp-dry)');
                svgScale.style.transform = 'rotate(-5deg) translateY(-5px)';
                
                svgWeight.style.opacity = '0';
                setTimeout(() => {
                    svgWeight.textContent = '30 kg';
                    svgWeight.style.opacity = '1';
                }, 150);

                // Cards Update
                updateCard(valLambda, '0,4–0,5 W/(m·K)', 'var(--rk-comp-dry)');
                updateCard(valHeight, '25–30 mm');
                updateCard(valInertia, 'Niska (30-60 min)');
                updateCard(valWeight, '~25–30 kg/m²');
                updateCard(valTemp, '45°C', 'var(--rk-comp-dry)');
            }
        });
    });

    // Inicjalizacja wizualna szali
    setTimeout(() => {
        svgScale.style.transform = 'rotate(5deg) translateY(5px)';
    }, 100);
});
</script>



<style>
:root {
    --rk-algo-dark: #0f172a;
    --rk-algo-brand: #0284c7;
    --rk-algo-brand-light: #e0f2fe;
    --rk-algo-accent: #0ea5e9;
    --rk-algo-blueprint: #1e293b; /* Tło projektu inżynierskiego */
    --rk-algo-line: #38bdf8; /* Kreska na projekcie */
    --rk-algo-text: #475569;
    --rk-algo-border: #cbd5e1;
    --rk-algo-bg: #ffffff;
}

.rk-algo-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', system-ui, sans-serif;
    background: var(--rk-algo-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.15);
    border: 1px solid #bae6fd;
    overflow: hidden;
}

/* Część Tekstowa - Algorytm */
.rk-algo-content {
    padding: 45px 50px 20px;
    background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
    border-bottom: 1px solid var(--rk-algo-border);
}

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

.rk-algo-desc {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-algo-text);
    margin: 0 0 25px 0;
}

.rk-algo-desc a {
    color: var(--rk-algo-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid #bae6fd;
    transition: all 0.3s;
}

.rk-algo-desc a:hover {
    background: var(--rk-algo-brand-light);
    border-color: var(--rk-algo-brand);
}

/* Stylizowane kroki algorytmu */
.rk-algo-steps {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
    margin-bottom: 25px;
}

.rk-step-card {
    background: #ffffff;
    border: 1px solid var(--rk-algo-border);
    border-radius: 12px;
    padding: 16px 20px;
    position: relative;
    padding-left: 55px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    transition: transform 0.3s, border-color 0.3s;
}

.rk-step-card:hover {
    transform: translateY(-2px);
    border-color: var(--rk-algo-accent);
}

.rk-step-num {
    position: absolute;
    left: 15px;
    top: 15px;
    width: 28px;
    height: 28px;
    background: var(--rk-algo-brand-light);
    color: var(--rk-algo-brand);
    font-weight: 900;
    font-size: 14px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-step-card h4 {
    margin: 0 0 5px 0;
    font-size: 14px;
    color: var(--rk-algo-dark);
    font-weight: 800;
}

.rk-step-card p {
    margin: 0;
    font-size: 12.5px;
    color: var(--rk-algo-text);
    line-height: 1.5;
}

.rk-math {
    display: inline-block;
    background: #f1f5f9;
    padding: 2px 6px;
    border-radius: 4px;
    font-family: 'Courier New', Courier, monospace;
    font-weight: 600;
    color: var(--rk-algo-dark);
    border: 1px solid #e2e8f0;
}

/* Sekcja Interaktywna - Blueprint */
.rk-algo-interactive {
    padding: 0;
    display: grid;
    grid-template-columns: 320px 1fr;
}

/* Panel Kontrolny */
.rk-controls-panel {
    background: #f8fafc;
    padding: 35px 30px;
    border-right: 1px solid var(--rk-algo-border);
}

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

.rk-control-group {
    margin-bottom: 25px;
}

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

.rk-control-label {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-algo-text);
    text-transform: uppercase;
}

.rk-control-value {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-algo-brand);
}

.rk-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 6px;
    border-radius: 3px;
    background: #cbd5e1;
    outline: none;
}

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

.rk-slider::-webkit-slider-thumb:active {
    transform: scale(1.15);
}

/* Wyniki Obliczeń w panelu */
.rk-result-box {
    background: #ffffff;
    border: 1px solid var(--rk-algo-border);
    border-radius: 12px;
    padding: 15px;
    margin-top: 30px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-result-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
}
.rk-result-item:last-child { margin-bottom: 0; padding-top: 10px; border-top: 1px dashed var(--rk-algo-border); }

.rk-result-title { font-size: 12px; color: var(--rk-algo-text); font-weight: 700; }
.rk-result-val { font-size: 18px; font-weight: 900; color: var(--rk-algo-dark); }
.rk-result-val.highlight { color: var(--rk-algo-brand); font-size: 22px; }

/* SVG Blueprint */
.rk-blueprint-panel {
    background: var(--rk-algo-blueprint);
    position: relative;
    padding: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-image: 
        linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px);
    background-size: 20px 20px;
}

.rk-svg-blueprint {
    width: 100%;
    max-width: 350px;
    height: auto;
    filter: drop-shadow(0 10px 15px rgba(0,0,0,0.3));
}

@keyframes drawPipe {
    to { stroke-dashoffset: 0; }
}

.blueprint-text {
    fill: #94a3b8;
    font-family: monospace;
    font-size: 10px;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-algo-content { padding: 30px 25px; }
    .rk-algo-steps { grid-template-columns: 1fr; }
    .rk-algo-interactive { grid-template-columns: 1fr; }
    .rk-controls-panel { border-right: none; border-bottom: 1px solid var(--rk-algo-border); }
    .rk-blueprint-panel { padding: 40px 20px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#article-algorytm",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/"
    },
    "headline": "Kalkulator algorytmu doboru rozstawu rur w domu pasywnym",
    "description": "Profesjonalny 6-etapowy algorytm obliczania gęstości strumienia cieplnego (q) i doboru rozstawu rur podłogowych na podstawie normy PN-EN 12831.",
    "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-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#dataset-algorytm",
    "name": "Zmienne Obliczeniowe Algorytmu Doboru Rozstawu Rur",
    "description": "Zestawienie zmiennych fizycznych wykorzystywanych w procesie projektowania instalacji płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projektowe obciążenie cieplne W",
      "gęstość strumienia cieplnego q",
      "temperatura zasilania T_z",
      "rozstaw rur dobór",
      "algorytm projektowania ogrzewania"
    ],
    "measurementTechnique": "Algorytm oparty o wzór Q = q * F_g oraz wytyczne strumienia z normy PN-EN 1264 z zachowaniem optymalnej różnicy temperatur Delta T = 5K.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Krok 1: Wskazanie standardu izolacji budynku q (W/m2).",
        "Krok 2: Wskazanie powierzchni grzewczej pomieszczenia.",
        "Krok 3: Obliczenie całkowitej mocy projektowej (Q_obl).",
        "Krok 4: Wyznaczenie rozstawu (b) na podstawie gęstości strumienia cieplnego."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#webapp-algorytm",
    "name": "Interaktywny Symulator Projektowy (Blueprint)",
    "description": "Aplikacja webowa symulująca pracę inżyniera. Po wprowadzeniu standardu energetycznego i powierzchni (m2), system wylicza moc (W) i wykreśla układ pętli grzewczych na wirtualnym planie pokoju.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript, SVG",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-algo-container" id="algorytm-app">
    
    <div class="rk-algo-content">
        <h2>Kalkulator algorytmu doboru rozstawu rur</h2>
        <p class="rk-algo-desc">
            Aby poprawnie zaprojektować instalację w domu pasywnym, nie możesz opierać się na intuicji. Podążaj za poniższym ścisłym algorytmem, który stosuję w moich projektach, bazując na wytycznych normatywnych oraz <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">charakterystyce zasilania pomp ciepła</a>.
        </p>
        
        <div class="rk-algo-steps">
            <div class="rk-step-card">
                <div class="rk-step-num">1</div>
                <h4>Zapotrzebowanie (q)</h4>
                <p>Wyznacz standard izolacji budynku <span class="rk-math">q [W/m²]</span> na podstawie normy <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">PN-EN 12831</a>. Dla domów pasywnych to zazwyczaj 10-15 W/m².</p>
            </div>
            <div class="rk-step-card">
                <div class="rk-step-num">2</div>
                <h4>Obciążenie całkowite (Q_obl)</h4>
                <p>Pomnóż wskaźnik przez powierzchnię grzejną: <span class="rk-math">Q = q · F_g</span>. Wynik podajemy w Watach [W].</p>
            </div>
            <div class="rk-step-card">
                <div class="rk-step-num">3</div>
                <h4>Różnica temperatur (Delta T)</h4>
                <p>Przyjmij różnicę między zasilaniem a powrotem. Dla pomp ciepła optymalnie <span class="rk-math">Delta T = 5K</span>.</p>
            </div>
            <div class="rk-step-card">
                <div class="rk-step-num">4</div>
                <h4>Średnia temp. wody (t_m)</h4>
                <p>Oblicz na wzorze: <span class="rk-math">t_m = T_z - (Delta T / 2)</span>, gdzie T_z to temp. zasilania.</p>
            </div>
            <div class="rk-step-card">
                <div class="rk-step-num">5</div>
                <h4>Weryfikacja strumienia</h4>
                <p>Skorzystaj ze wzoru <span class="rk-math">q = B · a_i · Delta t_ln</span> sprawdzając współczynnik przejmowania ciepła.</p>
            </div>
            <div class="rk-step-card">
                <div class="rk-step-num">6</div>
                <h4>Dobór rozstawu (b)</h4>
                <p>Na podstawie <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">oporu cieplnego okładziny</a> (np. R = 0,02 dla płytek) i wartości <i>q</i>, dobierz rozstaw rur <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">z katalogu</a>.</p>
            </div>
        </div>
    </div>

    <div class="rk-algo-interactive">
        <!-- Lewy Panel Kontrolny -->
        <div class="rk-controls-panel">
            <h3>Wprowadź dane</h3>
            
            <div class="rk-control-group">
                <div class="rk-control-header">
                    <span class="rk-control-label">Standard budynku (q)</span>
                    <span class="rk-control-value"><span id="val-in-q-unit">15</span> W/m²</span>
                </div>
                <input type="range" min="10" max="60" step="1" value="15" class="rk-slider" id="slider-q-unit" aria-label="Wskaźnik zapotrzebowania cieplnego budynku">
            </div>

            <div class="rk-control-group">
                <div class="rk-control-header">
                    <span class="rk-control-label">Powierzchnia (F_g)</span>
                    <span class="rk-control-value"><span id="val-in-area">20</span> m²</span>
                </div>
                <input type="range" min="10" max="50" step="1" value="20" class="rk-slider" id="slider-area" aria-label="Powierzchnia pomieszczenia">
            </div>

            <div class="rk-result-box">
                <div class="rk-result-item">
                    <span class="rk-result-title">Delta T (złożenie):</span>
                    <span class="rk-result-val">5K</span>
                </div>
                <div class="rk-result-item">
                    <span class="rk-result-title">Całkowita moc (Q_obl):</span>
                    <span class="rk-result-val"><span id="out-q-total">300</span> W</span>
                </div>
                <div class="rk-result-item">
                    <span class="rk-result-title">Sugerowany rozstaw:</span>
                    <span class="rk-result-val highlight" id="out-spacing">co 20 cm</span>
                </div>
            </div>
        </div>

        <!-- Prawy Panel SVG Blueprint -->
        <div class="rk-blueprint-panel">
            <svg class="rk-svg-blueprint" viewBox="0 0 300 300" id="svg-blueprint">
                <!-- Zarys pokoju z wymiarami -->
                <rect x="30" y="30" width="240" height="240" fill="none" stroke="#475569" stroke-width="3"/>
                <text x="150" y="20" class="blueprint-text" text-anchor="middle">WYMIAR: <tspan id="svg-text-area">20</tspan> m2</text>
                
                <!-- Grupa na dynamiczne rysowanie rur -->
                <g id="svg-pipe-layer" fill="none" stroke="var(--rk-algo-line)" stroke-width="4" stroke-linejoin="round" stroke-linecap="round">
                    <!-- Rury wygeneruje JS -->
                </g>

                <!-- Legenda w rogu -->
                <rect x="160" y="230" width="100" height="30" fill="rgba(15,23,42,0.8)" rx="4"/>
                <text x="210" y="249" class="blueprint-text" text-anchor="middle" fill="#38bdf8" font-weight="bold">Q = <tspan id="svg-text-q-total">300</tspan> W</text>
            </svg>
        </div>
    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Anti-Theft) bez 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('algorytm-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 30px; text-align: center; background: #0f172a; border: 2px solid #38bdf8; border-radius: 16px; font-family: monospace;">
                    <div style="font-size: 32px; margin-bottom: 15px; color: #38bdf8;">[ SYSTEM BLOCKED ]</div>
                    <div style="font-size: 14px; font-weight: bold; color: #cbd5e1; margin-bottom: 10px;">
                        ERROR: Unauthorized Domain Execution.
                    </div>
                    <div style="color: #64748b; font-size: 12px; line-height: 1.5;">
                        Moduł "Blueprint Algorithm" jest własnością intelektualną serwisu Projekt-Ogrzewania.pl.<br>Wykonanie skryptów zostało przerwane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Kalkulatora i Rysowania
    const sliderQUnit = document.getElementById('slider-q-unit');
    const sliderArea = document.getElementById('slider-area');
    
    const valInQUnit = document.getElementById('val-in-q-unit');
    const valInArea = document.getElementById('val-in-area');
    
    const outQTotal = document.getElementById('out-q-total');
    const outSpacing = document.getElementById('out-spacing');
    
    const svgLayer = document.getElementById('svg-pipe-layer');
    const svgTextArea = document.getElementById('svg-text-area');
    const svgTextQTotal = document.getElementById('svg-text-q-total');

    // Funkcja generująca ścieżkę meandrową dla SVG
    // density = ilość pętli w pionie
    function generateMeanderPath(density) {
        const startX = 50;
        const startY = 50;
        const width = 200;
        const height = 200;
        const step = height / density;
        
        let path = `M ${startX} ${startY}`;
        
        for(let i=0; i<density; i++) {
            const currentY = startY + (i * step);
            // Kreska w prawo lub w lewo
            if(i % 2 === 0) {
                path += ` L ${startX + width} ${currentY}`;
                if(i < density -1) path += ` L ${startX + width} ${currentY + step}`;
            } else {
                path += ` L ${startX} ${currentY}`;
                if(i < density -1) path += ` L ${startX} ${currentY + step}`;
            }
        }
        return path;
    }

    function updateBlueprint() {
        const qUnit = parseInt(sliderQUnit.value);
        const area = parseInt(sliderArea.value);
        
        // Aktualizacja inputów DOM
        valInQUnit.textContent = qUnit;
        valInArea.textContent = area;
        svgTextArea.textContent = area;

        // Obliczenie Całkowitej Mocy Q = q * F_g
        const qTotal = qUnit * area;
        outQTotal.textContent = qTotal;
        svgTextQTotal.textContent = qTotal;

        // Logika doboru rozstawu uzależniona od standardu budynku (q)
        let spacingText = "";
        let pipeLines = 5;

        if (qUnit <= 18) {
            spacingText = "co 20 cm";
            pipeLines = 6;
            outSpacing.style.color = "var(--rk-algo-brand)";
        } else if (qUnit > 18 && qUnit <= 35) {
            spacingText = "co 15 cm";
            pipeLines = 10;
            outSpacing.style.color = "#8b5cf6"; // Fiolet
        } else {
            spacingText = "co 10 cm";
            pipeLines = 16;
            outSpacing.style.color = "#ef4444"; // Czerwony - gęsty rozstaw
        }

        outSpacing.textContent = spacingText;

        // Rysowanie animowanej ścieżki SVG z resetem animacji
        const newPath = generateMeanderPath(pipeLines);
        
        // Dodanie stylu inline wewnątrz SVG z wymuszeniem dłuższego dasharray chroni przed urywaniem gęstych ścieżek
        svgLayer.innerHTML = `<path d="${newPath}" stroke-dasharray="6000" stroke-dashoffset="6000" style="animation: drawPipe 2s ease-out forwards;"/>`;
    }

    // Nasłuchiwacze
    sliderQUnit.addEventListener('input', updateBlueprint);
    sliderArea.addEventListener('input', updateBlueprint);

    // Init
    updateBlueprint();
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-red: #ef4444;       /* Kolor awarii */
    --rk-err-red-bg: #fef2f2;
    --rk-err-warn: #f59e0b;      /* Ostrzeżenie / Ciepło */
    --rk-err-cold: #3b82f6;      /* Mostki cieplne */
    --rk-err-border: #cbd5e1;
    --rk-err-text: #475569;
    --rk-err-bg: #ffffff;
    --rk-err-panel: #f8fafc;
}

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

/* Sekcja Treści */
.rk-err-content {
    padding: 45px 50px 25px;
    background: linear-gradient(135deg, #fef2f2 0%, #ffffff 100%);
    border-bottom: 1px solid var(--rk-err-border);
}

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

.rk-err-desc {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-err-text);
    margin: 0;
}

.rk-err-desc a {
    color: var(--rk-err-red);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid #fecaca;
    transition: all 0.3s;
}

.rk-err-desc a:hover {
    background: var(--rk-err-red-bg);
    border-color: var(--rk-err-red);
}

/* Interaktywny Skaner Błędów */
.rk-err-interactive {
    display: grid;
    grid-template-columns: 350px 1fr;
    background: var(--rk-err-bg);
}

/* Menu Błędów (Lewy panel) */
.rk-err-menu {
    background: var(--rk-err-panel);
    padding: 30px;
    border-right: 1px solid var(--rk-err-border);
}

.rk-err-menu h3 {
    font-size: 14px;
    text-transform: uppercase;
    color: #94a3b8;
    letter-spacing: 1px;
    margin: 0 0 20px 0;
    font-weight: 800;
}

.rk-err-btn {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    width: 100%;
    background: #ffffff;
    border: 1px solid var(--rk-err-border);
    padding: 16px;
    border-radius: 12px;
    margin-bottom: 12px;
    cursor: pointer;
    text-align: left;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-err-btn:hover {
    border-color: #fca5a5;
    box-shadow: 0 4px 6px rgba(239, 68, 68, 0.05);
}

.rk-err-btn.active {
    background: var(--rk-err-red-bg);
    border-color: var(--rk-err-red);
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.15);
}

.rk-err-num {
    width: 28px;
    height: 28px;
    flex-shrink: 0;
    background: #e2e8f0;
    color: #64748b;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 14px;
    transition: all 0.3s;
}

.rk-err-btn.active .rk-err-num {
    background: var(--rk-err-red);
    color: #ffffff;
}

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

/* Prawy Panel - Diagnoza i SEO Tekst */
.rk-err-dashboard {
    padding: 30px;
    display: flex;
    flex-direction: column;
}

.rk-diag-card {
    background: #ffffff;
    border-radius: 16px;
    padding: 30px;
    border: 1px solid var(--rk-err-red);
    box-shadow: 0 10px 15px -3px rgba(239, 68, 68, 0.1);
    height: 100%;
    display: flex;
    flex-direction: column;
}

.rk-diag-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid #f1f5f9;
}

.rk-diag-tag {
    background: var(--rk-err-red);
    color: #ffffff;
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-diag-cost {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-err-dark);
}

.rk-diag-text {
    font-size: 16px;
    color: var(--rk-err-dark);
    font-weight: 700;
    line-height: 1.6;
    margin: 0 0 20px 0;
}

/* Nowa sekcja pod długi ogon SEO */
.rk-diag-seo-box {
    background: #f8fafc;
    border-radius: 12px;
    padding: 20px;
    border: 1px solid var(--rk-err-border);
    flex-grow: 1;
}

.rk-diag-subtitle {
    font-size: 13px;
    text-transform: uppercase;
    color: #64748b;
    font-weight: 800;
    letter-spacing: 0.5px;
    margin: 0 0 10px 0;
}

.rk-diag-seo-text {
    font-size: 14.5px;
    color: var(--rk-err-text);
    line-height: 1.7;
    margin: 0;
}

.rk-diag-seo-text strong {
    color: var(--rk-err-dark);
}

/* Ochrona przed skokami podczas animacji JS */
.anim-wrapper {
    transition: opacity 0.3s ease;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-err-content { padding: 30px 25px; }
    .rk-err-interactive { grid-template-columns: 1fr; }
    .rk-err-menu { border-right: none; border-bottom: 1px solid var(--rk-err-border); padding: 25px; }
    .rk-err-dashboard { padding: 25px; }
    .rk-diag-header { flex-direction: column; align-items: flex-start; gap: 10px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#article-bledy-pasywne",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/"
    },
    "headline": "Najczęstsze błędy w projektowaniu ogrzewania dla domów pasywnych",
    "description": "Zestawienie 6 kosztownych błędów w instalacjach płaszczyznowych: przewymiarowanie pomp ciepła, brak projektów hydraulicznych, mostki termiczne, błędna krzywa grzewcza, zła izolacja na gruncie i niewłaściwe panele.",
    "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-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#dataset-bledy",
    "name": "Szczegółowa Analiza 6 Krytycznych Błędów Projektowych",
    "description": "Baza danych analizująca skutki finansowe i termodynamiczne w przypadku odstępstw od normy projektowej w budownictwie pasywnym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jak uniknąć taktowania pompy ciepła",
      "przewymiarowanie ogrzewania podłogowego skutki",
      "brak projektu podłogówki konsekwencje",
      "jak poprawnie wykonać izolację brzegową dylatację",
      "za wysoka temperatura na piecu do podłogówki",
      "ile styropianu pod ogrzewanie podłogowe na gruncie",
      "jakie panele na ogrzewanie podłogowe w domu pasywnym"
    ],
    "measurementTechnique": "Analiza awaryjności systemów hydraulicznych (szumy, taktowanie sprężarki) oraz termowizyjna detekcja strat ciepła na dylatacjach brzegowych i posadzkach na gruncie.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Błąd 1: Pompa 8 kW zamiast 3 kW. Skutek: Taktowanie i zniszczenie sprężarki.",
        "Błąd 2: Układanie rur co 10 cm na oko. Skutek: Brak możliwości rotametrowania i szumy w instalacji.",
        "Błąd 3: Brak dylatacji brzegowej. Skutek: Liniowe mostki termiczne i utrata 15-20% energii.",
        "Błąd 4: Krzywa grzewcza 35-40°C. Skutek: Ekstremalne przegrzewanie i dyskomfort termiczny.",
        "Błąd 5: Zbyt cienki styropian na gruncie (np. 10 cm). Skutek: Ucieczka energii do gruntu.",
        "Błąd 6: Panele o wysokim oporze cieplnym. Skutek: Blokada termiczna i konieczność podnoszenia zasilania pompy ciepła."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#webapp-bledy",
    "name": "Wizualizator Awarii i Błędów (Karta Diagnostyczna)",
    "description": "Interaktywna aplikacja diagnostyczna szczegółowo analizująca skutki 6 najczęstszych błędów instalacyjnych w domach pasywnych wraz z zaleceniami optymalizacyjnymi długiego ogona.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-err-container" id="error-scanner-app">
    
    <div class="rk-err-content">
        <h2>Najczęstsze błędy w projektowaniu dla domów pasywnych</h2>
        <p class="rk-err-desc">
            Błędy w standardzie pasywnym są bezlitośnie kosztowne, ponieważ tak zaizolowany budynek nie "wybacza" nadmiaru energii. Od <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">braku dokumentacji technicznej</a> po zły dobór mocy źródła ciepła – poznaj sześć pułapek, które mogą zrujnować Twoją inwestycję i komfort życia.
        </p>
    </div>

    <div class="rk-err-interactive">
        
        <!-- Panel Wyboru Błędów -->
        <div class="rk-err-menu">
            <h3>Skaner Diagnostyczny</h3>
            
            <button class="rk-err-btn active" data-err="1">
                <div class="rk-err-num">1</div>
                <div class="rk-err-title">Przewymiarowanie pompy ciepła</div>
            </button>
            
            <button class="rk-err-btn" data-err="2">
                <div class="rk-err-num">2</div>
                <div class="rk-err-title">Brak projektu hydraulicznego</div>
            </button>
            
            <button class="rk-err-btn" data-err="3">
                <div class="rk-err-num">3</div>
                <div class="rk-err-title">Niewłaściwa izolacja krawędziowa</div>
            </button>
            
            <button class="rk-err-btn" data-err="4">
                <div class="rk-err-num">4</div>
                <div class="rk-err-title">Zbyt wysoka temperatura zasilania</div>
            </button>

            <!-- Nowe buttony (Długi Ogon SEO) -->
            <button class="rk-err-btn" data-err="5">
                <div class="rk-err-num">5</div>
                <div class="rk-err-title">Zbyt cienka izolacja na gruncie</div>
            </button>

            <button class="rk-err-btn" data-err="6">
                <div class="rk-err-num">6</div>
                <div class="rk-err-title">Niewłaściwy dobór okładziny podłogowej</div>
            </button>
        </div>

        <!-- Prawy Panel - Zoptymalizowany pod Tekst / SEO -->
        <div class="rk-err-dashboard">
            <div class="rk-diag-card">
                <div class="anim-wrapper" id="diag-wrapper">
                    <div class="rk-diag-header">
                        <div class="rk-diag-tag" id="diag-tag">ZAGROŻENIE AWARIĄ</div>
                        <div class="rk-diag-cost" id="diag-cost">Straty: 15 000 PLN+</div>
                    </div>
                    
                    <p class="rk-diag-text" id="diag-text">
                        Montaż <a href='https://projekt-ogrzewania.pl/pompa-ciepla/' style='color:var(--rk-err-red); text-decoration:underline;'>pompy ciepła</a> o mocy 8 kW w domu potrzebującym zaledwie 3 kW prowadzi do taktowania sprężarki i jej zniszczenia w ciągu 3-4 lat.
                    </p>

                    <div class="rk-diag-seo-box">
                        <h4 class="rk-diag-subtitle">Analiza techniczna i skutki</h4>
                        <p class="rk-diag-seo-text" id="diag-seo-text">
                            Zastanawiasz się <strong>jak uniknąć taktowania pompy ciepła</strong>? Kluczem jest rzetelne przeliczenie OZC. Skutki przewymiarowania pompy ciepła w domu pasywnym są fatalne – urządzenie generuje za dużo energii w zbyt krótkim czasie, co zmusza automatykę do ciągłego odcinania zasilania. Precyzyjny <strong>dobór mocy pompy do OZC</strong> eliminuje ten problem, wydłużając żywotność sprężarki i drastycznie obniżając roczne koszty rachunków za prąd.
                        </p>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Anti-Theft) bez 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('error-scanner-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 30px; text-align: center; background: #0f172a; border: 2px solid #ef4444; border-radius: 16px; font-family: monospace;">
                    <div style="font-size: 32px; margin-bottom: 15px; color: #ef4444;">[ SYSTEM SECURED ]</div>
                    <div style="font-size: 14px; font-weight: bold; color: #cbd5e1; margin-bottom: 10px;">
                        Błąd licencji: Nieautoryzowana domena.
                    </div>
                    <div style="color: #64748b; font-size: 12px; line-height: 1.5;">
                        Kod Skanera Błędów Instalacyjnych należy do Projekt-Ogrzewania.pl.<br>Kopiowanie i wykorzystywanie bez zgody jest zabronione.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Baza danych błędów z tekstami pod długi ogon (SEO)
    const errorData = {
        "1": {
            tag: "ZAGROŻENIE AWARIĄ",
            cost: "Koszty: 15 000 PLN+",
            text: "Montaż <a href='https://projekt-ogrzewania.pl/pompa-ciepla/' style='color:var(--rk-err-red); text-decoration:underline;'>pompy ciepła</a> o mocy 8 kW w domu potrzebującym zaledwie 3 kW prowadzi do taktowania sprężarki i jej zniszczenia w ciągu 3-4 lat.",
            seoText: "Zastanawiasz się <strong>jak uniknąć taktowania pompy ciepła</strong>? Kluczem jest rzetelne przeliczenie OZC. Skutki przewymiarowania pompy ciepła w domu pasywnym są fatalne – urządzenie generuje za dużo energii w zbyt krótkim czasie, co zmusza automatykę do ciągłego odcinania zasilania. Precyzyjny <strong>dobór mocy pompy do OZC</strong> eliminuje ten problem, wydłużając żywotność sprężarki i drastycznie obniżając roczne koszty rachunków za prąd."
        },
        "2": {
            tag: "BŁĄD HYDRAULICZNY",
            cost: "Szumy i dyskomfort",
            text: "Brak projektu sprawia, że instalatorzy kładą rury \"na oko\" (najczęściej co 10 cm wszędzie). Skutkuje to ogromnymi oporami i brakiem możliwości regulacji na rozdzielaczu.",
            seoText: "Jakie są główne <strong>konsekwencje braku projektu ogrzewania podłogowego</strong>? Inwestorzy często pytają, <strong>dlaczego podłogówka szumi</strong>. Wynika to z faktu, że zbyt gęsty rozstaw rur co 10 cm w małych pomieszczeniach wymusza stosowanie dławienia, a to zaburza hydraulikę całego układu. Brak projektu uniemożliwia wyliczenie oporów, przez co nie wiesz, <strong>jak zrównoważyć przepływy na rotametrach</strong>. Efektem jest przegrzana sypialnia i niedogrzana łazienka."
        },
        "3": {
            tag: "MOSTKI TERMICZNE",
            cost: "Straty energii: 15-20%",
            text: "Brak lub złe wykonanie izolacji brzegowej przy ścianach zewnętrznych w domu pasywnym generuje potężne liniowe mostki termiczne.",
            seoText: "Brak wiedzy o tym, <strong>jak poprawnie wykonać dylatację brzegową</strong> podłogówki, to prosta droga do wyrzucania pieniędzy w błoto. Płyta grzewcza musi pracować pracować swobodnie. Zbyt cienka <strong>pianka brzegowa do podłogówki</strong> sprawia, że wylewka dotyka muru, co tworzy <strong>mostki termiczne przy ścianach zewnętrznych</strong>. Ciepło z posadzki ucieka wprost w fundamenty, drastycznie podnosząc straty energetyczne budynku i niwecząc cały nakład pracy na ocieplenie pasywne."
        },
        "4": {
            tag: "KRYTYCZNE PRZEGRZEWANIE",
            cost: "Dyskomfort termiczny",
            text: "Ustawienie krzywej grzewczej na poziomie typowym dla budynków starszych (np. 35-40°C) powoduje, że podłoga staje się gorąca i nieprzyjemna.",
            seoText: "W budownictwie energooszczędnym <strong>za wysoka temperatura zasilania podłogówki</strong> daje natychmiastowe objawy – podłoga wręcz parzy, a powietrze staje się przesuszone. Kluczowe jest pytanie, <strong>jaka krzywa grzewcza do domu pasywnego</strong> jest odpowiednia? Prawidłowo zaprojektowany system powinien pracować na parametrach nie wyższych niż 28-32°C. Jeśli ignorujemy te wartości, <strong>przegrzewanie pomieszczeń z pompą ciepła</strong> staje się codziennością, a nasza instalacja działa ze zrujnowanym współczynnikiem wydajności COP."
        },
        "5": {
            tag: "STRATY DO GRUNTU",
            cost: "Ciągła ucieczka energii",
            text: "Zastosowanie standardowych 10-15 cm styropianu pod wylewką na gruncie w domu pasywnym powoduje stałą ucieczkę ciepła w dół, zamiast do wnętrza budynku.",
            seoText: "Błędem o nieodwracalnych skutkach na etapie stanu surowego jest ignorowanie tego, <strong>ile styropianu pod ogrzewanie podłogowe na gruncie</strong> należy ułożyć w standardzie energooszczędnym. W domach pasywnych absolutnym minimum jest 20-25 cm izolacji o bardzo niskim współczynniku przewodzenia ciepła. Zbyt cienki <strong>styropian podłogowy EPS 100 lub EPS 200</strong> sprawia, że pompa ciepła zamiast w pełni ogrzewać salon, bezproduktywnie ogrzewa fundamenty i ziemię pod budynkiem. To bezpośrednio przekłada się na wyższe <strong>koszty ogrzewania pompą ciepła zimą</strong>."
        },
        "6": {
            tag: "BLOKADA TERMICZNA",
            cost: "Spadek wydajności układu",
            text: "Położenie grubych paneli z podkładem o wysokim oporze cieplnym w domu pasywnym sprawia, że przy zasilaniu rzędu 30°C ciepło nie przebije się efektywnie do pomieszczenia.",
            seoText: "Wybierając materiały wykończeniowe do salonu czy sypialni, inwestorzy często pytają, <strong>jakie panele na ogrzewanie podłogowe w domu pasywnym</strong> będą najlepsze. Zastosowanie okładziny o łącznym oporze cieplnym powyżej 0,15 (m²·K)/W drastycznie obniża efektywność całego systemu hydraulicznego. Aby zachować niską temperaturę zasilania pompy ciepła (co warunkuje jej najwyższy wskaźnik COP), należy wybierać <strong>panele winylowe SPC na podłogówkę</strong> lub klasyczne płytki ceramiczne. Zbyt gruby, gąbczasty <strong>podkład pod panele na ogrzewanie podłogowe</strong> zadziała jak niechciany izolator, zmuszając pompę do nieekonomicznej pracy na wyższych parametrach i zwiększając zużycie prądu."
        }
    };

    // 3. Logika zmiany treści
    const btns = document.querySelectorAll('.rk-err-btn');
    const diagWrapper = document.getElementById('diag-wrapper');
    const diagTag = document.getElementById('diag-tag');
    const diagCost = document.getElementById('diag-cost');
    const diagText = document.getElementById('diag-text');
    const diagSeoText = document.getElementById('diag-seo-text');

    function updateDashboard(errId) {
        // Płynne zniknięcie sekcji
        diagWrapper.style.opacity = '0';

        setTimeout(() => {
            // Podmiana danych
            const data = errorData[errId];
            diagTag.textContent = data.tag;
            diagCost.textContent = data.cost;
            diagText.innerHTML = data.text;
            diagSeoText.innerHTML = data.seoText;

            // Pojawienie się tekstu
            diagWrapper.style.opacity = '1';
        }, 200);
    }

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Unikaj przeładowania, jeśli kliknięto w ten sam przycisk
            if(this.classList.contains('active')) return;

            // Zmiana stanu przycisków
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            // Aktualizacja
            const errId = this.getAttribute('data-err');
            updateDashboard(errId);
        });
    });
});
</script>



<style>
:root {
    --rk-imp-dark: #0f172a;
    --rk-imp-brand: #0284c7;
    --rk-imp-brand-light: #f0f9ff;
    --rk-imp-accent: #38bdf8;
    --rk-imp-warn: #f59e0b;
    --rk-imp-eco: #10b981;
    --rk-imp-red: #ef4444;
    --rk-imp-border: #e2e8f0;
    --rk-imp-text: #475569;
    --rk-imp-bg: #ffffff;
}

.rk-imp-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', system-ui, sans-serif;
    background: var(--rk-imp-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.15);
    border: 1px solid #bae6fd;
    overflow: hidden;
}

/* Część Tekstowa / SEO */
.rk-imp-content {
    padding: 45px 50px 30px;
    background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
    border-bottom: 1px solid var(--rk-imp-border);
}

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

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

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

.rk-imp-desc a {
    color: var(--rk-imp-brand);
    font-weight: 700;
    text-decoration: none;
    box-shadow: inset 0 -2px 0 #bae6fd;
    transition: all 0.3s;
}

.rk-imp-desc a:hover {
    background: var(--rk-imp-brand-light);
    box-shadow: inset 0 -10px 0 #bae6fd;
}

.rk-imp-grid-text {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
    margin-top: 30px;
}

.rk-imp-box {
    background: #f8fafc;
    border: 1px solid var(--rk-imp-border);
    padding: 20px;
    border-radius: 12px;
}

.rk-imp-box h4 {
    margin: 0 0 10px 0;
    color: var(--rk-imp-brand);
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

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

/* Interaktywny Symulator */
.rk-imp-interactive {
    padding: 40px 50px;
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 40px;
    background: #ffffff;
}

/* Panel Kontrolny */
.rk-imp-controls {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

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

.rk-ctrl-group {
    background: #f8fafc;
    border: 1px solid var(--rk-imp-border);
    padding: 20px;
    border-radius: 16px;
}

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

.rk-ctrl-label {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-imp-text);
}

.rk-ctrl-val {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-imp-warn);
}

/* Suwaki i Toggla */
.rk-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #cbd5e1;
    outline: none;
}
.rk-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: #ffffff;
    border: 4px solid var(--rk-imp-warn);
    cursor: pointer;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    transition: transform 0.1s;
}
.rk-slider::-webkit-slider-thumb:active { transform: scale(1.1); }

/* Switch Toggle */
.rk-switch-wrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.rk-switch {
    position: relative;
    width: 56px;
    height: 30px;
    background: #cbd5e1;
    border-radius: 30px;
    cursor: pointer;
    transition: background 0.3s;
}
.rk-switch.active { background: var(--rk-imp-warn); }
.rk-switch-knob {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 24px;
    height: 24px;
    background: #fff;
    border-radius: 50%;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
.rk-switch.active .rk-switch-knob { transform: translateX(26px); }

/* Dashboard SVG + Wyniki */
.rk-imp-dashboard {
    display: flex;
    gap: 30px;
}

.rk-svg-room {
    flex: 1;
    background: #f1f5f9;
    border-radius: 16px;
    border: 1px dashed var(--rk-imp-border);
    padding: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
}

.rk-svg-rotameter {
    width: 100px;
    background: #ffffff;
    border: 1px solid var(--rk-imp-border);
    border-radius: 16px;
    padding: 15px;
    display: flex;
    flex-direction: column;
    align-items: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-rota-title {
    font-size: 10px;
    font-weight: 800;
    color: var(--rk-imp-text);
    text-transform: uppercase;
    margin-bottom: 10px;
    text-align: center;
}

/* Animacje SVG */
.anim-person { transition: opacity 0.3s ease; }
.anim-tv { transition: fill 0.3s ease, filter 0.3s ease; }
.anim-heat-glow { transition: opacity 0.3s ease, r 0.3s ease; }
.anim-float { transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1); }

/* Kafelki Wynikowe */
.rk-result-metrics {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin-top: 20px;
}

.rk-metric-card {
    background: #ffffff;
    border: 1px solid var(--rk-imp-border);
    padding: 15px;
    border-radius: 12px;
}
.rk-metric-card.highlight {
    border-color: var(--rk-imp-eco);
    background: #ecfdf5;
}

.rk-metric-card h5 { margin: 0 0 5px 0; font-size: 11px; color: var(--rk-imp-text); text-transform: uppercase; }
.rk-metric-card .val { font-size: 22px; font-weight: 900; color: var(--rk-imp-dark); }
.rk-metric-card.highlight .val { color: var(--rk-imp-eco); }

/* Mocne CTA */
.rk-imp-cta-box {
    background: var(--rk-imp-dark);
    padding: 45px 50px;
    text-align: center;
}

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

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

.rk-btn-massive {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: var(--rk-imp-brand);
    color: #ffffff !important;
    padding: 18px 36px;
    border-radius: 14px;
    font-size: 18px;
    font-weight: 800;
    text-decoration: none !important;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.5);
    transition: all 0.3s;
    border: 2px solid transparent;
}

.rk-btn-massive:hover {
    background: #0369a1;
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(2, 132, 199, 0.6);
    border-color: #7dd3fc;
}

@media (max-width: 768px) {
    .rk-imp-content, .rk-imp-interactive, .rk-imp-cta-box { padding: 30px 25px; }
    .rk-imp-grid-text { grid-template-columns: 1fr; }
    .rk-imp-interactive { grid-template-columns: 1fr; gap: 30px; }
    .rk-imp-dashboard { flex-direction: column; }
    .rk-svg-rotameter { width: 100%; flex-direction: row; justify-content: space-around; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#article-wplyw",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/"
    },
    "headline": "Jak dom pasywny wpływa na projekt ogrzewania podłogowego i OZC?",
    "description": "Dlaczego wskaźniki W/m2 'z sufitu' niszczą instalację. Analiza zysków bytowych, precyzyjnych przepływomierzy i doboru energooszczędnej pompy obiegowej.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#dataset-wplyw",
    "name": "Zestawienie Zysków Bytowych i Oporów Hydraulicznych",
    "description": "Baza danych określająca wpływ aktywności domowników na realne obciążenie cieplne oraz wymagany przepływ czynnika grzewczego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zapotrzebowanie na ciepło dla każdego pomieszczenia",
      "zyski ciepła od nasłonecznienia dom pasywny",
      "precyzyjne przepływomierze podłogówki",
      "kalkulator doboru pompy obiegowej",
      "obliczenia OZC dla podłogówki"
    ],
    "measurementTechnique": "Dynamiczna estymacja spadku zapotrzebowania grzewczego (W) w oparciu o sumowanie zysków od ludzi (100W/osoba) i elektroniki domowej, redukująca wymagany przepływ na rotametrach.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "OZC: W domu pasywnym 3 osoby i telewizor generują ~500W, pokrywając do 50% zapotrzebowania.",
        "Hydraulika: Niskie zapotrzebowanie wymusza rotametry o małym zakresie 0,5–2,5 l/min.",
        "Pompa obiegowa: Konieczność precyzyjnego doboru, aby zużycie prądu P < 20-30 W."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#webapp-wplyw",
    "name": "Symulator Bilansu Pasywnego i Hydrauliki",
    "description": "Interaktywne narzędzie wizualizujące, jak zyski ciepła od ludzi i elektroniki automatycznie dławią potrzebę grzewczą podłogi i obniżają przepływ wskaźnika na rotametrze.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript, SVG",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-imp-container" id="impact-simulator-app">
    
    <div class="rk-imp-content">
        <h2>Jak to wpływa na projekt ogrzewania podłogowego?</h2>
        <p class="rk-imp-desc">
            Projektowanie dla domu pasywnego wymusza całkowitą zmianę podejścia do OZC. Nie można posługiwać się wskaźnikami W/m² wyciągniętymi "z sufitu". Projektant musi otrzymać <strong>wyniki obliczeń <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">zapotrzebowania na ciepło dla każdego pomieszczenia</a> z osobna</strong>. W przeciwnym razie system będzie skazany na porażkę.
        </p>

        <div class="rk-imp-grid-text">
            <div class="rk-imp-box">
                <h4>Zyski Bytowe w OZC</h4>
                <p>W <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/">obliczeniach OZC</a> musimy uwzględniać zyski od nasłonecznienia i urządzeń. W domu pasywnym 3 osoby i włączony telewizor to już ~500 W darmowej mocy grzewczej, co może pokryć nawet 50% zapotrzebowania w danym momencie!</p>
            </div>
            <div class="rk-imp-box">
                <h4>Precyzja Hydrauliczna</h4>
                <p>Niska moc to mały przepływ. Projektant musi wyliczyć opory tak, aby stosować <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">precyzyjne przepływomierze podłogówki</a> (zakres 0,5–2,5 l/min). Niezbędny jest też ścisły <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">kalkulator doboru pompy obiegowej</a>, by jej pobór prądu nie przekraczał 20-30 W.</p>
            </div>
        </div>
    </div>

    <div class="rk-imp-interactive">
        
        <!-- Panel Kontrolny -->
        <div class="rk-imp-controls">
            <h3>Symuluj Zyski Pasywne</h3>
            
            <div class="rk-ctrl-group">
                <div class="rk-ctrl-header">
                    <span class="rk-ctrl-label">Liczba osób w salonie</span>
                    <span class="rk-ctrl-val"><span id="val-people">0</span></span>
                </div>
                <input type="range" min="0" max="4" step="1" value="0" class="rk-slider" id="slider-people">
                <div style="font-size:11px; color:#94a3b8; margin-top:8px;">1 osoba = ~100W zysku</div>
            </div>

            <div class="rk-ctrl-group">
                <div class="rk-ctrl-header">
                    <span class="rk-ctrl-label">Telewizor / Elektronika</span>
                    <span class="rk-ctrl-val" id="val-tv-text" style="color:#94a3b8;">Wyłączone</span>
                </div>
                <div class="rk-switch-wrap">
                    <span style="font-size:12px; color:#64748b;">(~200W zysku)</span>
                    <div class="rk-switch" id="toggle-tv">
                        <div class="rk-switch-knob"></div>
                    </div>
                </div>
            </div>

            <div class="rk-result-metrics">
                <div class="rk-metric-card highlight">
                    <h5>Darmowe Zyski</h5>
                    <div class="val">+<span id="out-gains">0</span> W</div>
                </div>
                <div class="rk-metric-card">
                    <h5>Wymagana Moc Posadzki</h5>
                    <div class="val"><span id="out-power">1000</span> W</div>
                </div>
            </div>
        </div>

        <!-- Dashboard SVG -->
        <div class="rk-imp-dashboard">
            <!-- Pokój SVG -->
            <div class="rk-svg-room">
                <svg viewBox="0 0 200 200" style="width:100%; height:auto;">
                    <!-- Pokój -->
                    <rect x="10" y="10" width="180" height="180" fill="none" stroke="#cbd5e1" stroke-width="4" rx="8"/>
                    <!-- Łuna ciepła -->
                    <circle cx="100" cy="100" r="0" fill="rgba(245, 158, 11, 0.15)" id="svg-heat-glow" class="anim-heat-glow"/>
                    
                    <!-- Telewizor -->
                    <rect x="70" y="20" width="60" height="10" fill="#475569" rx="2"/>
                    <rect x="60" y="30" width="80" height="40" fill="#94a3b8" rx="4" id="svg-tv" class="anim-tv"/>
                    
                    <!-- Ludziki (4 sztuki ukryte domyślnie) -->
                    <g fill="#475569" id="person-1" class="anim-person" opacity="0">
                        <circle cx="50" cy="130" r="10"/>
                        <rect x="40" y="145" width="20" height="30" rx="4"/>
                    </g>
                    <g fill="#475569" id="person-2" class="anim-person" opacity="0">
                        <circle cx="85" cy="140" r="10"/>
                        <rect x="75" y="155" width="20" height="30" rx="4"/>
                    </g>
                    <g fill="#475569" id="person-3" class="anim-person" opacity="0">
                        <circle cx="120" cy="135" r="10"/>
                        <rect x="110" y="150" width="20" height="30" rx="4"/>
                    </g>
                    <g fill="#475569" id="person-4" class="anim-person" opacity="0">
                        <circle cx="155" cy="145" r="10"/>
                        <rect x="145" y="160" width="20" height="30" rx="4"/>
                    </g>
                </svg>
            </div>

            <!-- Rotametr SVG -->
            <div class="rk-svg-rotameter">
                <div class="rk-rota-title">Rotametr<br>(Przepływ)</div>
                <svg viewBox="0 0 60 160" style="height:140px;">
                    <!-- Rurka -->
                    <path d="M 20 20 L 40 20 L 35 140 L 25 140 Z" fill="#f1f5f9" stroke="#94a3b8" stroke-width="2"/>
                    <!-- Skala -->
                    <line x1="15" y1="30" x2="20" y2="30" stroke="#64748b" stroke-width="1.5"/>
                    <line x1="15" y1="60" x2="20" y2="60" stroke="#64748b" stroke-width="1.5"/>
                    <line x1="15" y1="90" x2="20" y2="90" stroke="#64748b" stroke-width="1.5"/>
                    <line x1="15" y1="120" x2="20" y2="120" stroke="#64748b" stroke-width="1.5"/>
                    <text x="5" y="34" font-size="10" fill="#64748b">2.5</text>
                    <text x="5" y="124" font-size="10" fill="#64748b">0.5</text>
                    
                    <!-- Pływak -->
                    <g id="svg-float" class="anim-float" transform="translate(0, 0)">
                        <polygon points="22,30 38,30 35,40 25,40" fill="#ef4444"/>
                    </g>
                </svg>
                <div style="font-size:14px; font-weight:900; color:var(--rk-imp-dark); margin-top:10px;">
                    <span id="out-flow">2.5</span> <span style="font-size:10px;">l/min</span>
                </div>
            </div>
        </div>
    </div>

    <!-- MOCNE CTA -->
    <div class="rk-imp-cta-box">
        <h3>Nie zgaduj. Powierz OZC inżynierom.</h3>
        <p>
            Błędy w obliczeniach zapotrzebowania i hydrauliki kosztują dziesiątki tysięcy złotych po wylaniu posadzki. Wybierz rozwiązanie, które gwarantuje bezpieczeństwo i najwyższy współczynnik COP dla Twojej pompy ciepła.
        </p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-massive">
            ZAMÓW PROFESJONALNY PROJEKT OGRZEWANIA
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
        </a>
    </div>

</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe bez tagów H
    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('impact-simulator-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 30px; text-align: center; background: #0f172a; border: 2px solid #ef4444; border-radius: 16px; font-family: monospace;">
                    <div style="font-size: 32px; margin-bottom: 15px; color: #ef4444;">[ SYSTEM SECURED ]</div>
                    <div style="font-size: 14px; font-weight: bold; color: #cbd5e1; margin-bottom: 10px;">
                        Błąd licencji: Nieautoryzowana domena.
                    </div>
                    <div style="color: #64748b; font-size: 12px; line-height: 1.5;">
                        Kod Symulatora Bilansu należy do Projekt-Ogrzewania.pl. Wykonanie przerwane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora
    const sliderPeople = document.getElementById('slider-people');
    const toggleTv = document.getElementById('toggle-tv');
    
    // UI Values
    const valPeople = document.getElementById('val-people');
    const valTvText = document.getElementById('val-tv-text');
    const outGains = document.getElementById('out-gains');
    const outPower = document.getElementById('out-power');
    const outFlow = document.getElementById('out-flow');
    
    // SVG Elements
    const svgTv = document.getElementById('svg-tv');
    const svgHeatGlow = document.getElementById('svg-heat-glow');
    const svgFloat = document.getElementById('svg-float');
    const persons = [
        document.getElementById('person-1'),
        document.getElementById('person-2'),
        document.getElementById('person-3'),
        document.getElementById('person-4')
    ];

    let isTvOn = false;
    const basePower = 1000; // Bazowe zapotrzebowanie salonu W
    const maxFlow = 2.5; // Max l/min
    const minFlow = 0.5; // Min l/min

    function updateSimulation() {
        const peopleCount = parseInt(sliderPeople.value);
        valPeople.textContent = peopleCount;

        // Obliczanie zysków
        const peopleGain = peopleCount * 100; // 100W na osobę
        const tvGain = isTvOn ? 200 : 0; // 200W z TV
        const totalGain = peopleGain + tvGain;

        // Zapotrzebowanie (nie mniej niż 0)
        let reqPower = basePower - totalGain;
        if (reqPower < 0) reqPower = 0;

        outGains.textContent = totalGain;
        outPower.textContent = reqPower;

        // Obliczanie Przepływu (Liniowa interpolacja)
        // Jeśli reqPower = 1000 -> 2.5 l/min
        // Jeśli reqPower = 0 -> 0.0 l/min (ale dla rotametru min to 0.5)
        let flow = (reqPower / basePower) * maxFlow;
        if (flow < minFlow) flow = minFlow;
        outFlow.textContent = flow.toFixed(1);

        // --- Aktualizacja SVG ---
        
        // 1. Ludzie (pojawiają się)
        persons.forEach((p, index) => {
            p.style.opacity = index < peopleCount ? '1' : '0';
            p.style.fill = index < peopleCount ? 'var(--rk-imp-warn)' : '#475569';
        });

        // 2. TV
        if (isTvOn) {
            svgTv.style.fill = '#fde047'; // Jasny ekran
            svgTv.style.filter = 'drop-shadow(0 0 10px rgba(253, 224, 71, 0.8))';
            valTvText.textContent = "Włączone";
            valTvText.style.color = "var(--rk-imp-warn)";
        } else {
            svgTv.style.fill = '#94a3b8'; // Zgaszony
            svgTv.style.filter = 'none';
            valTvText.textContent = "Wyłączone";
            valTvText.style.color = "#94a3b8";
        }

        // 3. Łuna ciepła
        // R zależy od totalGain (max 600W)
        const glowRadius = (totalGain / 600) * 100;
        svgHeatGlow.setAttribute('r', glowRadius);
        svgHeatGlow.style.opacity = glowRadius > 0 ? '1' : '0';

        // 4. Rotametr (Pływak)
        // translateY: 0 to góra (2.5 l/min), 90 to dół (0.5 l/min)
        // Odwrócona proporcja
        const flowPercent = (flow - minFlow) / (maxFlow - minFlow); // 1.0 = max, 0.0 = min
        const floatY = (1 - flowPercent) * 90; // max Y = 90
        svgFloat.style.transform = `translateY(${floatY}px)`;
    }

    // Nasłuchiwacze
    sliderPeople.addEventListener('input', updateSimulation);
    
    toggleTv.addEventListener('click', () => {
        isTvOn = !isTvOn;
        toggleTv.classList.toggle('active', isTvOn);
        updateSimulation();
    });

    // Init
    updateSimulation();
});
</script>



<style>
:root {
    --rk-quote-primary: #0f172a;
    --rk-quote-accent: #0284c7;
    --rk-quote-accent-light: #e0f2fe;
    --rk-quote-danger: #ef4444;
    --rk-quote-passive: #10b981;
    --rk-quote-bg: #f8fafc;
    --rk-quote-border: #e2e8f0;
}

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

.rk-expert-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-bottom: 25px;
}

.rk-expert-header h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-quote-primary);
    margin: 0;
}

.rk-expert-container {
    background: #ffffff;
    border-radius: 24px;
    padding: 35px 40px;
    display: flex;
    gap: 30px;
    align-items: flex-start;
    border: 1px solid var(--rk-quote-border);
    box-shadow: 0 20px 40px -15px rgba(2, 132, 199, 0.1);
    position: relative;
    overflow: hidden;
}

/* Dekoracyjne tło */
.rk-expert-container::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 6px; height: 100%;
    background: linear-gradient(to bottom, var(--rk-quote-accent), #38bdf8);
}

.rk-expert-container::after {
    content: '”';
    position: absolute;
    top: -20px;
    right: 20px;
    font-family: serif;
    font-size: 140px;
    color: var(--rk-quote-bg);
    line-height: 1;
    z-index: 0;
}

/* Animowane zdjęcie */
.rk-expert-photo-wrap {
    flex-shrink: 0;
    width: 110px;
    height: 110px;
    position: relative;
    z-index: 1;
}

.rk-expert-photo-ring {
    position: absolute;
    top: -5px; left: -5px; right: -5px; bottom: -5px;
    border-radius: 50%;
    border: 2px dashed var(--rk-quote-accent);
    animation: spinRing 12s linear infinite;
}

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

.rk-expert-photo {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    object-position: center top;
    border: 4px solid #ffffff;
    box-shadow: 0 8px 15px rgba(0,0,0,0.1);
    position: relative;
    z-index: 2;
}

.rk-expert-badge-icon {
    position: absolute;
    bottom: -5px;
    right: -5px;
    background: var(--rk-quote-accent);
    color: #ffffff;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.4);
    z-index: 3;
}

/* Treść cytatu */
.rk-expert-content {
    flex-grow: 1;
    position: relative;
    z-index: 1;
}

.rk-expert-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 800;
    color: var(--rk-quote-accent);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 12px;
    background: var(--rk-quote-accent-light);
    padding: 4px 12px;
    border-radius: 20px;
}

.rk-expert-text {
    font-size: 17px;
    line-height: 1.7;
    color: var(--rk-quote-primary);
    font-style: italic;
    margin: 0 0 15px 0;
    font-weight: 500;
}

.rk-expert-text strong {
    color: var(--rk-quote-accent);
    font-weight: 800;
}

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

.rk-expert-text a:hover {
    color: var(--rk-quote-accent);
}

.rk-expert-signature {
    display: block;
    font-size: 14px;
    font-weight: 700;
    color: #64748b;
    border-top: 1px solid var(--rk-quote-border);
    padding-top: 15px;
    margin-top: 15px;
}

/* Interaktywny Panel Ukryty */
.rk-expert-interactive {
    margin-top: 20px;
}

.rk-expert-btn {
    background: #ffffff;
    border: 2px solid var(--rk-quote-border);
    color: var(--rk-quote-primary);
    padding: 10px 20px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: all 0.3s ease;
}

.rk-expert-btn:hover {
    border-color: var(--rk-quote-accent);
    color: var(--rk-quote-accent);
    background: var(--rk-quote-accent-light);
}

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

.rk-expert-btn.active svg {
    transform: rotate(180deg);
}

.rk-expert-data-panel {
    display: none;
    margin-top: 15px;
    padding: 20px;
    background: var(--rk-quote-bg);
    border-radius: 12px;
    border: 1px dashed var(--rk-quote-border);
    animation: fadeInDown 0.4s ease forwards;
}

.rk-expert-data-panel.active {
    display: grid;
    grid-template-columns: 100px 1fr 1fr 1fr;
    gap: 15px;
    align-items: center;
}

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

.rk-data-svg-box {
    display: flex;
    justify-content: center;
    align-items: center;
}

.rk-data-svg {
    width: 60px;
    height: 60px;
    filter: drop-shadow(0 4px 6px rgba(16, 185, 129, 0.2));
}

.anim-pulse-target {
    transform-origin: center;
    animation: targetPulse 2s infinite alternate ease-in-out;
}

@keyframes targetPulse {
    0% { transform: scale(0.9); opacity: 0.8; stroke: var(--rk-quote-accent); }
    100% { transform: scale(1.1); opacity: 1; stroke: var(--rk-quote-passive); }
}

.rk-data-stat {
    text-align: center;
    background: #ffffff;
    padding: 15px;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    border: 1px solid transparent;
    transition: border-color 0.3s;
}

.rk-data-stat:hover {
    border-color: var(--rk-quote-accent-light);
}

.rk-data-val {
    display: block;
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-quote-accent);
    margin-bottom: 5px;
}

.rk-data-lab {
    font-size: 11px;
    color: #64748b;
    text-transform: uppercase;
    font-weight: 700;
}

@media (max-width: 768px) {
    .rk-expert-container { flex-direction: column; text-align: center; padding: 30px 25px; align-items: center; }
    .rk-expert-header h2 { font-size: 22px; text-align: center; }
    .rk-expert-container::before { width: 100%; height: 6px; }
    .rk-expert-data-panel.active { grid-template-columns: 1fr; }
    .rk-data-svg-box { display: none; /* Hide icon on small mobile to save space */ }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#article-cytat",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/"
    },
    "headline": "Ekspercki punkt widzenia: Precyzja w standardzie pasywnym",
    "description": "Opinia inżyniera HVAC na temat konsekwencji braku rzetelnych obliczeń OZC i projektowania instalacji ogrzewania podłogowego na oko w budownictwie pasywnym.",
    "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-03-05",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Quotation",
    "license": "https://projekt-ogrzewania.pl/",
    "text": "Budownictwo pasywne nie wybacza inżynierskiej arogancji. Kopiowanie schematów ze starych domów i układanie rur 'na oko' to absolutna gwarancja przegrzewania pomieszczeń oraz morderczego taktowania pompy ciepła. Jeśli opierasz się na zgadywaniu, zamiast zamówić rzetelny projekt, niszczysz cały sens finansowy energooszczędnej inwestycji.",
    "spokenByCharacter": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "jobTitle": "Inżynier HVAC & Projektant",
      "url": "https://projekt-ogrzewania.pl",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ],
      "worksFor": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl"
      }
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#dataset-cytat",
    "name": "Krytyczne parametry projektowe dla podłogówki pasywnej",
    "description": "Zestawienie inżynierskich wartości bazowych wymaganych do zachowania stabilności termicznej w budownictwie o ekstremalnie niskim zapotrzebowaniu na energię.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zapotrzebowanie cieplne domu pasywnego W/m2",
      "skutki braku projektu ogrzewania podłogowego",
      "projekt z obliczeniami OZC a projekt z głowy",
      "taktowanie pompy ciepła w nowym domu",
      "optymalny rozstaw rur 15-20 cm"
    ],
    "measurementTechnique": "Określenie krytycznych limitów mocy i przepływu zapobiegających przegrzewaniu izolowanych brył budynków.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zapotrzebowanie (q): Poniżej 15 W/m2",
        "Rozstaw rur bazowy: Od 15 cm do 20 cm",
        "Temperatura zasilania: Maksymalnie 28 - 32°C"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#webapp-cytat",
    "name": "Interaktywny Panel Ekspercki: Parametry Pasywne",
    "description": "Interfejs rozwijany przez użytkownika wyświetlający twarde dane liczbowe wynikające z norm i obliczeń OZC przytoczonych przez inżyniera.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-expert-wrapper" id="rk-expert-quote-app">
    <div class="rk-expert-header">
        <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="var(--rk-quote-accent)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg>
        <h3>Ekspercki punkt widzenia</h3>
    </div>
    
    <div class="rk-expert-container">
        <div class="rk-expert-photo-wrap">
            <div class="rk-expert-photo-ring"></div>
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski, Inżynier HVAC" class="rk-expert-photo" loading="lazy">
            <div class="rk-expert-badge-icon">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            </div>
        </div>
        
        <div class="rk-expert-content">
            <span class="rk-expert-label">
                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
                Ostrzeżenie przed "Instalatorską Intuicją"
            </span>
            <p class="rk-expert-text">
                "Budownictwo pasywne nie wybacza inżynierskiej arogancji. Kopiowanie schematów ze starych domów i układanie rur w gęstym rozstawie to absolutna gwarancja nieznośnego przegrzewania pomieszczeń oraz morderczego taktowania pompy ciepła. Zastanawiasz się, <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/">ile możesz stracić na błędach robiąc projekt z głowy</a>? Jeśli nie opierasz swojego systemu na <a href="https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/">rzetelnym projekcie ogrzewania z wyliczeniem OZC</a> do jednego Wata, niszczysz cały finansowy i technologiczny sens energooszczędnej inwestycji."
            </p>
            <span class="rk-expert-signature">— Robert Kucharski, Inżynier HVAC Projekt-Ogrzewania.pl</span>
            
            <div class="rk-expert-interactive">
                <button class="rk-expert-btn" id="toggleDataBtn">
                    Rozwiń parametry krytyczne
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                
                <div class="rk-expert-data-panel" id="expertDataPanel">
                    <div class="rk-data-svg-box">
                        <svg class="rk-data-svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
                            <circle cx="12" cy="12" r="10" class="anim-pulse-target"></circle>
                            <circle cx="12" cy="12" r="6"></circle>
                            <circle cx="12" cy="12" r="2"></circle>
                        </svg>
                    </div>
                    <div class="rk-data-stat">
                        <span class="rk-data-val" style="color: var(--rk-quote-passive);">&lt; 15 W/m²</span>
                        <span class="rk-data-lab">Max. Zapotrzebowanie</span>
                    </div>
                    <div class="rk-data-stat">
                        <span class="rk-data-val">15 - 20 cm</span>
                        <span class="rk-data-lab">Optymalny Rozstaw</span>
                    </div>
                    <div class="rk-data-stat">
                        <span class="rk-data-val" style="color: var(--rk-quote-danger);">32 °C</span>
                        <span class="rk-data-lab">Krytyczne Zasilanie</span>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <noscript>
        <div style="padding: 20px; background: #f8fafc; border-radius: 16px; margin-top: 20px; font-family: sans-serif;">
            <p style="font-size: 14px; font-weight: bold; color: #0f172a; margin-top:0;">Parametry graniczne weryfikacji (Robert Kucharski):</p>
            <ul style="font-size: 14px; color: #475569; margin-bottom:0;">
                <li>Zapotrzebowanie na moc: Poniżej 15 W/m²</li>
                <li>Optymalny rozstaw rur: Od 15 cm do 20 cm</li>
                <li>Krytyczna maksymalna temperatura zasilania: 32 °C</li>
            </ul>
        </div>
    </noscript>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE (DOMAIN LOCK)
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Zgodnie z wytycznymi - brak nagłówków H-tagów w alercie)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-expert-quote-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 20px; text-align: center; background: #fef2f2; color: #dc2626; border-radius: 20px; border: 2px dashed #ef4444;">
                    <div style="font-size: 32px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 800; text-transform: uppercase; margin-bottom: 10px;">Blokada bezpieczeństwa</div>
                    <div style="font-size: 14px; color: #7f1d1d;">Cytat inżynierski jest chroniony prawem autorskim serwisu Projekt-Ogrzewania.pl.</div>
                </div>
            `;
            // Usuwamy resztę styli z kontenera by nie zepsuć wyglądu komunikatu
            container.style.borderLeft = 'none';
            container.style.background = 'transparent';
            container.style.boxShadow = 'none';
            return;
        }
    }

    // 2. Interakcja z panelem danych
    const toggleBtn = document.getElementById('toggleDataBtn');
    const dataPanel = document.getElementById('expertDataPanel');

    if (toggleBtn && dataPanel) {
        toggleBtn.addEventListener('click', function() {
            this.classList.toggle('active');
            dataPanel.classList.toggle('active');
            
            if(this.classList.contains('active')) {
                this.innerHTML = `Zwiń parametry krytyczne <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>`;
            } else {
                this.innerHTML = `Rozwiń parametry krytyczne <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>`;
            }
        });
    }
});
</script>



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



<style>
:root {
    --rk-cs-dark: #0f172a;
    --rk-cs-brand: #0284c7;
    --rk-cs-accent: #38bdf8;
    --rk-cs-passive: #10b981; /* Kolor sukcesu/pasywny */
    --rk-cs-standard: #f59e0b; /* Kolor ostrzegawczy/standard */
    --rk-cs-cold: #3b82f6; /* Zima/Móz */
    --rk-cs-bg: #ffffff;
    --rk-cs-panel: #f8fafc;
    --rk-cs-border: #cbd5e1;
    --rk-cs-text: #475569;
}

.rk-cs-wrapper {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', system-ui, sans-serif;
    background: var(--rk-cs-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.12);
    border: 1px solid #bae6fd;
    overflow: hidden;
    box-sizing: border-box;
}

.rk-cs-wrapper * {
    box-sizing: inherit;
}

/* ================= HEADER I METRYCZKA ================= */
.rk-cs-header {
    background: linear-gradient(135deg, var(--rk-cs-dark) 0%, #1e293b 100%);
    color: #ffffff;
    padding: 45px 50px 35px;
    position: relative;
}

.rk-cs-header::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: radial-gradient(circle at 90% 10%, rgba(56, 189, 248, 0.15) 0%, transparent 50%);
    pointer-events: none;
}

.rk-cs-badge {
    display: inline-block;
    background: rgba(56, 189, 248, 0.15);
    border: 1px solid rgba(56, 189, 248, 0.3);
    color: var(--rk-cs-accent);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 20px;
}

.rk-cs-header h2 {
    font-size: 30px;
    font-weight: 900;
    margin: 0 0 30px 0;
    line-height: 1.2;
    letter-spacing: -0.5px;
}

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

.rk-cs-stat-item {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 18px 20px;
    border-radius: 14px;
    backdrop-filter: blur(8px);
    display: flex;
    flex-direction: column;
}

.rk-cs-stat-item span.label {
    font-size: 11px;
    color: #94a3b8;
    text-transform: uppercase;
    font-weight: 800;
    margin-bottom: 6px;
    letter-spacing: 0.5px;
}

.rk-cs-stat-item span.value {
    font-size: 18px;
    font-weight: 900;
    color: #ffffff;
}

/* ================= OPIS WYZWANIA ================= */
.rk-cs-body {
    padding: 40px 50px 10px;
    background: #ffffff;
}

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

.rk-cs-story a {
    color: var(--rk-cs-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid #bae6fd;
    transition: all 0.3s;
}

.rk-cs-story a:hover {
    background: #e0f2fe;
    border-color: var(--rk-cs-brand);
}

.rk-cs-author {
    display: inline-flex;
    align-items: center;
    gap: 15px;
    background: #f8fafc;
    border: 1px solid var(--rk-cs-border);
    padding: 15px 25px;
    border-radius: 100px;
    margin-bottom: 30px;
}

.rk-cs-author img {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

.rk-cs-author-info p {
    margin: 0;
    font-size: 13px;
    color: var(--rk-cs-text);
    line-height: 1.4;
}

.rk-cs-author-info strong {
    color: var(--rk-cs-dark);
    font-weight: 800;
    display: block;
    font-size: 15px;
}

/* ================= SYMULATOR INTERAKTYWNY ================= */
.rk-cs-interactive {
    padding: 0 50px 45px;
}

.rk-sim-box {
    background: var(--rk-cs-panel);
    border: 1px solid var(--rk-cs-border);
    border-radius: 20px;
    padding: 30px;
}

.rk-sim-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
    border-bottom: 1px solid #e2e8f0;
    padding-bottom: 20px;
}

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

/* Toggle App Style */
.rk-toggle-app {
    display: flex;
    background: #e2e8f0;
    border-radius: 12px;
    padding: 4px;
    position: relative;
    width: 300px; /* Sztywna szerokość dla stabilności */
}

.rk-toggle-btn {
    flex: 1;
    text-align: center;
    padding: 10px 15px;
    font-size: 12px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    z-index: 2;
    transition: color 0.3s;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    white-space: nowrap; /* Zabezpieczenie przed łamaniem tekstu */
}

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

.rk-toggle-slider {
    position: absolute;
    top: 4px;
    left: 4px;
    height: calc(100% - 8px);
    width: calc(50% - 4px);
    background: var(--rk-cs-passive);
    border-radius: 8px;
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), background 0.4s;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

/* Dashboard SVG i Wyniki */
.rk-sim-dashboard {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) 1.2fr;
    gap: 25px;
    align-items: stretch;
}

/* SVG Animacje */
.rk-svg-viewport {
    background: #ffffff;
    border: 1px solid var(--rk-cs-border);
    border-radius: 16px;
    padding: 20px;
    position: relative;
    overflow: hidden;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    display: flex;
    justify-content: center;
    align-items: center;
}

.svg-snow { fill: #bae6fd; animation: snowfall linear infinite; }
.svg-heat-loss { fill: none; stroke-linecap: round; stroke-width: 4; transition: opacity 0.5s, stroke 0.5s; }

/* Stan: Pasywny */
.state-passive .svg-heat-loss { stroke: var(--rk-cs-passive); opacity: 0.2; animation: floatUp 3s infinite ease-in-out; }
.state-passive .svg-wall { stroke: var(--rk-cs-passive); stroke-width: 8; transition: stroke-width 0.5s; }
.state-passive .svg-therm-fill { fill: var(--rk-cs-passive); height: 60px; y: 40; transition: all 0.5s; }

/* Stan: Standard */
.state-standard .svg-heat-loss { stroke: var(--rk-cs-standard); opacity: 1; animation: floatUp 1s infinite ease-in-out; }
.state-standard .svg-wall { stroke: #94a3b8; stroke-width: 4; transition: stroke-width 0.5s; }
.state-standard .svg-therm-fill { fill: var(--rk-cs-standard); height: 90px; y: 10; transition: all 0.5s; }

@keyframes snowfall {
    0% { transform: translateY(-20px); opacity: 0; }
    50% { opacity: 1; }
    100% { transform: translateY(120px); opacity: 0; }
}

@keyframes floatUp {
    0% { transform: translateY(10px); }
    100% { transform: translateY(-20px); }
}

/* Wyniki (Kafelki) - PANZER CSS (Zabezpieczone przed globalnymi stylami motywu) */
.rk-sim-metrics {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

.rk-metric-card {
    background: #ffffff;
    border: 1px solid var(--rk-cs-border);
    padding: 16px 20px;
    border-radius: 14px;
    transition: border-color 0.3s;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    text-align: left;
}

.rk-metric-card h4 {
    margin: 0 0 6px 0;
    font-size: 11px;
    color: var(--rk-cs-text);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    line-height: 1.3;
    word-break: normal;
}

.rk-metric-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-cs-dark);
    margin: 0 0 4px 0;
    line-height: 1.1;
    white-space: nowrap; /* Zapobiega łamaniu wartości */
}

.rk-metric-sub {
    font-size: 12px;
    color: #94a3b8;
    font-weight: 600;
    margin: 0;
    line-height: 1.3;
}

.val-highlight { transition: color 0.3s; }
.state-passive .val-highlight { color: var(--rk-cs-passive); }
.state-standard .val-highlight { color: var(--rk-cs-standard); }

/* Responsywność */
@media (max-width: 768px) {
    .rk-cs-header { padding: 35px 25px; }
    .rk-cs-stats { grid-template-columns: 1fr 1fr; }
    .rk-cs-body { padding: 30px 25px 10px; }
    .rk-cs-interactive { padding: 0 25px 35px; }
    .rk-sim-box { padding: 20px; }
    .rk-sim-header { flex-direction: column; gap: 15px; align-items: stretch; text-align: center; }
    .rk-toggle-app { width: 100%; display: flex; }
    .rk-sim-dashboard { grid-template-columns: 1fr; gap: 20px; }
}
@media (max-width: 480px) {
    .rk-sim-metrics { grid-template-columns: 1fr; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/URL-ARTYKULU#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/URL-ARTYKULU"
    },
    "headline": "Case Study: Optymalizacja ogrzewania podłogowego w domu pasywnym (Zakopane)",
    "description": "Inżynieryjna analiza projektu instalacji podłogowej w domu pasywnym w Zakopanem. Zastosowanie pompy ciepła monoblok 3,5 kW, rur PERT i rozstawu 20 cm zaowocowało kosztem 640 PLN rocznie.",
    "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-03-05",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/URL-ARTYKULU#dataset-casestudy",
    "name": "Wyniki OZC i Koszty Eksploatacji - Dom Pasywny Zakopane 2025",
    "description": "Zestawienie parametrów wejściowych i wyników eksploatacyjnych dla budynku o pow. 162m2 zlokalizowanego w III strefie klimatycznej (-20°C).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "koszty ogrzewania pompą ciepła w górach",
      "projekt podłogówki do domu pasywnego",
      "średnia temperatura zasilania podłogówki",
      "rozstaw rur 20 cm ogrzewanie podłogowe",
      "pompa ciepła monoblok 3.5 kW"
    ],
    "measurementTechnique": "Monitoring rzeczywistego zużycia energii elektrycznej pompy ciepła w sezonie grzewczym 2025/2026 w odniesieniu do projektu OZC 1,94 kW.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zapotrzebowanie na moc (OZC): 1,94 kW przy -20°C na zewnątrz.",
        "System: Pompa ciepła monoblok 3,5 kW, rura PERT/AL/PERT 16x2,0 mm.",
        "Parametry zasilania: Średnia sezonowa temperatura Tz = 27,4°C.",
        "Roczny koszt ogrzewania: 640 PLN."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/URL-ARTYKULU#webapp-casestudy",
    "name": "Symulator Efektywności Termicznej (Pasywny vs Standard)",
    "description": "Interaktywny panel zestawiający wizualnie straty ciepła i roczne koszty ogrzewania w ekstremalnych warunkach zimowych dla dwóch standardów budowlanych.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-cs-wrapper" id="case-study-app">
    
    <div class="rk-cs-header">
        <div class="rk-cs-badge">Case Study z placu budowy</div>
        <h2>Inwestycja Stanisława, Zakopane</h2>
        
        <div class="rk-cs-stats">
            <div class="rk-cs-stat-item">
                <span class="label">Termin</span>
                <span class="value">Listopad 2025</span>
            </div>
            <div class="rk-cs-stat-item">
                <span class="label">Lokalizacja</span>
                <span class="value">Strefa III (-20°C)</span>
            </div>
            <div class="rk-cs-stat-item">
                <span class="label">Powierzchnia</span>
                <span class="value">162 m²</span>
            </div>
            <div class="rk-cs-stat-item">
                <span class="label">Wynikowy Koszt</span>
                <span class="value" style="color: var(--rk-cs-accent);">640 PLN / rok</span>
            </div>
        </div>
    </div>

    <div class="rk-cs-body">
        <div class="rk-cs-author">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" loading="lazy">
            <div class="rk-cs-author-info">
                <strong>Robert Kucharski</strong>
                <p>Nadzór Inżynierski HVAC</p>
            </div>
        </div>

        <p class="rk-cs-story">
            W listopadzie 2025 roku zakończyłem nadzór inżynierski nad <a href="https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/">projektem podłogówki do domu pasywnego</a> dla Pana Stanisława w Zakopanem. Wyzwaniem była wymagająca, III strefa klimatyczna. Budynek o powierzchni 162 m² został wykonany w rygorystycznej technologii (ściany U=0,09 W/(m²·K)). Realne zapotrzebowanie na moc grzewczą w najzimniejszym dniu zimy (-20°C) wyniosło zaledwie <strong>1,94 kW</strong> dla całego obiektu.
        </p>
        <p class="rk-cs-story">
            Zastosowaliśmy <a href="https://projekt-ogrzewania.pl/rura-pert-do-ogrzewania-podlogowego/">rurę PERT/AL/PERT</a> 16x2,0 mm w rzadkim, ale tu idealnym <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstawie rur 20 cm</a> w strefach bytowych. Zintegrowaliśmy to z automatyką pogodową i <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompą ciepła typu monoblok 3,5 kW</a>. Efekt? <strong>Średnia temperatura zasilania podłogówki</strong> w sezonie wyniosła zaledwie 27,4°C, co zagwarantowało <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">koszty ogrzewania pompą ciepła w górach</a> na poziomie rewelacyjnych 640 PLN rocznie.
        </p>
    </div>

    <div class="rk-cs-interactive">
        <div class="rk-sim-box state-passive" id="rk-sim-container">
            
            <div class="rk-sim-header">
                <h3 class="rk-sim-title">Symulator Efektywności Termicznej</h3>
                <div class="rk-toggle-app">
                    <div class="rk-toggle-slider" id="rk-toggle-slider"></div>
                    <div class="rk-toggle-btn active" id="btn-passive">Dom Pasywny</div>
                    <div class="rk-toggle-btn" id="btn-standard">Dom Standard</div>
                </div>
            </div>

            <div class="rk-sim-dashboard">
                
                <!-- Wizualizacja SVG (Zima) -->
                <div class="rk-svg-viewport">
                    <svg viewBox="0 0 200 150" style="width:100%; max-width:200px; height:auto;">
                        <!-- Tło / Śnieg (generowany w js) -->
                        <g id="snow-layer"></g>

                        <!-- Budynek -->
                        <path class="svg-wall" d="M 40 130 L 40 70 L 100 30 L 160 70 L 160 130 Z" fill="#f8fafc" stroke-linejoin="round"/>
                        
                        <!-- Rury Grzewcze -->
                        <circle cx="70" cy="120" r="5" fill="#ef4444"/>
                        <circle cx="100" cy="120" r="5" fill="#ef4444"/>
                        <circle cx="130" cy="120" r="5" fill="#ef4444"/>

                        <!-- Uciekające Ciepło -->
                        <path class="svg-heat-loss" d="M 100 80 Q 110 50 100 20"/>
                        <path class="svg-heat-loss" d="M 70 80 Q 80 50 70 20" style="animation-delay: 0.3s;"/>
                        <path class="svg-heat-loss" d="M 130 80 Q 140 50 130 20" style="animation-delay: 0.6s;"/>

                        <!-- Termometr Zewnętrzny (-20C) -->
                        <rect x="10" y="40" width="10" height="60" rx="5" fill="#e2e8f0" stroke="#cbd5e1"/>
                        <rect x="12" y="80" width="6" height="20" rx="3" fill="#3b82f6"/>
                        <text x="15" y="35" font-size="10" font-weight="bold" fill="#3b82f6" text-anchor="middle">-20°C</text>

                        <!-- Termometr Wewnętrzny -->
                        <rect x="175" y="40" width="10" height="60" rx="5" fill="#e2e8f0" stroke="#cbd5e1"/>
                        <rect x="177" y="40" width="6" height="60" rx="3" class="svg-therm-fill"/>
                        <text x="180" y="35" font-size="10" font-weight="bold" fill="#ef4444" text-anchor="middle">21°C</text>
                    </svg>
                </div>

                <!-- Kafelki Wyników z zabezpieczeniem (flex-direction: column) -->
                <div class="rk-sim-metrics">
                    <div class="rk-metric-card">
                        <h4>Moc Projektowa (OZC)</h4>
                        <div class="rk-metric-val val-highlight" id="val-ozc">1.94 kW</div>
                        <div class="rk-metric-sub">Zapotrzebowanie przy -20°C</div>
                    </div>
                    <div class="rk-metric-card">
                        <h4>Śr. Temp. Zasilania</h4>
                        <div class="rk-metric-val val-highlight" id="val-temp">27.4°C</div>
                        <div class="rk-metric-sub">Idealne dla pompy ciepła</div>
                    </div>
                    <div class="rk-metric-card">
                        <h4>Rozstaw Rur PEX/PERT</h4>
                        <div class="rk-metric-val val-highlight" id="val-spacing">co 20 cm</div>
                        <div class="rk-metric-sub">Oszczędność materiału</div>
                    </div>
                    <div class="rk-metric-card">
                        <h4>Roczny Koszt Ogrzewania</h4>
                        <div class="rk-metric-val val-highlight" id="val-cost">640 PLN</div>
                        <div class="rk-metric-sub">W rachunkach za prąd</div>
                    </div>
                </div>

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

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. 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('case-study-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; border: 2px solid #ef4444; border-radius: 16px; font-family: monospace;">
                    <div style="font-size: 32px; margin-bottom: 15px; color: #ef4444;">[ UNAUTHORIZED ACCESS ]</div>
                    <div style="font-size: 14px; font-weight: bold; color: #cbd5e1; margin-bottom: 10px;">
                        Brak licencji na wyświetlanie zawartości.
                    </div>
                    <div style="color: #64748b; font-size: 12px; line-height: 1.5;">
                        Moduł Case Study stanowi własność intelektualną Projekt-Ogrzewania.pl.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Generowanie śniegu w SVG
    const snowLayer = document.getElementById('snow-layer');
    let snowHtml = '';
    for(let i=0; i<15; i++) {
        const cx = Math.random() * 200;
        const delay = Math.random() * 3;
        const dur = 2 + Math.random() * 2;
        const r = 1 + Math.random() * 1.5;
        snowHtml += `<circle cx="${cx}" cy="-10" r="${r}" class="svg-snow" style="animation-delay: ${delay}s; animation-duration: ${dur}s;"/>`;
    }
    snowLayer.innerHTML = snowHtml;

    // 3. Logika Przełącznika
    const btnPassive = document.getElementById('btn-passive');
    const btnStandard = document.getElementById('btn-standard');
    const slider = document.getElementById('rk-toggle-slider');
    const container = document.getElementById('rk-sim-container');

    // Wartości DOM
    const valOzc = document.getElementById('val-ozc');
    const valTemp = document.getElementById('val-temp');
    const valSpacing = document.getElementById('val-spacing');
    const valCost = document.getElementById('val-cost');

    function animateValue(element, start, end, suffix, duration) {
        let startTimestamp = null;
        const step = (timestamp) => {
            if (!startTimestamp) startTimestamp = timestamp;
            const progress = Math.min((timestamp - startTimestamp) / duration, 1);
            const easeProgress = progress * (2 - progress);
            const current = start + (end - start) * easeProgress;
            
            if(Number.isInteger(end)) {
                element.textContent = Math.round(current) + suffix;
            } else {
                element.textContent = current.toFixed(2) + suffix;
            }
            
            if (progress < 1) {
                window.requestAnimationFrame(step);
            }
        };
        window.requestAnimationFrame(step);
    }

    btnPassive.addEventListener('click', () => {
        // UI Update
        btnStandard.classList.remove('active');
        btnPassive.classList.add('active');
        slider.style.transform = 'translateX(0)';
        slider.style.background = 'var(--rk-cs-passive)';
        
        container.classList.remove('state-standard');
        container.classList.add('state-passive');

        // Text & Animations
        valSpacing.textContent = 'co 20 cm';
        animateValue(valOzc, 8.5, 1.94, ' kW', 800);
        animateValue(valTemp, 38.0, 27.4, '°C', 800);
        animateValue(valCost, 3200, 640, ' PLN', 1000);
    });

    btnStandard.addEventListener('click', () => {
        // UI Update
        btnPassive.classList.remove('active');
        btnStandard.classList.add('active');
        slider.style.transform = 'translateX(100%)';
        slider.style.background = 'var(--rk-cs-standard)';
        
        container.classList.remove('state-passive');
        container.classList.add('state-standard');

        // Text & Animations
        valSpacing.textContent = 'co 10 cm';
        animateValue(valOzc, 1.94, 8.5, ' kW', 800);
        animateValue(valTemp, 27.4, 38.0, '°C', 800);
        animateValue(valCost, 640, 3200, ' PLN', 1000);
    });
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-brand: #0284c7;
    --rk-faq-brand-light: #f0f9ff;
    --rk-faq-accent: #38bdf8;
    --rk-faq-eco: #10b981;
    --rk-faq-warn: #f59e0b;
    --rk-faq-cold: #3b82f6;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #475569;
    --rk-faq-bg: #ffffff;
    --rk-faq-panel: #f8fafc;
}

.rk-faq-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', system-ui, sans-serif;
    background: var(--rk-faq-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(2, 132, 199, 0.1);
    border: 1px solid #bae6fd;
    overflow: hidden;
}

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

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

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

/* Interaktywny Akordeon */
.rk-faq-body {
    padding: 40px 45px;
    background: var(--rk-faq-panel);
}

.rk-accordion-item {
    background: #ffffff;
    border: 1px solid var(--rk-faq-border);
    border-radius: 16px;
    margin-bottom: 20px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    overflow: hidden;
    transition: border-color 0.3s, box-shadow 0.3s;
}

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

/* Przycisk Pytania */
.rk-accordion-btn {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 24px 30px;
    background: transparent;
    border: none;
    cursor: pointer;
    font-family: inherit;
    text-align: left;
}

.rk-accordion-title {
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-faq-dark);
    line-height: 1.4;
    padding-right: 20px;
    transition: color 0.3s;
}

.rk-accordion-item.active .rk-accordion-title {
    color: var(--rk-faq-brand);
}

.rk-accordion-icon {
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    border-radius: 50%;
    background: var(--rk-faq-brand-light);
    color: var(--rk-faq-brand);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.rk-accordion-item.active .rk-accordion-icon {
    transform: rotate(135deg);
    background: var(--rk-faq-brand);
    color: #ffffff;
}

/* Rozwijana Treść */
.rk-accordion-content-wrapper {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s ease-out;
}

.rk-accordion-item.active .rk-accordion-content-wrapper {
    grid-template-rows: 1fr;
}

.rk-accordion-content {
    overflow: hidden;
}

.rk-accordion-inner {
    padding: 0 30px 30px 30px;
    display: grid;
    grid-template-columns: 1fr 140px;
    gap: 30px;
    align-items: center;
    border-top: 1px dashed transparent;
    transition: border-color 0.4s;
}

.rk-accordion-item.active .rk-accordion-inner {
    border-color: var(--rk-faq-border);
    padding-top: 25px;
}

/* Tekst i Linki SEO */
.rk-faq-text {
    font-size: 15.5px;
    line-height: 1.8;
    color: var(--rk-faq-text);
    margin: 0;
}

.rk-faq-text strong {
    color: var(--rk-faq-dark);
}

.rk-faq-text a {
    color: var(--rk-faq-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid #bae6fd;
    transition: all 0.3s;
}

.rk-faq-text a:hover {
    background: var(--rk-faq-brand-light);
    border-color: var(--rk-faq-brand);
}

/* Mini Infografiki SVG wewnątrz FAQ */
.rk-faq-svg-box {
    width: 100%;
    height: 120px;
    background: #f8fafc;
    border-radius: 12px;
    border: 1px solid var(--rk-faq-border);
    display: flex;
    justify-content: center;
    align-items: center;
}

.rk-faq-svg { width: 80%; height: auto; }

/* Animacje Q1, Q2, Q3 (Istniejące) */
.anim-heat-glow { opacity: 0; transform: translateY(10px); transition: all 0.8s ease; }
.rk-accordion-item.active .anim-heat-glow { opacity: 1; transform: translateY(0); animation: pulseHeat 2s infinite alternate; }

.anim-evoh { stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset 1s ease-in-out; }
.rk-accordion-item.active .anim-evoh { stroke-dashoffset: 0; }

.anim-panel { transform: translateY(-20px); opacity: 0; transition: all 0.6s cubic-bezier(0.34, 1.56, 0.64, 1); }
.rk-accordion-item.active .anim-panel { transform: translateY(0); opacity: 1; }

/* Animacje Q4, Q5 (Nowe) */
.anim-reku-arrow { opacity: 0; transition: opacity 0.5s; }
.rk-accordion-item.active .anim-reku-arrow { opacity: 1; animation: flowReku 2s infinite linear; }
.anim-flake { transform-origin: center; opacity: 0; transition: opacity 0.5s; }
.rk-accordion-item.active .anim-flake { opacity: 1; animation: spinFlake 4s infinite linear; }

@keyframes pulseHeat {
    0% { filter: drop-shadow(0 -5px 5px rgba(245, 158, 11, 0.2)); }
    100% { filter: drop-shadow(0 -15px 15px rgba(245, 158, 11, 0.6)); }
}
@keyframes flowReku {
    0% { stroke-dashoffset: 20; }
    100% { stroke-dashoffset: 0; }
}
@keyframes spinFlake {
    100% { transform: rotate(360deg); }
}

@media (max-width: 768px) {
    .rk-faq-header, .rk-faq-body { padding: 30px 25px; }
    .rk-accordion-btn { padding: 20px; }
    .rk-accordion-inner { grid-template-columns: 1fr; padding: 0 20px 20px 20px; gap: 20px; }
    .rk-accordion-title { font-size: 15px; }
    .rk-faq-svg-box { height: 100px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/"
    },
    "headline": "Sekcja FAQ – Najczęstsze pytania o podłogówkę w domu pasywnym",
    "description": "Techniczne odpowiedzi eksperta: podłogówka jako jedyne źródło ciepła, rury PEX vs PERT, panele na ogrzewaniu, wpływ rekuperacji oraz chłodzenie płaszczyznowe.",
    "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-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy ogrzewanie podłogowe w domu pasywnym może być jedynym źródłem ciepła?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Absolutnie tak. Kluczem do sukcesu jest profesjonalnie wykonane projektowe obciążenie cieplne (OZC). W domach o ekstremalnie niskim zapotrzebowaniu energetycznym (często poniżej 15 kWh/(m2·rok)), prawidłowo zaprojektowana instalacja ogrzewania płaszczyznowego bez problemu pokryje straty ciepła, nawet gdy temperatura na zewnątrz spada poniżej -20°C."
        }
      },
      {
        "@type": "Question",
        "name": "Jaką rurę do ogrzewania podłogowego wybrać: PEX czy PERT?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "W przypadku domów pasywnych, gdzie zasilanie pompy ciepła oscyluje wokół 28-32°C, rura wielowarstwowa PERT/AL/PERT jest wyborem optymalnym i wystarczającym. Najważniejszym parametrem jest obecność bariery antydyfuzyjnej EVOH zgodnej z normą DIN 4726, która skutecznie blokuje przenikanie tlenu do zładu wody."
        }
      },
      {
        "@type": "Question",
        "name": "Czy można kłaść panele na ogrzewanie podłogowe w domu pasywnym?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Oczywiście, ale wymaga to precyzji projektowej. Całkowity opór cieplny okładziny (paneli wraz z podkładem) nie może przekraczać 0,15 (m2·K)/W. W praktyce najlepiej sprawdzają się cienkie panele winylowe SPC na podłogówkę oraz dedykowane podkłady o dużej gęstości."
        }
      },
      {
        "@type": "Question",
        "name": "Jak wentylacja mechaniczna z rekuperacją współpracuje z podłogówką?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "W budownictwie pasywnym rekuperacja jest niezbędna do prawidłowego działania podłogówki. Eliminując grawitacyjne straty ciepła, drastycznie obniża zapotrzebowanie energetyczne budynku. Pozwala to na obniżenie temperatury zasilania z pompy ciepła, co maksymalizuje współczynnik COP."
        }
      },
      {
        "@type": "Question",
        "name": "Czy ogrzewaniem podłogowym można chłodzić dom pasywny latem?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, chłodzenie płaszczyznowe przy użyciu rewersyjnej pompy ciepła to świetne rozwiązanie. Wymaga jednak ścisłej kontroli tzw. punktu rosy w ogrzewaniu podłogowym. Automatyka musi dbać o to, by zbyt niska temperatura wody (ok. 18°C) nie wywołała kondensacji wilgoci na posadzce."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#dataset-faq",
    "name": "Baza Wiedzy: Parametry Techniczne Podłogówki w Budownictwie Pasywnym",
    "description": "Zestawienie wytycznych instalacyjnych obejmujące ogrzewanie, chłodzenie i współpracę z rekuperatorem.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "podłogówka jedyne źródło ciepła zimą",
      "jaką rurę do ogrzewania podłogowego wybrać",
      "bariera antydyfuzyjna EVOH",
      "panele winylowe SPC na podłogówkę",
      "wpływ rekuperacji na ogrzewanie podłogowe",
      "chłodzenie płaszczyznowe podłogówką pompą ciepła",
      "punkt rosy w ogrzewaniu podłogowym"
    ],
    "measurementTechnique": "Weryfikacja parametrów projektowych OZC, wymagań dyfuzyjnych normy DIN 4726, oporu cieplnego R < 0,15 m2K/W oraz kontroli punktu kondensacji pary wodnej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wydajność: Samodzielne pokrycie OZC przy mrozach -20°C.",
        "Technologia rur: PERT vs PEX z warunkiem szczelności tlenowej EVOH.",
        "Rezystancja: Limit izolacyjności podłogi do 0,15 m2K/W.",
        "Efektywność: Obniżenie OZC przez odzysk ciepła z wentylacji.",
        "Chłodzenie: Ochrona okładziny przed wilgocią poprzez kontrolę punktu rosy."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#webapp-faq",
    "name": "Interaktywny Przewodnik Techniczny (FAQ HVAC)",
    "description": "Aplikacja webowa typu akordeon, wzbogacona o dynamicznie renderowane grafiki wektorowe SVG, służąca do edukacji inwestorów w zakresie projektowania nowoczesnych instalacji HVAC.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-faq-container" id="faq-interactive-app">
    
    <div class="rk-faq-header">
        <h2>Sekcja FAQ – Najczęstsze pytania inwestorów</h2>
        <p>Wątpliwości na etapie stanu surowego to norma. Zobacz, jak inżynieria HVAC odpowiada na 5 najważniejszych pytań dotyczących standardu pasywnego.</p>
    </div>

    <div class="rk-faq-body">
        
        <!-- Pytanie 1 -->
        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <span class="rk-accordion-title">Czy ogrzewanie podłogowe w domu pasywnym może być jedynym źródłem ciepła?</span>
                <div class="rk-accordion-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content-wrapper">
                <div class="rk-accordion-content">
                    <div class="rk-accordion-inner">
                        <p class="rk-faq-text">
                            Absolutnie tak. Kluczem do sukcesu jest profesjonalnie wyliczone <strong><a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne (OZC)</a></strong>. W domach o ekstremalnie niskim zapotrzebowaniu energetycznym (często poniżej 15 kWh na m2 rocznie), prawidłowo zaprojektowana <strong>instalacja ogrzewania płaszczyznowego</strong> bez problemu pokryje straty budynku, nawet gdy temperatura na zewnątrz spada poniżej -20°C. Podłogówka eliminuje konieczność montowania dodatkowych grzejników czy mat elektrycznych, co znacząco obniża koszty inwestycyjne.
                        </p>
                        <div class="rk-faq-svg-box">
                            <svg class="rk-faq-svg" viewBox="0 0 100 100">
                                <path d="M10 80 L 90 80" stroke="#cbd5e1" stroke-width="4" stroke-linecap="round"/>
                                <circle cx="30" cy="70" r="6" fill="#ef4444"/>
                                <circle cx="50" cy="70" r="6" fill="#ef4444"/>
                                <circle cx="70" cy="70" r="6" fill="#ef4444"/>
                                <!-- Animowana łuna ciepła -->
                                <path class="anim-heat-glow" d="M 20 60 Q 50 10 80 60" fill="none" stroke="#f59e0b" stroke-width="4" stroke-linecap="round"/>
                            </svg>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <!-- Pytanie 2 -->
        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <span class="rk-accordion-title">Jaką rurę do ogrzewania podłogowego wybrać: PEX czy PERT?</span>
                <div class="rk-accordion-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content-wrapper">
                <div class="rk-accordion-content">
                    <div class="rk-accordion-inner">
                        <p class="rk-faq-text">
                            W przypadku domów pasywnych, gdzie zasilanie oscyluje wokół 28-32°C, <strong><a href="https://projekt-ogrzewania.pl/rura-pert-do-ogrzewania-podlogowego/">rura wielowarstwowa PERT/AL/PERT</a></strong> jest wyborem optymalnym. Jej największą zaletą jest wysoka elastyczność i łatwość układania gęstych pętli w porównaniu do sztywniejszych rur <strong><a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/">PEX/AL/PEX</a></strong>. Najważniejszym parametrem, na który musisz zwrócić uwagę przed zakupem, jest obecność bariery antydyfuzyjnej EVOH. Zgodnie z normą <strong><a href="https://projekt-ogrzewania.pl/norma-din-4726-w-ogrzewaniu-podlogowym/">DIN 4726</a></strong>, warstwa ta skutecznie blokuje przenikanie cząsteczek tlenu do zładu wody, chroniąc pompę ciepła i stalowe rozdzielacze przed korozją.
                        </p>
                        <div class="rk-faq-svg-box">
                            <svg class="rk-faq-svg" viewBox="0 0 100 100">
                                <!-- Warstwy rury -->
                                <circle cx="50" cy="50" r="30" fill="none" stroke="#cbd5e1" stroke-width="6"/>
                                <circle cx="50" cy="50" r="24" fill="none" stroke="#94a3b8" stroke-width="4"/>
                                <circle cx="50" cy="50" r="20" fill="none" stroke="#10b981" stroke-width="4" class="anim-evoh"/>
                                <circle cx="50" cy="50" r="16" fill="none" stroke="#e2e8f0" stroke-width="4"/>
                                <text x="50" y="54" font-size="10" font-weight="bold" fill="#0f172a" text-anchor="middle">O2 STOP</text>
                            </svg>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <!-- Pytanie 3 -->
        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <span class="rk-accordion-title">Czy można kłaść panele na ogrzewanie podłogowe w domu pasywnym?</span>
                <div class="rk-accordion-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content-wrapper">
                <div class="rk-accordion-content">
                    <div class="rk-accordion-inner">
                        <p class="rk-faq-text">
                            Oczywiście, ale wymaga to ogromnej precyzji projektowej. Zgodnie z inżynierskimi wytycznymi, całkowity <strong><a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">opór cieplny okładziny (R)</a></strong> (czyli suma oporu paneli i podkładu) nie może przekraczać 0,15 (m2·K)/W. W praktyce instalatorskiej najlepiej sprawdzają się cienkie <strong>panele winylowe SPC na podłogówkę</strong> oraz dedykowane podkłady mineralne o wysokiej gęstości. Pamiętaj, że <strong><a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/">zastosowanie grubych paneli laminowanych</a></strong> wymusi podniesienie krzywej grzewczej na piecu o około 2 do 3°C względem płytek gresowych.
                        </p>
                        <div class="rk-faq-svg-box">
                            <svg class="rk-faq-svg" viewBox="0 0 100 100">
                                <!-- Beton z rurą -->
                                <rect x="10" y="70" width="80" height="20" fill="#cbd5e1" rx="2"/>
                                <circle cx="50" cy="80" r="5" fill="#ef4444"/>
                                <!-- Podkład i Panel -->
                                <g class="anim-panel">
                                    <rect x="10" y="55" width="80" height="6" fill="#f59e0b" opacity="0.8"/>
                                    <rect x="10" y="40" width="80" height="10" fill="#8b5cf6" rx="1"/>
                                    <path d="M 50 35 L 50 15 M 45 20 L 50 15 L 55 20" stroke="#8b5cf6" stroke-width="2" fill="none"/>
                                </g>
                            </svg>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <!-- Pytanie 4 -->
        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <span class="rk-accordion-title">Jak wentylacja z rekuperacją współpracuje z podłogówką?</span>
                <div class="rk-accordion-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content-wrapper">
                <div class="rk-accordion-content">
                    <div class="rk-accordion-inner">
                        <p class="rk-faq-text">
                            W budownictwie pasywnym <strong>wentylacja mechaniczna z odzyskiem ciepła (rekuperacja)</strong> jest systemem nierozerwalnie związanym z niskotemperaturowym ogrzewaniem. Eliminując potężne grawitacyjne straty ciepła (tzw. wywiewanie ciepłego powietrza przez komin), rekuperator drastycznie obniża zapotrzebowanie budynku. Pozytywny <strong><a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">wpływ rekuperacji na ogrzewanie podłogowe</a></strong> polega na tym, że instalacja grzewcza może pracować stabilnie na bardzo niskich parametrach zasilania, co bezpośrednio maksymalizuje wydajność (COP) pompy ciepła.
                        </p>
                        <div class="rk-faq-svg-box">
                            <svg class="rk-faq-svg" viewBox="0 0 100 100">
                                <!-- Wymiennik -->
                                <polygon points="50,20 80,50 50,80 20,50" fill="none" stroke="#94a3b8" stroke-width="3"/>
                                <!-- Przepływ zimnego -> gorącego -->
                                <path class="anim-reku-arrow" d="M 20 50 L 80 50" stroke="#ef4444" stroke-width="4" stroke-linecap="round" stroke-dasharray="5 5"/>
                                <!-- Przepływ zużytego -> zimnego -->
                                <path class="anim-reku-arrow" d="M 50 20 L 50 80" stroke="#3b82f6" stroke-width="4" stroke-linecap="round" stroke-dasharray="5 5"/>
                            </svg>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <!-- Pytanie 5 -->
        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <span class="rk-accordion-title">Czy ogrzewaniem podłogowym można skutecznie chłodzić dom latem?</span>
                <div class="rk-accordion-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content-wrapper">
                <div class="rk-accordion-content">
                    <div class="rk-accordion-inner">
                        <p class="rk-faq-text">
                            Tak, <strong>chłodzenie płaszczyznowe podłogówką</strong> przy użyciu rewersyjnej pompy ciepła to doskonałe, darmowe źródło komfortu na upalne dni. Instalacja tłoczy wtedy w posadzkę wodę o temperaturze około 18-20°C. Głównym wyzwaniem inżynieryjnym jest jednak ominięcie <strong><a href="https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/">punktu rosy w ogrzewaniu podłogowym</a></strong>. Zbyt niska temperatura czynnika doprowadzi do kondensacji i wytrącenia się kropel wody na posadzce. Wymaga to integracji odpowiednich termostatów ściennych z czujnikami wilgotności.
                        </p>
                        <div class="rk-faq-svg-box">
                            <svg class="rk-faq-svg" viewBox="0 0 100 100">
                                <rect x="10" y="80" width="80" height="10" fill="#cbd5e1" rx="2"/>
                                <circle cx="50" cy="85" r="3" fill="#3b82f6"/> <!-- Zimna woda -->
                                <!-- Płatek śniegu obracający się -->
                                <g class="anim-flake" stroke="#3b82f6" stroke-width="2" stroke-linecap="round">
                                    <line x1="50" y1="20" x2="50" y2="60" />
                                    <line x1="30" y1="40" x2="70" y2="40" />
                                    <line x1="35" y1="25" x2="65" y2="55" />
                                    <line x1="35" y1="55" x2="65" y2="25" />
                                </g>
                            </svg>
                        </div>
                    </div>
                </div>
            </div>
        </div>

    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe 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('faq-interactive-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 30px; text-align: center; background: #0f172a; border: 2px solid #0284c7; border-radius: 16px; font-family: monospace;">
                    <div style="font-size: 32px; margin-bottom: 15px; color: #0284c7;">[ MODULE LOCKED ]</div>
                    <div style="font-size: 14px; font-weight: bold; color: #cbd5e1; margin-bottom: 10px;">
                        Autoryzacja domeny nie powiodła się.
                    </div>
                    <div style="color: #64748b; font-size: 12px; line-height: 1.5;">
                        Aplikacja interaktywnego FAQ jest przypisana do licencji Projekt-Ogrzewania.pl.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Akordeonu (Z jednym otwartym na raz)
    const accordionItems = document.querySelectorAll('.rk-accordion-item');

    accordionItems.forEach(item => {
        const btn = item.querySelector('.rk-accordion-btn');
        
        btn.addEventListener('click', () => {
            const isActive = item.classList.contains('active');

            // Zamknij inne
            accordionItems.forEach(otherItem => {
                otherItem.classList.remove('active');
                otherItem.querySelector('.rk-accordion-btn').setAttribute('aria-expanded', 'false');
            });

            // Przełącz
            if (!isActive) {
                item.classList.add('active');
                btn.setAttribute('aria-expanded', 'true');
            }
        });
    });

    // Otwarcie pierwszego
    if(accordionItems.length > 0) {
        accordionItems[0].classList.add('active');
        accordionItems[0].querySelector('.rk-accordion-btn').setAttribute('aria-expanded', 'true');
    }
});
</script>



<style>
:root {
    --rk-pas-dark: #0f172a;
    --rk-pas-brand: #2563eb;
    --rk-pas-brand-light: #eff6ff;
    --rk-pas-eco: #059669;
    --rk-pas-eco-light: #ecfdf5;
    --rk-pas-warn: #dc2626;
    --rk-pas-warn-light: #fef2f2;
    --rk-pas-text: #334155;
    --rk-pas-border: #cbd5e1;
    --rk-pas-bg: #ffffff;
}

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

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

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

.rk-pas-quote {
    font-size: 18px;
    font-style: italic;
    color: #94a3b8;
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.6;
}

.rk-pas-quote strong {
    color: #38bdf8;
    font-weight: 700;
}

/* Interfejs Przełącznika */
.rk-pas-interactive {
    padding: 40px 30px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-pas-border);
}

.rk-pas-controls {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    margin-bottom: 30px;
}

.rk-pas-controls h3 {
    margin: 0;
    font-size: 20px;
    color: var(--rk-pas-dark);
}

/* Toggle Switch w stylu App */
.rk-toggle-wrapper {
    display: flex;
    align-items: center;
    gap: 15px;
    background: #fff;
    padding: 10px 20px;
    border-radius: 99px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
    border: 1px solid var(--rk-pas-border);
}

.rk-toggle-label {
    font-weight: 700;
    font-size: 15px;
    color: #64748b;
    transition: color 0.3s;
}

.rk-toggle-label.active-warn { color: var(--rk-pas-warn); }
.rk-toggle-label.active-eco { color: var(--rk-pas-eco); }

.rk-switch {
    position: relative;
    width: 64px;
    height: 32px;
    background: var(--rk-pas-warn);
    border-radius: 32px;
    cursor: pointer;
    transition: background 0.4s;
}

.rk-switch.pro-mode {
    background: var(--rk-pas-eco);
}

.rk-switch-thumb {
    position: absolute;
    top: 4px;
    left: 4px;
    width: 24px;
    height: 24px;
    background: #fff;
    border-radius: 50%;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

.rk-switch.pro-mode .rk-switch-thumb {
    transform: translateX(32px);
}

/* Wyświetlacz i SVG */
.rk-pas-display {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: center;
    background: #fff;
    padding: 30px;
    border-radius: 16px;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
}

.rk-svg-stage {
    width: 100%;
    max-width: 250px;
    margin: 0 auto;
    display: block;
}

/* Animacje SVG */
.wave-path {
    fill: none;
    stroke-width: 4;
    stroke-linecap: round;
    transition: stroke 0.5s, transform 0.5s;
}

.state-error .wave-path { stroke: var(--rk-pas-warn); animation: overheat 0.8s infinite alternate; }
.state-pro .wave-path { stroke: var(--rk-pas-eco); animation: stableHeat 3s infinite linear; }

@keyframes overheat {
    0% { transform: translateY(0) scaleY(1); opacity: 0.8; }
    100% { transform: translateY(-10px) scaleY(1.2); opacity: 1; }
}

@keyframes stableHeat {
    0% { transform: translateY(0); opacity: 0.6; }
    50% { transform: translateY(-5px); opacity: 0.9; }
    100% { transform: translateY(0); opacity: 0.6; }
}

.house-outline {
    fill: none;
    stroke: var(--rk-pas-dark);
    stroke-width: 3;
    stroke-linejoin: round;
}

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

.rk-data-card {
    background: #f8fafc;
    border: 1px solid var(--rk-pas-border);
    padding: 15px;
    border-radius: 12px;
    text-align: center;
    transition: all 0.3s;
}

.rk-data-card h4 {
    margin: 0 0 5px 0;
    font-size: 13px;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-data-card .rk-value {
    font-size: 22px;
    font-weight: 800;
    color: var(--rk-pas-dark);
    margin-bottom: 5px;
}

.rk-data-card p {
    margin: 0;
    font-size: 12px;
    color: var(--rk-pas-text);
}

/* CTA */
.rk-pas-cta {
    padding: 40px 30px;
    text-align: center;
    background: #fff;
}

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

.rk-pas-cta a {
    color: var(--rk-pas-brand);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.rk-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--rk-pas-brand);
    color: #ffffff !important; /* Wymuszony biały kolor tekstu i ikony */
    padding: 16px 32px;
    border-radius: 12px;
    font-weight: 800;
    font-size: 16px;
    text-decoration: none !important;
    transition: all 0.3s;
    box-shadow: 0 10px 20px -5px rgba(37, 99, 235, 0.4);
}

.rk-btn:hover {
    background: #1d4ed8;
    color: #ffffff !important; /* Zabezpieczenie przed zmianą koloru po najechaniu */
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(37, 99, 235, 0.5);
}

@media (max-width: 768px) {
    .rk-pas-display { grid-template-columns: 1fr; text-align: center; }
    .rk-data-grid { grid-template-columns: 1fr; }
    .rk-toggle-wrapper { flex-direction: column; gap: 10px; border-radius: 16px; padding: 15px; }
    .rk-switch { transform: rotate(90deg); margin: 10px 0; }
    .rk-pas-header h2 { font-size: 24px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/"
    },
    "headline": "Podsumowanie: Precyzja to Twój największy zysk w budownictwie pasywnym",
    "description": "Zrozum różnicę między intuicyjnym montażem a precyzyjnym inżynierskim projektem instalacji grzewczej. Optymalizacja rozstawu rur i izolacji EPS 200.",
    "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-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#dataset",
    "name": "Porównanie Parametrów: System Pasywny vs Błędy Wykonawcze",
    "description": "Baza danych przedstawiająca realne skutki przewymiarowania instalacji podłogowej, w tym nadmierne temperatury zasilania i koszty eksploatacyjne.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego dom pasywny",
      "rozstaw rur 15 cm a 10 cm",
      "grubość styropianu EPS 200",
      "temperatura zasilania pompy ciepła",
      "obliczenia OZC dla podłogówki"
    ],
    "measurementTechnique": "Analiza symulacyjna oparta na normie PN-EN 12831 wykazująca różnice w temperaturze zasilania i stabilności cieplnej podłogi.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rozstaw rur 10 cm: Powoduje nadmiar mocy, przegrzewanie i niepotrzebne koszty rur.",
        "Rozstaw rur 15-20 cm: Wymaga projektu, zapewnia niskie zasilanie (do 32°C) i stabilną pracę pompy ciepła."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#webapp",
    "name": "Interaktywny Symulator Komfortu Pasywnego",
    "description": "Narzędzie internetowe demonstrujące wpływ precyzyjnego inżynierskiego rozstawu rur i izolacji na parametry pracy instalacji ogrzewania podłogowego.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-pas-container" id="pasywny-sum-app">
    
    <div class="rk-pas-header">
        <h2>Efektywność wymaga inżynierskiej precyzji</h2>
        <p class="rk-pas-quote">
            W domu pasywnym instalacja grzewcza ma być niemal "niewidoczna" dla zmysłów i portfela. <strong>Zbyt gęsty rozstaw rur i wysoka temperatura zasilania to najszybsza droga do katastrofy termicznej.</strong>
        </p>
    </div>

    <div class="rk-pas-interactive">
        <div class="rk-pas-controls">
            <h3>Sprawdź wpływ projektu na działanie instalacji</h3>
            <div class="rk-toggle-wrapper">
                <span class="rk-toggle-label active-warn" id="lbl-amateur">Wykonawstwo "Na oko"</span>
                <div class="rk-switch" id="pas-toggle">
                    <div class="rk-switch-thumb"></div>
                </div>
                <span class="rk-toggle-label" id="lbl-pro">Projekt Inżynierski (OZC)</span>
            </div>
        </div>

        <div class="rk-pas-display">
            <!-- Animacja SVG -->
            <div class="rk-svg-container state-error" id="svg-state">
                <svg class="rk-svg-stage" viewBox="0 0 200 200">
                    <!-- Podstawa / Wylewka -->
                    <rect x="20" y="160" width="160" height="20" fill="#cbd5e1" rx="4"/>
                    <!-- Rury (dynamiczne wypełnienie w JS) -->
                    <g id="svg-pipes">
                        <circle cx="50" cy="170" r="6" fill="#ef4444"/>
                        <circle cx="80" cy="170" r="6" fill="#ef4444"/>
                        <circle cx="110" cy="170" r="6" fill="#ef4444"/>
                        <circle cx="140" cy="170" r="6" fill="#ef4444"/>
                    </g>
                    <!-- Fale Ciepła -->
                    <path class="wave-path" d="M 50 140 Q 60 100 50 60" />
                    <path class="wave-path" d="M 100 140 Q 110 100 100 60" style="animation-delay: 0.2s" />
                    <path class="wave-path" d="M 150 140 Q 160 100 150 60" style="animation-delay: 0.4s" />
                    <!-- Zarys Domu -->
                    <path class="house-outline" d="M 20 160 L 20 80 L 100 20 L 180 80 L 180 160" />
                </svg>
            </div>

            <!-- Dynamiczne Dane -->
            <div class="rk-data-grid">
                <div class="rk-data-card" id="card-spacing">
                    <h4>Rozstaw Rur</h4>
                    <div class="rk-value" style="color: var(--rk-pas-warn);">co 10 cm</div>
                    <p>Zbędny wydatek na materiał, trudne rotametrowanie.</p>
                </div>
                <div class="rk-data-card" id="card-temp">
                    <h4>Temp. Zasilania</h4>
                    <div class="rk-value" style="color: var(--rk-pas-warn);">> 40°C</div>
                    <p>Spadek COP pompy ciepła, przegrzewanie salonu.</p>
                </div>
                <div class="rk-data-card" id="card-eps">
                    <h4>Izolacja Posadzki</h4>
                    <div class="rk-value" style="color: var(--rk-pas-warn);">EPS 100</div>
                    <p>Niewystarczający opór cieplny do gruntu.</p>
                </div>
                <div class="rk-data-card" id="card-cost">
                    <h4>Koszty Roczne</h4>
                    <div class="rk-value" style="color: var(--rk-pas-warn);">Wyższe o 35%</div>
                    <p>Energia tracona przez niestabilność układu.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-pas-cta">
        <p>
            Decyzja o <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstawie rur co 10 czy 15 cm</a> oraz doborze grubości <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">styropianu EPS podłogowego</a> nie może być dziełem przypadku. W standardzie pasywnym nawet <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">niska temperatura zasilania (rzędu 30-35°C)</a> wymaga idealnego zbilansowania w dokumentacji.
        </p>
        <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/" class="rk-btn">
            ZAMÓW PROJEKT OGRZEWANIA DO DOMU PASYWNEGO
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
        </a>
    </div>

</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Anti-Theft)
    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('pasywny-sum-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 20px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 20px;">🛡️</div>
                    <div style="font-size: 20px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Ochrona Własności Intelektualnej</div>
                    <div style="font-size: 15px; color: #cbd5e1; max-width: 550px; margin: 0 auto; line-height: 1.6;">
                        Kontener interaktywny i warstwa JSON-LD należą do portalu Projekt-Ogrzewania.pl. Uruchomienie skryptu na tej domenie zostało zablokowane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora (Toggle)
    const toggle = document.getElementById('pas-toggle');
    const lblAmateur = document.getElementById('lbl-amateur');
    const lblPro = document.getElementById('lbl-pro');
    const svgState = document.getElementById('svg-state');
    const svgPipes = document.getElementById('svg-pipes');
    
    // Kafelki
    const cardSpacing = document.getElementById('card-spacing');
    const cardTemp = document.getElementById('card-temp');
    const cardEps = document.getElementById('card-eps');
    const cardCost = document.getElementById('card-cost');

    let isPro = false;

    toggle.addEventListener('click', () => {
        isPro = !isPro;
        
        if(isPro) {
            // Styl przełącznika
            toggle.classList.add('pro-mode');
            lblAmateur.classList.remove('active-warn');
            lblPro.classList.add('active-eco');
            
            // Styl SVG
            svgState.classList.remove('state-error');
            svgState.classList.add('state-pro');
            svgPipes.innerHTML = `
                <circle cx="60" cy="170" r="6" fill="#059669"/>
                <circle cx="100" cy="170" r="6" fill="#059669"/>
                <circle cx="140" cy="170" r="6" fill="#059669"/>
            `; // 3 rury zamiast 4 (szerszy rozstaw)

            // Aktualizacja Danych
            updateCard(cardSpacing, 'co 15-20 cm', 'var(--rk-pas-eco)', 'Idealny balans zysków ciepła i oporów.');
            updateCard(cardTemp, '28°C - 32°C', 'var(--rk-pas-eco)', 'Optymalny COP dla pomp ciepła i komfortu.');
            updateCard(cardEps, 'EPS 200', 'var(--rk-pas-eco)', 'Minimalne straty do gruntu (R > 6,0).');
            updateCard(cardCost, 'Zoptymalizowane', 'var(--rk-pas-eco)', 'Grzanie ciągłe, bez zjawiska taktowania sprężarki.');
            
        } else {
            // Styl przełącznika
            toggle.classList.remove('pro-mode');
            lblPro.classList.remove('active-eco');
            lblAmateur.classList.add('active-warn');

            // Styl SVG
            svgState.classList.remove('state-pro');
            svgState.classList.add('state-error');
            svgPipes.innerHTML = `
                <circle cx="50" cy="170" r="6" fill="#ef4444"/>
                <circle cx="80" cy="170" r="6" fill="#ef4444"/>
                <circle cx="110" cy="170" r="6" fill="#ef4444"/>
                <circle cx="140" cy="170" r="6" fill="#ef4444"/>
            `; // 4 rury (gęsty rozstaw)

            // Aktualizacja Danych
            updateCard(cardSpacing, 'co 10 cm', 'var(--rk-pas-warn)', 'Zbędny wydatek na materiał, trudne rotametrowanie.');
            updateCard(cardTemp, '> 40°C', 'var(--rk-pas-warn)', 'Spadek COP pompy ciepła, przegrzewanie salonu.');
            updateCard(cardEps, 'EPS 100', 'var(--rk-pas-warn)', 'Niewystarczający opór cieplny do gruntu.');
            updateCard(cardCost, 'Wyższe o 35%', 'var(--rk-pas-warn)', 'Energia tracona przez niestabilność układu.');
        }
    });

    function updateCard(card, valueText, color, descText) {
        const valElement = card.querySelector('.rk-value');
        const descElement = card.querySelector('p');
        
        valElement.style.opacity = '0';
        descElement.style.opacity = '0';
        
        setTimeout(() => {
            valElement.textContent = valueText;
            valElement.style.color = color;
            descElement.textContent = descText;
            
            valElement.style.opacity = '1';
            descElement.style.opacity = '1';
        }, 150);
    }
});
</script>



<style>
:root {
    --dl-pas-primary: #0f172a;
    --dl-pas-accent: #10b981; /* Szmaragdowa zieleń - Eco/Pasywny */
    --dl-pas-accent-dark: #047857;
    --dl-pas-bg: #f8fafc;
    --dl-pas-border: #e2e8f0;
    --dl-pas-text: #334155;
    --dl-pas-white: #ffffff;
    --dl-pas-muted: #64748b;
}

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

.rk-pas-dl-container * {
    box-sizing: inherit;
}

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

/* Subtelny wzór geometryczny w tle nagłówka */
.dl-pas-header::before {
    content: '';
    position: absolute;
    top: -50%; right: -10%;
    width: 300px; height: 300px;
    background: radial-gradient(circle, rgba(16, 185, 129, 0.15) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}

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

.dl-pas-badge {
    display: inline-block;
    background: rgba(16, 185, 129, 0.2);
    border: 1px solid rgba(16, 185, 129, 0.4);
    color: #6ee7b7;
    padding: 6px 14px;
    border-radius: 50px;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.dl-pas-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 12px 0;
    line-height: 1.2;
    letter-spacing: -0.5px;
}

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

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

.dl-pas-pdf-icon {
    width: 90px;
    height: auto;
    filter: drop-shadow(0 15px 25px rgba(0,0,0,0.4));
    animation: floatPasIcon 3.5s infinite ease-in-out alternate;
}

@keyframes floatPasIcon {
    from { transform: translateY(0) rotate(0deg); }
    to { transform: translateY(-12px) rotate(-3deg); }
}

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

.dl-pas-preview {
    flex: 1;
    background: var(--dl-pas-bg);
    border: 1px solid var(--dl-pas-border);
    border-radius: 16px;
    padding: 12px;
    position: relative;
    cursor: zoom-in;
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.4s;
}

.dl-pas-preview:hover {
    transform: scale(1.03) translateY(-5px);
    box-shadow: 0 20px 30px -10px rgba(16, 185, 129, 0.15);
}

.dl-pas-img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    display: block;
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

.dl-pas-zoom-hint {
    position: absolute;
    bottom: 25px;
    right: 25px;
    background: rgba(15, 23, 42, 0.85);
    color: white;
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 700;
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    gap: 6px;
    pointer-events: none;
}

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

.dl-pas-list {
    list-style: none;
    padding: 0;
    margin: 0 0 35px 0;
}

.dl-pas-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
    font-size: 15px;
    font-weight: 600;
    color: var(--dl-pas-text);
    line-height: 1.5;
}

.dl-pas-check {
    width: 22px;
    height: 22px;
    color: var(--dl-pas-accent);
    flex-shrink: 0;
    margin-top: 2px;
}

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

.dl-pas-btn:hover {
    background: var(--dl-pas-accent-dark);
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(16, 185, 129, 0.6);
    border-color: #6ee7b7;
}

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

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

/* STOPKA MODUŁU I SEO */
.dl-pas-footer {
    padding: 25px 50px;
    background: var(--dl-pas-bg);
    border-top: 1px solid var(--dl-pas-border);
}

.dl-pas-seo-text {
    font-size: 14px;
    color: var(--dl-pas-muted);
    line-height: 1.6;
    margin: 0 0 15px 0;
}

.dl-pas-seo-text strong {
    color: var(--dl-pas-primary);
}

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

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

.dl-pas-copyright {
    font-size: 12px;
    color: #94a3b8;
    text-align: center;
    margin: 0;
    padding-top: 15px;
    border-top: 1px dashed #cbd5e1;
}

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/"
    },
    "headline": "Jak osiągnąć maksymalną efektywność energetyczną? Infografika dla domów pasywnych",
    "description": "Pobierz inżynierski schemat projektowania ogrzewania podłogowego. Dowiedz się, jak połączyć rekuperację z pompą ciepła i zredukować zużycie energii o 90%.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Projektowanie-ogrzewania-podlogowego-w-domach-pasywnych.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#dataset-pasywny",
    "name": "Parametry techniczne ogrzewania w standardzie pasywnym",
    "description": "Zestawienie zużycia energii, optymalnych temperatur zasilania pompy ciepła oraz krytycznych błędów projektowych w budownictwie pasywnym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zapotrzebowanie na energię w domu pasywnym",
      "temperatura zasilania pompy ciepła w domu pasywnym",
      "współpraca podłogówki z rekuperacją",
      "błędy w projektowaniu ogrzewania podłogowego",
      "temperatura podłogi norma"
    ],
    "measurementTechnique": "Analiza porównawcza zużycia energii (kWh/m²) dla domów tradycyjnych i pasywnych oraz kalibracja krzywej grzewczej pompy ciepła.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zapotrzebowanie energetyczne: Spadek z 80-120 kWh/m² do 5-15 kWh/m² rocznie.",
        "Parametry zasilania: Optymalny zakres 26-32°C dla maksymalnego COP pompy ciepła.",
        "Krytyczne błędy: Przewymiarowanie mocy pompy, słaba izolacja krawędziowa, brak bilansu cieplnego."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#download-hub-pasywny",
    "name": "Centrum Pobierania: Standard Pasywny",
    "description": "Interaktywny moduł pozwalający na podgląd w wysokiej rozdzielczości oraz pobranie technicznej infografiki w formacie PDF.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-pas-dl-container" id="app-pas-dl">
    
    <div class="dl-pas-header">
        <div class="dl-pas-header-content">
            <div class="dl-pas-badge">Kompendium Inżynierskie</div>
            <h2>Ogrzewanie w Domu Pasywnym</h2>
            <p>Pobierz autorską infografikę i uniknij najdroższych błędów instalacyjnych. Poznaj parametry, które redukują koszty eksploatacji nawet o 90%.</p>
        </div>
        <div class="dl-pas-header-visual">
            <svg class="dl-pas-pdf-icon" 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="#10b981" stroke="#ffffff" stroke-width="1.5"/>
                <path d="M14 2V8H20" fill="#6ee7b7" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
                <text x="6.5" y="17" fill="white" font-size="6" font-weight="900" font-family="sans-serif">PDF</text>
            </svg>
        </div>
    </div>

    <div class="dl-pas-workspace">
        
        <div class="dl-pas-preview" onclick="window.open('https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Projektowanie-ogrzewania-podlogowego-w-domach-pasywnych.webp', '_blank')" role="button" aria-label="Powiększ infografikę">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Projektowanie-ogrzewania-podlogowego-w-domach-pasywnych.webp" alt="Infografika: Projektowanie ogrzewania podłogowego w domach pasywnych" class="dl-pas-img" loading="lazy">
            <div class="dl-pas-zoom-hint">
                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                Powiększ grafikę
            </div>
        </div>

        <div class="dl-pas-info">
            <ul class="dl-pas-list">
                <li class="dl-pas-item">
                    <svg class="dl-pas-check" 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>
                    <span>Analiza porównawcza zużycia energii: <strong>Dom Tradycyjny vs Pasywny</strong>.</span>
                </li>
                <li class="dl-pas-item">
                    <svg class="dl-pas-check" 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>
                    <span>Zestawienie optymalnych temperatur (zasilanie: 26-32°C).</span>
                </li>
                <li class="dl-pas-item">
                    <svg class="dl-pas-check" 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>
                    <span>Czarna lista: <strong>Krytyczne błędy</strong> (taktowanie pompy, słaba izolacja).</span>
                </li>
                <li class="dl-pas-item">
                    <svg class="dl-pas-check" 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>
                    <span>Wpływ rekuperacji na obniżenie kosztów eksploatacji.</span>
                </li>
            </ul>

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

    </div>

    <div class="dl-pas-footer">
        <p class="dl-pas-seo-text">
            Inwestorzy planujący nowoczesną budowę często pytają, jak wyeliminować błędy u samego źródła. Nasza infografika pokazuje, jak prawidłowo zestawić <strong>niskie zapotrzebowanie na energię w domu pasywnym</strong> (zaledwie 5-15 kWh/m² rocznie) z precyzyjną pracą systemu grzewczego. Dowiesz się z niej, dlaczego <strong>temperatura zasilania pompy ciepła w domu pasywnym</strong> nie powinna przekraczać 32°C oraz jak niezbędna jest <strong>współpraca podłogówki z rekuperacją</strong>.
        </p>
        <p class="dl-pas-seo-text">
            Chcesz uniknąć ryzyka, że Twoja pompa ciepła będzie ulegać taktowaniu? Zadbaj o precyzję przed rozpoczęciem prac. <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zleć profesjonalny projekt OZC i ogrzewania podłogowego</a> naszym inżynierom.
        </p>
        <p class="dl-pas-copyright">
            © 2026 Projekt-Ogrzewania.pl | Udostępnianie materiałów edukacyjnych dozwolone z zachowaniem linku do źródła.
        </p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- OCHRONA DOMENOWA (Brak nagłówków H-tag w alercie) ---
    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-pas-dl');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fef2f2; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 10px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 900; color: #991b1b; margin-bottom: 10px; text-transform: uppercase;">Odmowa Dostępu</div>
                    <p style="color: #b91c1c; font-size: 14px; margin: 0; line-height: 1.5;">Moduł "Centrum Pobierania" oraz załączone pliki PDF są własnością intelektualną Projekt-Ogrzewania.pl. Uruchomienie na nieautoryzowanej domenie zostało zablokowane.</p>
                </div>
            `;
        }
    }
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/">Projektowanie ogrzewania podłogowego w domach pasywnych.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Najczęstsze błędy przy montażu ogrzewania podłogowego – kontrola przed wylewką.</title>
		<link>https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 04 Mar 2025 12:55:06 +0000</pubDate>
				<category><![CDATA[Błędy budowlane]]></category>
		<category><![CDATA[Instalacje hydrauliczne]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Montaż instalacji grzewczych]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[błędy montażowe]]></category>
		<category><![CDATA[dylatacje]]></category>
		<category><![CDATA[instalacja podłogówki]]></category>
		<category><![CDATA[izolacja termiczna]]></category>
		<category><![CDATA[materiały budowlane]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[porady budowlane]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[remont domu]]></category>
		<category><![CDATA[rozstaw rur]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2342</guid>

					<description><![CDATA[<p>Planujesz montaż ogrzewania podłogowego? Sprawdź, jakie najczęstsze błędy przy montażu ogrzewania podłogowego popełniają zarówno amatorzy, jak i niektórzy profesjonaliści. W tym artykule znajdziesz praktyczne porady, jak uniknąć problemów z izolacją, rozstawem rur, dylatacjami czy brakiem projektu. Dowiesz się, dlaczego profesjonalny projekt jest kluczowy i jakie materiały wybrać, aby Twoja instalacja działała bez zarzutu przez lata. Niezależnie od tego, czy robisz to samodzielnie, czy zatrudniasz ekipę – te wskazówki pomogą Ci zaoszczędzić czas, pieniądze i nerwy.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">Najczęstsze błędy przy montażu ogrzewania podłogowego – kontrola przed wylewką.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<!--
  PROJEKT-OGRZEWANIA.PL — pełny kod do bloku „Własny HTML”.
  Wklej kod POD natywnym tytułem H1 generowanym przez WordPress.

  USTAWIENIA WORDPRESS / YOAST:
  H1: Najczęstsze błędy przy montażu ogrzewania podłogowego – kontrola przed wylewką
  Fraza główna: błędy przy montażu ogrzewania podłogowego
  SEO title: Błędy przy montażu podłogówki – lista kontrolna
  Meta description: Poznaj najczęstsze błędy przy montażu podłogówki. Sprawdź instalację przed wylewką: projekt, rury, pętle, dylatacje, rozdzielacz i próbę szczelności.
  Slug: pozostaw bez zmian.

  GRAFIKA WYRÓŻNIAJĄCA:
  ALT: Najczęstsze błędy przy montażu ogrzewania podłogowego
  Tytuł: Błędy montażu ogrzewania podłogowego – kontrola przed wylewką
  Opis: Kontrola projektu, izolacji, pętli, dylatacji, rozdzielacza i próby szczelności przed wykonaniem jastrychu.
-->

<style>
  #rk-errors-guide {
    --rk-navy: #0b2536;
    --rk-navy-2: #12394d;
    --rk-navy-3: #1b465b;
    --rk-cyan: #29c4d7;
    --rk-cyan-dark: #0786a6;
    --rk-cyan-soft: #def7fa;
    --rk-orange: #ff6846;
    --rk-orange-dark: #df4e30;
    --rk-yellow: #f2b526;
    --rk-green: #2fcda1;
    --rk-green-dark: #14775f;
    --rk-red: #d7504a;
    --rk-red-dark: #9f332e;
    --rk-ink: #10283a;
    --rk-copy: #3c5668;
    --rk-muted: #688091;
    --rk-line: #d3e2e8;
    --rk-bg: #f3f8fa;
    --rk-white: #ffffff;
    color: var(--rk-ink);
    font-family: Arial, Helvetica, sans-serif;
    line-height: 1.62;
    margin: 0 auto;
    max-width: 1360px;
    overflow-wrap: anywhere;
    width: 100%;
  }

  #rk-errors-guide,
  #rk-errors-guide * {
    box-sizing: border-box;
    min-width: 0;
  }

  #rk-errors-guide a {
    color: var(--rk-cyan-dark);
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }

  #rk-errors-guide a:hover,
  #rk-errors-guide a:focus-visible {
    color: var(--rk-orange-dark);
  }

  #rk-errors-guide button,
  #rk-errors-guide input,
  #rk-errors-guide select {
    font: inherit;
  }

  #rk-errors-guide button:focus-visible,
  #rk-errors-guide a:focus-visible,
  #rk-errors-guide summary:focus-visible,
  #rk-errors-guide select:focus-visible {
    outline: 3px solid rgba(41, 196, 215, 0.48);
    outline-offset: 3px;
  }

  #rk-errors-guide img {
    display: block;
    height: auto;
    max-width: 100%;
  }

  #rk-errors-guide .rk-errors-shell {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    box-shadow: 0 22px 65px rgba(13, 41, 57, 0.12);
    overflow: hidden;
  }

  #rk-errors-guide .rk-errors-hero {
    background:
      radial-gradient(circle at 89% 111%, rgba(41, 196, 215, 0.24) 0, rgba(41, 196, 215, 0.24) 17%, transparent 17.2%),
      linear-gradient(120deg, #0b2536 0%, #143e52 61%, #0d6576 100%);
    color: #ffffff;
    overflow: hidden;
    padding: 62px 58px 56px;
    position: relative;
  }

  #rk-errors-guide .rk-errors-hero::before {
    background: var(--rk-orange);
    border-radius: 50%;
    box-shadow: 0 0 0 9px rgba(255, 104, 70, 0.14);
    content: "";
    height: 12px;
    left: 58px;
    position: absolute;
    top: 43px;
    width: 12px;
  }

  #rk-errors-guide .rk-errors-kicker {
    color: #6ce5ef;
    display: block;
    font-size: 0.77rem;
    font-weight: 900;
    letter-spacing: 0.13em;
    margin: 0 0 19px 28px;
    text-transform: uppercase;
  }

  #rk-errors-guide .rk-errors-hero-title,
  #rk-errors-guide .rk-errors-section-title,
  #rk-errors-guide .rk-errors-cta-title,
  #rk-errors-guide .rk-errors-author-title {
    font-family: Arial, Helvetica, sans-serif;
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.06;
  }

  #rk-errors-guide .rk-errors-hero-title {
    font-size: clamp(2.35rem, 5.8vw, 5.15rem);
    margin: 0;
    max-width: 1190px;
  }

  #rk-errors-guide .rk-errors-hero-title span {
    color: #69e7f2;
  }

  #rk-errors-guide .rk-errors-hero-lead {
    color: #e3f0f4;
    font-size: clamp(1.08rem, 2vw, 1.42rem);
    line-height: 1.55;
    margin: 27px 0 0;
    max-width: 1110px;
  }

  #rk-errors-guide .rk-errors-hero-tags,
  #rk-errors-guide .rk-errors-meta,
  #rk-errors-guide .rk-errors-shortcuts {
    display: flex;
    flex-wrap: wrap;
  }

  #rk-errors-guide .rk-errors-hero-tags {
    gap: 10px;
    margin-top: 30px;
  }

  #rk-errors-guide .rk-errors-hero-tags span {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 999px;
    color: #ffffff;
    font-size: 0.82rem;
    font-weight: 800;
    padding: 8px 14px;
  }

  #rk-errors-guide .rk-errors-meta {
    color: #c5d9df;
    font-size: 0.83rem;
    font-weight: 700;
    gap: 12px 24px;
    margin-top: 34px;
  }

  #rk-errors-guide .rk-errors-meta strong {
    color: #ffffff;
  }

  #rk-errors-guide .rk-errors-shortcuts {
    align-items: center;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-line);
    gap: 9px;
    padding: 22px 34px;
    position: static;
  }

  #rk-errors-guide .rk-errors-shortcuts-label {
    color: var(--rk-ink);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    margin-right: 4px;
    text-transform: uppercase;
  }

  #rk-errors-guide .rk-errors-shortcuts a {
    background: #f1f6f8;
    border: 1px solid transparent;
    border-radius: 999px;
    color: var(--rk-ink);
    font-size: 0.76rem;
    font-weight: 800;
    line-height: 1.25;
    padding: 8px 12px;
    text-decoration: none;
  }

  #rk-errors-guide .rk-errors-shortcuts a:hover,
  #rk-errors-guide .rk-errors-shortcuts a:focus-visible {
    background: var(--rk-cyan-soft);
    border-color: #91dce5;
    color: #075f78;
  }

  #rk-errors-guide .rk-errors-section {
    padding: 64px 58px;
  }

  #rk-errors-guide .rk-errors-section + .rk-errors-section {
    border-top: 1px solid var(--rk-line);
  }

  #rk-errors-guide .rk-errors-section-soft {
    background: var(--rk-bg);
  }

  #rk-errors-guide .rk-errors-section-dark {
    background: var(--rk-navy);
    color: #ffffff;
  }

  #rk-errors-guide .rk-errors-eyebrow {
    color: var(--rk-cyan-dark);
    display: block;
    font-size: 0.75rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    margin-bottom: 12px;
    text-transform: uppercase;
  }

  #rk-errors-guide .rk-errors-section-dark .rk-errors-eyebrow {
    color: #68e6ef;
  }

  #rk-errors-guide .rk-errors-section-title,
  #rk-errors-guide .rk-errors-author-title {
    color: var(--rk-ink);
    font-size: clamp(2rem, 4vw, 3.55rem);
    margin: 0;
    max-width: 1090px;
  }

  #rk-errors-guide .rk-errors-section-dark .rk-errors-section-title {
    color: #ffffff;
  }

  #rk-errors-guide .rk-errors-lead {
    color: var(--rk-copy);
    font-size: clamp(1.03rem, 1.7vw, 1.25rem);
    line-height: 1.7;
    margin: 22px 0 0;
    max-width: 1130px;
  }

  #rk-errors-guide .rk-errors-copy {
    color: var(--rk-copy);
    margin: 22px 0 0;
  }

  #rk-errors-guide .rk-errors-section-dark .rk-errors-lead,
  #rk-errors-guide .rk-errors-section-dark .rk-errors-copy {
    color: #c8dbe2;
  }

  #rk-errors-guide .rk-errors-copy strong,
  #rk-errors-guide .rk-errors-lead strong {
    color: var(--rk-ink);
  }

  #rk-errors-guide .rk-errors-section-dark .rk-errors-copy strong,
  #rk-errors-guide .rk-errors-section-dark .rk-errors-lead strong {
    color: #ffffff;
  }

  #rk-errors-guide .rk-errors-answer {
    background: linear-gradient(135deg, #e6fafd 0%, #f8fcfd 100%);
    border: 1px solid #9cdfe8;
    border-left: 7px solid var(--rk-cyan);
    border-radius: 18px;
    margin-top: 28px;
    padding: 27px 29px;
  }

  #rk-errors-guide .rk-errors-answer strong {
    color: var(--rk-ink);
    display: block;
    font-size: 1.22rem;
    line-height: 1.4;
  }

  #rk-errors-guide .rk-errors-answer p {
    color: var(--rk-copy);
    margin: 10px 0 0;
  }

  #rk-errors-guide .rk-errors-grid-2,
  #rk-errors-guide .rk-errors-grid-3,
  #rk-errors-guide .rk-errors-grid-4,
  #rk-errors-guide .rk-errors-source-grid,
  #rk-errors-guide .rk-errors-author-facts {
    display: grid;
    gap: 18px;
    margin-top: 30px;
  }

  #rk-errors-guide .rk-errors-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-errors-guide .rk-errors-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-errors-guide .rk-errors-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #rk-errors-guide .rk-errors-card {
    background: #ffffff;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    padding: 24px;
  }

  #rk-errors-guide .rk-errors-section-soft .rk-errors-card {
    background: rgba(255, 255, 255, 0.88);
  }

  #rk-errors-guide .rk-errors-card-number,
  #rk-errors-guide .rk-errors-icon {
    align-items: center;
    background: var(--rk-cyan-soft);
    border-radius: 10px;
    color: #076c85;
    display: inline-flex;
    font-size: 0.8rem;
    font-weight: 900;
    height: 36px;
    justify-content: center;
    margin-bottom: 14px;
    min-width: 36px;
    padding: 0 10px;
  }

  #rk-errors-guide .rk-errors-icon.is-stop {
    background: #ffe8e2;
    color: var(--rk-red-dark);
  }

  #rk-errors-guide .rk-errors-icon.is-check {
    background: #fff3d4;
    color: #79580d;
  }

  #rk-errors-guide .rk-errors-icon.is-ok {
    background: #e5f9f2;
    color: var(--rk-green-dark);
  }

  #rk-errors-guide .rk-errors-card h3,
  #rk-errors-guide .rk-errors-card h4 {
    color: var(--rk-ink);
    line-height: 1.3;
    margin: 0 0 9px;
  }

  #rk-errors-guide .rk-errors-card h3 {
    font-size: 1.12rem;
  }

  #rk-errors-guide .rk-errors-card h4 {
    font-size: 1rem;
  }

  #rk-errors-guide .rk-errors-card p {
    color: var(--rk-copy);
    margin: 0;
  }

  #rk-errors-guide .rk-errors-card p + p {
    margin-top: 10px;
  }

  #rk-errors-guide .rk-errors-note {
    background: #fff6e2;
    border-left: 6px solid var(--rk-yellow);
    border-radius: 14px;
    color: #5b4a1d;
    margin-top: 26px;
    padding: 18px 21px;
  }

  #rk-errors-guide .rk-errors-note p {
    margin: 0;
  }

  #rk-errors-guide .rk-errors-note-good {
    background: #e9faf5;
    border-left-color: var(--rk-green);
    color: #145e4d;
  }

  #rk-errors-guide .rk-errors-note-bad {
    background: #fff0ec;
    border-left-color: var(--rk-orange);
    color: #743425;
  }

  #rk-errors-guide .rk-errors-bullets {
    color: var(--rk-copy);
    margin: 20px 0 0;
    padding-left: 22px;
  }

  #rk-errors-guide .rk-errors-bullets li + li {
    margin-top: 9px;
  }

  #rk-errors-guide .rk-errors-table-wrap {
    margin-top: 30px;
    overflow-x: auto;
  }

  #rk-errors-guide table {
    border-collapse: separate;
    border-spacing: 0;
    min-width: 780px;
    width: 100%;
  }

  #rk-errors-guide th {
    background: var(--rk-navy);
    border-bottom: 1px solid #31576a;
    color: #ffffff;
    font-size: 0.77rem;
    letter-spacing: 0.04em;
    padding: 15px 16px;
    text-align: left;
    text-transform: uppercase;
  }

  #rk-errors-guide th:first-child {
    border-radius: 14px 0 0;
  }

  #rk-errors-guide th:last-child {
    border-radius: 0 14px 0 0;
  }

  #rk-errors-guide td {
    background: #ffffff;
    border-bottom: 1px solid var(--rk-line);
    color: var(--rk-copy);
    padding: 16px;
    vertical-align: top;
  }

  #rk-errors-guide tbody tr td:first-child {
    border-left: 1px solid var(--rk-line);
  }

  #rk-errors-guide tbody tr td:last-child {
    border-right: 1px solid var(--rk-line);
  }

  #rk-errors-guide tbody tr:last-child td:first-child {
    border-radius: 0 0 0 14px;
  }

  #rk-errors-guide tbody tr:last-child td:last-child {
    border-radius: 0 0 14px;
  }

  #rk-errors-guide td strong {
    color: var(--rk-ink);
  }

  #rk-errors-guide .rk-errors-stage-graphic {
    background: var(--rk-navy);
    border-radius: 22px;
    color: #ffffff;
    margin-top: 32px;
    padding: 28px;
  }

  #rk-errors-guide .rk-errors-stage-intro {
    color: #bdd5de;
    margin: 0 0 20px;
  }

  #rk-errors-guide .rk-errors-stage-tabs {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  #rk-errors-guide .rk-errors-stage-tab {
    background: #173e51;
    border: 1px solid #356178;
    border-radius: 13px;
    color: #ffffff;
    cursor: pointer;
    font-weight: 900;
    line-height: 1.25;
    min-height: 64px;
    padding: 11px 12px;
  }

  #rk-errors-guide .rk-errors-stage-tab[aria-selected="true"] {
    background: var(--rk-cyan);
    border-color: var(--rk-cyan);
    color: #072838;
  }

  #rk-errors-guide .rk-errors-stage-panel {
    background: #17394b;
    border: 1px solid #356178;
    border-radius: 18px;
    margin-top: 18px;
    padding: 25px;
  }

  #rk-errors-guide .rk-errors-stage-label {
    color: #71e6ef;
    display: block;
    font-size: 0.73rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  #rk-errors-guide .rk-errors-stage-panel h3 {
    color: #ffffff;
    font-size: 1.55rem;
    line-height: 1.25;
    margin: 7px 0 8px;
  }

  #rk-errors-guide .rk-errors-stage-panel > p {
    color: #c8dce3;
    margin: 0;
  }

  #rk-errors-guide .rk-errors-stage-facts {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 20px;
  }

  #rk-errors-guide .rk-errors-stage-fact {
    background: rgba(255, 255, 255, 0.055);
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 13px;
    padding: 16px;
  }

  #rk-errors-guide .rk-errors-stage-fact strong {
    color: #71e6ef;
    display: block;
    font-size: 0.72rem;
    letter-spacing: 0.07em;
    margin-bottom: 6px;
    text-transform: uppercase;
  }

  #rk-errors-guide .rk-errors-stage-fact span {
    color: #ffffff;
  }

  #rk-errors-guide .rk-errors-analyzer {
    background: #102f42;
    border: 1px solid #315a70;
    border-radius: 22px;
    margin-top: 32px;
    padding: 28px;
  }

  #rk-errors-guide .rk-errors-analyzer-head {
    border-bottom: 1px solid #315a70;
    margin-bottom: 25px;
    padding-bottom: 20px;
  }

  #rk-errors-guide .rk-errors-analyzer-head h3 {
    color: #ffffff;
    font-size: clamp(1.55rem, 3vw, 2.3rem);
    line-height: 1.2;
    margin: 0;
  }

  #rk-errors-guide .rk-errors-analyzer-head p {
    color: #bad3dc;
    margin: 9px 0 0;
  }

  #rk-errors-guide .rk-errors-analyzer-stage {
    background: #17394b;
    border: 1px solid #376177;
    border-radius: 17px;
    margin-top: 18px;
    padding: 22px;
  }

  #rk-errors-guide .rk-errors-analyzer-stage.is-optional {
    background: #153647;
  }

  #rk-errors-guide .rk-errors-stage-head {
    align-items: flex-start;
    display: flex;
    gap: 13px;
    margin-bottom: 18px;
  }

  #rk-errors-guide .rk-errors-stage-number {
    align-items: center;
    background: var(--rk-cyan);
    border-radius: 10px;
    color: #082c3c;
    display: inline-flex;
    flex: 0 0 38px;
    font-weight: 900;
    height: 38px;
    justify-content: center;
  }

  #rk-errors-guide .rk-errors-stage-head h4 {
    color: #ffffff;
    font-size: 1.15rem;
    line-height: 1.3;
    margin: 0;
  }

  #rk-errors-guide .rk-errors-stage-head p {
    color: #aecad5;
    font-size: 0.88rem;
    margin: 4px 0 0;
  }

  #rk-errors-guide .rk-errors-fields {
    display: grid;
    gap: 15px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-errors-guide .rk-errors-field {
    display: block;
  }

  #rk-errors-guide .rk-errors-field > span {
    color: #eaf6f8;
    display: block;
    font-size: 0.79rem;
    font-weight: 800;
    line-height: 1.35;
    margin-bottom: 7px;
  }

  #rk-errors-guide .rk-errors-field small {
    color: #9bbbc7;
    display: block;
    font-size: 0.72rem;
    line-height: 1.4;
    margin-top: 6px;
  }

  #rk-errors-guide .rk-errors-field select {
    appearance: auto;
    background: #ffffff;
    border: 1px solid #b8ccd5;
    border-radius: 10px;
    color: var(--rk-ink);
    min-height: 48px;
    padding: 10px 12px;
    width: 100%;
  }

  #rk-errors-guide .rk-errors-analyzer-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    margin-top: 20px;
  }

  #rk-errors-guide .rk-errors-analyze-button,
  #rk-errors-guide .rk-errors-reset-button {
    border-radius: 11px;
    cursor: pointer;
    font-weight: 900;
    min-height: 48px;
    padding: 11px 18px;
  }

  #rk-errors-guide .rk-errors-analyze-button {
    background: var(--rk-orange);
    border: 1px solid var(--rk-orange);
    color: #ffffff;
  }

  #rk-errors-guide .rk-errors-analyze-button:hover {
    background: var(--rk-orange-dark);
  }

  #rk-errors-guide .rk-errors-reset-button {
    background: transparent;
    border: 1px solid #5d7c8d;
    color: #ffffff;
  }

  #rk-errors-guide .rk-errors-result {
    background: #ffffff;
    border-left: 7px solid var(--rk-yellow);
    border-radius: 17px;
    margin-top: 22px;
    padding: 24px;
  }

  #rk-errors-guide .rk-errors-result.is-good {
    border-left-color: var(--rk-green);
  }

  #rk-errors-guide .rk-errors-result.is-stop {
    border-left-color: var(--rk-orange);
  }

  #rk-errors-guide .rk-errors-result-status {
    color: var(--rk-ink) !important;
    font-size: clamp(1.35rem, 2.6vw, 2rem);
    font-weight: 900;
    line-height: 1.25;
    margin: 0;
  }

  #rk-errors-guide .rk-errors-result-intro {
    color: var(--rk-copy) !important;
    margin: 8px 0 0;
  }

  #rk-errors-guide .rk-errors-result-counts {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 19px;
  }

  #rk-errors-guide .rk-errors-result-count {
    background: #f1f7f9;
    border: 1px solid var(--rk-line);
    border-radius: 12px;
    padding: 14px;
  }

  #rk-errors-guide .rk-errors-result-count span {
    color: var(--rk-muted) !important;
    display: block;
    font-size: 0.71rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }

  #rk-errors-guide .rk-errors-result-count strong {
    color: var(--rk-ink) !important;
    display: block;
    font-size: 1.45rem;
    margin-top: 3px;
  }

  #rk-errors-guide .rk-errors-result-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 14px;
  }

  #rk-errors-guide .rk-errors-result-column {
    background: #f5f9fa;
    border: 1px solid var(--rk-line);
    border-radius: 13px;
    padding: 16px;
  }

  #rk-errors-guide .rk-errors-result-column h4 {
    color: var(--rk-ink) !important;
    font-size: 0.88rem;
    letter-spacing: 0.05em;
    margin: 0 0 10px;
    text-transform: uppercase;
  }

  #rk-errors-guide .rk-errors-result-column.is-ok h4 {
    color: var(--rk-green-dark) !important;
  }

  #rk-errors-guide .rk-errors-result-column.is-check h4 {
    color: #88600e !important;
  }

  #rk-errors-guide .rk-errors-result-column.is-stop h4 {
    color: #a83d2d !important;
  }

  #rk-errors-guide .rk-errors-result-column ul {
    color: var(--rk-copy) !important;
    font-size: 0.87rem;
    margin: 0;
    padding-left: 18px;
  }

  #rk-errors-guide .rk-errors-result-column li + li {
    margin-top: 7px;
  }

  #rk-errors-guide .rk-errors-disclaimer {
    color: #667d8c !important;
    font-size: 0.78rem;
    margin: 15px 0 0;
  }

  #rk-errors-guide .rk-errors-cta {
    background:
      radial-gradient(circle at 93% 120%, rgba(41, 196, 215, 0.22) 0, rgba(41, 196, 215, 0.22) 19%, transparent 19.2%),
      linear-gradient(125deg, #0b2536 0%, #153e51 62%, #0d6272 100%);
    border-radius: 21px;
    color: #ffffff;
    margin-top: 34px;
    overflow: hidden;
    padding: 36px;
  }

  #rk-errors-guide .rk-errors-cta-title {
    color: #ffffff;
    font-size: clamp(1.7rem, 3.3vw, 2.8rem);
    margin: 0;
    max-width: 990px;
  }

  #rk-errors-guide .rk-errors-cta p {
    color: #cee0e6;
    margin: 14px 0 0;
    max-width: 990px;
  }

  #rk-errors-guide .rk-errors-cta-button {
    background: var(--rk-orange);
    border-radius: 12px;
    box-shadow: 0 12px 25px rgba(255, 104, 70, 0.24);
    color: #ffffff;
    display: inline-block;
    font-weight: 900;
    margin-top: 22px;
    padding: 14px 20px;
    text-decoration: none;
  }

  #rk-errors-guide .rk-errors-cta-button:hover,
  #rk-errors-guide .rk-errors-cta-button:focus-visible {
    background: #ffffff;
    color: var(--rk-orange-dark);
  }

  #rk-errors-guide .rk-errors-link-disclosure {
    color: #a9c4ce;
    display: block;
    font-size: 0.75rem;
    margin-top: 12px;
  }

  #rk-errors-guide .rk-errors-final {
    background: linear-gradient(180deg, #f4fafb 0%, #ffffff 100%);
  }

  #rk-errors-guide .rk-errors-source-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-errors-guide .rk-errors-source-card {
    background: #f2f7f9;
    border: 1px solid #cfe0e7;
    border-radius: 15px;
    padding: 20px;
  }

  #rk-errors-guide .rk-errors-source-card a {
    color: var(--rk-cyan-dark);
    font-size: 1rem;
    font-weight: 900;
  }

  #rk-errors-guide .rk-errors-source-card p {
    color: var(--rk-copy);
    margin: 8px 0 0;
  }

  #rk-errors-guide .rk-errors-responsibility {
    background: #fff0eb;
    border-left: 6px solid var(--rk-orange);
    border-radius: 14px;
    color: #613427;
    margin-top: 26px;
    padding: 19px 22px;
  }

  #rk-errors-guide .rk-errors-responsibility p {
    margin: 0;
  }

  #rk-errors-guide .rk-errors-faq {
    display: grid;
    gap: 12px;
    margin-top: 30px;
  }

  #rk-errors-guide .rk-errors-faq details {
    background: #ffffff;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    overflow: hidden;
  }

  #rk-errors-guide .rk-errors-faq summary {
    color: var(--rk-ink);
    cursor: pointer;
    font-weight: 900;
    list-style: none;
    padding: 19px 52px 19px 20px;
    position: relative;
  }

  #rk-errors-guide .rk-errors-faq summary::-webkit-details-marker {
    display: none;
  }

  #rk-errors-guide .rk-errors-faq summary::after {
    color: var(--rk-cyan-dark);
    content: "+";
    font-size: 1.55rem;
    font-weight: 700;
    position: absolute;
    right: 20px;
    top: 12px;
  }

  #rk-errors-guide .rk-errors-faq details[open] summary::after {
    content: "−";
  }

  #rk-errors-guide .rk-errors-faq-answer {
    border-top: 1px solid var(--rk-line);
    color: var(--rk-copy);
    padding: 18px 20px;
  }

  #rk-errors-guide .rk-errors-faq-answer p {
    margin: 0;
  }

  #rk-errors-guide .rk-errors-author {
    background: #eef6f8;
    border-top: 1px solid var(--rk-line);
    padding: 64px 58px;
  }

  #rk-errors-guide .rk-errors-author-layout {
    background: #ffffff;
    border: 1px solid #cbdde5;
    border-radius: 21px;
    display: grid;
    grid-template-columns: 290px minmax(0, 1fr);
    overflow: hidden;
  }

  #rk-errors-guide .rk-errors-author-side {
    align-items: center;
    background: var(--rk-navy);
    color: #ffffff;
    display: flex;
    flex-direction: column;
    padding: 35px 25px;
    text-align: center;
  }

  #rk-errors-guide .rk-errors-author-photo {
    background: #ffffff;
    border: 6px solid rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    overflow: hidden;
    width: 158px;
  }

  #rk-errors-guide .rk-errors-author-name {
    font-size: 1.25rem;
    font-weight: 900;
    margin-top: 20px;
  }

  #rk-errors-guide .rk-errors-author-name a {
    color: #ffffff;
    text-decoration: none;
  }

  #rk-errors-guide .rk-errors-author-role {
    color: #bcd2db;
    font-size: 0.82rem;
    margin: 8px 0 0;
  }

  #rk-errors-guide .rk-errors-author-social {
    display: flex;
    gap: 10px;
    margin-top: 21px;
  }

  #rk-errors-guide .rk-errors-author-social a {
    align-items: center;
    border: 1px solid #497185;
    border-radius: 50%;
    color: #d8e9ee;
    display: inline-flex;
    height: 42px;
    justify-content: center;
    text-decoration: none;
    width: 42px;
  }

  #rk-errors-guide .rk-errors-author-social a:hover {
    background: var(--rk-cyan);
    color: var(--rk-navy);
  }

  #rk-errors-guide .rk-errors-author-main {
    padding: 37px;
  }

  #rk-errors-guide .rk-errors-author-title {
    font-size: clamp(1.85rem, 3.5vw, 3rem);
  }

  #rk-errors-guide .rk-errors-author-quote {
    background: #f7fbfc;
    border: 1px solid #cfe0e7;
    border-left: 6px solid var(--rk-cyan);
    border-radius: 14px;
    color: var(--rk-ink);
    font-size: 1.04rem;
    font-style: italic;
    font-weight: 700;
    line-height: 1.7;
    margin-top: 24px;
    padding: 20px 22px;
  }

  #rk-errors-guide .rk-errors-author-main > p {
    color: var(--rk-copy);
    margin: 18px 0 0;
  }

  #rk-errors-guide .rk-errors-author-facts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-errors-guide .rk-errors-author-fact {
    background: #eef7f9;
    border: 1px solid #d2e4e9;
    border-radius: 13px;
    color: var(--rk-copy);
    font-size: 0.84rem;
    padding: 15px;
  }

  #rk-errors-guide .rk-errors-author-fact strong {
    color: var(--rk-cyan-dark);
    display: block;
    font-size: 0.73rem;
    letter-spacing: 0.06em;
    margin-bottom: 5px;
    text-transform: uppercase;
  }

  #rk-errors-guide .rk-errors-visually-hidden {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
  }

  @media (max-width: 1050px) {
    #rk-errors-guide .rk-errors-grid-4 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-errors-guide .rk-errors-stage-tabs {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    #rk-errors-guide .rk-errors-result-grid,
    #rk-errors-guide .rk-errors-result-counts {
      grid-template-columns: minmax(0, 1fr);
    }
  }

  @media (max-width: 820px) {
    #rk-errors-guide .rk-errors-hero,
    #rk-errors-guide .rk-errors-section,
    #rk-errors-guide .rk-errors-author {
      padding-left: 28px;
      padding-right: 28px;
    }

    #rk-errors-guide .rk-errors-hero::before {
      left: 28px;
    }

    #rk-errors-guide .rk-errors-shortcuts {
      padding-left: 22px;
      padding-right: 22px;
    }

    #rk-errors-guide .rk-errors-grid-3 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-errors-guide .rk-errors-stage-facts {
      grid-template-columns: minmax(0, 1fr);
    }

    #rk-errors-guide .rk-errors-author-layout {
      grid-template-columns: minmax(0, 1fr);
    }
  }

  @media (max-width: 660px) {
    #rk-errors-guide .rk-errors-hero {
      padding-bottom: 42px;
      padding-top: 52px;
    }

    #rk-errors-guide .rk-errors-section,
    #rk-errors-guide .rk-errors-author {
      padding-bottom: 46px;
      padding-top: 46px;
    }

    #rk-errors-guide .rk-errors-grid-2,
    #rk-errors-guide .rk-errors-grid-3,
    #rk-errors-guide .rk-errors-grid-4,
    #rk-errors-guide .rk-errors-fields,
    #rk-errors-guide .rk-errors-source-grid,
    #rk-errors-guide .rk-errors-author-facts,
    #rk-errors-guide .rk-errors-stage-tabs {
      grid-template-columns: minmax(0, 1fr);
    }

    #rk-errors-guide .rk-errors-stage-graphic,
    #rk-errors-guide .rk-errors-analyzer,
    #rk-errors-guide .rk-errors-cta {
      border-radius: 17px;
      padding: 20px;
    }

    #rk-errors-guide .rk-errors-stage-panel,
    #rk-errors-guide .rk-errors-analyzer-stage,
    #rk-errors-guide .rk-errors-result {
      padding: 18px;
    }

    #rk-errors-guide .rk-errors-analyzer-actions {
      display: grid;
      grid-template-columns: minmax(0, 1fr);
    }

    #rk-errors-guide .rk-errors-analyze-button,
    #rk-errors-guide .rk-errors-reset-button,
    #rk-errors-guide .rk-errors-cta-button {
      text-align: center;
      width: 100%;
    }

    #rk-errors-guide .rk-errors-table-wrap {
      overflow: visible;
    }

    #rk-errors-guide table,
    #rk-errors-guide thead,
    #rk-errors-guide tbody,
    #rk-errors-guide tr,
    #rk-errors-guide th,
    #rk-errors-guide td {
      display: block;
      min-width: 0;
      width: 100%;
    }

    #rk-errors-guide thead {
      clip: rect(0 0 0 0);
      clip-path: inset(50%);
      height: 1px;
      overflow: hidden;
      position: absolute;
      white-space: nowrap;
      width: 1px;
    }

    #rk-errors-guide tbody {
      display: grid;
      gap: 14px;
    }

    #rk-errors-guide tbody tr {
      background: #ffffff;
      border: 1px solid var(--rk-line);
      border-radius: 14px;
      overflow: hidden;
    }

    #rk-errors-guide td,
    #rk-errors-guide tbody tr td:first-child,
    #rk-errors-guide tbody tr td:last-child {
      border: 0;
      border-bottom: 1px solid #e1ebef;
      border-radius: 0;
      padding: 13px 15px;
    }

    #rk-errors-guide td:last-child {
      border-bottom: 0;
    }

    #rk-errors-guide td::before {
      color: var(--rk-cyan-dark);
      content: attr(data-label);
      display: block;
      font-size: 0.69rem;
      font-weight: 900;
      letter-spacing: 0.07em;
      margin-bottom: 4px;
      text-transform: uppercase;
    }

    #rk-errors-guide .rk-errors-author-main {
      padding: 25px 20px;
    }
  }

  @media (max-width: 430px) {
    #rk-errors-guide .rk-errors-hero,
    #rk-errors-guide .rk-errors-section,
    #rk-errors-guide .rk-errors-author {
      padding-left: 18px;
      padding-right: 18px;
    }

    #rk-errors-guide .rk-errors-hero::before {
      left: 18px;
    }

    #rk-errors-guide .rk-errors-shortcuts {
      padding-left: 14px;
      padding-right: 14px;
    }

    #rk-errors-guide .rk-errors-shortcuts a {
      flex: 1 1 calc(50% - 9px);
      text-align: center;
    }

    #rk-errors-guide .rk-errors-shortcuts-label {
      flex: 1 0 100%;
    }

    #rk-errors-guide .rk-errors-hero-title {
      font-size: 2.2rem;
    }

    #rk-errors-guide .rk-errors-section-title {
      font-size: 1.88rem;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    #rk-errors-guide *,
    #rk-errors-guide *::before,
    #rk-errors-guide *::after {
      scroll-behavior: auto;
      transition-duration: 0.01ms;
    }
  }
</style>

<article id="rk-errors-guide" aria-labelledby="rk-errors-visual-title">
  <div class="rk-errors-shell">
    <header class="rk-errors-hero">
      <span class="rk-errors-kicker">Kontrola przed wylewką · aktualizacja techniczna 2026</span>
      <div class="rk-errors-hero-title" id="rk-errors-visual-title">Błędy montażu podłogówki: <span>zatrzymaj je, zanim znikną pod posadzką</span></div>
      <p class="rk-errors-hero-lead">Najdroższy błąd nie zawsze wygląda groźnie podczas układania rur. Ten poradnik prowadzi od projektu i izolacji przez pętle, dylatacje oraz rozdzielacz aż do próby szczelności, jastrychu i pierwszego uruchomienia — z analizatorem gotowości do odbioru.</p>
      <div class="rk-errors-hero-tags" aria-label="Zakres poradnika">
        <span>projekt i OZC</span>
        <span>izolacja i dylatacje</span>
        <span>rury i pętle</span>
        <span>próba szczelności</span>
        <span>jastrych i uruchomienie</span>
      </div>
      <div class="rk-errors-meta">
        <span>Autor: <strong>Robert Kucharski</strong></span>
        <span>Czas czytania: <strong>około 29 minut</strong></span>
        <span>Aktualizacja techniczna: <strong>17 września 2026 r.</strong></span>
      </div>
    </header>

    <nav class="rk-errors-shortcuts" aria-label="Na skróty — wszystkie sekcje artykułu">
      <span class="rk-errors-shortcuts-label">Na skróty</span>
      <a href="#rk-errors-answer">Szybka odpowiedź</a>
      <a href="#rk-errors-cost">Najdroższe błędy</a>
      <a href="#rk-errors-types">Trzy rodzaje błędów</a>
      <a href="#rk-errors-stages">Etapy kontroli</a>
      <a href="#rk-errors-analyzer-section">Analizator</a>
      <a href="#rk-errors-design">Projekt</a>
      <a href="#rk-errors-insulation">Podłoże i izolacja</a>
      <a href="#rk-errors-spacing">Rozstaw rur</a>
      <a href="#rk-errors-pipes">Rury i mocowanie</a>
      <a href="#rk-errors-loops">Długość pętli</a>
      <a href="#rk-errors-dilatations">Dylatacje</a>
      <a href="#rk-errors-manifold">Rozdzielacz</a>
      <a href="#rk-errors-pressure">Próba szczelności</a>
      <a href="#rk-errors-screed">Jastrych</a>
      <a href="#rk-errors-startup">Uruchomienie</a>
      <a href="#rk-errors-symptoms">Objawy</a>
      <a href="#rk-errors-repair">Możliwe naprawy</a>
      <a href="#rk-errors-stop">Kiedy zatrzymać ekipę</a>
      <a href="#rk-errors-documents">Dokumenty</a>
      <a href="#rk-errors-final">Podsumowanie</a>
      <a href="#rk-errors-sources">Źródła</a>
      <a href="#rk-errors-faq">FAQ</a>
      <a href="#rk-errors-author">Autor</a>
    </nav>

    <section class="rk-errors-section" id="rk-errors-answer">
      <span class="rk-errors-eyebrow">Odpowiedź w 60 sekund</span>
      <h2 class="rk-errors-section-title">Jak uniknąć błędów przy montażu ogrzewania podłogowego?</h2>
      <p class="rk-errors-lead"><strong>Najważniejsza zasada brzmi: każdą decyzję, której po wylewce nie da się łatwo zmienić, trzeba sprawdzić przed zalaniem instalacji.</strong> Dotyczy to nie tylko szczelności rur, lecz także powierzchni czynnej, rozstawu, długości i podziału pętli, przebiegu dylatacji, lokalizacji rozdzielacza oraz dokumentacji wykonania.</p>
      <div class="rk-errors-answer">
        <strong>Nie zalewaj rur tylko dlatego, że „wszędzie są ciepłe” podczas krótkiej próby.</strong>
        <p>Przed jastrychem potrzebujesz zgodności z projektem, potwierdzonej szczelności, identyfikacji obwodów, zabezpieczonych przejść, planu dylatacji oraz zdjęć. Po zakryciu instalacji część problemów da się skorygować regulacją, ale błędnego rozstawu, uszkodzonej rury albo źle podzielonego pola grzewczego nie naprawi ustawienie rotametru.</p>
      </div>
      <div class="rk-errors-grid-3">
        <article class="rk-errors-card"><span class="rk-errors-icon is-stop">STOP</span><h3>Brak danych krytycznych</h3><p>Nie ma projektu, próby szczelności, planu dylatacji albo wykonawca samowolnie zmienił pętle. Wylewkę należy wstrzymać do wyjaśnienia.</p></article>
        <article class="rk-errors-card"><span class="rk-errors-icon is-check">SPRAWDŹ</span><h3>Brak dokumentu</h3><p>Element może być wykonany poprawnie, lecz nie ma zdjęć, protokołu, oznaczeń lub potwierdzenia parametrów. Uzupełnij dowody przed zakryciem.</p></article>
        <article class="rk-errors-card"><span class="rk-errors-icon is-ok">OK</span><h3>Zgodność potwierdzona</h3><p>Rzeczywiste wykonanie odpowiada dokumentacji, a wyniki próby, trasy pętli i odstępstwa zostały zapisane.</p></article>
      </div>
      <p class="rk-errors-copy">Jeżeli chcesz zobaczyć, od jakich danych powinno zaczynać się wykonanie, przejdź do poradnika <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">jak powinien wyglądać profesjonalny projekt ogrzewania podłogowego</a>.</p>
    </section>

    <section class="rk-errors-section rk-errors-section-soft" id="rk-errors-cost">
      <span class="rk-errors-eyebrow">Cena błędu rośnie z każdym etapem</span>
      <h2 class="rk-errors-section-title">Które błędy montażowe są najdroższe?</h2>
      <p class="rk-errors-lead">Najdroższe są nie zawsze te najbardziej widoczne, lecz te, które zostają trwale zamknięte w konstrukcji podłogi. Przed wylewką poprawka oznacza zwykle przełożenie fragmentu rury. Po ułożeniu okładziny może oznaczać lokalizację trasy, kucie, naprawę i odtworzenie kilku warstw.</p>
      <div class="rk-errors-table-wrap">
        <table>
          <thead><tr><th>Błąd</th><th>Kiedy można go wykryć</th><th>Skutek po zakryciu</th><th>Priorytet</th></tr></thead>
          <tbody>
            <tr><td data-label="Błąd"><strong>Rozstaw bez obliczeń</strong></td><td data-label="Kiedy wykryć">Po porównaniu rzutu wykonawczego z obciążeniem pomieszczenia.</td><td data-label="Skutek">Niedogrzanie, wyższa temperatura zasilania albo nierównomierna powierzchnia.</td><td data-label="Priorytet"><strong>STOP przed wylewką</strong></td></tr>
            <tr><td data-label="Błąd"><strong>Zbyt długa pętla</strong></td><td data-label="Kiedy wykryć">Po zmierzeniu długości i sprawdzeniu oporów dla projektowego przepływu.</td><td data-label="Skutek">Za mały przepływ, trudne równoważenie i zimniejsza część pola.</td><td data-label="Priorytet"><strong>STOP przed wylewką</strong></td></tr>
            <tr><td data-label="Błąd"><strong>Brak dylatacji lub osłony</strong></td><td data-label="Kiedy wykryć">Przed jastrychem, po nałożeniu planu pól na trasy rur.</td><td data-label="Skutek">Pękanie jastrychu lub naprężenia działające na rurę.</td><td data-label="Priorytet"><strong>STOP przed wylewką</strong></td></tr>
            <tr><td data-label="Błąd"><strong>Brak próby i protokołu</strong></td><td data-label="Kiedy wykryć">Przed wejściem ekipy posadzkarskiej.</td><td data-label="Skutek">Brak punktu odniesienia i ryzyko ujawnienia nieszczelności po zakryciu.</td><td data-label="Priorytet"><strong>STOP przed wylewką</strong></td></tr>
            <tr><td data-label="Błąd"><strong>Nieopisane pętle</strong></td><td data-label="Kiedy wykryć">Przy rozdzielaczu przed uruchomieniem.</td><td data-label="Skutek">Błędna regulacja, trudna diagnostyka i przypadkowe sterowanie strefami.</td><td data-label="Priorytet"><strong>Uzupełnij dokumentację</strong></td></tr>
            <tr><td data-label="Błąd"><strong>Brak równoważenia</strong></td><td data-label="Kiedy wykryć">Podczas pierwszego uruchomienia i pomiaru przepływów.</td><td data-label="Skutek">Jedne pomieszczenia przegrzane, inne niedogrzane.</td><td data-label="Priorytet"><strong>Możliwe po wylewce</strong></td></tr>
          </tbody>
        </table>
      </div>
      <div class="rk-errors-note rk-errors-note-bad"><p><strong>Kosztu nie da się uczciwie zamknąć w jednym kalkulatorze.</strong> Ta sama wada może oznaczać korektę kilku spinek przed wylewką albo rozbiórkę gotowej podłogi po odbiorze. Dlatego w tym poradniku narzędzie ocenia ryzyko i kompletność kontroli, a nie wymyśloną cenę naprawy.</p></div>
    </section>

    <section class="rk-errors-section" id="rk-errors-types">
      <span class="rk-errors-eyebrow">Najpierw ustal źródło problemu</span>
      <h2 class="rk-errors-section-title">Błąd projektowy, wykonawczy czy uruchomieniowy?</h2>
      <p class="rk-errors-lead">Podłogówka może być ułożona estetycznie i jednocześnie nie dostarczać wymaganej mocy. Może też być dobrze policzona, ale źle wykonana albo poprawnie wykonana i całkowicie rozregulowana. Te sytuacje wymagają innych działań.</p>
      <div class="rk-errors-grid-3">
        <article class="rk-errors-card"><span class="rk-errors-card-number">01</span><h3>Błąd projektowy</h3><p>Nieprawidłowe obciążenie cieplne, pominięta okładzina, zbyt mała powierzchnia czynna, przypadkowy rozstaw, złe przepływy lub brak sprawdzenia oporów.</p></article>
        <article class="rk-errors-card"><span class="rk-errors-card-number">02</span><h3>Błąd wykonawczy</h3><p>Zmiana trasy, uszkodzenie rury, nieciągła izolacja brzegowa, brak osłony w dylatacji, niewłaściwe mocowanie albo pomylone obwody.</p></article>
        <article class="rk-errors-card"><span class="rk-errors-card-number">03</span><h3>Błąd uruchomieniowy</h3><p>Nieodpowietrzone pętle, przypadkowe nastawy, zbyt wysoka temperatura, brak wygrzewania lub regulacji przepływów po wykonaniu instalacji.</p></article>
      </div>
      <p class="rk-errors-copy">Punkt wyjścia do projektu stanowią straty ciepła każdego pomieszczenia. Ich rolę wyjaśnia poradnik <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">jak oblicza się straty cieplne w budynkach</a>. Dopiero później można ocenić, czy podłoga przy dopuszczalnych parametrach pokryje obciążenie.</p>
    </section>

    <section class="rk-errors-section rk-errors-section-dark" id="rk-errors-stages">
      <span class="rk-errors-eyebrow">Modułowa mapa kontroli</span>
      <h2 class="rk-errors-section-title">Pięć momentów, w których można zatrzymać kosztowny błąd</h2>
      <p class="rk-errors-lead">Wybierz etap. Moduł pokazuje najczęstszy ukryty problem, dowód potrzebny do odbioru oraz konsekwencję odkrycia go dopiero po zakryciu instalacji.</p>
      <div class="rk-errors-stage-graphic" aria-labelledby="rk-errors-stage-graphic-title">
        <p class="rk-errors-stage-intro" id="rk-errors-stage-graphic-title"><strong>Kontrola działa najlepiej przed przejściem do kolejnej warstwy.</strong> Zdjęcie albo protokół wykonane później nie odtworzą rzeczywistego przebiegu rur.</p>
        <div class="rk-errors-stage-tabs" role="tablist" aria-label="Etapy kontroli podłogówki">
          <button class="rk-errors-stage-tab" type="button" role="tab" aria-selected="true" data-rk-stage="project">1. Przed zakupem</button>
          <button class="rk-errors-stage-tab" type="button" role="tab" aria-selected="false" data-rk-stage="base">2. Po izolacji</button>
          <button class="rk-errors-stage-tab" type="button" role="tab" aria-selected="false" data-rk-stage="loops">3. Po ułożeniu rur</button>
          <button class="rk-errors-stage-tab" type="button" role="tab" aria-selected="false" data-rk-stage="screed">4. Przed wylewką</button>
          <button class="rk-errors-stage-tab" type="button" role="tab" aria-selected="false" data-rk-stage="startup">5. Przed startem</button>
        </div>
        <div class="rk-errors-stage-panel" role="tabpanel" aria-live="polite">
          <span class="rk-errors-stage-label" id="rk-errors-stage-label">Etap 1 · projekt i zamówienie</span>
          <h3 id="rk-errors-stage-title">Zamówienie materiału bez policzonych pętli</h3>
          <p id="rk-errors-stage-summary">Metraż rury wyliczony wyłącznie z powierzchni domu nie określa liczby obwodów, dobiegów, rzeczywistych rozstawów ani hydrauliki.</p>
          <div class="rk-errors-stage-facts">
            <div class="rk-errors-stage-fact"><strong>Ukryty błąd</strong><span id="rk-errors-stage-error">Rura, rozdzielacz i liczba obwodów są kupowane przed ustaleniem obciążenia pomieszczeń.</span></div>
            <div class="rk-errors-stage-fact"><strong>Dowód do odbioru</strong><span id="rk-errors-stage-proof">Rzut pętli, długości, rozstawy, przepływy i wskazany wymiar rury.</span></div>
            <div class="rk-errors-stage-fact"><strong>Po zakryciu</strong><span id="rk-errors-stage-after">Braku powierzchni grzejnej lub złego podziału pętli nie da się skorygować samą regulacją.</span></div>
          </div>
        </div>
      </div>
    </section>

    <section class="rk-errors-section rk-errors-section-dark" id="rk-errors-analyzer-section">
      <span class="rk-errors-eyebrow">Interaktywna lista odbiorowa</span>
      <h2 class="rk-errors-section-title">Analizator: czy instalację można przygotować do zalania jastrychem?</h2>
      <p class="rk-errors-lead">Odpowiadaj na podstawie projektu, pomiarów, oznaczeń, zdjęć i protokołów. „Wydaje mi się” wybierz jako „nie wiem”. Wynik nie certyfikuje instalacji — wskazuje warunki krytyczne, braki dokumentacyjne i elementy potwierdzone.</p>
      <div class="rk-errors-analyzer" id="rk-errors-analyzer">
        <div class="rk-errors-analyzer-head">
          <h3>Audyt przed nieodwracalnym etapem</h3>
          <p>Jeżeli nie wykonano jeszcze jastrychu, przejdź etapy 1–5. Etap 6 dotyczy planu po wykonaniu posadzki i nie blokuje samego zalewania, ale powinien być uzgodniony.</p>
        </div>

        <div class="rk-errors-analyzer-stage">
          <div class="rk-errors-stage-head"><span class="rk-errors-stage-number">1</span><div><h4>Projekt i dane wejściowe</h4><p>Sprawdź, czy wykonawca układa instalację według parametrów, a nie według jednego rozstawu dla całego domu.</p></div></div>
          <div class="rk-errors-fields">
            <label class="rk-errors-field"><span>Obciążenie cieplne i powierzchnie czynne są określone dla każdego pomieszczenia</span><select class="rk-errors-audit-field" data-severity="critical" data-label="Obciążenie cieplne i powierzchnie czynne" data-action="Ustal obciążenie cieplne i dostępną powierzchnię grzejną w każdym pomieszczeniu."><option value="unknown">Nie wiem / brak dokumentu</option><option value="yes">Tak — potwierdzone</option><option value="no">Nie</option></select></label>
            <label class="rk-errors-field"><span>Rzut określa rozstaw, podział i długości wszystkich pętli</span><select class="rk-errors-audit-field" data-severity="critical" data-label="Rzut pętli, rozstawy i długości" data-action="Porównaj rzeczywiste pętle z rzutem zawierającym rozstawy, podział i długości."><option value="unknown">Nie wiem / brak dokumentu</option><option value="yes">Tak — potwierdzone</option><option value="no">Nie</option></select></label>
            <label class="rk-errors-field"><span>Projekt zawiera wymagane przepływy i nastawy rozdzielacza</span><select class="rk-errors-audit-field" data-severity="warning" data-label="Przepływy i nastawy" data-action="Ustal projektowe przepływy i nastawy dla każdej pętli."><option value="unknown">Nie wiem / brak dokumentu</option><option value="yes">Tak — potwierdzone</option><option value="no">Nie</option></select></label>
            <label class="rk-errors-field"><span>Uwzględniono opór cieplny finalnej okładziny i podkładu</span><select class="rk-errors-audit-field" data-severity="warning" data-label="Opór okładziny" data-action="Potwierdź rodzaj okładziny, podkładu i łączny opór cieplny warstw nad jastrychem."><option value="unknown">Nie wiem / brak danych</option><option value="yes">Tak — potwierdzone</option><option value="no">Nie</option></select></label>
            <label class="rk-errors-field"><span>Wszystkie zmiany wykonawcze zostały zaakceptowane i przeliczone</span><select class="rk-errors-audit-field" data-severity="critical" data-label="Zmiany względem projektu" data-action="Wstrzymaj zakrycie do czasu weryfikacji zmian długości, rozstawu, średnicy lub liczby pętli."><option value="unknown">Nie było sprawdzenia</option><option value="yes">Tak / nie było zmian</option><option value="no">Nie</option></select></label>
          </div>
        </div>

        <div class="rk-errors-analyzer-stage">
          <div class="rk-errors-stage-head"><span class="rk-errors-stage-number">2</span><div><h4>Podłoże, izolacja i dylatacje</h4><p>Nierówność oraz puste przestrzenie pod izolacją mogą ujawnić się dopiero przy obciążeniu gotowej podłogi.</p></div></div>
          <div class="rk-errors-fields">
            <label class="rk-errors-field"><span>Podłoże jest równe, stabilne, czyste i bez instalacji podpierających płyty punktowo</span><select class="rk-errors-audit-field" data-severity="critical" data-label="Przygotowanie podłoża" data-action="Wyrównaj i oczyść podłoże oraz usuń punkty podparcia powodujące kołysanie izolacji."><option value="unknown">Nie sprawdzono</option><option value="yes">Tak — potwierdzone</option><option value="no">Nie</option></select></label>
            <label class="rk-errors-field"><span>Izolacja ma parametry i układ warstw zgodne z projektem konstrukcji podłogi</span><select class="rk-errors-audit-field" data-severity="critical" data-label="Parametry i ciągłość izolacji" data-action="Zweryfikuj grubość, lambdę, klasę obciążenia i ciągłość wszystkich warstw izolacji."><option value="unknown">Nie wiem / brak dokumentu</option><option value="yes">Tak — potwierdzone</option><option value="no">Nie</option></select></label>
            <label class="rk-errors-field"><span>Taśma brzegowa jest ciągła przy ścianach, słupach i elementach stałych</span><select class="rk-errors-audit-field" data-severity="critical" data-label="Izolacja brzegowa" data-action="Uzupełnij ciągłą izolację brzegową przed montażem jastrychu."><option value="unknown">Nie sprawdzono</option><option value="yes">Tak — potwierdzone</option><option value="no">Nie</option></select></label>
            <label class="rk-errors-field"><span>Plan pól i szczelin dylatacyjnych jest uzgodniony z wykonawcą jastrychu</span><select class="rk-errors-audit-field" data-severity="critical" data-label="Plan dylatacji" data-action="Uzgodnij geometrię pól, dylatacje konstrukcyjne i przejścia między pomieszczeniami."><option value="unknown">Nie ma uzgodnienia</option><option value="yes">Tak — potwierdzone</option><option value="no">Nie</option></select></label>
            <label class="rk-errors-field"><span>Przejścia rur przez dylatacje są ograniczone i zabezpieczone osłoną</span><select class="rk-errors-audit-field" data-severity="critical" data-label="Przejścia przez dylatacje" data-action="Zabezpiecz każde konieczne przejście przez dylatację zgodnie z przyjętym systemem."><option value="unknown">Nie sprawdzono</option><option value="yes">Tak — potwierdzone</option><option value="no">Nie</option><option value="na">Nie dotyczy</option></select></label>
          </div>
        </div>

        <div class="rk-errors-analyzer-stage">
          <div class="rk-errors-stage-head"><span class="rk-errors-stage-number">3</span><div><h4>Rury, pętle i mocowanie</h4><p>Sprawdź dokładny wyrób, przebieg, stan powierzchni oraz zgodność z rysunkiem, zanim instalacja zniknie.</p></div></div>
          <div class="rk-errors-fields">
            <label class="rk-errors-field"><span>Dokładny typ, wymiar i bariera tlenowa rury są zgodne ze specyfikacją</span><select class="rk-errors-audit-field" data-severity="warning" data-label="Identyfikacja rury" data-action="Zapisz typ, wymiar, partię i dokumentację bariery tlenowej zastosowanej rury."><option value="unknown">Nie wiem / brak dokumentu</option><option value="yes">Tak — potwierdzone</option><option value="no">Nie</option></select></label>
            <label class="rk-errors-field"><span>Każda pętla jest wykonana z jednego odcinka bez połączeń pod jastrychem</span><select class="rk-errors-audit-field" data-severity="critical" data-label="Brak połączeń w polu podłogi" data-action="Wyjaśnij każde połączenie lub naprawę w polu podłogi i zastosuj wyłącznie procedurę systemową."><option value="unknown">Nie sprawdzono</option><option value="yes">Tak — potwierdzone</option><option value="no">Nie</option></select></label>
            <label class="rk-errors-field"><span>Nie ma załamań, spłaszczeń, głębokich rys ani przekroczonych promieni gięcia</span><select class="rk-errors-audit-field" data-severity="critical" data-label="Stan i promienie gięcia rury" data-action="Wstrzymaj zakrycie uszkodzonej lub załamanej rury i postępuj zgodnie z dokumentacją systemu."><option value="unknown">Nie sprawdzono</option><option value="yes">Tak — potwierdzone</option><option value="no">Nie</option></select></label>
            <label class="rk-errors-field"><span>Mocowanie utrzymuje rozstaw oraz zapobiega wypływaniu rury podczas wylewania</span><select class="rk-errors-audit-field" data-severity="critical" data-label="Stabilność mocowania" data-action="Uzupełnij mocowania w łukach i odcinkach mogących zmienić położenie podczas wylewania."><option value="unknown">Nie sprawdzono</option><option value="yes">Tak — potwierdzone</option><option value="no">Nie</option></select></label>
            <label class="rk-errors-field"><span>Rzeczywiste długości pętli są zapisane i zgodne z założeniami hydraulicznymi</span><select class="rk-errors-audit-field" data-severity="critical" data-label="Długości i opory pętli" data-action="Zmierz długości i sprawdź opory dla projektowych przepływów przed wykonaniem jastrychu."><option value="unknown">Nie ma pomiaru</option><option value="yes">Tak — potwierdzone</option><option value="no">Nie</option></select></label>
            <label class="rk-errors-field"><span>Powierzchnie pod stałą zabudową są zgodne z przyjętym planem</span><select class="rk-errors-audit-field" data-severity="warning" data-label="Powierzchnia czynna i stała zabudowa" data-action="Porównaj trasy rur z aktualnym planem kuchni, sanitariatów, kominka i zabudowy stałej."><option value="unknown">Nie wiem / brak planu</option><option value="yes">Tak — potwierdzone</option><option value="no">Nie</option></select></label>
          </div>
        </div>

        <div class="rk-errors-analyzer-stage">
          <div class="rk-errors-stage-head"><span class="rk-errors-stage-number">4</span><div><h4>Rozdzielacz i hydraulika</h4><p>Ładny przebieg rur nie wystarczy, jeżeli obwodów nie da się zidentyfikować, wyregulować albo zasilić wymaganym przepływem.</p></div></div>
          <div class="rk-errors-fields">
            <label class="rk-errors-field"><span>Rozdzielacz jest dostępny, wypoziomowany i zamontowany w uzgodnionym miejscu</span><select class="rk-errors-audit-field" data-severity="warning" data-label="Lokalizacja i dostęp do rozdzielacza" data-action="Zapewnij dostęp serwisowy i sprawdź wpływ lokalizacji na długości dobiegów."><option value="unknown">Nie sprawdzono</option><option value="yes">Tak — potwierdzone</option><option value="no">Nie</option></select></label>
            <label class="rk-errors-field"><span>Zasilanie i powrót każdej pętli są trwale i jednoznacznie opisane</span><select class="rk-errors-audit-field" data-severity="warning" data-label="Oznaczenie obwodów" data-action="Oznacz pomieszczenie, numer pętli, zasilanie i powrót przed wykonaniem jastrychu."><option value="unknown">Brak pełnych oznaczeń</option><option value="yes">Tak — potwierdzone</option><option value="no">Nie</option></select></label>
            <label class="rk-errors-field"><span>Połączenia, belki i kierunki przepływu są zgodne ze schematem</span><select class="rk-errors-audit-field" data-severity="critical" data-label="Podłączenie rozdzielacza" data-action="Zweryfikuj zasilanie, powrót, odpowietrzenie, spust i wszystkie połączenia rozdzielacza."><option value="unknown">Nie sprawdzono</option><option value="yes">Tak — potwierdzone</option><option value="no">Nie</option></select></label>
            <label class="rk-errors-field"><span>Zakres rotametrów i pompa pozwalają uzyskać projektowe przepływy</span><select class="rk-errors-audit-field" data-severity="warning" data-label="Możliwość regulacji przepływów" data-action="Porównaj wymagane przepływy z zakresem rotametrów i oporem drogi krytycznej."><option value="unknown">Brak obliczeń</option><option value="yes">Tak — potwierdzone</option><option value="no">Nie</option></select></label>
          </div>
        </div>

        <div class="rk-errors-analyzer-stage">
          <div class="rk-errors-stage-head"><span class="rk-errors-stage-number">5</span><div><h4>Odbiór przed jastrychem</h4><p>Ten etap zamienia poprawne wykonanie w udokumentowane wykonanie. Bez niego po zakryciu pozostają wyłącznie deklaracje.</p></div></div>
          <div class="rk-errors-fields">
            <label class="rk-errors-field"><span>Próbę szczelności wykonano według właściwej procedury dla przyjętego systemu</span><select class="rk-errors-audit-field" data-severity="critical" data-label="Procedura próby szczelności" data-action="Wykonaj próbę zgodnie z dokumentacją systemu i przyjętymi wymaganiami odbiorowymi."><option value="unknown">Nie wiem / brak próby</option><option value="yes">Tak — potwierdzone</option><option value="no">Nie</option></select></label>
            <label class="rk-errors-field"><span>Próba nie wykazała przecieku ani niewyjaśnionego spadku ciśnienia</span><select class="rk-errors-audit-field" data-severity="critical" data-label="Wynik próby szczelności" data-action="Zlokalizuj przyczynę spadku lub nieszczelności i powtórz pełną próbę po naprawie."><option value="unknown">Brak wiarygodnego wyniku</option><option value="yes">Tak — wynik prawidłowy</option><option value="no">Nie</option></select></label>
            <label class="rk-errors-field"><span>Istnieje podpisany protokół z warunkami, czasem i wynikiem próby</span><select class="rk-errors-audit-field" data-severity="warning" data-label="Protokół próby" data-action="Sporządź protokół zawierający warunki, czasy, odczyty, wynik i podpisy."><option value="unknown">Brak protokołu</option><option value="yes">Tak — potwierdzone</option><option value="no">Nie</option></select></label>
            <label class="rk-errors-field"><span>Wykonano zdjęcia wszystkich pomieszczeń, przejść i rozdzielacza z odniesieniem wymiarowym</span><select class="rk-errors-audit-field" data-severity="warning" data-label="Dokumentacja fotograficzna" data-action="Wykonaj komplet zdjęć tras, stref, dylatacji i rozdzielacza przed zakryciem."><option value="unknown">Brak kompletu zdjęć</option><option value="yes">Tak — potwierdzone</option><option value="no">Nie</option></select></label>
            <label class="rk-errors-field"><span>Rodzaj, grubość i pola jastrychu są uzgodnione z wykonawcą posadzki</span><select class="rk-errors-audit-field" data-severity="critical" data-label="Specyfikacja jastrychu" data-action="Uzgodnij typ, klasę, grubość, dodatki, dylatacje i pielęgnację jastrychu."><option value="unknown">Brak uzgodnienia</option><option value="yes">Tak — potwierdzone</option><option value="no">Nie</option></select></label>
            <label class="rk-errors-field"><span>Sposób utrzymania ciśnienia i ochrony rur podczas wylewania jest ustalony</span><select class="rk-errors-audit-field" data-severity="critical" data-label="Ochrona instalacji podczas wylewania" data-action="Ustal stan instalacji podczas wylewania, zabezpieczenie rozdzielacza i zasady ruchu ekip."><option value="unknown">Nie ustalono</option><option value="yes">Tak — potwierdzone</option><option value="no">Nie</option></select></label>
          </div>
        </div>

        <div class="rk-errors-analyzer-stage is-optional">
          <div class="rk-errors-stage-head"><span class="rk-errors-stage-number">6</span><div><h4>Plan po wykonaniu jastrychu</h4><p>Te punkty nie oceniają gotowości samych rur do zalania, ale zapobiegają błędom uruchomieniowym i uszkodzeniu okładziny.</p></div></div>
          <div class="rk-errors-fields">
            <label class="rk-errors-field"><span>Znamy wymagany czas pielęgnacji i warunki dojrzewania jastrychu</span><select class="rk-errors-audit-field" data-severity="warning" data-label="Pielęgnacja jastrychu" data-action="Uzyskaj pisemne wymagania dotyczące pielęgnacji i minimalnego czasu przed wygrzewaniem."><option value="unknown">Nie ustalono</option><option value="yes">Tak — potwierdzone</option><option value="no">Nie</option></select></label>
            <label class="rk-errors-field"><span>Jest procedura wygrzewania właściwa dla zastosowanego jastrychu</span><select class="rk-errors-audit-field" data-severity="warning" data-label="Procedura wygrzewania" data-action="Ustal procedurę wygrzewania i sposób dokumentowania kolejnych temperatur."><option value="unknown">Brak procedury</option><option value="yes">Tak — potwierdzone</option><option value="no">Nie</option></select></label>
            <label class="rk-errors-field"><span>Przed okładziną przewidziano właściwy pomiar wilgotności</span><select class="rk-errors-audit-field" data-severity="warning" data-label="Pomiar wilgotności" data-action="Ustal metodę, miejsca i dopuszczalny wynik pomiaru przed montażem okładziny."><option value="unknown">Nie ustalono</option><option value="yes">Tak — potwierdzone</option><option value="no">Nie</option></select></label>
            <label class="rk-errors-field"><span>Po uruchomieniu przewidziano odpowietrzenie i regulację przepływów</span><select class="rk-errors-audit-field" data-severity="warning" data-label="Odpowietrzenie i równoważenie" data-action="Zaplanuj napełnianie pętla po pętli, odpowietrzenie i ustawienie przepływów z projektu."><option value="unknown">Nie ustalono</option><option value="yes">Tak — potwierdzone</option><option value="no">Nie</option></select></label>
          </div>
        </div>

        <div class="rk-errors-analyzer-actions">
          <button class="rk-errors-analyze-button" id="rk-errors-run" type="button">Analizuj gotowość instalacji</button>
          <button class="rk-errors-reset-button" id="rk-errors-reset" type="button">Wyczyść odpowiedzi</button>
        </div>

        <div class="rk-errors-result" id="rk-errors-result" aria-live="polite">
          <p class="rk-errors-result-status" id="rk-errors-result-status">Uzupełnij listę na podstawie rzeczywistego wykonania</p>
          <p class="rk-errors-result-intro" id="rk-errors-result-intro">Wynik rozdzieli punkty potwierdzone, wymagające wyjaśnienia i blokujące zakrycie instalacji.</p>
          <div class="rk-errors-result-counts" aria-label="Podsumowanie analizy">
            <div class="rk-errors-result-count"><span>Potwierdzone</span><strong id="rk-errors-ok-count">0</strong></div>
            <div class="rk-errors-result-count"><span>Do sprawdzenia</span><strong id="rk-errors-check-count">30</strong></div>
            <div class="rk-errors-result-count"><span>Krytyczne</span><strong id="rk-errors-stop-count">0</strong></div>
          </div>
          <div class="rk-errors-result-grid">
            <div class="rk-errors-result-column is-ok"><h4>Potwierdzone</h4><ul id="rk-errors-ok-list"><li>Jeszcze brak ocenionych danych.</li></ul></div>
            <div class="rk-errors-result-column is-check"><h4>Do sprawdzenia</h4><ul id="rk-errors-check-list"><li>Uzupełnij odpowiedzi na podstawie projektu, pomiarów i protokołów.</li></ul></div>
            <div class="rk-errors-result-column is-stop"><h4>Warunki krytyczne</h4><ul id="rk-errors-stop-list"><li>Brak oceny nie oznacza, że instalację można zakryć.</li></ul></div>
          </div>
          <p class="rk-errors-disclaimer">Analizator jest listą edukacyjną. Nie zastępuje projektu, instrukcji przyjętego systemu, oceny podłoża i jastrychu, formalnej próby ani odbioru przez osoby odpowiedzialne za wykonanie.</p>
        </div>
      </div>

      <aside class="rk-errors-cta" aria-label="Projekt ogrzewania podłogowego">
        <div class="rk-errors-cta-title">Analizator wskazał czerwone pola? Zatrzymaj wylewkę, zanim błąd zniknie pod posadzką</div>
        <p>Projekt łączy obciążenie cieplne pomieszczeń, powierzchnie czynne, rozstaw rur, podział na pętle, przepływy, opory oraz nastawy rozdzielacza. Dzięki temu wykonanie można porównać z konkretnymi parametrami, a nie z zasadą „zawsze co 10 albo 15 cm”.</p>
        <a class="rk-errors-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów indywidualny projekt podłogówki</a>
        <small class="rk-errors-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </aside>
    </section>

    <section class="rk-errors-section" id="rk-errors-design">
      <span class="rk-errors-eyebrow">Błąd, którego nie widać po rurach</span>
      <h2 class="rk-errors-section-title">Brak obliczeń i montaż podłogówki „na oko”</h2>
      <p class="rk-errors-lead">Jednakowy rozstaw w całym budynku nie oznacza jednakowego efektu. Łazienka z małą powierzchnią czynną, salon z dużymi przeszkleniami i sypialnia wewnętrzna mogą potrzebować zupełnie innych parametrów.</p>
      <div class="rk-errors-grid-2">
        <article class="rk-errors-card"><span class="rk-errors-icon is-stop">BŁĄD</span><h3>Metry rury zamiast bilansu pomieszczenia</h3><p>Obliczenie „10 m rury na 1 m²” może pomóc oszacować zakup, ale nie potwierdza mocy podłogi, temperatury powierzchni ani przepływu.</p></article>
        <article class="rk-errors-card"><span class="rk-errors-icon is-ok">KONTROLA</span><h3>Komplet parametrów wykonawczych</h3><p>Rzut powinien wiązać powierzchnię czynną z rozstawem, długością obwodu, wymaganym przepływem i zakładaną temperaturą wody.</p></article>
      </div>
      <ul class="rk-errors-bullets">
        <li>sprawdź obciążenie cieplne oddzielnie dla każdego pomieszczenia,</li>
        <li>odejmij pola rzeczywiście wyłączone z grzania,</li>
        <li>uwzględnij opór okładziny i podkładu,</li>
        <li>porównaj możliwą moc podłogi z obciążeniem przy dopuszczalnej temperaturze powierzchni,</li>
        <li>policz przepływ i opór każdej pętli.</li>
      </ul>
      <p class="rk-errors-copy">Związek pomiędzy normową metodą a projektem omawia artykuł <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">norma obliczeń ogrzewania podłogowego EN 1264</a>. Jeżeli zmieniasz źródło ciepła, sam rysunek pętli również nie wystarczy — parametry muszą pasować do całego układu.</p>
    </section>

    <section class="rk-errors-section rk-errors-section-soft" id="rk-errors-insulation">
      <span class="rk-errors-eyebrow">Pod rurą też powstają błędy</span>
      <h2 class="rk-errors-section-title">Nierówne podłoże, przypadkowa izolacja i puste przestrzenie</h2>
      <p class="rk-errors-lead">Nie istnieje jedna prawidłowa grubość ani jedna uniwersalna odmiana EPS dla każdego budynku. Izolacja jest częścią kompletnej przegrody i jednocześnie podłożem przenoszącym obciążenia jastrychu.</p>
      <div class="rk-errors-grid-3">
        <article class="rk-errors-card"><span class="rk-errors-card-number">PODŁOŻE</span><h3>Brak równości</h3><p>Kołyszące się płyty i punktowe podparcie instalacjami mogą prowadzić do ugięć oraz spękań warstw znajdujących się wyżej.</p></article>
        <article class="rk-errors-card"><span class="rk-errors-card-number">IZOLACJA</span><h3>Parametr dobrany z nazwy</h3><p>O izolacyjności decydują między innymi grubość i deklarowana lambda, a o zachowaniu pod obciążeniem odpowiednie właściwości mechaniczne — nie samo hasło EPS 100 lub EPS 200.</p></article>
        <article class="rk-errors-card"><span class="rk-errors-card-number">WARSTWY</span><h3>Szczeliny i mostki</h3><p>Niedocięte płyty, duże szczeliny oraz brak przesunięcia połączeń w kolejnych warstwach pogarszają ciągłość podparcia i izolacji.</p></article>
      </div>
      <div class="rk-errors-note"><p><strong>Nie kopiuj wartości „5 cm wystarczy” z przypadkowej realizacji.</strong> Inaczej projektuje się podłogę na gruncie, strop nad nieogrzewanym garażem i strop między dwoma ogrzewanymi mieszkaniami. Wymagania dotyczą całej przegrody.</p></div>
      <p class="rk-errors-copy">Szerzej parametry oraz warstwy opisuje poradnik <a href="https://projekt-ogrzewania.pl/jakie-sa-najlepsze-sposoby-izolacji-pod-ogrzewanie-podlogowe/">jak dobrać izolację pod ogrzewanie podłogowe</a>.</p>
    </section>

    <section class="rk-errors-section" id="rk-errors-spacing">
      <span class="rk-errors-eyebrow">Rozstaw jest wynikiem, nie punktem wyjścia</span>
      <h2 class="rk-errors-section-title">Nieprawidłowa powierzchnia czynna i rozstaw rur</h2>
      <p class="rk-errors-lead">Rozstaw 10 cm nie gwarantuje poprawnej mocy, a 20 cm nie musi automatycznie tworzyć „zimnych pasów”. O wyniku decydują równocześnie obciążenie, średnia temperatura wody, konstrukcja podłogi, opór warstw, temperatura pomieszczenia i sposób prowadzenia rur.</p>
      <div class="rk-errors-table-wrap">
        <table>
          <thead><tr><th>Skrót myślowy</th><th>Dlaczego jest ryzykowny</th><th>Co sprawdzić zamiast</th></tr></thead>
          <tbody>
            <tr><td data-label="Skrót"><strong>„Wszędzie co 15 cm”</strong></td><td data-label="Ryzyko">Pomieszczenia mają inne straty i inną powierzchnię dostępną do emisji.</td><td data-label="Sprawdź">Moc z powierzchni czynnej i temperaturę powierzchni dla każdego pomieszczenia.</td></tr>
            <tr><td data-label="Skrót"><strong>„W łazience zawsze 10 cm”</strong></td><td data-label="Ryzyko">Mała wolna podłoga może nie pokryć wymaganej mocy nawet przy gęstym rozstawie.</td><td data-label="Sprawdź">Czy potrzebne jest dodatkowe źródło ciepła oraz jaka okładzina zostanie zastosowana.</td></tr>
            <tr><td data-label="Skrót"><strong>„Pod meblami nigdy nie układamy”</strong></td><td data-label="Ryzyko">Nie każda zabudowa blokuje emisję tak samo, a aranżacja może się zmienić.</td><td data-label="Sprawdź">Stałą zabudowę na pełnym cokole, urządzenia, kominek oraz plan użytkowania.</td></tr>
          </tbody>
        </table>
      </div>
      <p class="rk-errors-copy">Pełne kryteria przedstawiają poradniki <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstaw rur co 10 czy 15 cm</a> oraz <a href="https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/">gdzie nie układać ogrzewania podłogowego</a>.</p>
    </section>

    <section class="rk-errors-section rk-errors-section-soft" id="rk-errors-pipes">
      <span class="rk-errors-eyebrow">Materiał nie naprawia złego wykonania</span>
      <h2 class="rk-errors-section-title">Błędy przy wyborze, rozwijaniu i mocowaniu rur</h2>
      <p class="rk-errors-lead">Nazwa PE-X, PE-RT albo „rura wielowarstwowa” nie opisuje kompletnej jakości produktu ani poprawności montażu. Trzeba zidentyfikować dokładny wymiar, budowę, barierę tlenową, klasę zastosowania i zgodny system połączeń.</p>
      <div class="rk-errors-grid-4">
        <article class="rk-errors-card"><span class="rk-errors-card-number">1</span><h3>Ciągnięcie po podłożu</h3><p>Rozwijaj rurę kontrolowanie, bez skręcania osiowego i ocierania warstw o ostre krawędzie.</p></article>
        <article class="rk-errors-card"><span class="rk-errors-card-number">2</span><h3>Zbyt ciasny łuk</h3><p>Minimalny promień i warunki gięcia należy odczytać z dokumentacji dokładnego wyrobu.</p></article>
        <article class="rk-errors-card"><span class="rk-errors-card-number">3</span><h3>Za rzadkie mocowanie</h3><p>Rura nie może przemieścić się ani wypłynąć podczas układania i zagęszczania jastrychu.</p></article>
        <article class="rk-errors-card"><span class="rk-errors-card-number">4</span><h3>Ukryta naprawa</h3><p>Każde uszkodzenie trzeba ujawnić. Niedopuszczalne jest przypadkowe łączenie elementów bez procedury systemowej.</p></article>
      </div>
      <div class="rk-errors-note rk-errors-note-bad"><p><strong>Nie naprawiaj załamania metodą zapamiętaną z filmu.</strong> Zachowanie rury zależy od materiału i konstrukcji. Zawsze obowiązuje procedura dla konkretnego produktu oraz ponowna próba po wykonanej naprawie.</p></div>
      <p class="rk-errors-copy">Porównanie właściwości i dokumentacji znajdziesz w artykule <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rury do ogrzewania podłogowego</a>.</p>
    </section>

    <section class="rk-errors-section" id="rk-errors-loops">
      <span class="rk-errors-eyebrow">Ograniczenie wynika z hydrauliki</span>
      <h2 class="rk-errors-section-title">Zbyt długie pętle i przypadkowy podział pomieszczeń</h2>
      <p class="rk-errors-lead">Zakres około 80–100 m bywa praktycznym punktem odniesienia dla domowej pętli 16 × 2 mm, ale nie jest uniwersalnym limitem gwarantującym poprawną pracę. Pętla może wymagać skrócenia, jeżeli potrzebuje dużego przepływu, ma długi dobieg albo pracuje na medium o innych właściwościach.</p>
      <div class="rk-errors-grid-3">
        <article class="rk-errors-card"><span class="rk-errors-icon">Q</span><h3>Przepływ</h3><p>Wynika z mocy przekazywanej przez pętlę oraz przyjętej różnicy temperatur zasilania i powrotu.</p></article>
        <article class="rk-errors-card"><span class="rk-errors-icon">Δp</span><h3>Spadek ciśnienia</h3><p>Zależy od światła rury, przepływu, długości, temperatury i rodzaju medium oraz oporów miejscowych.</p></article>
        <article class="rk-errors-card"><span class="rk-errors-icon">L</span><h3>Cała droga</h3><p>Do długości należy doliczyć zasilanie i powrót od rozdzielacza do aktywnego pola, a nie tylko rurę widoczną w pomieszczeniu.</p></article>
      </div>
      <p class="rk-errors-copy">Szczegółowe zależności wyjaśnia poradnik <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">maksymalna długość pętli ogrzewania podłogowego</a>. Duże pomieszczenie trzeba podzielić tak, aby pola i opory dało się później wyregulować, zamiast liczyć na maksymalne otwarcie rotametrów.</p>
    </section>

    <section class="rk-errors-section rk-errors-section-soft" id="rk-errors-dilatations">
      <span class="rk-errors-eyebrow">Rura i jastrych muszą mieć wspólny plan</span>
      <h2 class="rk-errors-section-title">Brak izolacji brzegowej i błędne dylatacje</h2>
      <p class="rk-errors-lead">Prosta reguła „dylatacja co 40 m²” nie wystarcza. Znaczenie mają wymiary i proporcje pola, kształt pomieszczenia, przewężenia, dylatacje konstrukcyjne, rodzaj jastrychu oraz wymagania jego wykonawcy.</p>
      <div class="rk-errors-grid-2">
        <article class="rk-errors-card"><span class="rk-errors-card-number">OBWÓD</span><h3>Izolacja brzegowa</h3><p>Powinna oddzielić jastrych od ścian, słupów, pionów i innych elementów stałych. Przerwy tworzą miejsca niekontrolowanego kontaktu oraz mostki akustyczne.</p></article>
        <article class="rk-errors-card"><span class="rk-errors-card-number">POLA</span><h3>Szczeliny dylatacyjne</h3><p>Rur nie prowadzi się wzdłuż szczeliny w sposób narażający je na ruch płyt. Konieczne przejścia ogranicza się i chroni odpowiednią osłoną.</p></article>
      </div>
      <ul class="rk-errors-bullets">
        <li>uzgodnij pola przed rozpoczęciem układania rur,</li>
        <li>nałóż przebieg dylatacji konstrukcyjnych na rzut instalacji,</li>
        <li>sprawdź przejścia między pomieszczeniami i wąskie przewężenia,</li>
        <li>udokumentuj długość oraz położenie każdej osłony ochronnej,</li>
        <li>nie wycinaj taśmy brzegowej przed zakończeniem wymaganych prac posadzkowych.</li>
      </ul>
      <p class="rk-errors-copy">Praktyczne rozwiązania pokazuje poradnik <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacja brzegowa i dylatacje w podłogówce</a>.</p>
    </section>

    <section class="rk-errors-section" id="rk-errors-manifold">
      <span class="rk-errors-eyebrow">Punkt regulacji całej instalacji</span>
      <h2 class="rk-errors-section-title">Błędy montażu i opisu rozdzielacza</h2>
      <p class="rk-errors-lead">Rozdzielacz powinien umożliwiać identyfikację, napełnienie, odpowietrzenie i regulację każdej pętli. Sam fakt obecności rotametrów nie oznacza, że obwody zostały poprawnie zrównoważone.</p>
      <div class="rk-errors-grid-3">
        <article class="rk-errors-card"><span class="rk-errors-icon is-stop">!</span><h3>Zła lokalizacja</h3><p>Bardzo długie dobiegi zwiększają opory i prowadzą dużo rur przez komunikację. Brak miejsca utrudnia montaż siłowników oraz serwis.</p></article>
        <article class="rk-errors-card"><span class="rk-errors-icon is-check">?</span><h3>Brak opisów</h3><p>Po wylewce trudno ustalić, która para przewodów obsługuje konkretną pętlę. Oznaczenia wykonaj przed próbą i zakryciem.</p></article>
        <article class="rk-errors-card"><span class="rk-errors-icon is-ok">V̇</span><h3>Przepływy z projektu</h3><p>Nastawa wynika z mocy i parametrów pętli, a nie z zasady „wszędzie po 1,5 l/min” ani wyłącznie z jej długości.</p></article>
      </div>
      <p class="rk-errors-copy">Zasady budowy i regulacji omawiają poradniki o <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielaczu ogrzewania podłogowego</a> oraz o tym, jak odczytywać <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametr i wskaźnik przepływu</a>.</p>
    </section>

    <section class="rk-errors-section rk-errors-section-soft" id="rk-errors-pressure">
      <span class="rk-errors-eyebrow">Próba to procedura, nie zdjęcie manometru</span>
      <h2 class="rk-errors-section-title">Pomijanie próby szczelności i protokołu odbiorowego</h2>
      <p class="rk-errors-lead">Jedna uniwersalna instrukcja „6 bar przez 24 godziny” nie opisuje wszystkich systemów, warunków i etapów. Właściwa procedura powinna wynikać z przyjętej dokumentacji, a wynik musi uwzględniać temperaturę medium i otoczenia oraz być zapisany.</p>
      <div class="rk-errors-grid-4">
        <article class="rk-errors-card"><span class="rk-errors-card-number">1</span><h3>Identyfikacja</h3><p>Zapisz obiekt, rozdzielacz, numery pętli, rodzaj medium i użyty przyrząd.</p></article>
        <article class="rk-errors-card"><span class="rk-errors-card-number">2</span><h3>Warunki</h3><p>Odnotuj temperaturę, ciśnienie początkowe, etapy stabilizacji i czas obserwacji.</p></article>
        <article class="rk-errors-card"><span class="rk-errors-card-number">3</span><h3>Oględziny</h3><p>Sprawdź wszystkie dostępne połączenia, rozdzielacz, przewody i każdą wykonaną naprawę.</p></article>
        <article class="rk-errors-card"><span class="rk-errors-card-number">4</span><h3>Protokół</h3><p>Zapisz odczyty, wynik, uwagi, datę oraz osoby odpowiedzialne za wykonanie i odbiór.</p></article>
      </div>
      <div class="rk-errors-note rk-errors-note-bad"><p><strong>Niewyjaśnionego spadku nie wolno przykryć jastrychem.</strong> Zmiana odczytu może wynikać z temperatury albo procedury, ale musi zostać zinterpretowana przed zakryciem, a nie po nim.</p></div>
      <p class="rk-errors-copy">Zakres kontroli szerzej opisuje artykuł <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próba szczelności ogrzewania podłogowego</a>.</p>
    </section>

    <section class="rk-errors-section" id="rk-errors-screed">
      <span class="rk-errors-eyebrow">Jastrych nie jest przypadkowym betonem</span>
      <h2 class="rk-errors-section-title">Błędy podczas wykonywania wylewki na podłogówkę</h2>
      <p class="rk-errors-lead">Jastrych cementowy nie jest z definicji gorszy od samopoziomującego, a anhydrytowy nie zwalnia z kontroli. Rodzaj, klasa, grubość, sposób wykonania, dylatacje, pielęgnacja i termin wygrzewania muszą tworzyć jedną technologię.</p>
      <div class="rk-errors-grid-3">
        <article class="rk-errors-card"><span class="rk-errors-card-number">PRZED</span><h3>Brak uzgodnienia</h3><p>Ekipa instalacyjna i posadzkarska muszą znać plan pól, wysokości, osłony rur i miejsca wymagające szczególnej kontroli.</p></article>
        <article class="rk-errors-card"><span class="rk-errors-card-number">W TRAKCIE</span><h3>Przesunięcie lub uszkodzenie</h3><p>Ruch po rurach, węże pompy, narzędzia i zagęszczanie mogą zmienić rozstaw albo uszkodzić instalację.</p></article>
        <article class="rk-errors-card"><span class="rk-errors-card-number">PO</span><h3>Zła pielęgnacja</h3><p>Przeciągi, za szybkie wysychanie, wczesne obciążanie lub uruchomienie ogrzewania zwiększają ryzyko uszkodzeń.</p></article>
      </div>
      <ul class="rk-errors-bullets">
        <li>nie dodawaj dowolnego plastyfikatora bez receptury i zgodności z mieszanką,</li>
        <li>nie przyjmuj jednej grubości „nad rurą” dla wszystkich rodzajów jastrychu,</li>
        <li>kontroluj wysokości względem progów, schodów i planowanej okładziny,</li>
        <li>utrzymuj ustalony stan instalacji podczas wylewania,</li>
        <li>po zakończeniu ponownie sprawdź dostępne połączenia i zapis ciśnienia.</li>
      </ul>
      <p class="rk-errors-copy">Warstwy, różnice technologiczne i przygotowanie omawia poradnik <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewka na ogrzewanie podłogowe</a>.</p>
    </section>

    <section class="rk-errors-section rk-errors-section-soft" id="rk-errors-startup">
      <span class="rk-errors-eyebrow">Błędy powstają również po montażu</span>
      <h2 class="rk-errors-section-title">Pielęgnacja, wygrzewanie i pierwsze uruchomienie</h2>
      <p class="rk-errors-lead">Wygrzewanie jastrychu nie jest próbą „czy podłogówka grzeje”. To kontrolowany proces wykonywany po wymaganym okresie dojrzewania, według procedury właściwej dla zastosowanego materiału.</p>
      <div class="rk-errors-grid-4">
        <article class="rk-errors-card"><span class="rk-errors-card-number">01</span><h3>Dojrzewanie</h3><p>Nie uruchamiaj ogrzewania wcześniej, aby przyspieszyć wysychanie bez zgody technologicznej.</p></article>
        <article class="rk-errors-card"><span class="rk-errors-card-number">02</span><h3>Wygrzewanie</h3><p>Zapisuj daty i temperatury. Gwałtowny skok nie zastępuje wymaganej sekwencji.</p></article>
        <article class="rk-errors-card"><span class="rk-errors-card-number">03</span><h3>Wilgotność</h3><p>Okładziny montuj po właściwym pomiarze, a nie wyłącznie po ocenie powierzchni dłonią.</p></article>
        <article class="rk-errors-card"><span class="rk-errors-card-number">04</span><h3>Regulacja</h3><p>Napełnij i odpowietrz pętle, ustaw przepływy, a dopiero potem koryguj temperaturę i automatykę.</p></article>
      </div>
      <div class="rk-errors-note rk-errors-note-good"><p><strong>Oddziel trzy procesy:</strong> próba szczelności sprawdza instalację, wygrzewanie przygotowuje jastrych, a regulacja ustawia przepływy i temperaturę pracy. Jeden proces nie zastępuje pozostałych.</p></div>
    </section>

    <section class="rk-errors-section" id="rk-errors-symptoms">
      <span class="rk-errors-eyebrow">Objaw nie wskazuje jednej przyczyny</span>
      <h2 class="rk-errors-section-title">Jak błędy montażowe ujawniają się po zamieszkaniu?</h2>
      <p class="rk-errors-lead">Zimna strefa nie oznacza automatycznie uszkodzonej rury, a szum nie zawsze oznacza zapowietrzenie. Diagnozę zaczyna się od prostych pomiarów i dokumentacji, a dopiero później podejmuje decyzję o ingerencji w podłogę.</p>
      <div class="rk-errors-table-wrap">
        <table>
          <thead><tr><th>Objaw</th><th>Możliwe przyczyny</th><th>Pierwsza kontrola bez kucia</th></tr></thead>
          <tbody>
            <tr><td data-label="Objaw"><strong>Jedno pomieszczenie jest chłodne</strong></td><td data-label="Możliwe przyczyny">Za mały przepływ, zamknięty zawór, powietrze, zła nastawa, za mała moc pola lub błąd projektu.</td><td data-label="Pierwsza kontrola">Sterowanie, siłownik, przepływ, temperatury zasilania i powrotu, identyfikacja pętli.</td></tr>
            <tr><td data-label="Objaw"><strong>Nierówne pasy temperatury</strong></td><td data-label="Możliwe przyczyny">Rozstaw, przykrycie powierzchni, słaby kontakt jastrychu, uszkodzenie albo przepływ.</td><td data-label="Pierwsza kontrola">Zdjęcia powykonawcze, termowizja w stabilnych warunkach, przepływ i temperatura.</td></tr>
            <tr><td data-label="Objaw"><strong>Szum lub bulgotanie</strong></td><td data-label="Możliwe przyczyny">Powietrze, za duża prędkość, zła regulacja, problem z pompą lub ciśnieniem.</td><td data-label="Pierwsza kontrola">Napełnienie pętla po pętli, odpowietrzenie, ciśnienie i ustawienia pompy.</td></tr>
            <tr><td data-label="Objaw"><strong>Wszystko grzeje bardzo wolno</strong></td><td data-label="Możliwe przyczyny">Bezwładność konstrukcji, niska moc źródła, niewłaściwa krzywa, brak przepływu albo wychłodzony budynek.</td><td data-label="Pierwsza kontrola">Temperatury, czas pracy, przepływy, moc źródła i warunki budynku.</td></tr>
            <tr><td data-label="Objaw"><strong>Pęknięcia posadzki</strong></td><td data-label="Możliwe przyczyny">Podłoże, dylatacje, pielęgnacja, skurcz, obciążenie lub zbyt szybkie uruchomienie.</td><td data-label="Pierwsza kontrola">Przebieg dylatacji, technologia jastrychu, dziennik wygrzewania i ocena posadzkarza.</td></tr>
          </tbody>
        </table>
      </div>
      <p class="rk-errors-copy">Jeżeli podejrzewasz powietrze w obwodach, zobacz osobną diagnostykę: <a href="https://projekt-ogrzewania.pl/objawy-zapowietrzenia-ogrzewania-podlogowego/">objawy zapowietrzenia ogrzewania podłogowego</a>.</p>
    </section>

    <section class="rk-errors-section rk-errors-section-soft" id="rk-errors-repair">
      <span class="rk-errors-eyebrow">Najpierw metody odwracalne</span>
      <h2 class="rk-errors-section-title">Co można naprawić bez kucia podłogi?</h2>
      <p class="rk-errors-lead">Nie każda wada oznacza rozbiórkę. Najpierw należy wykluczyć problemy z napełnieniem, automatyką, przepływami, temperaturą i pracą źródła. Kucie jest ostatnim etapem po lokalizacji i potwierdzeniu przyczyny.</p>
      <div class="rk-errors-grid-3">
        <article class="rk-errors-card"><span class="rk-errors-icon is-ok">1</span><h3>Możliwe do regulacji</h3><p>Przepływy, nastawy pompy, krzywa grzewcza, temperatura zasilania, siłowniki i harmonogram pracy.</p></article>
        <article class="rk-errors-card"><span class="rk-errors-icon is-check">2</span><h3>Możliwe do diagnostyki</h3><p>Powietrze, pomylone pętle, brak przepływu, niewłaściwe sterowanie i różnice temperatur.</p></article>
        <article class="rk-errors-card"><span class="rk-errors-icon is-stop">3</span><h3>Zwykle konstrukcyjne</h3><p>Zbyt mała powierzchnia czynna, błędny rozstaw, źle wykonane dylatacje, mechanicznie uszkodzona rura lub nieodpowiednia konstrukcja podłogi.</p></article>
      </div>
      <div class="rk-errors-note"><p><strong>Termowizja jest narzędziem pomocniczym.</strong> Obraz zależy od warunków pracy, czasu stabilizacji, okładziny i emisyjności. Nie powinien samodzielnie przesądzać o rozbiórce.</p></div>
    </section>

    <section class="rk-errors-section" id="rk-errors-stop">
      <span class="rk-errors-eyebrow">Czerwone flagi na budowie</span>
      <h2 class="rk-errors-section-title">Kiedy należy zatrzymać ekipę przed wykonaniem wylewki?</h2>
      <p class="rk-errors-lead">Wstrzymanie zakrycia nie jest konfliktem z wykonawcą. Jest zwykłą decyzją techniczną, jeżeli po wykonaniu jastrychu nie da się już wiarygodnie sprawdzić albo tanio poprawić danego elementu.</p>
      <div class="rk-errors-grid-2">
        <article class="rk-errors-card">
          <span class="rk-errors-icon is-stop">STOP</span>
          <h3>Nie zalewaj, jeżeli:</h3>
          <ul class="rk-errors-bullets">
            <li>nie wykonano albo nie zakończono próby szczelności,</li>
            <li>występuje niewyjaśniony spadek ciśnienia lub wilgoć,</li>
            <li>rura jest załamana, spłaszczona lub głęboko uszkodzona,</li>
            <li>wykonano nieudokumentowane połączenie w polu podłogi,</li>
            <li>brakuje izolacji brzegowej albo planu dylatacji,</li>
            <li>rzeczywiste pętle znacząco różnią się od projektu,</li>
            <li>nie uzgodniono rodzaju i geometrii jastrychu.</li>
          </ul>
        </article>
        <article class="rk-errors-card">
          <span class="rk-errors-icon is-check">USTAL</span>
          <h3>Uzupełnij przed zakryciem:</h3>
          <ul class="rk-errors-bullets">
            <li>nazwy i długości wszystkich obwodów,</li>
            <li>zdjęcia tras z odniesieniem do ścian i progów,</li>
            <li>lokalizacje przejść przez dylatacje,</li>
            <li>numery partii i oznaczenia zastosowanej rury,</li>
            <li>protokół próby oraz wykaz zaakceptowanych zmian,</li>
            <li>plan ochrony instalacji podczas prac posadzkarskich.</li>
          </ul>
        </article>
      </div>
      <p class="rk-errors-copy">Jeżeli montujesz instalację samodzielnie, szczególnie ważne są decyzje, których nie da się poprawić po wylewce. Zobacz również <a href="https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/">pięć błędów samodzielnego montażu, których nie naprawisz po wylewce</a>.</p>
    </section>

    <section class="rk-errors-section rk-errors-section-soft" id="rk-errors-documents">
      <span class="rk-errors-eyebrow">Dokumentacja zostaje po zakończeniu budowy</span>
      <h2 class="rk-errors-section-title">Jakie dokumenty zachować po montażu podłogówki?</h2>
      <p class="rk-errors-lead">Komplet materiałów skraca późniejszą diagnostykę i ogranicza ryzyko przewiercenia rur. Dokumentacja powinna opisywać stan faktyczny, a nie wyłącznie pierwotny plan.</p>
      <div class="rk-errors-grid-3">
        <article class="rk-errors-card"><span class="rk-errors-card-number">PROJEKT</span><h3>Dane obliczeniowe</h3><ul class="rk-errors-bullets"><li>obciążenie pomieszczeń,</li><li>powierzchnie czynne i rozstawy,</li><li>długości oraz przepływy,</li><li>nastawy i parametry wody,</li><li>przyjęte okładziny.</li></ul></article>
        <article class="rk-errors-card"><span class="rk-errors-card-number">WYKONANIE</span><h3>Stan powykonawczy</h3><ul class="rk-errors-bullets"><li>zdjęcia wszystkich pomieszczeń,</li><li>rzeczywiste długości pętli,</li><li>oznaczenia rozdzielacza,</li><li>przejścia przez dylatacje,</li><li>opis zaakceptowanych zmian.</li></ul></article>
        <article class="rk-errors-card"><span class="rk-errors-card-number">ODBIÓR</span><h3>Protokoły</h3><ul class="rk-errors-bullets"><li>próba szczelności,</li><li>wygrzewanie jastrychu,</li><li>pomiar wilgotności,</li><li>uruchomienie i regulacja,</li><li>instrukcje zastosowanych systemów.</li></ul></article>
      </div>
      <div class="rk-errors-note rk-errors-note-good"><p><strong>Zdjęcia wykonuj z szerokiego planu i zbliżenia.</strong> Na jednym ujęciu pokaż całe pomieszczenie, na drugim szczegół, a w kadrze umieść miarę lub stały element pozwalający później odtworzyć położenie rury.</p></div>
    </section>

    <section class="rk-errors-section rk-errors-final" id="rk-errors-final">
      <span class="rk-errors-eyebrow">Najtańszy moment na korektę</span>
      <h2 class="rk-errors-section-title">Zamknij decyzje techniczne przed rozpoczęciem montażu</h2>
      <p class="rk-errors-lead">Poprawna instalacja nie powstaje z jednej reguły o rozstawie. Obciążenie pomieszczeń, powierzchnia czynna, rura, pętle, przepływy, rozdzielacz, źródło ciepła i konstrukcja podłogi muszą tworzyć jeden układ.</p>
      <div class="rk-errors-cta">
        <div class="rk-errors-cta-title">Projekt daje wykonawcy liczby, które można później sprawdzić na budowie</div>
        <p>Otrzymujesz rozmieszczenie pętli, rozstawy, długości, przepływy, nastawy i parametry pracy. Dzięki temu odbiór przed wylewką polega na porównaniu wykonania z dokumentacją, a nie na ocenie, czy rury wyglądają równo.</p>
        <a class="rk-errors-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
        <small class="rk-errors-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </div>
    </section>

    <section class="rk-errors-section" id="rk-errors-sources">
      <span class="rk-errors-eyebrow">Podstawa techniczna</span>
      <h2 class="rk-errors-section-title">Źródła oficjalne i zakres poradnika</h2>
      <p class="rk-errors-lead">Źródła prowadzą wyłącznie do oficjalnych kart norm i dokumentów urzędowych. Szczegółowe wymagania wykonawcze należy zawsze połączyć z projektem oraz dokumentacją dokładnie zastosowanego systemu.</p>
      <div class="rk-errors-source-grid">
        <article class="rk-errors-source-card"><a href="https://www.iso.org/standard/74682.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-1:2021 — definicje i kryteria komfortu</a><p>Oficjalna karta części ogólnej serii dotyczącej wbudowanych wodnych systemów ogrzewania i chłodzenia płaszczyznowego.</p></article>
        <article class="rk-errors-source-card"><a href="https://www.iso.org/standard/74683.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-2:2021 — wyznaczanie wydajności</a><p>Oficjalna karta normy opisującej metody określania wydajności ogrzewania i chłodzenia powierzchniowego.</p></article>
        <article class="rk-errors-source-card"><a href="https://www.iso.org/standard/74684.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-3:2021 — projektowanie i wymiarowanie</a><p>Oficjalna karta części dotyczącej metody projektowania i wymiarowania systemów płaszczyznowych.</p></article>
        <article class="rk-errors-source-card"><a href="https://www.iso.org/standard/74685.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-5:2021 — wymagania instalacyjne</a><p>Oficjalna karta części normy dotyczącej montażu wbudowanych wodnych systemów ogrzewania i chłodzenia.</p></article>
        <article class="rk-errors-source-card"><a href="https://knowledge.bsigroup.com/products/water-based-surface-embedded-heating-and-cooling-systems-installation-1" target="_blank" rel="nofollow noopener noreferrer">BS EN 1264-4:2021 — instalowanie systemów</a><p>Oficjalna karta BSI części normy obejmującej konstrukcję, wykonanie oraz procedurę kontroli szczelności systemów wbudowanych.</p></article>
        <article class="rk-errors-source-card"><a href="https://isap.sejm.gov.pl/isap.nsf/download.xsp/WDU20220001225/O/D20221225.pdf" target="_blank" rel="nofollow noopener noreferrer">Warunki Techniczne — tekst jednolity</a><p>Oficjalny dokument Dziennika Ustaw obejmujący między innymi wymagania izolacyjności cieplnej przegród budowlanych.</p></article>
      </div>
      <div class="rk-errors-responsibility"><p><strong>Zakres odpowiedzialności:</strong> poradnik i analizator pomagają uporządkować kontrolę, ale nie są projektem, ekspertyzą jastrychu, instrukcją konkretnego systemu, protokołem próby ani formalnym odbiorem. Ostateczne wymagania wynikają z projektu, aktualnych dokumentów zastosowanych wyrobów, technologii posadzki i rzeczywistych warunków budynku.</p></div>
    </section>

    <section class="rk-errors-section rk-errors-section-soft" id="rk-errors-faq">
      <span class="rk-errors-eyebrow">Pytania inwestorów i wykonawców</span>
      <h2 class="rk-errors-section-title">FAQ — błędy przy montażu ogrzewania podłogowego</h2>
      <div class="rk-errors-faq">
        <details><summary>Czy można zalać podłogówkę bez wykonania próby szczelności?</summary><div class="rk-errors-faq-answer"><p>Nie jest to odpowiedzialne postępowanie. Przed zakryciem trzeba wykonać właściwą dla systemu próbę, wyjaśnić każdą nieprawidłowość i zachować protokół. Po wykonaniu jastrychu dostęp do większości trasy zostaje utracony.</p></div></details>
        <details><summary>Czy wszystkie pętle powinny mieć identyczną długość?</summary><div class="rk-errors-faq-answer"><p>Nie. Powinny mieć długości i opory umożliwiające regulację wymaganych przepływów. Bardzo duże różnice mogą utrudniać równoważenie, ale sztuczne wydłużanie krótkiej pętli również nie jest celem projektu.</p></div></details>
        <details><summary>Czy 100 metrów jest normowym limitem jednej pętli?</summary><div class="rk-errors-faq-answer"><p>Nie jest to jeden uniwersalny limit normowy dla każdej rury i każdego przepływu. Około 100 m bywa roboczą granicą dla typowych pętli 16 × 2 mm, ale poprawność trzeba potwierdzić obliczeniem oporów i możliwości regulacji.</p></div></details>
        <details><summary>Czy wolno łączyć rurę ogrzewania podłogowego pod wylewką?</summary><div class="rk-errors-faq-answer"><p>Pętle planuje się z jednego odcinka. Jeżeli uszkodzenie wymaga naprawy, musi ona wynikać z dokumentacji systemu, zostać sprawdzona ponowną próbą, sfotografowana i dokładnie naniesiona na dokumentację powykonawczą.</p></div></details>
        <details><summary>Czy podczas wykonywania jastrychu instalacja powinna być pod ciśnieniem?</summary><div class="rk-errors-faq-answer"><p>Stan instalacji podczas wylewania trzeba ustalić według projektu, właściwej procedury i dokumentacji systemu. Nie należy samodzielnie przyjmować jednej wartości ciśnienia dla wszystkich rozwiązań.</p></div></details>
        <details><summary>Jak zabezpieczyć rurę przechodzącą przez dylatację?</summary><div class="rk-errors-faq-answer"><p>Przejścia ogranicza się do koniecznego minimum i wykonuje w osłonie pozwalającej przejąć ruch rozdzielonych pól. Długość oraz rodzaj zabezpieczenia powinny odpowiadać przyjętej technologii.</p></div></details>
        <details><summary>Czy brak zdjęć przed wylewką jest poważnym problemem?</summary><div class="rk-errors-faq-answer"><p>Nie przesądza o wadzie instalacji, ale znacznie utrudnia późniejsze wiercenie, diagnostykę i ocenę zgodności z projektem. Zdjęcia są najtańszym sposobem zachowania rzeczywistego przebiegu rur.</p></div></details>
        <details><summary>Co zrobić, gdy wykonawca zmienił rozstaw rur?</summary><div class="rk-errors-faq-answer"><p>Przed wylewką trzeba porównać zmianę z obciążeniem pomieszczenia, powierzchnią czynną, temperaturą wody i planowanym przepływem. Samo stwierdzenie, że „tak będzie lepiej”, nie jest weryfikacją techniczną.</p></div></details>
        <details><summary>Czy można uruchomić ogrzewanie zaraz po wykonaniu wylewki?</summary><div class="rk-errors-faq-answer"><p>Nie należy przyspieszać dojrzewania przez dowolne podniesienie temperatury. Termin i przebieg pierwszego wygrzewania zależą od rodzaju jastrychu oraz przyjętej technologii i powinny być podane przez jego wykonawcę.</p></div></details>
        <details><summary>Po co wykonuje się wygrzewanie jastrychu?</summary><div class="rk-errors-faq-answer"><p>Jest to kontrolowany proces przygotowania jastrychu i weryfikacji jego zachowania przed montażem warstw wykończeniowych. Nie zastępuje wcześniejszej próby szczelności ani późniejszego pomiaru wilgotności.</p></div></details>
        <details><summary>Jak rozpoznać pomylone zasilanie i powrót pętli?</summary><div class="rk-errors-faq-answer"><p>Pomagają trwałe oznaczenia, dokumentacja zdjęciowa oraz pomiar temperatur podczas stabilnej pracy. Nie należy opierać się wyłącznie na przypadkowym dotknięciu rur chwilę po uruchomieniu.</p></div></details>
        <details><summary>Dlaczego jedna pętla podłogówki nie grzeje?</summary><div class="rk-errors-faq-answer"><p>Przyczyną może być zamknięty zawór, siłownik, powietrze, zabrudzenie, brak przepływu, błędne oznaczenie, zbyt duży opór lub problem projektowy. Diagnostykę zaczyna się od rozdzielacza, przepływu i temperatur.</p></div></details>
        <details><summary>Czy wszystkie rotametry ustawia się na taki sam przepływ?</summary><div class="rk-errors-faq-answer"><p>Nie. Projektowy przepływ zależy od mocy przekazywanej przez konkretną pętlę i przyjętej różnicy temperatur. Jednakowa nastawa dla wszystkich obwodów może prowadzić do przegrzewania jednych i niedogrzewania innych pomieszczeń.</p></div></details>
        <details><summary>Czy pod każdą zabudową trzeba wyłączyć ogrzewanie podłogowe?</summary><div class="rk-errors-faq-answer"><p>Nie każda zabudowa ma taki sam wpływ. Szczególnie analizuje się elementy stałe na pełnym cokole, urządzenia wymagające chłodzenia, kominek oraz zabudowane wanny. Decyzję uwzględnia się w powierzchni czynnej projektu.</p></div></details>
        <details><summary>Kto powinien podpisać protokół próby?</summary><div class="rk-errors-faq-answer"><p>Protokół powinien jednoznacznie wskazywać osoby wykonujące i odbierające próbę zgodnie z organizacją konkretnej inwestycji. Najważniejsze jest zapisanie warunków, wyników, uwag i odpowiedzialności, a nie sam podpis bez danych.</p></div></details>
        <details><summary>Jakie dokumenty zachować po montażu?</summary><div class="rk-errors-faq-answer"><p>Zachowaj projekt, rzut powykonawczy, rzeczywiste długości i oznaczenia pętli, zdjęcia, protokół próby, dane rur, zaakceptowane zmiany, procedurę wygrzewania, wynik pomiaru wilgotności oraz końcowe nastawy.</p></div></details>
      </div>
    </section>

    <section class="rk-errors-author" id="rk-errors-author">
      <span class="rk-errors-eyebrow">Opracowanie eksperckie</span>
      <h2 class="rk-errors-author-title">Autor i weryfikacja merytoryczna</h2>
      <div class="rk-errors-author-layout">
        <aside class="rk-errors-author-side">
          <div class="rk-errors-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji sanitarnych" width="400" height="400" loading="lazy" decoding="async"></div>
          <div class="rk-errors-author-name">Robert Kucharski</div>
          <p class="rk-errors-author-role">Projektant instalacji sanitarnych<br>specjalista HVAC i ogrzewania podłogowego</p>
          <div class="rk-errors-author-social" aria-label="Profile autora">
            <a href="https://www.linkedin.com/in/robert-kucharski-b8b906199/" target="_blank" rel="nofollow noopener noreferrer me" aria-label="LinkedIn Roberta Kucharskiego">in</a>
            <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Facebook Projekt Ogrzewania">f</a>
            <a href="https://x.com/Projekt_HVAC" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Profil Projekt HVAC w serwisie X">X</a>
          </div>
        </aside>
        <div class="rk-errors-author-main">
          <div class="rk-errors-author-quote">„Moim zdaniem najdroższy błąd wykonawczy to ten, który inwestor zauważa dopiero po wylewce. Przed zalaniem rury można przełożyć, opisać i sprawdzić. Po ułożeniu podłogi ta sama korekta staje się diagnostyką i ingerencją w gotowy budynek.”</div>
          <p>Robert Kucharski opracowuje projekty ogrzewania podłogowego, obliczenia cieplne i hydrauliczne oraz materiały wykonawcze dla inwestorów i instalatorów. W praktyce projektowej łączy obciążenie cieplne pomieszczeń z powierzchnią czynną, rozstawem, długościami pętli, przepływami i pracą źródła ciepła.</p>
          <p>Poradnik został zweryfikowany pod kątem rozdzielenia błędów projektowych, wykonawczych i uruchomieniowych. Zalecenia nie przypisują jednej grubości izolacji, rozstawu, długości pętli, ciśnienia próby ani grubości jastrychu do wszystkich systemów — parametry wymagają dokumentacji konkretnego rozwiązania i rzeczywistych warunków budynku.</p>
          <p>Publikuje również w portalach <a href="https://remont.biz.pl/" target="_blank" rel="nofollow noopener noreferrer">Remont.biz.pl</a> i <a href="https://sobir.pl/" target="_blank" rel="nofollow noopener noreferrer">Sobir.pl</a>. <a href="https://projekt-ogrzewania.pl/author/admin3399/">Zobacz pozostałe artykuły Roberta Kucharskiego w serwisie Projekt-Ogrzewania.pl</a>.</p>
          <div class="rk-errors-author-facts">
            <div class="rk-errors-author-fact"><strong>Zakres</strong>ogrzewanie podłogowe, OZC, hydraulika i odbiór instalacji</div>
            <div class="rk-errors-author-fact"><strong>Metoda pracy</strong>projekt, kontrola wykonania i jawne założenia techniczne</div>
            <div class="rk-errors-author-fact"><strong>Aktualizacja</strong>stan techniczny materiału sprawdzony 17 września 2026 r.</div>
          </div>
        </div>
      </div>
    </section>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "inLanguage": "pl-PL"
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt-Ogrzewania.pl",
      "url": "https://projekt-ogrzewania.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" }
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" }
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "knowsAbout": [
        "ogrzewanie podłogowe",
        "błędy montażowe ogrzewania podłogowego",
        "obliczenia strat ciepła",
        "hydraulika pętli grzewczych",
        "próba szczelności instalacji",
        "równoważenie hydrauliczne"
      ],
      "worksFor": [
        { "@id": "https://projekt-ogrzewania.pl/#organization" },
        { "@id": "https://remont.biz.pl/#organization" },
        { "@id": "https://sobir.pl/#organization" }
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-b8b906199/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#primaryimage",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/03/Najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac.webp",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/03/Najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac.webp",
      "width": 945,
      "height": 945,
      "caption": "Najczęstsze błędy przy montażu ogrzewania podłogowego"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Strona główna",
          "item": "https://projekt-ogrzewania.pl/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Poradniki",
          "item": "https://projekt-ogrzewania.pl/blog/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Najczęstsze błędy przy montażu ogrzewania podłogowego",
          "item": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#webpage",
      "url": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/",
      "name": "Najczęstsze błędy przy montażu ogrzewania podłogowego – kontrola przed wylewką",
      "description": "Najczęstsze błędy przy montażu podłogówki oraz interaktywna kontrola projektu, izolacji, rur, pętli, dylatacji, rozdzielacza i próby szczelności.",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
      "breadcrumb": { "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#breadcrumb" },
      "primaryImageOfPage": { "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#primaryimage" },
      "datePublished": "2025-03-04T12:55:06+00:00",
      "dateModified": "2026-09-17T12:00:00+02:00",
      "inLanguage": "pl-PL",
      "mainEntity": { "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#article" }
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#article",
      "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#webpage" },
      "headline": "Najczęstsze błędy przy montażu ogrzewania podłogowego – kontrola przed wylewką",
      "description": "Techniczny poradnik o błędach projektowych, wykonawczych i uruchomieniowych w wodnym ogrzewaniu podłogowym z analizatorem przed jastrychem.",
      "image": { "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#primaryimage" },
      "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "datePublished": "2025-03-04T12:55:06+00:00",
      "dateModified": "2026-09-17T12:00:00+02:00",
      "inLanguage": "pl-PL",
      "about": [
        "błędy przy montażu ogrzewania podłogowego",
        "kontrola przed wylewką",
        "próba szczelności podłogówki",
        "dylatacje ogrzewania podłogowego",
        "pętle i rozdzielacz",
        "wygrzewanie jastrychu"
      ],
      "keywords": "błędy przy montażu ogrzewania podłogowego, błędy podłogówki, kontrola przed wylewką, próba szczelności, dylatacje, zbyt długa pętla, rozdzielacz",
      "isAccessibleForFree": true,
      "hasPart": [
        { "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#analyzer" },
        { "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#howto" },
        { "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#error-list" },
        { "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#faq-schema" }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#analyzer",
      "name": "Analizator gotowości ogrzewania podłogowego przed wylewką",
      "url": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#rk-errors-analyzer-section",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Dowolny system z nowoczesną przeglądarką internetową",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "description": "Interaktywna lista kontrolna projektu, podłoża, izolacji, rur, pętli, dylatacji, rozdzielacza, próby szczelności i dokumentacji przed wykonaniem jastrychu."
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#howto",
      "name": "Jak skontrolować ogrzewanie podłogowe przed wylewką",
      "description": "Sześć etapów kontroli podłogówki od projektu po plan pierwszego uruchomienia.",
      "totalTime": "PT45M",
      "step": [
        { "@type": "HowToStep", "position": 1, "name": "Porównaj wykonanie z projektem", "text": "Sprawdź obciążenia pomieszczeń, powierzchnie czynne, rozstawy, długości pętli, przepływy i zaakceptowane zmiany." },
        { "@type": "HowToStep", "position": 2, "name": "Skontroluj podłoże i izolację", "text": "Potwierdź równość, stabilność, ciągłość izolacji, taśmę brzegową oraz plan pól dylatacyjnych." },
        { "@type": "HowToStep", "position": 3, "name": "Obejrzyj rury i pętle", "text": "Zweryfikuj wyrób, mocowania, promienie gięcia, brak uszkodzeń i połączeń oraz rzeczywiste długości." },
        { "@type": "HowToStep", "position": 4, "name": "Sprawdź rozdzielacz", "text": "Oceń dostęp, oznaczenia obwodów, podłączenia, zakres regulacji i zgodność z projektowymi przepływami." },
        { "@type": "HowToStep", "position": 5, "name": "Wykonaj i udokumentuj próbę", "text": "Przeprowadź właściwą próbę szczelności, wyjaśnij każdy problem oraz zachowaj protokół i zdjęcia." },
        { "@type": "HowToStep", "position": 6, "name": "Uzgodnij jastrych i uruchomienie", "text": "Potwierdź technologię jastrychu, ochronę rur, pielęgnację, wygrzewanie, pomiar wilgotności i regulację." }
      ]
    },
    {
      "@type": "ItemList",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#error-list",
      "name": "Najczęstsze krytyczne błędy montażowe ogrzewania podłogowego",
      "numberOfItems": 10,
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Montaż bez obliczeń i projektu" },
        { "@type": "ListItem", "position": 2, "name": "Nierówne podłoże i nieciągła izolacja" },
        { "@type": "ListItem", "position": 3, "name": "Przypadkowy rozstaw rur" },
        { "@type": "ListItem", "position": 4, "name": "Uszkodzenie lub załamanie rury" },
        { "@type": "ListItem", "position": 5, "name": "Zbyt długie pętle" },
        { "@type": "ListItem", "position": 6, "name": "Brak izolacji brzegowej i dylatacji" },
        { "@type": "ListItem", "position": 7, "name": "Błędne podłączenie i opis rozdzielacza" },
        { "@type": "ListItem", "position": 8, "name": "Brak udokumentowanej próby szczelności" },
        { "@type": "ListItem", "position": 9, "name": "Nieuzgodniona technologia jastrychu" },
        { "@type": "ListItem", "position": 10, "name": "Zbyt wczesne uruchomienie i brak regulacji" }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#faq-schema",
      "mainEntity": [
        { "@type": "Question", "name": "Czy można zalać podłogówkę bez wykonania próby szczelności?", "acceptedAnswer": { "@type": "Answer", "text": "Nie jest to odpowiedzialne postępowanie. Przed zakryciem trzeba wykonać właściwą dla systemu próbę, wyjaśnić każdą nieprawidłowość i zachować protokół." } },
        { "@type": "Question", "name": "Czy wszystkie pętle powinny mieć identyczną długość?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Powinny mieć długości i opory umożliwiające regulację wymaganych przepływów. Bardzo duże różnice mogą utrudniać równoważenie, ale sztuczne wydłużanie krótkiej pętli nie jest celem projektu." } },
        { "@type": "Question", "name": "Czy 100 metrów jest normowym limitem jednej pętli?", "acceptedAnswer": { "@type": "Answer", "text": "Nie jest to jeden uniwersalny limit normowy. Około 100 m bywa roboczą granicą dla typowych pętli 16 × 2 mm, lecz poprawność trzeba potwierdzić obliczeniem oporów i regulacji." } },
        { "@type": "Question", "name": "Czy wolno łączyć rurę ogrzewania podłogowego pod wylewką?", "acceptedAnswer": { "@type": "Answer", "text": "Pętle planuje się z jednego odcinka. Jeżeli uszkodzenie wymaga naprawy, musi ona wynikać z dokumentacji systemu, zostać sprawdzona, sfotografowana i dokładnie naniesiona na dokumentację." } },
        { "@type": "Question", "name": "Czy podczas wykonywania jastrychu instalacja powinna być pod ciśnieniem?", "acceptedAnswer": { "@type": "Answer", "text": "Stan instalacji podczas wylewania trzeba ustalić według projektu, właściwej procedury i dokumentacji systemu. Nie należy samodzielnie przyjmować jednej wartości dla wszystkich rozwiązań." } },
        { "@type": "Question", "name": "Jak zabezpieczyć rurę przechodzącą przez dylatację?", "acceptedAnswer": { "@type": "Answer", "text": "Przejścia ogranicza się do koniecznego minimum i wykonuje w osłonie pozwalającej przejąć ruch rozdzielonych pól. Rodzaj zabezpieczenia powinien odpowiadać przyjętej technologii." } },
        { "@type": "Question", "name": "Czy brak zdjęć przed wylewką jest poważnym problemem?", "acceptedAnswer": { "@type": "Answer", "text": "Nie przesądza o wadzie instalacji, lecz znacznie utrudnia późniejsze wiercenie, diagnostykę i ocenę zgodności. Zdjęcia są najprostszym sposobem zachowania przebiegu rur." } },
        { "@type": "Question", "name": "Co zrobić, gdy wykonawca zmienił rozstaw rur?", "acceptedAnswer": { "@type": "Answer", "text": "Przed wylewką trzeba porównać zmianę z obciążeniem pomieszczenia, powierzchnią czynną, temperaturą wody i planowanym przepływem. Zmiana powinna zostać zweryfikowana technicznie." } },
        { "@type": "Question", "name": "Czy można uruchomić ogrzewanie zaraz po wykonaniu wylewki?", "acceptedAnswer": { "@type": "Answer", "text": "Nie należy przyspieszać dojrzewania przez dowolne podniesienie temperatury. Termin i przebieg pierwszego wygrzewania zależą od jastrychu oraz przyjętej technologii." } },
        { "@type": "Question", "name": "Po co wykonuje się wygrzewanie jastrychu?", "acceptedAnswer": { "@type": "Answer", "text": "Jest to kontrolowany proces przygotowania jastrychu i weryfikacji jego zachowania przed montażem warstw wykończeniowych. Nie zastępuje próby szczelności ani pomiaru wilgotności." } },
        { "@type": "Question", "name": "Jak rozpoznać pomylone zasilanie i powrót pętli?", "acceptedAnswer": { "@type": "Answer", "text": "Pomagają trwałe oznaczenia, dokumentacja zdjęciowa oraz pomiar temperatur podczas stabilnej pracy. Nie należy opierać się wyłącznie na dotknięciu rur chwilę po uruchomieniu." } },
        { "@type": "Question", "name": "Dlaczego jedna pętla podłogówki nie grzeje?", "acceptedAnswer": { "@type": "Answer", "text": "Przyczyną może być zawór, siłownik, powietrze, zabrudzenie, brak przepływu, błędne oznaczenie, zbyt duży opór lub problem projektowy. Diagnostykę zaczyna się od rozdzielacza." } },
        { "@type": "Question", "name": "Czy wszystkie rotametry ustawia się na taki sam przepływ?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Projektowy przepływ zależy od mocy przekazywanej przez konkretną pętlę i przyjętej różnicy temperatur. Jednakowa nastawa może prowadzić do błędnego rozdziału ciepła." } },
        { "@type": "Question", "name": "Czy pod każdą zabudową trzeba wyłączyć ogrzewanie podłogowe?", "acceptedAnswer": { "@type": "Answer", "text": "Nie każda zabudowa ma taki sam wpływ. Analizuje się elementy stałe na pełnym cokole, urządzenia, kominek oraz zabudowane sanitariaty i uwzględnia je w powierzchni czynnej." } },
        { "@type": "Question", "name": "Kto powinien podpisać protokół próby?", "acceptedAnswer": { "@type": "Answer", "text": "Protokół powinien wskazywać osoby wykonujące i odbierające próbę zgodnie z organizacją inwestycji. Należy zapisać warunki, wyniki, uwagi, datę i odpowiedzialność." } },
        { "@type": "Question", "name": "Jakie dokumenty zachować po montażu?", "acceptedAnswer": { "@type": "Answer", "text": "Należy zachować projekt, rzut powykonawczy, długości i oznaczenia pętli, zdjęcia, protokół próby, dane rur, zaakceptowane zmiany, procedurę wygrzewania, pomiar wilgotności i końcowe nastawy." } }
      ]
    },
    {
      "@type": "Service",
      "@id": "https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/#service",
      "name": "Indywidualny projekt instalacji ogrzewania podłogowego",
      "url": "https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/",
      "provider": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "areaServed": { "@type": "Country", "name": "Polska" },
      "serviceType": "Projekt ogrzewania podłogowego",
      "description": "Projekt obejmujący obliczenia cieplne i hydrauliczne, rozmieszczenie pętli, rozstawy, długości, przepływy i nastawy rozdzielacza."
    }
  ]
}
</script>

<script>
(function () {
  "use strict";

  var guide = document.getElementById("rk-errors-guide");
  if (!guide) {
    return;
  }
  if (guide.getAttribute("data-rk-ready") === "1") {
    return;
  }
  guide.setAttribute("data-rk-ready", "1");

  var stages = {
    project: {
      label: "Etap 1 · projekt i zamówienie",
      title: "Zamówienie materiału bez policzonych pętli",
      summary: "Metraż rury wyliczony wyłącznie z powierzchni domu nie określa liczby obwodów, dobiegów, rzeczywistych rozstawów ani hydrauliki.",
      error: "Rura, rozdzielacz i liczba obwodów są kupowane przed ustaleniem obciążenia pomieszczeń.",
      proof: "Rzut pętli, długości, rozstawy, przepływy i wskazany wymiar rury.",
      after: "Braku powierzchni grzejnej lub złego podziału pętli nie da się skorygować samą regulacją."
    },
    base: {
      label: "Etap 2 · podłoże i warstwy",
      title: "Rury na niestabilnej albo nieciągłej izolacji",
      summary: "Płyty mogą wyglądać równo z góry, a jednocześnie kołysać się, opierać punktowo na instalacjach lub pozostawiać szczeliny pod jastrychem.",
      error: "Nierówne podłoże i przypadkowy układ płyt przenoszą obciążenia w sposób niezgodny z założeniami.",
      proof: "Odbiór równości i stabilności, parametry izolacji, ciągła taśma brzegowa oraz plan dylatacji.",
      after: "Ugięcia i pęknięcia mogą ujawnić się dopiero pod obciążeniem gotowej posadzki."
    },
    loops: {
      label: "Etap 3 · rury i obwody",
      title: "Estetyczny układ, którego nie da się wyregulować",
      summary: "Równe odstępy nie potwierdzają długości, oporów, wymaganych przepływów ani zgodności z rzeczywistą powierzchnią czynną.",
      error: "Wykonawca zmienia rozstaw, liczbę pętli lub trasę bez sprawdzenia wpływu na moc i hydraulikę.",
      proof: "Pomiar długości, porównanie z rzutem, kontrola uszkodzeń, mocowań, łuków i powierzchni wyłączonych.",
      after: "Zbyt długiej pętli, złego rozstawu ani uszkodzenia nie naprawi późniejsza nastawa rotametru."
    },
    screed: {
      label: "Etap 4 · odbiór przed jastrychem",
      title: "Zakrycie instalacji bez wiarygodnego punktu odniesienia",
      summary: "Samo zdjęcie manometru nie zastępuje próby, protokołu, oględzin połączeń i kompletnej dokumentacji tras.",
      error: "Brakuje zakończonej próby, podpisanego protokołu, opisów obwodów albo zdjęć powykonawczych.",
      proof: "Wyniki próby, protokół, zdjęcia z miarą, oznaczenia pętli oraz uzgodniona technologia jastrychu.",
      after: "Po zalaniu nie można już bezinwazyjnie potwierdzić rzeczywistego przebiegu i stanu całej rury."
    },
    startup: {
      label: "Etap 5 · jastrych i uruchomienie",
      title: "Przyspieszanie dojrzewania przypadkową temperaturą",
      summary: "Próba szczelności, wygrzewanie, pomiar wilgotności i regulacja są czterema różnymi czynnościami.",
      error: "Ogrzewanie zostaje uruchomione bez procedury, a przepływy ustawia się jednakowo albo wyłącznie według odczucia.",
      proof: "Instrukcja pielęgnacji, dziennik wygrzewania, pomiar wilgotności oraz końcowe nastawy pętli.",
      after: "Spękania, odspojenia okładziny i nierównomierne ogrzewanie mogą zostać błędnie przypisane samej podłogówce."
    }
  };

  var stageButtons = guide.querySelectorAll("[data-rk-stage]");
  var stageLabel = document.getElementById("rk-errors-stage-label");
  var stageTitle = document.getElementById("rk-errors-stage-title");
  var stageSummary = document.getElementById("rk-errors-stage-summary");
  var stageError = document.getElementById("rk-errors-stage-error");
  var stageProof = document.getElementById("rk-errors-stage-proof");
  var stageAfter = document.getElementById("rk-errors-stage-after");

  function showStage(key) {
    var data = stages[key];
    if (!data) {
      return;
    }
    stageLabel.textContent = data.label;
    stageTitle.textContent = data.title;
    stageSummary.textContent = data.summary;
    stageError.textContent = data.error;
    stageProof.textContent = data.proof;
    stageAfter.textContent = data.after;
    stageButtons.forEach(function (button) {
      var selected = button.getAttribute("data-rk-stage") === key;
      button.setAttribute("aria-selected", selected ? "true" : "false");
    });
  }

  stageButtons.forEach(function (button) {
    button.addEventListener("click", function () {
      showStage(button.getAttribute("data-rk-stage"));
    });
  });

  function renderList(elementId, items, emptyText) {
    var list = document.getElementById(elementId);
    list.textContent = "";
    if (items.length === 0) {
      var emptyItem = document.createElement("li");
      emptyItem.textContent = emptyText;
      list.appendChild(emptyItem);
      return;
    }
    items.forEach(function (itemText) {
      var item = document.createElement("li");
      item.textContent = itemText;
      list.appendChild(item);
    });
  }

  function analyzeInstallation() {
    var fields = guide.querySelectorAll(".rk-errors-audit-field");
    var ok = [];
    var check = [];
    var stop = [];

    fields.forEach(function (field) {
      var value = field.value;
      var severity = field.getAttribute("data-severity") || "warning";
      var label = field.getAttribute("data-label") || "Element kontroli";
      var action = field.getAttribute("data-action") || "Wyjaśnij ten punkt przed kolejnym etapem.";

      if (value === "yes") {
        ok.push(label + " — potwierdzone.");
        return;
      }
      if (value === "na") {
        ok.push(label + " — nie dotyczy tej realizacji.");
        return;
      }
      if (severity === "critical") {
        if (value === "no") {
          stop.push(action);
          return;
        }
        stop.push("Brak potwierdzenia: " + label.toLowerCase() + ". " + action);
        return;
      }
      check.push(action);
    });

    var result = document.getElementById("rk-errors-result");
    var status = document.getElementById("rk-errors-result-status");
    var intro = document.getElementById("rk-errors-result-intro");
    result.classList.remove("is-good");
    result.classList.remove("is-stop");

    if (stop.length > 0) {
      result.classList.add("is-stop");
      status.textContent = "STOP — nie zakrywaj instalacji przed wyjaśnieniem warunków krytycznych";
      intro.textContent = "Co najmniej jeden brak lub wynik wskazuje punkt, którego po wykonaniu jastrychu nie da się łatwo sprawdzić albo poprawić.";
    } else {
      if (check.length > 0) {
        status.textContent = "Wymagana weryfikacja przed zamknięciem odbioru";
        intro.textContent = "Nie wykryto warunku krytycznego, ale dokumentacja albo plan uruchomienia nie są jeszcze kompletne.";
      } else {
        result.classList.add("is-good");
        status.textContent = "Dane wstępnie kompletne — wykonaj formalny odbiór";
        intro.textContent = "Lista nie wykazała braków. Porównaj odpowiedzi z dokumentami i podpisz właściwe protokoły przed wykonaniem kolejnej warstwy.";
      }
    }

    document.getElementById("rk-errors-ok-count").textContent = String(ok.length);
    document.getElementById("rk-errors-check-count").textContent = String(check.length);
    document.getElementById("rk-errors-stop-count").textContent = String(stop.length);
    renderList("rk-errors-ok-list", ok, "Brak potwierdzonych elementów.");
    renderList("rk-errors-check-list", check, "Brak dodatkowych punktów do sprawdzenia.");
    renderList("rk-errors-stop-list", stop, "Nie wskazano warunku krytycznego.");
  }

  function resetAnalyzer() {
    var fields = guide.querySelectorAll(".rk-errors-audit-field");
    fields.forEach(function (field) {
      field.selectedIndex = 0;
    });
    var result = document.getElementById("rk-errors-result");
    result.classList.remove("is-good");
    result.classList.remove("is-stop");
    document.getElementById("rk-errors-result-status").textContent = "Uzupełnij listę na podstawie rzeczywistego wykonania";
    document.getElementById("rk-errors-result-intro").textContent = "Wynik rozdzieli punkty potwierdzone, wymagające wyjaśnienia i blokujące zakrycie instalacji.";
    document.getElementById("rk-errors-ok-count").textContent = "0";
    document.getElementById("rk-errors-check-count").textContent = String(fields.length);
    document.getElementById("rk-errors-stop-count").textContent = "0";
    renderList("rk-errors-ok-list", [], "Jeszcze brak ocenionych danych.");
    renderList("rk-errors-check-list", [], "Uzupełnij odpowiedzi na podstawie projektu, pomiarów i protokołów.");
    renderList("rk-errors-stop-list", [], "Brak oceny nie oznacza, że instalację można zakryć.");
  }

  var runButton = document.getElementById("rk-errors-run");
  var resetButton = document.getElementById("rk-errors-reset");
  if (runButton) {
    runButton.addEventListener("click", analyzeInstallation);
  }
  if (resetButton) {
    resetButton.addEventListener("click", resetAnalyzer);
  }

  showStage("project");
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">Najczęstsze błędy przy montażu ogrzewania podłogowego – kontrola przed wylewką.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>EN ISO 15875:2025 – wymagania dla rur PE-X w ogrzewaniu podłogowym.</title>
		<link>https://projekt-ogrzewania.pl/norma-en-iso-15875/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Thu, 27 Feb 2025 18:39:53 +0000</pubDate>
				<category><![CDATA[Bezpieczeństwo instalacji]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Normy grzewcze]]></category>
		<category><![CDATA[Normy i certyfikaty]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[bezpieczeństwo instalacji]]></category>
		<category><![CDATA[certyfikaty jakości]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[norma en iso 15875]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[porady budowlane]]></category>
		<category><![CDATA[projektowanie ogrzewania]]></category>
		<category><![CDATA[rury grzewcze]]></category>
		<category><![CDATA[tworzywa sztuczne]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2301</guid>

					<description><![CDATA[<p>Planujesz montaż ogrzewania podłogowego? Dowiedz się, dlaczego norma EN ISO 15875 jest kluczowa dla bezpieczeństwa i trwałości Twojej instalacji. W artykule omawiamy wymagania tej normy, korzyści z jej stosowania oraz praktyczne wskazówki dotyczące projektowania systemów grzewczych. Sprawdź, jak wybrać odpowiednie rury i uniknąć błędów, które mogą wpłynąć na efektywność ogrzewania.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/norma-en-iso-15875/">EN ISO 15875:2025 – wymagania dla rur PE-X w ogrzewaniu podłogowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-iso-guide {
    --rk-navy: #0b2536;
    --rk-navy-2: #12394d;
    --rk-navy-3: #1b465b;
    --rk-cyan: #29c4d7;
    --rk-cyan-dark: #078fb3;
    --rk-cyan-soft: #def7fa;
    --rk-orange: #ff6846;
    --rk-orange-dark: #e44f31;
    --rk-yellow: #f2b526;
    --rk-green: #2fcda1;
    --rk-green-dark: #168267;
    --rk-red: #d7504a;
    --rk-ink: #10283a;
    --rk-copy: #3c5668;
    --rk-muted: #6b8191;
    --rk-line: #d3e2e8;
    --rk-bg: #f3f8fa;
    --rk-white: #ffffff;
    color: var(--rk-ink);
    font-family: Arial, Helvetica, sans-serif;
    line-height: 1.62;
    margin: 0 auto;
    max-width: 1360px;
    overflow-wrap: anywhere;
    width: 100%;
  }

  #rk-iso-guide,
  #rk-iso-guide * {
    box-sizing: border-box;
    min-width: 0;
  }

  #rk-iso-guide a {
    color: var(--rk-cyan-dark);
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }

  #rk-iso-guide a:hover,
  #rk-iso-guide a:focus-visible {
    color: var(--rk-orange-dark);
  }

  #rk-iso-guide button {
    font: inherit;
  }

  #rk-iso-guide button:focus-visible,
  #rk-iso-guide a:focus-visible,
  #rk-iso-guide summary:focus-visible {
    outline: 3px solid rgba(41, 196, 215, 0.48);
    outline-offset: 3px;
  }

  #rk-iso-guide img {
    display: block;
    height: auto;
    max-width: 100%;
  }

  #rk-iso-guide .rk-iso-shell {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    box-shadow: 0 22px 65px rgba(13, 41, 57, 0.12);
    overflow: hidden;
  }

  #rk-iso-guide .rk-iso-hero {
    background:
      radial-gradient(circle at 89% 111%, rgba(41, 196, 215, 0.24) 0, rgba(41, 196, 215, 0.24) 17%, transparent 17.2%),
      linear-gradient(120deg, #0b2536 0%, #143e52 61%, #0d6576 100%);
    color: var(--rk-white);
    overflow: hidden;
    padding: 62px 58px 56px;
    position: relative;
  }

  #rk-iso-guide .rk-iso-hero::before {
    background: var(--rk-orange);
    border-radius: 50%;
    box-shadow: 0 0 0 9px rgba(255, 104, 70, 0.14);
    content: "";
    height: 12px;
    left: 58px;
    position: absolute;
    top: 43px;
    width: 12px;
  }

  #rk-iso-guide .rk-iso-kicker {
    color: #6ce5ef;
    display: block;
    font-size: 0.77rem;
    font-weight: 900;
    letter-spacing: 0.13em;
    margin: 0 0 19px 28px;
    text-transform: uppercase;
  }

  #rk-iso-guide .rk-iso-hero-title,
  #rk-iso-guide .rk-iso-section-title,
  #rk-iso-guide .rk-iso-cta-title,
  #rk-iso-guide .rk-iso-author-title {
    font-family: Arial, Helvetica, sans-serif;
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.06;
  }

  #rk-iso-guide .rk-iso-hero-title {
    color: #ffffff;
    font-size: clamp(2.4rem, 6vw, 5.15rem);
    margin: 0;
    max-width: 1200px;
  }

  #rk-iso-guide .rk-iso-hero-title span {
    color: #69e7f2;
  }

  #rk-iso-guide .rk-iso-hero-lead {
    color: #e3f0f4;
    font-size: clamp(1.08rem, 2vw, 1.43rem);
    line-height: 1.55;
    margin: 27px 0 0;
    max-width: 1080px;
  }

  #rk-iso-guide .rk-iso-hero-tags,
  #rk-iso-guide .rk-iso-meta,
  #rk-iso-guide .rk-iso-shortcuts {
    display: flex;
    flex-wrap: wrap;
  }

  #rk-iso-guide .rk-iso-hero-tags {
    gap: 10px;
    margin-top: 30px;
  }

  #rk-iso-guide .rk-iso-hero-tags span {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 999px;
    color: #ffffff;
    font-size: 0.82rem;
    font-weight: 800;
    padding: 8px 14px;
  }

  #rk-iso-guide .rk-iso-meta {
    color: #c5d9df;
    font-size: 0.83rem;
    font-weight: 700;
    gap: 12px 24px;
    margin-top: 34px;
  }

  #rk-iso-guide .rk-iso-meta strong {
    color: #ffffff;
  }

  #rk-iso-guide .rk-iso-shortcuts {
    align-items: center;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-line);
    gap: 9px;
    padding: 22px 34px;
    position: static;
  }

  #rk-iso-guide .rk-iso-shortcuts-label {
    color: var(--rk-ink);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    margin-right: 4px;
    text-transform: uppercase;
  }

  #rk-iso-guide .rk-iso-shortcuts a {
    background: #f1f6f8;
    border: 1px solid transparent;
    border-radius: 999px;
    color: var(--rk-ink);
    font-size: 0.76rem;
    font-weight: 800;
    line-height: 1.25;
    padding: 8px 12px;
    text-decoration: none;
  }

  #rk-iso-guide .rk-iso-shortcuts a:hover,
  #rk-iso-guide .rk-iso-shortcuts a:focus-visible {
    background: var(--rk-cyan-soft);
    border-color: #91dce5;
    color: #075f78;
  }

  #rk-iso-guide .rk-iso-section {
    padding: 64px 58px;
  }

  #rk-iso-guide .rk-iso-section + .rk-iso-section {
    border-top: 1px solid var(--rk-line);
  }

  #rk-iso-guide .rk-iso-section-soft {
    background: var(--rk-bg);
  }

  #rk-iso-guide .rk-iso-section-dark {
    background: var(--rk-navy);
    color: #ffffff;
  }

  #rk-iso-guide .rk-iso-eyebrow {
    color: var(--rk-cyan-dark);
    display: block;
    font-size: 0.75rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    margin-bottom: 12px;
    text-transform: uppercase;
  }

  #rk-iso-guide .rk-iso-section-dark .rk-iso-eyebrow {
    color: #68e6ef;
  }

  #rk-iso-guide .rk-iso-section-title,
  #rk-iso-guide .rk-iso-author-title {
    color: var(--rk-ink);
    font-size: clamp(2rem, 4vw, 3.65rem);
    margin: 0;
    max-width: 1100px;
  }

  #rk-iso-guide .rk-iso-section-dark .rk-iso-section-title {
    color: #ffffff;
  }

  #rk-iso-guide .rk-iso-lead {
    color: var(--rk-copy);
    font-size: clamp(1.03rem, 1.7vw, 1.25rem);
    line-height: 1.7;
    margin: 22px 0 0;
    max-width: 1120px;
  }

  #rk-iso-guide .rk-iso-copy {
    color: var(--rk-copy);
    margin: 22px 0 0;
  }

  #rk-iso-guide .rk-iso-section-dark .rk-iso-lead,
  #rk-iso-guide .rk-iso-section-dark .rk-iso-copy {
    color: #c8dbe2;
  }

  #rk-iso-guide .rk-iso-copy strong,
  #rk-iso-guide .rk-iso-lead strong {
    color: var(--rk-ink);
  }

  #rk-iso-guide .rk-iso-section-dark .rk-iso-copy strong,
  #rk-iso-guide .rk-iso-section-dark .rk-iso-lead strong {
    color: #ffffff;
  }

  #rk-iso-guide .rk-iso-answer {
    background: linear-gradient(135deg, #e6fafd 0%, #f8fcfd 100%);
    border: 1px solid #9cdfe8;
    border-left: 7px solid var(--rk-cyan);
    border-radius: 18px;
    margin-top: 28px;
    padding: 27px 29px;
  }

  #rk-iso-guide .rk-iso-answer strong {
    color: var(--rk-ink);
    display: block;
    font-size: 1.24rem;
    line-height: 1.4;
  }

  #rk-iso-guide .rk-iso-answer p {
    color: var(--rk-copy);
    margin: 10px 0 0;
  }

  #rk-iso-guide .rk-iso-grid-2,
  #rk-iso-guide .rk-iso-grid-3,
  #rk-iso-guide .rk-iso-grid-4,
  #rk-iso-guide .rk-iso-source-grid,
  #rk-iso-guide .rk-iso-author-facts {
    display: grid;
    gap: 18px;
    margin-top: 30px;
  }

  #rk-iso-guide .rk-iso-grid-2,
  #rk-iso-guide .rk-iso-source-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-iso-guide .rk-iso-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-iso-guide .rk-iso-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #rk-iso-guide .rk-iso-card {
    background: #ffffff;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    padding: 24px;
  }

  #rk-iso-guide .rk-iso-section-soft .rk-iso-card {
    background: rgba(255, 255, 255, 0.9);
  }

  #rk-iso-guide .rk-iso-section-dark .rk-iso-card {
    background: #173e51;
    border-color: #356178;
  }

  #rk-iso-guide .rk-iso-card-number,
  #rk-iso-guide .rk-iso-icon {
    align-items: center;
    background: var(--rk-cyan-soft);
    border-radius: 10px;
    color: #076c85;
    display: inline-flex;
    font-size: 0.82rem;
    font-weight: 900;
    height: 36px;
    justify-content: center;
    margin-bottom: 14px;
    min-width: 36px;
    padding: 0 10px;
  }

  #rk-iso-guide .rk-iso-section-dark .rk-iso-card-number,
  #rk-iso-guide .rk-iso-section-dark .rk-iso-icon {
    background: #23566d;
    color: #7ce9f1;
  }

  #rk-iso-guide .rk-iso-card h3 {
    color: var(--rk-ink);
    font-size: 1.12rem;
    line-height: 1.3;
    margin: 0 0 9px;
  }

  #rk-iso-guide .rk-iso-card p {
    color: var(--rk-copy);
    margin: 0;
  }

  #rk-iso-guide .rk-iso-section-dark .rk-iso-card h3 {
    color: #ffffff;
  }

  #rk-iso-guide .rk-iso-section-dark .rk-iso-card p,
  #rk-iso-guide .rk-iso-section-dark .rk-iso-card li {
    color: #c8dce3;
  }

  #rk-iso-guide .rk-iso-note {
    background: #fff6e2;
    border-left: 6px solid var(--rk-yellow);
    border-radius: 14px;
    color: #5b4a1d;
    margin-top: 26px;
    padding: 18px 21px;
  }

  #rk-iso-guide .rk-iso-note p {
    margin: 0;
  }

  #rk-iso-guide .rk-iso-note-good {
    background: #e9faf5;
    border-left-color: var(--rk-green);
    color: #145e4d;
  }

  #rk-iso-guide .rk-iso-note-bad {
    background: #fff0ec;
    border-left-color: var(--rk-orange);
    color: #743425;
  }

  #rk-iso-guide .rk-iso-bullets {
    color: var(--rk-copy);
    margin: 20px 0 0;
    padding-left: 22px;
  }

  #rk-iso-guide .rk-iso-bullets li + li {
    margin-top: 9px;
  }

  #rk-iso-guide .rk-iso-section-dark .rk-iso-bullets {
    color: #c8dce3;
  }

  #rk-iso-guide .rk-iso-table-wrap {
    margin-top: 30px;
    overflow-x: auto;
  }

  #rk-iso-guide table {
    border-collapse: separate;
    border-spacing: 0;
    min-width: 820px;
    width: 100%;
  }

  #rk-iso-guide th {
    background: var(--rk-navy);
    border-bottom: 1px solid #31576a;
    color: #ffffff;
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    padding: 15px 16px;
    text-align: left;
    text-transform: uppercase;
  }

  #rk-iso-guide th:first-child {
    border-radius: 14px 0 0;
  }

  #rk-iso-guide th:last-child {
    border-radius: 0 14px 0 0;
  }

  #rk-iso-guide td {
    background: #ffffff;
    border-bottom: 1px solid var(--rk-line);
    color: var(--rk-copy);
    padding: 16px;
    vertical-align: top;
  }

  #rk-iso-guide tbody tr td:first-child {
    border-left: 1px solid var(--rk-line);
  }

  #rk-iso-guide tbody tr td:last-child {
    border-right: 1px solid var(--rk-line);
  }

  #rk-iso-guide tbody tr:last-child td:first-child {
    border-radius: 0 0 0 14px;
  }

  #rk-iso-guide tbody tr:last-child td:last-child {
    border-radius: 0 0 14px;
  }

  #rk-iso-guide td strong {
    color: var(--rk-ink);
  }

  #rk-iso-guide .rk-iso-criterion {
    align-items: center;
    background: var(--rk-navy);
    border-radius: 20px;
    display: grid;
    gap: 26px;
    grid-template-columns: 260px minmax(0, 1fr);
    margin-top: 30px;
    padding: 30px;
  }

  #rk-iso-guide .rk-iso-criterion-value {
    background: #173e51;
    border: 1px solid #356178;
    border-radius: 16px;
    color: #72e7ef;
    font-size: clamp(1.65rem, 4vw, 2.55rem);
    font-weight: 900;
    line-height: 1.1;
    padding: 26px 18px;
    text-align: center;
  }

  #rk-iso-guide .rk-iso-criterion-value small {
    color: #bad3dc;
    display: block;
    font-size: 0.72rem;
    letter-spacing: 0.05em;
    margin-top: 10px;
    text-transform: uppercase;
  }

  #rk-iso-guide .rk-iso-criterion-copy h3 {
    color: #ffffff;
    font-size: 1.35rem;
    margin: 0 0 9px;
  }

  #rk-iso-guide .rk-iso-criterion-copy p {
    color: #c8dce3;
    margin: 0;
  }

  #rk-iso-guide .rk-iso-pathway {
    background: #102f42;
    border: 1px solid #315a70;
    border-radius: 22px;
    margin-top: 32px;
    padding: 28px;
  }

  #rk-iso-guide .rk-iso-pathway-head {
    border-bottom: 1px solid #315a70;
    margin-bottom: 22px;
    padding-bottom: 20px;
  }

  #rk-iso-guide .rk-iso-pathway-head h3 {
    color: #ffffff;
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    line-height: 1.2;
    margin: 0;
  }

  #rk-iso-guide .rk-iso-pathway-head p {
    color: #bad3dc;
    margin: 9px 0 0;
  }

  #rk-iso-guide .rk-iso-stage-tabs {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #rk-iso-guide .rk-iso-stage-tab {
    align-items: flex-start;
    background: #173e51;
    border: 1px solid #356178;
    border-radius: 14px;
    color: #ffffff;
    cursor: pointer;
    display: flex;
    gap: 11px;
    line-height: 1.3;
    min-height: 78px;
    padding: 14px;
    text-align: left;
  }

  #rk-iso-guide .rk-iso-stage-tab span {
    align-items: center;
    background: #23566d;
    border-radius: 9px;
    color: #76e8f1;
    display: inline-flex;
    flex: 0 0 34px;
    font-weight: 900;
    height: 34px;
    justify-content: center;
  }

  #rk-iso-guide .rk-iso-stage-tab strong {
    display: block;
    padding-top: 5px;
  }

  #rk-iso-guide .rk-iso-stage-tab[aria-selected="true"] {
    background: var(--rk-cyan);
    border-color: var(--rk-cyan);
    color: #082b3b;
  }

  #rk-iso-guide .rk-iso-stage-tab[aria-selected="true"] span {
    background: #ffffff;
    color: #08728b;
  }

  #rk-iso-guide .rk-iso-stage-panel {
    background: #ffffff;
    border-left: 7px solid var(--rk-cyan);
    border-radius: 17px;
    margin-top: 18px;
    padding: 25px;
  }

  #rk-iso-guide .rk-iso-stage-label {
    color: var(--rk-cyan-dark);
    display: block;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.09em;
    text-transform: uppercase;
  }

  #rk-iso-guide .rk-iso-stage-panel h3 {
    color: var(--rk-ink);
    font-size: 1.65rem;
    line-height: 1.25;
    margin: 8px 0 18px;
  }

  #rk-iso-guide .rk-iso-stage-facts {
    display: grid;
    gap: 13px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-iso-guide .rk-iso-stage-fact {
    background: #f3f8fa;
    border: 1px solid var(--rk-line);
    border-radius: 13px;
    padding: 17px;
  }

  #rk-iso-guide .rk-iso-stage-fact strong {
    color: var(--rk-cyan-dark);
    display: block;
    font-size: 0.72rem;
    letter-spacing: 0.07em;
    margin-bottom: 7px;
    text-transform: uppercase;
  }

  #rk-iso-guide .rk-iso-stage-fact p {
    color: var(--rk-copy);
    margin: 0;
  }

  #rk-iso-guide .rk-iso-checkflow {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 30px;
  }

  #rk-iso-guide .rk-iso-checkstep {
    background: #ffffff;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    padding: 21px;
    position: relative;
  }

  #rk-iso-guide .rk-iso-checkstep::after {
    color: var(--rk-cyan);
    content: "›";
    font-size: 2rem;
    font-weight: 900;
    position: absolute;
    right: -12px;
    top: 40%;
    z-index: 2;
  }

  #rk-iso-guide .rk-iso-checkstep:last-child::after {
    content: "";
  }

  #rk-iso-guide .rk-iso-checkstep span {
    color: var(--rk-cyan-dark);
    display: block;
    font-size: 0.73rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    margin-bottom: 7px;
    text-transform: uppercase;
  }

  #rk-iso-guide .rk-iso-checkstep strong {
    color: var(--rk-ink);
    display: block;
    line-height: 1.35;
  }

  #rk-iso-guide .rk-iso-checkstep p {
    color: var(--rk-copy);
    font-size: 0.9rem;
    margin: 8px 0 0;
  }

  #rk-iso-guide .rk-iso-marking {
    background: var(--rk-navy);
    border-radius: 18px;
    color: #ffffff;
    margin-top: 28px;
    padding: 24px;
  }

  #rk-iso-guide .rk-iso-marking-line {
    background: #ffffff;
    border: 5px solid var(--rk-cyan);
    border-radius: 999px;
    color: var(--rk-ink);
    display: flex;
    flex-wrap: wrap;
    font-family: Consolas, Monaco, monospace;
    font-size: 0.88rem;
    font-weight: 800;
    gap: 8px;
    padding: 14px 20px;
  }

  #rk-iso-guide .rk-iso-marking-line span {
    background: #edf7f9;
    border-radius: 7px;
    padding: 4px 7px;
  }

  #rk-iso-guide .rk-iso-final {
    background: linear-gradient(180deg, #f3f9fb 0%, #ffffff 100%);
  }

  #rk-iso-guide .rk-iso-cta {
    background:
      radial-gradient(circle at 93% 120%, rgba(41, 196, 215, 0.22) 0, rgba(41, 196, 215, 0.22) 19%, transparent 19.2%),
      linear-gradient(125deg, #0b2536 0%, #153e51 62%, #0d6272 100%);
    border-radius: 21px;
    color: #ffffff;
    margin-top: 34px;
    overflow: hidden;
    padding: 36px;
  }

  #rk-iso-guide .rk-iso-cta-title {
    color: #ffffff;
    font-size: clamp(1.7rem, 3.3vw, 2.8rem);
    margin: 0;
    max-width: 970px;
  }

  #rk-iso-guide .rk-iso-cta p {
    color: #cee0e6;
    margin: 14px 0 0;
    max-width: 970px;
  }

  #rk-iso-guide .rk-iso-cta-button {
    background: var(--rk-orange);
    border-radius: 12px;
    box-shadow: 0 12px 25px rgba(255, 104, 70, 0.24);
    color: #ffffff;
    display: inline-block;
    font-weight: 900;
    margin-top: 22px;
    padding: 14px 20px;
    text-decoration: none;
  }

  #rk-iso-guide .rk-iso-cta-button:hover,
  #rk-iso-guide .rk-iso-cta-button:focus-visible {
    background: #ffffff;
    color: var(--rk-orange-dark);
  }

  #rk-iso-guide .rk-iso-link-disclosure {
    color: #a9c4ce;
    display: block;
    font-size: 0.75rem;
    margin-top: 12px;
  }

  #rk-iso-guide .rk-iso-source-card {
    background: #f2f7f9;
    border: 1px solid #cfe0e7;
    border-radius: 15px;
    padding: 20px;
  }

  #rk-iso-guide .rk-iso-source-card a {
    color: var(--rk-cyan-dark);
    font-size: 1rem;
    font-weight: 900;
  }

  #rk-iso-guide .rk-iso-source-card p {
    color: var(--rk-copy);
    margin: 8px 0 0;
  }

  #rk-iso-guide .rk-iso-responsibility {
    background: #fff0eb;
    border-left: 6px solid var(--rk-orange);
    border-radius: 14px;
    color: #613427;
    margin-top: 26px;
    padding: 19px 22px;
  }

  #rk-iso-guide .rk-iso-responsibility p {
    margin: 0;
  }

  #rk-iso-guide .rk-iso-faq {
    display: grid;
    gap: 12px;
    margin-top: 30px;
  }

  #rk-iso-guide .rk-iso-faq details {
    background: #ffffff;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    overflow: hidden;
  }

  #rk-iso-guide .rk-iso-faq summary {
    color: var(--rk-ink);
    cursor: pointer;
    font-weight: 900;
    list-style: none;
    padding: 19px 52px 19px 20px;
    position: relative;
  }

  #rk-iso-guide .rk-iso-faq summary::-webkit-details-marker {
    display: none;
  }

  #rk-iso-guide .rk-iso-faq summary::after {
    color: var(--rk-cyan-dark);
    content: "+";
    font-size: 1.55rem;
    font-weight: 700;
    position: absolute;
    right: 20px;
    top: 12px;
  }

  #rk-iso-guide .rk-iso-faq details[open] summary::after {
    content: "−";
  }

  #rk-iso-guide .rk-iso-faq-answer {
    border-top: 1px solid var(--rk-line);
    color: var(--rk-copy);
    padding: 18px 20px;
  }

  #rk-iso-guide .rk-iso-faq-answer p {
    margin: 0;
  }

  #rk-iso-guide .rk-iso-author {
    background: #eef6f8;
    border-top: 1px solid var(--rk-line);
    padding: 64px 58px;
  }

  #rk-iso-guide .rk-iso-author-layout {
    background: #ffffff;
    border: 1px solid #cbdde5;
    border-radius: 21px;
    display: grid;
    grid-template-columns: 290px minmax(0, 1fr);
    margin-top: 30px;
    overflow: hidden;
  }

  #rk-iso-guide .rk-iso-author-side {
    align-items: center;
    background: var(--rk-navy);
    color: #ffffff;
    display: flex;
    flex-direction: column;
    padding: 35px 25px;
    text-align: center;
  }

  #rk-iso-guide .rk-iso-author-photo {
    background: #ffffff;
    border: 6px solid rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    overflow: hidden;
    width: 158px;
  }

  #rk-iso-guide .rk-iso-author-name {
    font-size: 1.25rem;
    font-weight: 900;
    margin-top: 20px;
  }

  #rk-iso-guide .rk-iso-author-name a {
    color: #ffffff;
    text-decoration: none;
  }

  #rk-iso-guide .rk-iso-author-role {
    color: #bcd2db;
    font-size: 0.82rem;
    margin: 8px 0 0;
  }

  #rk-iso-guide .rk-iso-author-social {
    display: flex;
    gap: 10px;
    margin-top: 21px;
  }

  #rk-iso-guide .rk-iso-author-social a {
    align-items: center;
    border: 1px solid #497185;
    border-radius: 50%;
    color: #d8e9ee;
    display: inline-flex;
    height: 42px;
    justify-content: center;
    text-decoration: none;
    width: 42px;
  }

  #rk-iso-guide .rk-iso-author-social a:hover {
    background: var(--rk-cyan);
    color: var(--rk-navy);
  }

  #rk-iso-guide .rk-iso-author-main {
    padding: 37px;
  }

  #rk-iso-guide .rk-iso-author-quote {
    background: #f7fbfc;
    border: 1px solid #cfe0e7;
    border-left: 6px solid var(--rk-cyan);
    border-radius: 14px;
    color: var(--rk-ink);
    font-size: 1.04rem;
    font-style: italic;
    font-weight: 700;
    line-height: 1.7;
    margin: 0;
    padding: 20px 22px;
  }

  #rk-iso-guide .rk-iso-author-main > p {
    color: var(--rk-copy);
    margin: 18px 0 0;
  }

  #rk-iso-guide .rk-iso-author-facts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-iso-guide .rk-iso-author-fact {
    background: #eef7f9;
    border: 1px solid #d2e4e9;
    border-radius: 13px;
    color: var(--rk-copy);
    font-size: 0.84rem;
    padding: 15px;
  }

  #rk-iso-guide .rk-iso-author-fact strong {
    color: var(--rk-cyan-dark);
    display: block;
    font-size: 0.73rem;
    letter-spacing: 0.06em;
    margin-bottom: 5px;
    text-transform: uppercase;
  }

  @media (max-width: 1050px) {
    #rk-iso-guide .rk-iso-grid-4,
    #rk-iso-guide .rk-iso-checkflow {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-iso-guide .rk-iso-checkstep:nth-child(2)::after {
      content: "";
    }

    #rk-iso-guide .rk-iso-stage-facts {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (max-width: 820px) {
    #rk-iso-guide .rk-iso-hero,
    #rk-iso-guide .rk-iso-section,
    #rk-iso-guide .rk-iso-author {
      padding-left: 28px;
      padding-right: 28px;
    }

    #rk-iso-guide .rk-iso-hero::before {
      left: 28px;
    }

    #rk-iso-guide .rk-iso-shortcuts {
      padding-left: 22px;
      padding-right: 22px;
    }

    #rk-iso-guide .rk-iso-grid-3,
    #rk-iso-guide .rk-iso-stage-tabs {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-iso-guide .rk-iso-author-layout {
      grid-template-columns: minmax(0, 1fr);
    }

    #rk-iso-guide .rk-iso-criterion {
      grid-template-columns: minmax(0, 1fr);
    }
  }

  @media (max-width: 660px) {
    #rk-iso-guide .rk-iso-hero {
      padding-bottom: 42px;
      padding-top: 52px;
    }

    #rk-iso-guide .rk-iso-section,
    #rk-iso-guide .rk-iso-author {
      padding-bottom: 46px;
      padding-top: 46px;
    }

    #rk-iso-guide .rk-iso-grid-2,
    #rk-iso-guide .rk-iso-grid-3,
    #rk-iso-guide .rk-iso-grid-4,
    #rk-iso-guide .rk-iso-source-grid,
    #rk-iso-guide .rk-iso-author-facts,
    #rk-iso-guide .rk-iso-checkflow {
      grid-template-columns: minmax(0, 1fr);
    }

    #rk-iso-guide .rk-iso-checkstep::after,
    #rk-iso-guide .rk-iso-checkstep:nth-child(2)::after {
      content: "";
    }

    #rk-iso-guide .rk-iso-stage-tabs {
      grid-template-columns: minmax(0, 1fr);
    }

    #rk-iso-guide .rk-iso-stage-facts {
      grid-template-columns: minmax(0, 1fr);
    }

    #rk-iso-guide .rk-iso-pathway,
    #rk-iso-guide .rk-iso-cta,
    #rk-iso-guide .rk-iso-criterion {
      border-radius: 17px;
      padding: 20px;
    }

    #rk-iso-guide .rk-iso-stage-panel {
      padding: 18px;
    }

    #rk-iso-guide .rk-iso-cta-button {
      text-align: center;
      width: 100%;
    }

    #rk-iso-guide .rk-iso-table-wrap {
      overflow: visible;
    }

    #rk-iso-guide table,
    #rk-iso-guide thead,
    #rk-iso-guide tbody,
    #rk-iso-guide tr,
    #rk-iso-guide th,
    #rk-iso-guide td {
      display: block;
      min-width: 0;
      width: 100%;
    }

    #rk-iso-guide thead {
      clip: rect(0 0 0 0);
      clip-path: inset(50%);
      height: 1px;
      overflow: hidden;
      position: absolute;
      white-space: nowrap;
      width: 1px;
    }

    #rk-iso-guide tbody {
      display: grid;
      gap: 14px;
    }

    #rk-iso-guide tbody tr {
      background: #ffffff;
      border: 1px solid var(--rk-line);
      border-radius: 14px;
      overflow: hidden;
    }

    #rk-iso-guide td,
    #rk-iso-guide tbody tr td:first-child,
    #rk-iso-guide tbody tr td:last-child {
      border: 0;
      border-bottom: 1px solid #e1ebef;
      border-radius: 0;
      padding: 13px 15px;
    }

    #rk-iso-guide td:last-child {
      border-bottom: 0;
    }

    #rk-iso-guide td::before {
      color: var(--rk-cyan-dark);
      content: attr(data-label);
      display: block;
      font-size: 0.69rem;
      font-weight: 900;
      letter-spacing: 0.07em;
      margin-bottom: 4px;
      text-transform: uppercase;
    }

    #rk-iso-guide .rk-iso-marking-line {
      border-radius: 16px;
    }

    #rk-iso-guide .rk-iso-author-main {
      padding: 25px 20px;
    }
  }

  @media (max-width: 430px) {
    #rk-iso-guide .rk-iso-hero,
    #rk-iso-guide .rk-iso-section,
    #rk-iso-guide .rk-iso-author {
      padding-left: 18px;
      padding-right: 18px;
    }

    #rk-iso-guide .rk-iso-hero::before {
      left: 18px;
    }

    #rk-iso-guide .rk-iso-shortcuts {
      padding-left: 14px;
      padding-right: 14px;
    }

    #rk-iso-guide .rk-iso-shortcuts a {
      flex: 1 1 calc(50% - 9px);
      text-align: center;
    }

    #rk-iso-guide .rk-iso-shortcuts-label {
      flex: 1 0 100%;
    }

    #rk-iso-guide .rk-iso-hero-title {
      font-size: 2.18rem;
    }

    #rk-iso-guide .rk-iso-section-title {
      font-size: 1.88rem;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    #rk-iso-guide *,
    #rk-iso-guide *::before,
    #rk-iso-guide *::after {
      scroll-behavior: auto;
      transition-duration: 0.01ms;
    }
  }
</style>

<article id="rk-iso-guide" aria-labelledby="rk-iso-visual-title">
  <div class="rk-iso-shell">
    <header class="rk-iso-hero">
      <span class="rk-iso-kicker">Rury PE-X · aktualizacja techniczna 2026</span>
      <div class="rk-iso-hero-title" id="rk-iso-visual-title">EN ISO 15875: <span>jak sprawdzić rurę PE-X bez nadinterpretacji normy?</span></div>
      <p class="rk-iso-hero-lead">Seria ISO 15875 opisuje systemy przewodów z polietylenu sieciowanego PE-X do instalacji wody ciepłej, zimnej i ogrzewania. Nie dobiera jednak rozstawu podłogówki, nie potwierdza automatycznie bariery tlenowej i nie zamienia samego nadruku na rurze w dowód zgodności całego systemu.</p>
      <div class="rk-iso-hero-tags" aria-label="Zakres poradnika">
        <span>części 1, 2, 3 i 5</span>
        <span>PE-Xa, PE-Xb i PE-Xc</span>
        <span>klasy zastosowania</span>
        <span>rura, kształtka i połączenie</span>
        <span>dokumentacja wyrobu</span>
      </div>
      <div class="rk-iso-meta">
        <span>Autor: <strong>Robert Kucharski</strong></span>
        <span>Czas czytania: <strong>około 23 minuty</strong></span>
        <span>Aktualizacja techniczna: <strong>17 września 2026 r.</strong></span>
      </div>
    </header>

    <nav class="rk-iso-shortcuts" aria-label="Na skróty — wszystkie sekcje artykułu">
      <span class="rk-iso-shortcuts-label">Na skróty</span>
      <a href="#rk-iso-answer">Szybka odpowiedź</a>
      <a href="#rk-iso-current">Wydanie 2025</a>
      <a href="#rk-iso-scope">Zakres normy</a>
      <a href="#rk-iso-series">Części serii</a>
      <a href="#rk-iso-map">Moduł edukacyjny</a>
      <a href="#rk-iso-material">PE-Xa, b i c</a>
      <a href="#rk-iso-classes">Klasy zastosowania</a>
      <a href="#rk-iso-temperature">Temperatura i trwałość</a>
      <a href="#rk-iso-dimensions">Wymiary i nadruk</a>
      <a href="#rk-iso-barrier">Bariera tlenowa</a>
      <a href="#rk-iso-system">Kompletny system</a>
      <a href="#rk-iso-documents">Dokumenty</a>
      <a href="#rk-iso-health">Higiena wody</a>
      <a href="#rk-iso-design">Czego norma nie projektuje</a>
      <a href="#rk-iso-test">Próba instalacji</a>
      <a href="#rk-iso-errors">Błędy interpretacji</a>
      <a href="#rk-iso-checklist">Checklista</a>
      <a href="#rk-iso-summary">Podsumowanie</a>
      <a href="#rk-iso-sources">Źródła</a>
      <a href="#rk-iso-faq">FAQ</a>
      <a href="#rk-iso-author">Autor</a>
    </nav>

    <section class="rk-iso-section" id="rk-iso-answer">
      <span class="rk-iso-eyebrow">Odpowiedź w 60 sekund</span>
      <h2 class="rk-iso-section-title">Co naprawdę oznacza EN ISO 15875 na rurze?</h2>
      <p class="rk-iso-lead"><strong>Odniesienie do EN ISO 15875 mówi, że dokumentacja dotyczy systemu rurowego z polietylenu sieciowanego PE-X.</strong> Aby ocenić konkretny wyrób, trzeba sprawdzić właściwą część serii, wydanie, klasę zastosowania, ciśnienie projektowe, pełny wymiar oraz zgodność rury z kształtkami i połączeniami.</p>
      <div class="rk-iso-answer">
        <strong>Najważniejsza korekta: ISO 15875 nie obejmuje rur PB, PE-RT ani wszystkich rur wielowarstwowych.</strong>
        <p>PB ma własną serię ISO 15876, PE-RT — ISO 22391, a systemy wielowarstwowe — ISO 21003. Sama zgodność rury PE-X z częścią 2 nie oznacza jeszcze, że spełnia ona wymaganie dotyczące przenikania tlenu przez ściankę.</p>
      </div>
      <div class="rk-iso-grid-3">
        <article class="rk-iso-card"><span class="rk-iso-icon">1</span><h3>Sprawdź część normy</h3><p>Część 1 opisuje podstawy, część 2 rury, część 3 kształtki, a część 5 przydatność połączeń i kompletnego systemu.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-icon">2</span><h3>Sprawdź dokładny produkt</h3><p>Numer normy bez typu, wymiaru, klasy, ciśnienia i identyfikacji partii nie wystarcza do odpowiedzialnej decyzji zakupowej.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-icon">3</span><h3>Oddziel normę od projektu</h3><p>Norma wyrobu nie oblicza mocy podłogi, rozstawu, długości pętli, przepływu ani oporu hydraulicznego.</p></article>
      </div>
      <p class="rk-iso-copy">Jeżeli najpierw chcesz uporządkować rodziny materiałowe, zobacz porównanie <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rur do ogrzewania podłogowego</a> oraz osobny poradnik o <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/">rurach PE-X do podłogówki</a>.</p>
    </section>

    <section class="rk-iso-section rk-iso-section-soft" id="rk-iso-current">
      <span class="rk-iso-eyebrow">Stan dokumentów na dzień aktualizacji</span>
      <h2 class="rk-iso-section-title">ISO 15875:2025 zastąpiła międzynarodowe wydanie z 2003 roku</h2>
      <p class="rk-iso-lead">Oficjalny katalog ISO wskazuje drugie wydanie części 1, 2, 3 i 5 opublikowane w październiku 2025 r. Poprzednie części z 2003 r. oraz ich poprawki są oznaczone jako wycofane na poziomie międzynarodowym.</p>
      <div class="rk-iso-grid-3">
        <article class="rk-iso-card"><span class="rk-iso-card-number">2003</span><h3>Starsze wydanie</h3><p>Może nadal występować w dawnych kartach, raportach badań i specyfikacjach. Trzeba ustalić, jaki dokument obowiązywał przy ich wystawieniu.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-card-number">2025</span><h3>Aktualne wydanie ISO</h3><p>Części 1, 2, 3 i 5 mają drugie wydanie z 2025 r. i są oznaczone przez ISO jako opublikowane.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-card-number">EN / PN</span><h3>Przyjęcie regionalne i krajowe</h3><p>Na dokumentach może występować oznaczenie ISO, EN ISO lub PN-EN ISO. Zawsze sprawdź pełny numer, część, rok i status w właściwym katalogu.</p></article>
      </div>
      <div class="rk-iso-note"><p><strong>Nie poprawiaj dokumentacji „z automatu”.</strong> Raport dotyczący starszego wydania nie staje się nieważny tylko dlatego, że opublikowano nowsze. Trzeba ocenić zakres raportu, datę produkcji, wymagania projektu i reguły przejściowe przyjęte dla danego zastosowania.</p></div>
    </section>

    <section class="rk-iso-section" id="rk-iso-scope">
      <span class="rk-iso-eyebrow">Granice dokumentu</span>
      <h2 class="rk-iso-section-title">Co obejmuje seria ISO 15875, a czego nie obejmuje?</h2>
      <p class="rk-iso-lead">Seria dotyczy systemów PE-X przeznaczonych do przesyłania wody w instalacjach wewnątrz budynków — zarówno użytkowej, jak i grzewczej — przy warunkach wynikających z klasy zastosowania oraz ciśnienia projektowego.</p>
      <div class="rk-iso-grid-2">
        <article class="rk-iso-card">
          <span class="rk-iso-icon">✓</span>
          <h3>W zakresie</h3>
          <ul class="rk-iso-bullets">
            <li>ogólne zasady systemów z rur PE-X,</li>
            <li>charakterystyki i badania rur,</li>
            <li>charakterystyki kształtek mechanicznych i elektrooporowych,</li>
            <li>przydatność połączeń i systemu do deklarowanego zastosowania,</li>
            <li>klasy zastosowania, ciśnienia projektowe i klasy wymiarowe.</li>
          </ul>
        </article>
        <article class="rk-iso-card">
          <span class="rk-iso-icon">×</span>
          <h3>Poza zakresem samej serii</h3>
          <ul class="rk-iso-bullets">
            <li>rury PB, PE-RT i kompletne systemy wielowarstwowe,</li>
            <li>obliczenia OZC i dobór mocy ogrzewania,</li>
            <li>rozstaw, długości pętli, przepływy i nastawy,</li>
            <li>automatyczne potwierdzenie bariery według DIN 4726,</li>
            <li>krajowe dopuszczenia higieniczne oraz procedura odbioru na budowie.</li>
          </ul>
        </article>
      </div>
      <div class="rk-iso-note rk-iso-note-bad"><p><strong>PB nie jest odmianą objętą ISO 15875.</strong> To istotny błąd w dawnej wersji artykułu. Systemy z polibutenu opisuje osobna seria ISO 15876.</p></div>
    </section>

    <section class="rk-iso-section rk-iso-section-soft" id="rk-iso-series">
      <span class="rk-iso-eyebrow">Jedna seria, różne obiekty oceny</span>
      <h2 class="rk-iso-section-title">Części 1, 2, 3 i 5 — czego szukać w każdej z nich?</h2>
      <p class="rk-iso-lead">Nie ma jednego „certyfikatu ISO 15875”, który bez dalszych informacji odpowiada na wszystkie pytania. Każda część opisuje inny fragment systemu.</p>
      <div class="rk-iso-table-wrap">
        <table>
          <thead><tr><th>Część</th><th>Główny przedmiot</th><th>Co weryfikujesz</th><th>Czego ta część nie rozstrzyga sama</th></tr></thead>
          <tbody>
            <tr><td data-label="Część"><strong>ISO 15875-1:2025</strong></td><td data-label="Główny przedmiot">Zagadnienia ogólne</td><td data-label="Co weryfikujesz">Zakres zastosowań, klasy, ciśnienia projektowe, klasy wymiarowe i podstawy parametrów badań.</td><td data-label="Czego nie rozstrzyga sama">Właściwości konkretnej rury, kształtki lub połączenia.</td></tr>
            <tr><td data-label="Część"><strong>ISO 15875-2:2025</strong></td><td data-label="Główny przedmiot">Rury PE-X</td><td data-label="Co weryfikujesz">Charakterystyki rur i parametry badań; zakres obejmuje rury z warstwą barierową i bez niej.</td><td data-label="Czego nie rozstrzyga sama">Zgodności dowolnej kształtki ani wymagań dyfuzyjnych DIN 4726.</td></tr>
            <tr><td data-label="Część"><strong>ISO 15875-3:2025</strong></td><td data-label="Główny przedmiot">Kształtki</td><td data-label="Co weryfikujesz">Charakterystyki kształtek przeznaczonych do rur zgodnych z częścią 2.</td><td data-label="Czego nie rozstrzyga sama">Przydatności każdego połączenia wykonanego dowolnym narzędziem.</td></tr>
            <tr><td data-label="Część"><strong>ISO 15875-5:2025</strong></td><td data-label="Główny przedmiot">Przydatność systemu</td><td data-label="Co weryfikujesz">Właściwości połączeń rur z części 2 i kształtek z części 3 w kompletnym układzie.</td><td data-label="Czego nie rozstrzyga sama">Projektu cieplnego i hydraulicznego konkretnego budynku.</td></tr>
          </tbody>
        </table>
      </div>
      <p class="rk-iso-copy">W publikacjach handlowych często skraca się wszystkie te poziomy do zdania „rura zgodna z normą”. Technicznie poprawna weryfikacja musi rozdzielić wyrób, element połączeniowy i gotowy system.</p>
    </section>

    <section class="rk-iso-section rk-iso-section-dark" id="rk-iso-map">
      <span class="rk-iso-eyebrow">Interaktywna grafika edukacyjna</span>
      <h2 class="rk-iso-section-title">Jak czytać serię EN ISO 15875?</h2>
      <p class="rk-iso-lead">Wybierz część normy. Moduł pokazuje jej rolę, rodzaj potwierdzanej informacji, najczęstszą nadinterpretację i dokument, którego warto zażądać. Na telefonie elementy układają się jeden pod drugim, bez nakładania treści.</p>
      <div class="rk-iso-pathway" id="rk-iso-series-map">
        <div class="rk-iso-pathway-head">
          <h3>Od warunków ogólnych do sprawdzonego połączenia</h3>
          <p>To mapa odpowiedzialności dokumentów, a nie skrócona treść normy ani certyfikat produktu.</p>
        </div>
        <div class="rk-iso-stage-tabs" role="tablist" aria-label="Części serii ISO 15875">
          <button class="rk-iso-stage-tab" type="button" role="tab" aria-selected="true" tabindex="0" data-rk-stage="part1"><span>1</span><strong>Zasady ogólne</strong></button>
          <button class="rk-iso-stage-tab" type="button" role="tab" aria-selected="false" tabindex="-1" data-rk-stage="part2"><span>2</span><strong>Rury PE-X</strong></button>
          <button class="rk-iso-stage-tab" type="button" role="tab" aria-selected="false" tabindex="-1" data-rk-stage="part3"><span>3</span><strong>Kształtki</strong></button>
          <button class="rk-iso-stage-tab" type="button" role="tab" aria-selected="false" tabindex="-1" data-rk-stage="part5"><span>5</span><strong>System i połączenia</strong></button>
        </div>
        <div class="rk-iso-stage-panel" role="tabpanel" aria-live="polite">
          <span class="rk-iso-stage-label" id="rk-iso-stage-label">ISO 15875-1:2025</span>
          <h3 id="rk-iso-stage-title">Najpierw ustal warunki odniesienia</h3>
          <div class="rk-iso-stage-facts">
            <div class="rk-iso-stage-fact"><strong>Zakres</strong><p id="rk-iso-stage-scope">Ogólne aspekty systemów PE-X, klasy zastosowania, ciśnienia projektowe i klasy wymiarowe.</p></div>
            <div class="rk-iso-stage-fact"><strong>Może potwierdzić</strong><p id="rk-iso-stage-confirms">Jakie warunki temperaturowo-czasowe stanowią podstawę klasyfikacji i badań serii.</p></div>
            <div class="rk-iso-stage-fact"><strong>Nie potwierdza sama</strong><p id="rk-iso-stage-limits">Że dowolna rura, kształtka i połączenie tworzą kompatybilny system.</p></div>
            <div class="rk-iso-stage-fact"><strong>Sprawdź w dokumentach</strong><p id="rk-iso-stage-document">Pełne oznaczenie części, wydanie, klasę zastosowania i deklarowane ciśnienie.</p></div>
          </div>
        </div>
      </div>
      <div class="rk-iso-note"><p><strong>Dlaczego nie kalkulator ani analizator decyzyjny?</strong> Norma nie dostarcza jednego wyniku liczbowego ani nie wybiera produktu za użytkownika. Największą wartość daje tu prawidłowe przypisanie pytania do części dokumentu; fałszywy wynik „zgodne / niezgodne” bez pełnej dokumentacji byłby pozornie precyzyjny.</p></div>
    </section>

    <section class="rk-iso-section" id="rk-iso-material">
      <span class="rk-iso-eyebrow">Metoda sieciowania to nie ranking</span>
      <h2 class="rk-iso-section-title">PE-Xa, PE-Xb i PE-Xc — co oznacza litera?</h2>
      <p class="rk-iso-lead">Litery a, b i c identyfikują sposób sieciowania polietylenu. Nie stanowią skali jakości i nie pozwalają bez dokumentacji stwierdzić, że jeden gotowy produkt jest trwalszy od drugiego.</p>
      <div class="rk-iso-grid-3">
        <article class="rk-iso-card"><span class="rk-iso-card-number">PE-Xa</span><h3>Metoda nadtlenkowa</h3><p>Często kojarzona z dużą elastycznością i pamięcią kształtu, ale parametry konkretnej rury wynikają z jej pełnej konstrukcji i dokumentacji.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-card-number">PE-Xb</span><h3>Metoda silanowa</h3><p>Inna technologia sieciowania nie oznacza automatycznie niższej jakości. Nadal sprawdza się klasę, wymiar, ciśnienie i system połączeń.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-card-number">PE-Xc</span><h3>Metoda fizyczna</h3><p>Oznaczenie opisuje proces, nie kompletną odporność wyrobu ani jego zachowanie w każdym sposobie montażu.</p></article>
      </div>
      <div class="rk-iso-note rk-iso-note-good"><p><strong>Porównuj gotowe wyroby.</strong> Dla każdego sprawdź tę samą listę: część i rok normy, pełny wymiar, klasę zastosowania, ciśnienie, budowę warstw, promień gięcia, kompatybilne złączki oraz identyfikację partii.</p></div>
    </section>

    <section class="rk-iso-section rk-iso-section-soft" id="rk-iso-classes">
      <span class="rk-iso-eyebrow">Profil pracy zamiast jednej temperatury</span>
      <h2 class="rk-iso-section-title">Jak rozumieć klasę zastosowania?</h2>
      <p class="rk-iso-lead">Klasa zastosowania porządkuje przewidziany profil temperaturowo-czasowy systemu. Trzeba ją czytać razem z ciśnieniem projektowym i dokumentacją wyrobu — nie jako pojedynczą temperaturę dopuszczoną bez ograniczenia czasu.</p>
      <div class="rk-iso-grid-3">
        <article class="rk-iso-card"><span class="rk-iso-card-number">T<sub>D</sub></span><h3>Temperatura projektowa</h3><p>Warunek normalnej pracy przypisany do określonego czasu w profilu zastosowania.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-card-number">T<sub>max</sub></span><h3>Temperatura maksymalna</h3><p>Wyższy poziom występujący przez ograniczony czas, a nie stała nastawa instalacji.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-card-number">T<sub>mal</sub></span><h3>Temperatura awaryjna</h3><p>Warunek zakłócenia przewidziany na krótki, zdefiniowany okres — nie normalny punkt pracy.</p></article>
      </div>
      <div class="rk-iso-criterion">
        <div class="rk-iso-criterion-value">klasa + p<sub>D</sub><small>czytane razem</small></div>
        <div class="rk-iso-criterion-copy"><h3>Sam napis „Class 4” nie zamyka oceny</h3><p>Potrzebujesz jeszcze deklarowanego ciśnienia projektowego, wymiaru i potwierdzenia, że dokument dotyczy dokładnie kupowanej rury. Projekt instalacji powinien dodatkowo utrzymywać temperaturę zasilania zgodną z potrzebną mocą podłogi i ograniczeniami powierzchni.</p></div>
      </div>
      <p class="rk-iso-copy">W praktyce podłogówka powinna pracować znacznie niżej niż skrajne wartości profilu. Zobacz osobne wyjaśnienie <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalnej temperatury zasilania podłogówki</a>.</p>
    </section>

    <section class="rk-iso-section" id="rk-iso-temperature">
      <span class="rk-iso-eyebrow">Najczęściej nadużywana obietnica</span>
      <h2 class="rk-iso-section-title">Czy norma gwarantuje 50 lat pracy przy 70°C?</h2>
      <p class="rk-iso-lead"><strong>Nie należy tak interpretować klasyfikacji.</strong> Podstawa trwałościowa systemu jest związana z całym profilem warunków i czasów, a nie z nieprzerwaną pracą przez 50 lat przy jednej wysokiej temperaturze.</p>
      <div class="rk-iso-grid-2">
        <article class="rk-iso-card"><span class="rk-iso-icon">✓</span><h3>Poprawne odczytanie</h3><p>Rura jest oceniana względem deklarowanej klasy i ciśnienia, z uwzględnieniem różnych poziomów temperatury oraz przypisanych im czasów.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-icon">×</span><h3>Błędne uproszczenie</h3><p>„Rura może stale pracować przy 70°C przez 50 lat, więc każda podłogówka jest bezpieczna” — taki wniosek pomija profil, ciśnienie, montaż i ograniczenia podłogi.</p></article>
      </div>
      <ul class="rk-iso-bullets">
        <li>warunki przekraczające zakres klasy nie są objęte jej założeniami,</li>
        <li>trwałość zależy także od ciśnienia, połączeń, medium i wykonania,</li>
        <li>zgodność normowa ogranicza ryzyko, ale nie jest gwarancją braku każdej awarii,</li>
        <li>deklarację producenta trzeba odnieść do dokładnego typu i wymiaru.</li>
      </ul>
      <p class="rk-iso-copy">Szerzej o zależności materiału, naprężeń i warunków pracy przeczytasz w poradniku o <a href="https://projekt-ogrzewania.pl/wytrzymalosc-rur-do-ogrzewania-podlogowego-kompleksowy-przewodnik/">wytrzymałości rur do ogrzewania podłogowego</a>.</p>
    </section>

    <section class="rk-iso-section rk-iso-section-dark" id="rk-iso-dimensions">
      <span class="rk-iso-eyebrow">Nadruk musi prowadzić do dokumentu</span>
      <h2 class="rk-iso-section-title">Wymiar, klasa, ciśnienie i identyfikacja rury</h2>
      <p class="rk-iso-lead">Poniższy nadruk jest przykładem edukacyjnym. Nie odwzorowuje etykiety konkretnego producenta i nie potwierdza sam z siebie zgodności produktu.</p>
      <div class="rk-iso-marking">
        <div class="rk-iso-marking-line" aria-label="Przykładowy nadruk edukacyjny na rurze PE-X">
          <span>PE-Xb</span><span>16 × 2,0 mm</span><span>Class 4</span><span>pD 6 bar</span><span>EN ISO 15875-2:2025</span><span>partia 26A104</span><span>metr 00482</span>
        </div>
      </div>
      <div class="rk-iso-grid-3">
        <article class="rk-iso-card"><span class="rk-iso-card-number">01</span><h3>Rodzina materiału</h3><p>PE-X oraz litera metody sieciowania. Nie dopowiadaj z niej automatycznie liczby warstw ani jakości systemu.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-card-number">02</span><h3>Pełny wymiar</h3><p>Średnica zewnętrzna i grubość ścianki wpływają na światło, pojemność oraz hydraulikę pętli.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-card-number">03</span><h3>Klasa i ciśnienie</h3><p>Powinny być rozpatrywane łącznie, w odniesieniu do warunków przewidzianych dla zastosowania.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-card-number">04</span><h3>Część i wydanie</h3><p>Numer bez końcówki „-2” i roku utrudnia ustalenie, jaki dokładnie zakres został zadeklarowany.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-card-number">05</span><h3>Identyfikacja partii</h3><p>Kod produkcji oraz nadruk metrowy pozwalają powiązać materiał na budowie z dokumentami dostawy.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-card-number">06</span><h3>Dane dodatkowe</h3><p>Informacja o barierze, certyfikacie lub dopuszczeniu musi dać się zweryfikować w odpowiednim dokumencie.</p></article>
      </div>
      <div class="rk-iso-note"><p><strong>Nie akceptuj samego logo.</strong> Zapis na rurze powinien umożliwiać odnalezienie karty i dokumentu dotyczącego dokładnie tego wyrobu, wymiaru oraz partii.</p></div>
    </section>

    <section class="rk-iso-section" id="rk-iso-barrier">
      <span class="rk-iso-eyebrow">Dwa różne zakresy wymagań</span>
      <h2 class="rk-iso-section-title">ISO 15875 a bariera antydyfuzyjna — czego nie wolno łączyć automatycznie?</h2>
      <p class="rk-iso-lead">Oficjalny zakres części 2 wyraźnie obejmuje rury PE-X zarówno <strong>z warstwą barierową, jak i bez niej</strong>. To oznacza, że samo powołanie na ISO 15875-2 nie dowodzi spełnienia kryterium ograniczenia przenikania tlenu.</p>
      <div class="rk-iso-grid-2">
        <article class="rk-iso-card"><span class="rk-iso-card-number">ISO 15875-2</span><h3>Charakterystyki rury PE-X</h3><p>Weryfikuje wymagania właściwe dla rury w systemie PE-X. Warstwa barierowa może występować, ale nie jest obowiązkową cechą każdej rury objętej zakresem.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-card-number">DIN 4726</span><h3>Ograniczanie przenikania tlenu</h3><p>Osobne odniesienie techniczne stosowane przy przewodach z tworzyw i wielowarstwowych w systemach ogrzewania płaszczyznowego.</p></article>
      </div>
      <div class="rk-iso-note rk-iso-note-bad"><p><strong>„EN ISO 15875 + EVOH” nadal wymaga weryfikacji.</strong> Sprawdź dokument potwierdzający właściwość bariery dla dokładnego typu i wymiaru, jej umiejscowienie w konstrukcji oraz wydanie przywołanego dokumentu.</p></div>
      <p class="rk-iso-copy">Pełne rozróżnienie opisuję w artykułach o <a href="https://projekt-ogrzewania.pl/norma-din-4726-w-ogrzewaniu-podlogowym/">DIN 4726 w ogrzewaniu podłogowym</a> oraz o <a href="https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/">rurze z barierą antydyfuzyjną EVOH</a>.</p>
    </section>

    <section class="rk-iso-section rk-iso-section-soft" id="rk-iso-system">
      <span class="rk-iso-eyebrow">Zgodność elementu to nie zgodność zestawu</span>
      <h2 class="rk-iso-section-title">Rura, kształtka i połączenie tworzą jeden system</h2>
      <p class="rk-iso-lead">Część 2 odnosi rurę do kształtek zgodnych z częścią 3 oraz połączeń spełniających część 5. Średnica „16 mm” na dwóch różnych elementach nie potwierdza jeszcze ich wzajemnej kompatybilności.</p>
      <div class="rk-iso-checkflow" aria-label="Cztery kroki weryfikacji systemu PE-X">
        <div class="rk-iso-checkstep"><span>Krok 1</span><strong>Rura z części 2</strong><p>Dokładny typ, wymiar, tolerancje, klasa i deklarowane ciśnienie.</p></div>
        <div class="rk-iso-checkstep"><span>Krok 2</span><strong>Kształtka z części 3</strong><p>Geometria i materiał przeznaczone do wskazanej konstrukcji przewodu.</p></div>
        <div class="rk-iso-checkstep"><span>Krok 3</span><strong>Połączenie z części 5</strong><p>Ocena przydatności zestawu rury i kształtki w przewidzianych warunkach.</p></div>
        <div class="rk-iso-checkstep"><span>Krok 4</span><strong>Instrukcja montażu</strong><p>Właściwe narzędzia, kalibracja, tuleje, szczęki i kontrola wykonania.</p></div>
      </div>
      <div class="rk-iso-grid-3">
        <article class="rk-iso-card"><span class="rk-iso-icon">Ø</span><h3>Ten sam wymiar nominalny</h3><p>Nie gwarantuje identycznych tolerancji, geometrii króćca ani sposobu uszczelnienia.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-icon">⚙</span><h3>To samo narzędzie z wyglądu</h3><p>Nie potwierdza właściwego profilu zacisku, głębokości wsunięcia ani procedury przygotowania końca.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-icon">✓</span><h3>Jednoznaczna lista zgodności</h3><p>Powinna wskazywać dokładne rury, kształtki, narzędzia i sposób wykonania połączenia.</p></article>
      </div>
      <div class="rk-iso-note rk-iso-note-bad"><p><strong>Nie mieszaj systemów na podstawie mechanicznego dopasowania.</strong> Połączenie może wyglądać poprawnie w chwili montażu, a mimo to nie mieć potwierdzonych właściwości dla zakładanych temperatur, ciśnienia i czasu pracy.</p></div>
    </section>

    <section class="rk-iso-section" id="rk-iso-documents">
      <span class="rk-iso-eyebrow">Trzy dokumenty, trzy różne znaczenia</span>
      <h2 class="rk-iso-section-title">Deklaracja, raport z badań i certyfikat — nie używaj tych nazw zamiennie</h2>
      <p class="rk-iso-lead">Zdanie „rura ma certyfikat” powinno prowadzić do konkretnego dokumentu, numeru, zakresu i podmiotu, który go wystawił. Samo powołanie na normę nie tworzy automatycznie niezależnej certyfikacji.</p>
      <div class="rk-iso-table-wrap">
        <table>
          <thead><tr><th>Dokument</th><th>Kto odpowiada</th><th>Co może pokazać</th><th>Co sprawdzić</th></tr></thead>
          <tbody>
            <tr><td data-label="Dokument"><strong>Deklaracja producenta</strong></td><td data-label="Kto odpowiada">Producent lub podmiot wprowadzający wyrób</td><td data-label="Co może pokazać">Zadeklarowane właściwości i dokumenty odniesienia dla identyfikowanego wyrobu.</td><td data-label="Co sprawdzić">Typ, wymiar, wydanie normy, podpis, data i spójność z etykietą.</td></tr>
            <tr><td data-label="Dokument"><strong>Raport z badań</strong></td><td data-label="Kto odpowiada">Laboratorium wykonujące określone badania</td><td data-label="Co może pokazać">Wyniki próbek w zakresie opisanej metody i warunków.</td><td data-label="Co sprawdzić">Numer raportu, próbkę, datę, metodę, laboratorium i granice wyniku.</td></tr>
            <tr><td data-label="Dokument"><strong>Certyfikat strony trzeciej</strong></td><td data-label="Kto odpowiada">Jednostka certyfikująca</td><td data-label="Co może pokazać">Ocenę zgodności w zdefiniowanym programie certyfikacji.</td><td data-label="Co sprawdzić">Ważność, zakres, wykaz wyrobów, program i status jednostki.</td></tr>
          </tbody>
        </table>
      </div>
      <ul class="rk-iso-bullets">
        <li>pobieraj dokumenty dla dokładnego typu oraz wymiaru, nie tylko dla marki lub rodziny,</li>
        <li>porównuj numer części i rok normy z nadrukiem na rurze,</li>
        <li>sprawdzaj, czy kształtki i połączenia są objęte tym samym zakresem systemowym,</li>
        <li>zachowuj etykiety, numery partii i dokumenty dostawy przed wykonaniem wylewki.</li>
      </ul>
    </section>

    <section class="rk-iso-section rk-iso-section-soft" id="rk-iso-health">
      <span class="rk-iso-eyebrow">Zakres użytkowy a wymagania krajowe</span>
      <h2 class="rk-iso-section-title">Czy EN ISO 15875 gwarantuje bezpieczeństwo higieniczne wody?</h2>
      <p class="rk-iso-lead">Zakres serii obejmuje systemy przenoszące wodę przeznaczoną lub nieprzeznaczoną do spożycia, ale nie należy z tego wyprowadzać automatycznej gwarancji spełnienia wszystkich krajowych wymagań higienicznych.</p>
      <div class="rk-iso-grid-3">
        <article class="rk-iso-card"><span class="rk-iso-card-number">1</span><h3>Ustal zastosowanie</h3><p>Ogrzewanie w obiegu zamkniętym i instalacja wody przeznaczonej do spożycia mają inne wymagania użytkowe i dokumentacyjne.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-card-number">2</span><h3>Sprawdź wymagania krajowe</h3><p>Dopuszczenia do kontaktu z wodą pitną mogą wynikać z odrębnych przepisów, ocen i procedur właściwych dla rynku.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-card-number">3</span><h3>Nie dopisuj składu</h3><p>Bez odrębnego dokumentu nie można twierdzić, że numer ISO sam gwarantuje brak każdej określonej substancji.</p></article>
      </div>
      <div class="rk-iso-note"><p><strong>Praktyczny wniosek:</strong> do podłogówki sprawdzasz wymagania układu grzewczego; do wody przeznaczonej do spożycia — dodatkowo właściwą dokumentację higieniczną. Jedno zastosowanie nie zastępuje drugiego.</p></div>
    </section>

    <section class="rk-iso-section rk-iso-section-dark" id="rk-iso-design">
      <span class="rk-iso-eyebrow">Granica między wyrobem a instalacją</span>
      <h2 class="rk-iso-section-title">Czego norma EN ISO 15875 nie projektuje w podłogówce?</h2>
      <p class="rk-iso-lead">Norma produktu pomaga zweryfikować elementy systemu PE-X, lecz nie odpowiada na pytanie, czy podłoga w konkretnym pokoju pokryje jego obciążenie cieplne ani czy pompa wymusi obliczony przepływ.</p>
      <div class="rk-iso-grid-3">
        <article class="rk-iso-card"><span class="rk-iso-card-number">NIE 1</span><h3>Nie oblicza strat ciepła</h3><p>Nie zna przegród, wentylacji, temperatur obliczeniowych ani oczekiwanej temperatury pomieszczenia.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-card-number">NIE 2</span><h3>Nie dobiera rozstawu</h3><p>Nie zaleca uniwersalnych 10–30 cm. Rozstaw wynika z wymaganej mocy, temperatur i konstrukcji podłogi.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-card-number">NIE 3</span><h3>Nie wybiera średnicy</h3><p>Rury 14, 16, 17 lub 20 mm ocenia się w systemie mocowań i na podstawie przepływu oraz oporu.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-card-number">NIE 4</span><h3>Nie ustala długości pętli</h3><p>Granica obwodu zależy od światła, przepływu, medium, oporu miejscowego i możliwości regulacji.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-card-number">NIE 5</span><h3>Nie dobiera pompy</h3><p>Punkt pracy wynika z sumarycznego przepływu i oporu drogi krytycznej całej instalacji.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-card-number">NIE 6</span><h3>Nie wyznacza nastaw</h3><p>Przepływy na rozdzielaczu muszą odpowiadać mocy pętli, a nie przypadkowej pozycji rotametru.</p></article>
      </div>
      <p class="rk-iso-copy">Proces zaczyna się od tego, <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">jak oblicza się straty ciepła</a>, a następnie przechodzi przez <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">dobór rozstawu rur</a> i sprawdzenie <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">długości pętli</a>.</p>
      <aside class="rk-iso-cta" aria-label="Projekt ogrzewania podłogowego z weryfikacją systemu PE-X">
        <div class="rk-iso-cta-title">Rura PE-X spełnia EN ISO 15875? To dopiero warunek wejściowy</div>
        <p>Norma pomaga zweryfikować właściwości rury, kształtek i połączeń w określonych warunkach pracy. Nie dobiera jednak rozstawu, długości pętli, przepływów, oporu okładziny ani nastaw rozdzielacza. W indywidualnym projekcie łączę dokumentację wybranego systemu PE-X z obciążeniem cieplnym pomieszczeń i hydrauliką całej instalacji.</p>
        <a class="rk-iso-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Sprawdź system PE-X w indywidualnym projekcie podłogówki</a>
        <small class="rk-iso-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </aside>
    </section>

    <section class="rk-iso-section" id="rk-iso-test">
      <span class="rk-iso-eyebrow">Badanie wyrobu to nie odbiór na budowie</span>
      <h2 class="rk-iso-section-title">Czy EN ISO 15875 narzuca próbę 6 bar przez 24 godziny?</h2>
      <p class="rk-iso-lead"><strong>Nie należy przypisywać tej uniwersalnej procedury samej serii produktowej.</strong> Parametry badań rury i połączeń w normie służą ocenie wyrobu lub systemu, natomiast próbę gotowej instalacji prowadzi się według właściwej procedury projektowej, wykonawczej i instrukcji systemu.</p>
      <div class="rk-iso-grid-3">
        <article class="rk-iso-card"><span class="rk-iso-card-number">LAB</span><h3>Badanie normowe</h3><p>Ma określone próbki, warunki, aparaturę i kryteria. Nie jest prostym przepisem przenoszonym na każdą budowę.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-card-number">BUDOWA</span><h3>Próba instalacji</h3><p>Sprawdza wykonany układ przed zakryciem zgodnie z przyjętą procedurą, temperaturą otoczenia i właściwościami rur z tworzywa.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-card-number">PROTOKÓŁ</span><h3>Udokumentowany wynik</h3><p>Powinien identyfikować obiekt, obwody, przyrząd, warunki, ciśnienie, czas, obserwacje i osoby odpowiedzialne.</p></article>
      </div>
      <ul class="rk-iso-bullets">
        <li>wykonaj próbę przed zakryciem przewodów,</li>
        <li>uwzględnij zmianę ciśnienia wynikającą z temperatury i rozszerzania przewodu,</li>
        <li>usuń przyczynę każdej nieszczelności zamiast jedynie dopompować układ,</li>
        <li>zachowaj protokół, zdjęcia tras i oznaczenia pętli.</li>
      </ul>
      <p class="rk-iso-copy">Praktyczną procedurę i ograniczenia opisuje poradnik o <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próbie szczelności ogrzewania podłogowego</a>.</p>
    </section>

    <section class="rk-iso-section rk-iso-section-soft" id="rk-iso-errors">
      <span class="rk-iso-eyebrow">Korekty najczęstszych skrótów myślowych</span>
      <h2 class="rk-iso-section-title">Dziesięć błędów w interpretacji EN ISO 15875</h2>
      <div class="rk-iso-grid-3">
        <article class="rk-iso-card"><span class="rk-iso-card-number">BŁĄD 1</span><h3>„Norma obejmuje PE-X i PB”</h3><p>Nie. ISO 15875 dotyczy PE-X, a PB ma osobną serię ISO 15876.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-card-number">BŁĄD 2</span><h3>„Określa przewodność cieplną rury”</h3><p>Nie jest poradnikiem minimalizacji strat ciepła ani doborem izolacji przewodów.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-card-number">BŁĄD 3</span><h3>„Gwarantuje brak szkodliwych substancji”</h3><p>Wymagania higieniczne i krajowe dopuszczenia trzeba sprawdzać odrębnie.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-card-number">BŁĄD 4</span><h3>„70°C przez 50 lat”</h3><p>Klasa opisuje profil różnych temperatur i czasów, nie stałą pracę w jednym skrajnym punkcie.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-card-number">BŁĄD 5</span><h3>„Zgodność wyklucza przeciek”</h3><p>Ryzyka wykonania, uszkodzeń, niezgodnych złączek i pracy poza zakresem nadal istnieją.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-card-number">BŁĄD 6</span><h3>„Norma zaleca rozstaw 10–30 cm”</h3><p>Rozstaw ogrzewania wynika z obliczeń cieplnych i konstrukcji podłogi.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-card-number">BŁĄD 7</span><h3>„14 mm jest lepsze do łazienki”</h3><p>Łatwość prowadzenia nie zastępuje sprawdzenia długości, przepływu, oporu i systemu.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-card-number">BŁĄD 8</span><h3>„6 bar / 24 h pochodzi z tej normy”</h3><p>Badania wyrobu i procedura odbioru gotowej instalacji to dwa różne poziomy.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-card-number">BŁĄD 9</span><h3>„EVOH wynika z części 2”</h3><p>Część 2 obejmuje rury z warstwą barierową i bez niej.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-card-number">BŁĄD 10</span><h3>„Ta sama średnica oznacza zgodność”</h3><p>Potrzebne jest systemowe potwierdzenie rury, kształtki, narzędzia i połączenia.</p></article>
      </div>
    </section>

    <section class="rk-iso-section" id="rk-iso-checklist">
      <span class="rk-iso-eyebrow">Przed zamówieniem i przed wylewką</span>
      <h2 class="rk-iso-section-title">Checklista weryfikacji systemu PE-X</h2>
      <p class="rk-iso-lead">Lista nie zastępuje dokumentów, ale pozwala szybko wykryć luki, zanim materiał zostanie zamówiony albo zniknie pod jastrychem.</p>
      <div class="rk-iso-grid-3">
        <article class="rk-iso-card">
          <span class="rk-iso-card-number">PROJEKT</span>
          <h3>Warunki pracy</h3>
          <ul class="rk-iso-bullets"><li>obciążenia cieplne pomieszczeń,</li><li>temperatury zasilania i powrotu,</li><li>rozstawy i powierzchnie czynne,</li><li>długości, przepływy i opory pętli,</li><li>medium oraz ciśnienie robocze.</li></ul>
        </article>
        <article class="rk-iso-card">
          <span class="rk-iso-card-number">SYSTEM</span>
          <h3>Dokumentacja elementów</h3>
          <ul class="rk-iso-bullets"><li>ISO 15875-1, -2, -3 i -5 w odpowiednim zakresie,</li><li>typ PE-X i pełny wymiar,</li><li>klasa zastosowania i ciśnienie,</li><li>bariera tlenowa potwierdzona osobno,</li><li>zgodne złączki, narzędzia i instrukcja.</li></ul>
        </article>
        <article class="rk-iso-card">
          <span class="rk-iso-card-number">BUDOWA</span>
          <h3>Identyfikacja i odbiór</h3>
          <ul class="rk-iso-bullets"><li>zgodność dostawy ze specyfikacją,</li><li>czytelne partie i nadruki,</li><li>brak uszkodzeń oraz załamań,</li><li>próba według właściwej procedury,</li><li>protokół i zdjęcia przed zakryciem.</li></ul>
        </article>
      </div>
      <div class="rk-iso-note rk-iso-note-good"><p><strong>Najkrótsza zasada odbioru:</strong> numer normy ma łączyć materiał na budowie z dokumentacją konkretnego systemu i warunkami obliczonymi w projekcie. Jeśli któregoś z tych ogniw brakuje, weryfikacja nie jest zakończona.</p></div>
    </section>

    <section class="rk-iso-section rk-iso-final" id="rk-iso-summary">
      <span class="rk-iso-eyebrow">Wniosek praktyczny</span>
      <h2 class="rk-iso-section-title">EN ISO 15875 porządkuje wyrób — projekt porządkuje instalację</h2>
      <p class="rk-iso-lead">Dobra specyfikacja łączy oba poziomy. Seria norm pomaga sprawdzić system PE-X i jego warunki deklarowane, a projekt przelicza obciążenie cieplne, powierzchnię grzejną, temperatury, przepływy i opory dla konkretnego domu.</p>
      <div class="rk-iso-grid-3">
        <article class="rk-iso-card"><span class="rk-iso-icon">1</span><h3>Wybierz właściwą rodzinę</h3><p>Nie przypisuj ISO 15875 do PB, PE-RT ani wszystkich rur wielowarstwowych.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-icon">2</span><h3>Sprawdź komplet dokumentów</h3><p>Rura, kształtka i połączenie muszą mieć jednoznaczny, wspólny zakres zastosowania.</p></article>
        <article class="rk-iso-card"><span class="rk-iso-icon">3</span><h3>Przelicz rzeczywisty układ</h3><p>Rozstaw, długość pętli i przepływ nie wynikają z samego oznaczenia na przewodzie.</p></article>
      </div>
      <div class="rk-iso-cta">
        <div class="rk-iso-cta-title">Zamień oznaczenie na rurze w policzony układ grzewczy</div>
        <p>Projekt łączy OZC pomieszczeń, opór okładzin, temperaturę wody, rozstaw rur, podział na pętle, długości, przepływy i nastawy rozdzielacza. Dzięki temu zgodny wyrób pracuje w warunkach, dla których został wybrany.</p>
        <a class="rk-iso-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
        <small class="rk-iso-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </div>
    </section>

    <section class="rk-iso-section" id="rk-iso-sources">
      <span class="rk-iso-eyebrow">Dokumenty pierwotne</span>
      <h2 class="rk-iso-section-title">Oficjalne źródła i zakres opracowania</h2>
      <p class="rk-iso-lead">Linki zewnętrzne prowadzą wyłącznie do oficjalnych kart organizacji normalizacyjnych. Opisy poniżej są omówieniem publicznego zakresu dokumentów, a nie reprodukcją ich chronionej treści.</p>
      <div class="rk-iso-source-grid">
        <article class="rk-iso-source-card"><a href="https://www.iso.org/standard/79775.html" target="_blank" rel="nofollow noopener noreferrer">ISO 15875-1:2025 — General</a><p>Oficjalna karta części ogólnej: zakres, klasy zastosowania, ciśnienia projektowe i klasy wymiarowe.</p></article>
        <article class="rk-iso-source-card"><a href="https://www.iso.org/standard/79776.html" target="_blank" rel="nofollow noopener noreferrer">ISO 15875-2:2025 — Pipes</a><p>Oficjalna karta części dotyczącej rur PE-X, także z warstwą barierową lub bez niej.</p></article>
        <article class="rk-iso-source-card"><a href="https://www.iso.org/standard/79777.html" target="_blank" rel="nofollow noopener noreferrer">ISO 15875-3:2025 — Fittings</a><p>Oficjalna karta charakterystyk kształtek mechanicznych i elektrooporowych przeznaczonych do systemu PE-X.</p></article>
        <article class="rk-iso-source-card"><a href="https://www.iso.org/standard/79778.html" target="_blank" rel="nofollow noopener noreferrer">ISO 15875-5:2025 — Fitness for purpose</a><p>Oficjalna karta części dotyczącej przydatności systemu oraz połączeń rur z kształtkami.</p></article>
        <article class="rk-iso-source-card"><a href="https://www.iso.org/standard/63010.html" target="_blank" rel="nofollow noopener noreferrer">ISO 15876-1:2017 — systemy PB</a><p>Oficjalna karta odrębnej serii dla polibutenu; potwierdza, że PB nie należy do ISO 15875.</p></article>
        <article class="rk-iso-source-card"><a href="https://www.iso.org/standard/43514.html" target="_blank" rel="nofollow noopener noreferrer">ISO 21003-1:2008 — systemy wielowarstwowe</a><p>Oficjalna karta części ogólnej osobnej serii dotyczącej wielowarstwowych systemów przewodów.</p></article>
        <article class="rk-iso-source-card"><a href="https://www.dinmedia.de/en/standard/din-4726/380677149" target="_blank" rel="nofollow noopener noreferrer">DIN 4726:2024-12 — przenikanie tlenu</a><p>Oficjalna karta aktualnego wydania dokumentu dotyczącego między innymi ograniczania przenikania tlenu.</p></article>
      </div>
      <div class="rk-iso-responsibility"><p><strong>Zakres odpowiedzialności:</strong> poradnik pomaga rozpoznać części serii, skorygować typowe błędy i przygotować listę dokumentów. Nie zastępuje pełnego tekstu norm, krajowych wymagań, oceny zgodności wyrobu, instrukcji systemowej, projektu instalacji ani procedury odbiorowej przyjętej dla konkretnej inwestycji. Przed zastosowaniem sprawdź aktualny status dokumentów i dane dokładnego produktu.</p></div>
    </section>

    <section class="rk-iso-section rk-iso-section-soft" id="rk-iso-faq">
      <span class="rk-iso-eyebrow">Pytania inwestorów, projektantów i wykonawców</span>
      <h2 class="rk-iso-section-title">FAQ — norma EN ISO 15875 i rury PE-X</h2>
      <div class="rk-iso-faq">
        <details><summary>Czym jest norma EN ISO 15875?</summary><div class="rk-iso-faq-answer"><p>To seria dokumentów dotyczących systemów przewodów z polietylenu sieciowanego PE-X do instalacji wody ciepłej, zimnej i ogrzewania. Poszczególne części opisują zagadnienia ogólne, rury, kształtki oraz przydatność połączeń i systemu.</p></div></details>
        <details><summary>Jakie jest aktualne wydanie ISO 15875?</summary><div class="rk-iso-faq-answer"><p>Oficjalny katalog ISO wskazuje drugie wydanie części 1, 2, 3 i 5 z 2025 r. W dokumentacji europejskiej i krajowej trzeba dodatkowo sprawdzić pełne oznaczenie przyjęcia, rok oraz aktualny status.</p></div></details>
        <details><summary>Jakie części ma seria ISO 15875?</summary><div class="rk-iso-faq-answer"><p>W praktycznej weryfikacji najważniejsze są: część 1 z zasadami ogólnymi, część 2 dotycząca rur, część 3 dotycząca kształtek oraz część 5 dotycząca przydatności kompletnego systemu i jego połączeń.</p></div></details>
        <details><summary>Czy ISO 15875 obejmuje rury PB?</summary><div class="rk-iso-faq-answer"><p>Nie. ISO 15875 dotyczy systemów PE-X. Systemy z polibutenu PB mają odrębną serię ISO 15876, dlatego nie wolno przypisywać obu materiałów do jednego dokumentu.</p></div></details>
        <details><summary>Czy ISO 15875 obejmuje rury PE-RT?</summary><div class="rk-iso-faq-answer"><p>Nie. Dla systemów z polietylenu o podwyższonej odporności temperaturowej PE-RT właściwa jest osobna seria ISO 22391. Nazwa tworzywa musi odpowiadać serii wskazanej w dokumentacji.</p></div></details>
        <details><summary>Czy ISO 15875 obejmuje rury wielowarstwowe?</summary><div class="rk-iso-faq-answer"><p>Nie jako uniwersalna norma dla kompletnych systemów wielowarstwowych. Takie systemy mają osobną serię ISO 21003. Konkretna konstrukcja wymaga sprawdzenia dokładnego dokumentu odniesienia.</p></div></details>
        <details><summary>Czy PE-Xa jest lepsza niż PE-Xb albo PE-Xc?</summary><div class="rk-iso-faq-answer"><p>Nie można tego stwierdzić na podstawie litery. Oznacza ona metodę sieciowania, a nie ranking jakości. Porównuje się parametry, warstwy, klasę, wymiar i zgodność systemową konkretnych produktów.</p></div></details>
        <details><summary>Co oznacza klasa zastosowania 4?</summary><div class="rk-iso-faq-answer"><p>To zdefiniowany profil warunków temperaturowo-czasowych związany z określonym zastosowaniem. Klasę trzeba czytać razem z deklarowanym ciśnieniem projektowym, a nie jako jedną stałą temperaturę pracy.</p></div></details>
        <details><summary>Czy oznaczenie 70°C pozwala stale pracować w tej temperaturze?</summary><div class="rk-iso-faq-answer"><p>Nie należy tak interpretować klasy. Różne poziomy temperatury mają przypisane okresy pracy, a wartości maksymalne i awaryjne nie są normalną, nieograniczoną nastawą instalacji.</p></div></details>
        <details><summary>Czy zgodność z normą gwarantuje 50 lat bez awarii?</summary><div class="rk-iso-faq-answer"><p>Nie jest to bezwarunkowa gwarancja dla każdej instalacji. Założenia trwałości odnoszą się do określonego profilu pracy, a wynik eksploatacyjny zależy także od ciśnienia, połączeń, montażu, medium i pracy całego układu.</p></div></details>
        <details><summary>Czy ISO 15875 potwierdza barierę antydyfuzyjną?</summary><div class="rk-iso-faq-answer"><p>Nie automatycznie. Zakres części 2 obejmuje rury PE-X z warstwą barierową i bez niej. Właściwość ograniczania przenikania tlenu trzeba potwierdzić osobnym, jednoznacznym dokumentem dla konkretnej rury.</p></div></details>
        <details><summary>Czy sam napis EVOH potwierdza zgodność z DIN 4726?</summary><div class="rk-iso-faq-answer"><p>Nie. EVOH identyfikuje materiał warstwy, ale nie zastępuje dokumentu potwierdzającego wymagany parametr dla dokładnego typu, wymiaru i konstrukcji rury.</p></div></details>
        <details><summary>Czy EN ISO 15875 określa rozstaw i długość pętli?</summary><div class="rk-iso-faq-answer"><p>Nie. Rozstaw wynika z wymaganej mocy, temperatur i konstrukcji podłogi, a długość pętli z geometrii, przepływu, średnicy wewnętrznej, oporów oraz warunków regulacji.</p></div></details>
        <details><summary>Czy EN ISO 15875 określa próbę ciśnieniową na budowie?</summary><div class="rk-iso-faq-answer"><p>Seria zawiera parametry badań wyrobów i systemu, lecz nie należy z niej wyprowadzać jednej uniwersalnej procedury odbiorowej 6 bar przez 24 godziny. Próba gotowej instalacji wymaga właściwej procedury i protokołu.</p></div></details>
        <details><summary>Czy deklaracja zgodności i certyfikat oznaczają to samo?</summary><div class="rk-iso-faq-answer"><p>Nie. Deklaracja pochodzi od odpowiedzialnego podmiotu, raport opisuje określone badania, a certyfikat strony trzeciej działa w granicach programu certyfikacji. Zawsze trzeba sprawdzić wystawcę, zakres, ważność i identyfikację wyrobu.</p></div></details>
        <details><summary>Co sprawdzić przed zakupem rury PE-X?</summary><div class="rk-iso-faq-answer"><p>Sprawdź dokładny typ i wymiar, część oraz rok normy, klasę zastosowania, ciśnienie, budowę warstw, barierę tlenową, kompatybilne kształtki i narzędzia, instrukcję montażu, identyfikację partii oraz zgodność z obliczeniami projektu.</p></div></details>
      </div>
    </section>

    <section class="rk-iso-author" id="rk-iso-author">
      <span class="rk-iso-eyebrow">Opracowanie eksperckie</span>
      <h2 class="rk-iso-author-title">Autor i weryfikacja merytoryczna</h2>
      <div class="rk-iso-author-layout">
        <aside class="rk-iso-author-side">
          <div class="rk-iso-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji sanitarnych" width="400" height="400" loading="lazy" decoding="async"></div>
          <div class="rk-iso-author-name">Robert Kucharski</div>
          <p class="rk-iso-author-role">Projektant instalacji sanitarnych<br>specjalista HVAC i ogrzewania podłogowego</p>
          <div class="rk-iso-author-social" aria-label="Profile autora">
            <a href="https://www.linkedin.com/in/robert-kucharski-b8b906199/" target="_blank" rel="nofollow noopener noreferrer me" aria-label="LinkedIn Roberta Kucharskiego">in</a>
            <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Facebook Projekt Ogrzewania">f</a>
            <a href="https://x.com/Projekt_HVAC" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Profil Projekt HVAC w serwisie X">X</a>
          </div>
        </aside>
        <div class="rk-iso-author-main">
          <div class="rk-iso-author-quote">„Moim zdaniem oznaczenie EN ISO 15875 na rurze jest początkiem weryfikacji, a nie jej końcem. Trzeba sprawdzić część normy, klasę zastosowania, dokładny wymiar, zgodne kształtki i dokumenty potwierdzające przydatność całego systemu.”</div>
          <p>Robert Kucharski opracowuje projekty ogrzewania podłogowego, bilanse cieplne i hydrauliczne oraz materiały edukacyjne dla inwestorów i wykonawców. W pracy rozdziela wymagania produktu od obliczeń potrzebnych do poprawnego działania instalacji.</p>
          <p>Przy aktualizacji artykułu zweryfikował publiczne zakresy części ISO 15875-1, -2, -3 i -5 z 2025 r., usunął nieprawidłowe odniesienia do PB, przewodności cieplnej, uniwersalnego rozstawu oraz próby 6 bar / 24 h i uzupełnił procedurę sprawdzania dokumentacji systemu PE-X.</p>
          <p>Publikuje również w portalach <a href="https://remont.biz.pl/" target="_blank" rel="nofollow noopener noreferrer">Remont.biz.pl</a> i <a href="https://sobir.pl/" target="_blank" rel="nofollow noopener noreferrer">Sobir.pl</a>. <a href="https://projekt-ogrzewania.pl/author/admin3399/">Zobacz pozostałe artykuły Roberta Kucharskiego w serwisie Projekt-Ogrzewania.pl</a>.</p>
          <div class="rk-iso-author-facts">
            <div class="rk-iso-author-fact"><strong>Zakres</strong>ogrzewanie podłogowe, OZC i hydraulika instalacji</div>
            <div class="rk-iso-author-fact"><strong>Metoda pracy</strong>projekt, dokumentacja wyrobu i warunki rzeczywiste</div>
            <div class="rk-iso-author-fact"><strong>Aktualizacja</strong>stan techniczny sprawdzony 17 września 2026 r.</div>
          </div>
        </div>
      </div>
    </section>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "inLanguage": "pl-PL"
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt-Ogrzewania.pl",
      "url": "https://projekt-ogrzewania.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" }
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" }
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "knowsAbout": [
        "ogrzewanie podłogowe",
        "systemy rurowe PE-X",
        "EN ISO 15875",
        "obliczenia strat ciepła",
        "hydraulika instalacji grzewczych"
      ],
      "worksFor": [
        { "@id": "https://projekt-ogrzewania.pl/#organization" },
        { "@id": "https://remont.biz.pl/#organization" },
        { "@id": "https://sobir.pl/#organization" }
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-b8b906199/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/norma-en-iso-15875/#primaryimage",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/02/Norma-EN-ISO-15875.webp",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/02/Norma-EN-ISO-15875.webp",
      "width": 945,
      "height": 945,
      "caption": "EN ISO 15875 – wymagania dla rur PE-X w ogrzewaniu podłogowym"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/norma-en-iso-15875/#breadcrumb",
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Strona główna", "item": "https://projekt-ogrzewania.pl/" },
        { "@type": "ListItem", "position": 2, "name": "Poradniki", "item": "https://projekt-ogrzewania.pl/blog/" },
        { "@type": "ListItem", "position": 3, "name": "EN ISO 15875", "item": "https://projekt-ogrzewania.pl/norma-en-iso-15875/" }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/norma-en-iso-15875/#webpage",
      "url": "https://projekt-ogrzewania.pl/norma-en-iso-15875/",
      "name": "EN ISO 15875:2025 – wymagania dla rur PE-X w ogrzewaniu podłogowym",
      "description": "Sprawdź, co obejmują części 1, 2, 3 i 5 normy EN ISO 15875:2025, jak czytać klasę zastosowania, oznaczenia rur PE-X i dokumentację systemu.",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
      "breadcrumb": { "@id": "https://projekt-ogrzewania.pl/norma-en-iso-15875/#breadcrumb" },
      "primaryImageOfPage": { "@id": "https://projekt-ogrzewania.pl/norma-en-iso-15875/#primaryimage" },
      "datePublished": "2025-02-27T18:39:53+00:00",
      "dateModified": "2026-09-17T12:00:00+00:00",
      "inLanguage": "pl-PL",
      "mainEntity": { "@id": "https://projekt-ogrzewania.pl/norma-en-iso-15875/#article" }
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/norma-en-iso-15875/#article",
      "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/norma-en-iso-15875/#webpage" },
      "headline": "EN ISO 15875:2025 – wymagania dla rur PE-X w ogrzewaniu podłogowym",
      "description": "Techniczny przewodnik po częściach ISO 15875 dotyczących zasad ogólnych, rur PE-X, kształtek i przydatności kompletnego systemu.",
      "image": { "@id": "https://projekt-ogrzewania.pl/norma-en-iso-15875/#primaryimage" },
      "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "datePublished": "2025-02-27T18:39:53+00:00",
      "dateModified": "2026-09-17T12:00:00+00:00",
      "inLanguage": "pl-PL",
      "about": [
        "EN ISO 15875",
        "rury PE-X",
        "klasy zastosowania",
        "kształtki do PE-X",
        "połączenia systemów rurowych"
      ],
      "keywords": "norma EN ISO 15875, ISO 15875:2025, rury PE-X, PE-Xa, PE-Xb, PE-Xc, klasa zastosowania 4, ogrzewanie podłogowe",
      "isAccessibleForFree": true,
      "hasPart": [
        { "@id": "https://projekt-ogrzewania.pl/norma-en-iso-15875/#learning-resource" },
        { "@id": "https://projekt-ogrzewania.pl/norma-en-iso-15875/#howto" },
        { "@id": "https://projekt-ogrzewania.pl/norma-en-iso-15875/#parts-list" },
        { "@id": "https://projekt-ogrzewania.pl/norma-en-iso-15875/#faq-schema" }
      ]
    },
    {
      "@type": "LearningResource",
      "@id": "https://projekt-ogrzewania.pl/norma-en-iso-15875/#learning-resource",
      "name": "Jak czytać części serii EN ISO 15875",
      "url": "https://projekt-ogrzewania.pl/norma-en-iso-15875/#rk-iso-map",
      "learningResourceType": "interaktywna grafika edukacyjna",
      "educationalUse": "instruction",
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "description": "Moduł przypisujący zakres, potwierdzane informacje, ograniczenia i dokumentację do części 1, 2, 3 i 5 serii ISO 15875."
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/norma-en-iso-15875/#howto",
      "name": "Jak sprawdzić system PE-X przed zakupem",
      "description": "Procedura weryfikacji rury, kształtek, połączeń i dokumentacji systemu PE-X przed montażem ogrzewania podłogowego.",
      "totalTime": "PT15M",
      "step": [
        { "@type": "HowToStep", "position": 1, "name": "Zidentyfikuj rurę", "text": "Odczytaj typ PE-X, pełny wymiar, klasę, ciśnienie, część normy, rok i partię." },
        { "@type": "HowToStep", "position": 2, "name": "Zweryfikuj część 2", "text": "Sprawdź dokumentację dokładnego typu i wymiaru rury PE-X." },
        { "@type": "HowToStep", "position": 3, "name": "Zweryfikuj kształtki", "text": "Potwierdź, że kształtki są przeznaczone do tej konstrukcji rury i objęte odpowiednim zakresem." },
        { "@type": "HowToStep", "position": 4, "name": "Potwierdź połączenie", "text": "Sprawdź przydatność połączenia, zgodne narzędzia i procedurę montażu." },
        { "@type": "HowToStep", "position": 5, "name": "Sprawdź barierę osobno", "text": "Nie wyprowadzaj zgodności z wymaganiem dyfuzyjnym wyłącznie z ISO 15875." },
        { "@type": "HowToStep", "position": 6, "name": "Porównaj z projektem", "text": "Zestaw warunki deklarowane z temperaturą, przepływem, długością i oporem obliczonych pętli." },
        { "@type": "HowToStep", "position": 7, "name": "Udokumentuj dostawę", "text": "Zachowaj etykiety, partie, dokumenty, zdjęcia i protokół próby przed zakryciem rur." }
      ]
    },
    {
      "@type": "ItemList",
      "@id": "https://projekt-ogrzewania.pl/norma-en-iso-15875/#parts-list",
      "name": "Najważniejsze części serii ISO 15875:2025",
      "numberOfItems": 4,
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "ISO 15875-1:2025 — zagadnienia ogólne" },
        { "@type": "ListItem", "position": 2, "name": "ISO 15875-2:2025 — rury PE-X" },
        { "@type": "ListItem", "position": 3, "name": "ISO 15875-3:2025 — kształtki" },
        { "@type": "ListItem", "position": 4, "name": "ISO 15875-5:2025 — przydatność systemu" }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/norma-en-iso-15875/#faq-schema",
      "mainEntity": [
        { "@type": "Question", "name": "Czym jest norma EN ISO 15875?", "acceptedAnswer": { "@type": "Answer", "text": "To seria dokumentów dotyczących systemów przewodów z polietylenu sieciowanego PE-X do instalacji wody ciepłej, zimnej i ogrzewania. Poszczególne części opisują zagadnienia ogólne, rury, kształtki oraz przydatność połączeń i systemu." } },
        { "@type": "Question", "name": "Jakie jest aktualne wydanie ISO 15875?", "acceptedAnswer": { "@type": "Answer", "text": "Oficjalny katalog ISO wskazuje drugie wydanie części 1, 2, 3 i 5 z 2025 r. W dokumentacji europejskiej i krajowej trzeba dodatkowo sprawdzić pełne oznaczenie przyjęcia, rok oraz aktualny status." } },
        { "@type": "Question", "name": "Jakie części ma seria ISO 15875?", "acceptedAnswer": { "@type": "Answer", "text": "W praktycznej weryfikacji najważniejsze są: część 1 z zasadami ogólnymi, część 2 dotycząca rur, część 3 dotycząca kształtek oraz część 5 dotycząca przydatności kompletnego systemu i jego połączeń." } },
        { "@type": "Question", "name": "Czy ISO 15875 obejmuje rury PB?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. ISO 15875 dotyczy systemów PE-X. Systemy z polibutenu PB mają odrębną serię ISO 15876, dlatego nie wolno przypisywać obu materiałów do jednego dokumentu." } },
        { "@type": "Question", "name": "Czy ISO 15875 obejmuje rury PE-RT?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Dla systemów z polietylenu o podwyższonej odporności temperaturowej PE-RT właściwa jest osobna seria ISO 22391. Nazwa tworzywa musi odpowiadać serii wskazanej w dokumentacji." } },
        { "@type": "Question", "name": "Czy ISO 15875 obejmuje rury wielowarstwowe?", "acceptedAnswer": { "@type": "Answer", "text": "Nie jako uniwersalna norma dla kompletnych systemów wielowarstwowych. Takie systemy mają osobną serię ISO 21003. Konkretna konstrukcja wymaga sprawdzenia dokładnego dokumentu odniesienia." } },
        { "@type": "Question", "name": "Czy PE-Xa jest lepsza niż PE-Xb albo PE-Xc?", "acceptedAnswer": { "@type": "Answer", "text": "Nie można tego stwierdzić na podstawie litery. Oznacza ona metodę sieciowania, a nie ranking jakości. Porównuje się parametry, warstwy, klasę, wymiar i zgodność systemową konkretnych produktów." } },
        { "@type": "Question", "name": "Co oznacza klasa zastosowania 4?", "acceptedAnswer": { "@type": "Answer", "text": "To zdefiniowany profil warunków temperaturowo-czasowych związany z określonym zastosowaniem. Klasę trzeba czytać razem z deklarowanym ciśnieniem projektowym, a nie jako jedną stałą temperaturę pracy." } },
        { "@type": "Question", "name": "Czy oznaczenie 70°C pozwala stale pracować w tej temperaturze?", "acceptedAnswer": { "@type": "Answer", "text": "Nie należy tak interpretować klasy. Różne poziomy temperatury mają przypisane okresy pracy, a wartości maksymalne i awaryjne nie są normalną, nieograniczoną nastawą instalacji." } },
        { "@type": "Question", "name": "Czy zgodność z normą gwarantuje 50 lat bez awarii?", "acceptedAnswer": { "@type": "Answer", "text": "Nie jest to bezwarunkowa gwarancja dla każdej instalacji. Założenia trwałości odnoszą się do określonego profilu pracy, a wynik eksploatacyjny zależy także od ciśnienia, połączeń, montażu, medium i pracy całego układu." } },
        { "@type": "Question", "name": "Czy ISO 15875 potwierdza barierę antydyfuzyjną?", "acceptedAnswer": { "@type": "Answer", "text": "Nie automatycznie. Zakres części 2 obejmuje rury PE-X z warstwą barierową i bez niej. Właściwość ograniczania przenikania tlenu trzeba potwierdzić osobnym, jednoznacznym dokumentem dla konkretnej rury." } },
        { "@type": "Question", "name": "Czy sam napis EVOH potwierdza zgodność z DIN 4726?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. EVOH identyfikuje materiał warstwy, ale nie zastępuje dokumentu potwierdzającego wymagany parametr dla dokładnego typu, wymiaru i konstrukcji rury." } },
        { "@type": "Question", "name": "Czy EN ISO 15875 określa rozstaw i długość pętli?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Rozstaw wynika z wymaganej mocy, temperatur i konstrukcji podłogi, a długość pętli z geometrii, przepływu, średnicy wewnętrznej, oporów oraz warunków regulacji." } },
        { "@type": "Question", "name": "Czy EN ISO 15875 określa próbę ciśnieniową na budowie?", "acceptedAnswer": { "@type": "Answer", "text": "Seria zawiera parametry badań wyrobów i systemu, lecz nie należy z niej wyprowadzać jednej uniwersalnej procedury odbiorowej 6 bar przez 24 godziny. Próba gotowej instalacji wymaga właściwej procedury i protokołu." } },
        { "@type": "Question", "name": "Czy deklaracja zgodności i certyfikat oznaczają to samo?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Deklaracja pochodzi od odpowiedzialnego podmiotu, raport opisuje określone badania, a certyfikat strony trzeciej działa w granicach programu certyfikacji. Zawsze trzeba sprawdzić wystawcę, zakres, ważność i identyfikację wyrobu." } },
        { "@type": "Question", "name": "Co sprawdzić przed zakupem rury PE-X?", "acceptedAnswer": { "@type": "Answer", "text": "Sprawdź dokładny typ i wymiar, część oraz rok normy, klasę zastosowania, ciśnienie, budowę warstw, barierę tlenową, kompatybilne kształtki i narzędzia, instrukcję montażu, identyfikację partii oraz zgodność z obliczeniami projektu." } }
      ]
    },
    {
      "@type": "Service",
      "@id": "https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/#service",
      "name": "Projekt instalacji ogrzewania podłogowego",
      "url": "https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/",
      "provider": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "areaServed": { "@type": "Country", "name": "Polska" },
      "serviceType": "Projekt ogrzewania podłogowego z obliczeniami cieplnymi i hydraulicznymi"
    }
  ]
}
</script>

<script>
(function () {
  "use strict";

  var guide = document.getElementById("rk-iso-guide");
  if (!guide) {
    return;
  }

  var stages = {
    part1: {
      label: "ISO 15875-1:2025",
      title: "Najpierw ustal warunki odniesienia",
      scope: "Ogólne aspekty systemów PE-X, klasy zastosowania, ciśnienia projektowe i klasy wymiarowe.",
      confirms: "Jakie warunki temperaturowo-czasowe stanowią podstawę klasyfikacji i badań serii.",
      limits: "Że dowolna rura, kształtka i połączenie tworzą kompatybilny system.",
      document: "Pełne oznaczenie części, wydanie, klasę zastosowania i deklarowane ciśnienie."
    },
    part2: {
      label: "ISO 15875-2:2025",
      title: "Następnie zweryfikuj dokładną rurę PE-X",
      scope: "Charakterystyki rur PE-X i parametry właściwych badań; zakres obejmuje rury z warstwą barierową i bez niej.",
      confirms: "Właściwości zadeklarowane dla identyfikowanego typu i wymiaru przewodu.",
      limits: "Spełnienia kryterium DIN 4726 ani zgodności z dowolną kształtką o tej samej średnicy.",
      document: "Kartę dokładnego wyrobu, deklarację, raporty, wymiar, klasę, ciśnienie i numer partii."
    },
    part3: {
      label: "ISO 15875-3:2025",
      title: "Potwierdź przeznaczenie kształtek",
      scope: "Charakterystyki kształtek mechanicznych i elektrooporowych przeznaczonych do systemów PE-X.",
      confirms: "Zakres elementów połączeniowych ocenianych względem wymagań właściwych dla części 3.",
      limits: "Że każda złączka pasująca wymiarowo tworzy trwałe połączenie z wybraną rurą.",
      document: "Wykaz zgodnych rur, kształtek, tulei, uszczelnień i wymaganych narzędzi."
    },
    part5: {
      label: "ISO 15875-5:2025",
      title: "Na końcu sprawdź przydatność połączenia i systemu",
      scope: "Właściwości połączeń między rurami z części 2 a kształtkami z części 3.",
      confirms: "Przydatność określonego zestawu elementów do deklarowanych warunków systemowych.",
      limits: "Mocy podłogi, rozstawu, długości pętli, przepływu ani jakości montażu na budowie.",
      document: "Dokument systemowy, instrukcję połączeń, procedurę montażu i zakres objętych elementów."
    }
  };

  var tabs = guide.querySelectorAll("[data-rk-stage]");
  var stageLabel = document.getElementById("rk-iso-stage-label");
  var stageTitle = document.getElementById("rk-iso-stage-title");
  var stageScope = document.getElementById("rk-iso-stage-scope");
  var stageConfirms = document.getElementById("rk-iso-stage-confirms");
  var stageLimits = document.getElementById("rk-iso-stage-limits");
  var stageDocument = document.getElementById("rk-iso-stage-document");

  function showStage(key, shouldFocus) {
    var data = stages[key];
    if (!data) {
      return;
    }

    stageLabel.textContent = data.label;
    stageTitle.textContent = data.title;
    stageScope.textContent = data.scope;
    stageConfirms.textContent = data.confirms;
    stageLimits.textContent = data.limits;
    stageDocument.textContent = data.document;

    tabs.forEach(function (tab) {
      var isCurrent = tab.getAttribute("data-rk-stage") === key;
      tab.setAttribute("aria-selected", isCurrent ? "true" : "false");
      tab.setAttribute("tabindex", isCurrent ? "0" : "-1");
      if (isCurrent) {
        if (shouldFocus) {
          tab.focus();
        }
      }
    });
  }

  tabs.forEach(function (tab, index) {
    tab.addEventListener("click", function () {
      showStage(tab.getAttribute("data-rk-stage"), false);
    });

    tab.addEventListener("keydown", function (event) {
      var nextIndex = index;
      if (event.key === "ArrowRight" || event.key === "ArrowDown") {
        nextIndex = index + 1;
        if (nextIndex >= tabs.length) {
          nextIndex = 0;
        }
      } else if (event.key === "ArrowLeft" || event.key === "ArrowUp") {
        nextIndex = index - 1;
        if (nextIndex < 0) {
          nextIndex = tabs.length - 1;
        }
      } else if (event.key === "Home") {
        nextIndex = 0;
      } else if (event.key === "End") {
        nextIndex = tabs.length - 1;
      } else {
        return;
      }

      event.preventDefault();
      showStage(tabs[nextIndex].getAttribute("data-rk-stage"), true);
    });
  });

  showStage("part1", false);
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/norma-en-iso-15875/">EN ISO 15875:2025 – wymagania dla rur PE-X w ogrzewaniu podłogowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Jakie materiały są potrzebne do instalacji ogrzewania podłogowego?</title>
		<link>https://projekt-ogrzewania.pl/jakie-materialy-sa-potrzebne-do-instalacji-ogrzewania-podlogowego/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Fri, 14 Feb 2025 20:42:40 +0000</pubDate>
				<category><![CDATA[Instalacja ogrzewania podłogowego]]></category>
		<category><![CDATA[Koszty instalacji grzewczych]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Porady budowlane]]></category>
		<category><![CDATA[Systemy grzewcze]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[instalacja ogrzewania]]></category>
		<category><![CDATA[izolacja termiczna]]></category>
		<category><![CDATA[kolektor rozdzielaczowy]]></category>
		<category><![CDATA[materiały budowlane]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[rury pex]]></category>
		<category><![CDATA[sterowanie ogrzewaniem]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<category><![CDATA[wylewka podłogowa]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2195</guid>

					<description><![CDATA[<p>Jakie materiały są potrzebne do instalacji ogrzewania podłogowego? Dobór odpowiednich komponentów wpływa na wydajność i trwałość całego systemu. W tym artykule przedstawiamy kompletną listę niezbędnych elementów – od rur grzewczych, przez izolację, kolektor, aż po sterowanie i pokrycie podłogowe. Dowiedz się, jakie materiały wybrać, aby instalacja działała sprawnie przez lata i zapewniała komfort cieplny przy minimalnych kosztach eksploatacji.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jakie-materialy-sa-potrzebne-do-instalacji-ogrzewania-podlogowego/">Jakie materiały są potrzebne do instalacji ogrzewania podłogowego?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-materials-guide {
    --rk-dark: #102536;
    --rk-navy: #14384d;
    --rk-blue: #078fbe;
    --rk-cyan: #25c7d8;
    --rk-cyan-soft: #e9fbff;
    --rk-orange: #ff6d38;
    --rk-red: #df4537;
    --rk-yellow: #f2bd42;
    --rk-yellow-soft: #fff8df;
    --rk-green: #16836b;
    --rk-green-soft: #eaf8f3;
    --rk-purple: #6d5bd0;
    --rk-ink: #1f2937;
    --rk-text: #475968;
    --rk-muted: #6c7e8a;
    --rk-line: #d6e5ec;
    --rk-soft: #f4f9fb;
    --rk-warm: #fff3ec;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1180px;
    margin: 34px auto 72px;
    color: var(--rk-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 18px;
    line-height: 1.76;
  }

  #rk-materials-guide,
  #rk-materials-guide * {
    box-sizing: border-box;
  }

  #rk-materials-guide img,
  #rk-materials-guide svg {
    max-width: 100%;
  }

  #rk-materials-guide button,
  #rk-materials-guide input,
  #rk-materials-guide select,
  #rk-materials-guide label,
  #rk-materials-guide summary,
  #rk-materials-guide a {
    font: inherit;
    -webkit-tap-highlight-color: transparent;
  }

  #rk-materials-guide a {
    color: var(--rk-blue);
    font-weight: 780;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }

  #rk-materials-guide p,
  #rk-materials-guide ul,
  #rk-materials-guide ol {
    margin-top: 0;
    margin-bottom: 1.15em;
  }

  #rk-materials-guide h2,
  #rk-materials-guide h3,
  #rk-materials-guide h4 {
    margin-top: 0;
    color: var(--rk-dark);
    font-weight: 950;
    letter-spacing: -0.035em;
  }

  #rk-materials-guide h2 {
    margin-bottom: 18px;
    font-size: clamp(1.8rem, 4vw, 2.75rem);
    line-height: 1.08;
  }

  #rk-materials-guide h3 {
    margin-bottom: 10px;
    font-size: clamp(1.08rem, 2.2vw, 1.36rem);
    line-height: 1.22;
  }

  #rk-materials-guide .rk-materials-shell {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 32px;
    background: var(--rk-white);
    box-shadow: 0 28px 70px rgba(16, 37, 54, 0.11);
  }

  #rk-materials-guide .rk-materials-progress-track {
    position: sticky;
    z-index: 60;
    top: 0;
    height: 5px;
    background: rgba(214, 229, 236, 0.8);
  }

  #rk-materials-guide .rk-materials-progress {
    width: 0;
    height: 100%;
    background: linear-gradient(90deg, var(--rk-orange), var(--rk-cyan));
  }

  #rk-materials-guide .rk-materials-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(38px, 7vw, 74px);
    color: var(--rk-white);
    background:
      radial-gradient(circle at 89% 21%, rgba(255, 109, 56, 0.36), transparent 29%),
      radial-gradient(circle at 76% 90%, rgba(37, 199, 216, 0.22), transparent 34%),
      linear-gradient(126deg, #0f2233, #143d53 74%, #2b3743);
  }

  #rk-materials-guide .rk-materials-hero::after {
    content: "";
    position: absolute;
    right: -80px;
    bottom: -90px;
    width: 360px;
    height: 360px;
    border: 42px solid rgba(255, 255, 255, 0.045);
    border-radius: 50%;
  }

  #rk-materials-guide .rk-materials-hero-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: center;
  }

  #rk-materials-guide .rk-materials-eyebrow,
  #rk-materials-guide .rk-materials-kicker {
    display: inline-flex;
    gap: 9px;
    align-items: center;
    margin-bottom: 17px;
    color: var(--rk-orange);
    font-size: 0.72rem;
    font-weight: 950;
    letter-spacing: 0.09em;
    line-height: 1.35;
    text-transform: uppercase;
  }

  #rk-materials-guide .rk-materials-eyebrow {
    padding: 9px 14px;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 999px;
    color: #dffbff;
    background: rgba(255, 255, 255, 0.055);
  }

  #rk-materials-guide .rk-materials-eyebrow b {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--rk-orange);
    box-shadow: 0 0 0 7px rgba(255, 109, 56, 0.16);
  }

  #rk-materials-guide .rk-materials-hero-title {
    max-width: 790px;
    margin-bottom: 22px;
    color: var(--rk-white);
    font-size: clamp(2.15rem, 5.2vw, 4.35rem);
    font-weight: 980;
    letter-spacing: -0.058em;
    line-height: 0.99;
  }

  #rk-materials-guide .rk-materials-hero-lead {
    max-width: 800px;
    margin-bottom: 25px;
    color: #d7e8ef;
    font-size: clamp(1rem, 2vw, 1.22rem);
    line-height: 1.7;
  }

  #rk-materials-guide .rk-materials-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 11px 24px;
    color: #c7dbe4;
    font-size: 0.72rem;
    font-weight: 800;
  }

  #rk-materials-guide .rk-materials-meta span {
    display: inline-flex;
    gap: 8px;
    align-items: center;
  }

  #rk-materials-guide .rk-materials-meta i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--rk-orange);
  }

  #rk-materials-guide .rk-materials-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    padding: 17px clamp(22px, 5vw, 58px);
    border-bottom: 1px solid var(--rk-line);
    background: var(--rk-white);
  }

  #rk-materials-guide .rk-materials-nav a {
    padding: 8px 13px;
    border: 1px solid #c9dfe7;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-soft);
    font-size: 0.69rem;
    font-weight: 900;
    line-height: 1.35;
    text-decoration: none;
  }

  #rk-materials-guide .rk-materials-nav a:hover,
  #rk-materials-guide .rk-materials-nav a:focus-visible {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-materials-guide .rk-materials-body {
    padding: clamp(30px, 6vw, 68px);
  }

  #rk-materials-guide .rk-materials-section {
    scroll-margin-top: 30px;
    margin-bottom: clamp(58px, 9vw, 100px);
  }

  #rk-materials-guide .rk-materials-lead {
    max-width: 930px;
    color: var(--rk-text);
    font-size: clamp(1.02rem, 2vw, 1.2rem);
    line-height: 1.82;
  }

  #rk-materials-guide .rk-materials-dropcap::first-letter {
    float: left;
    margin: 10px 10px 0 0;
    color: var(--rk-orange);
    font-size: 4.4rem;
    font-weight: 950;
    line-height: 0.75;
  }

  #rk-materials-guide .rk-materials-answer {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(260px, 0.75fr);
    gap: 0;
    overflow: hidden;
    margin-top: 26px;
    border: 1px solid var(--rk-line);
    border-radius: 24px;
  }

  #rk-materials-guide .rk-materials-answer-main,
  #rk-materials-guide .rk-materials-answer-side {
    padding: clamp(25px, 4vw, 38px);
  }

  #rk-materials-guide .rk-materials-answer-main {
    background: var(--rk-soft);
  }

  #rk-materials-guide .rk-materials-answer-side {
    color: #4f4637;
    border-left: 1px solid #f1d993;
    background: var(--rk-yellow-soft);
  }

  #rk-materials-guide .rk-materials-answer p:last-child,
  #rk-materials-guide .rk-materials-card p:last-child,
  #rk-materials-guide .rk-materials-callout p:last-child {
    margin-bottom: 0;
  }

  #rk-materials-guide .rk-materials-grid-2,
  #rk-materials-guide .rk-materials-grid-3,
  #rk-materials-guide .rk-materials-grid-4 {
    display: grid;
    gap: 18px;
  }

  #rk-materials-guide .rk-materials-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-materials-guide .rk-materials-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-materials-guide .rk-materials-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #rk-materials-guide .rk-materials-card {
    min-width: 0;
    padding: 25px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-white);
    box-shadow: 0 10px 28px rgba(16, 37, 54, 0.055);
  }

  #rk-materials-guide .rk-materials-card-number {
    display: inline-flex;
    min-width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    margin-bottom: 17px;
    padding: 0 10px;
    border-radius: 13px;
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-blue), var(--rk-cyan));
    font-size: 0.72rem;
    font-weight: 950;
  }

  #rk-materials-guide .rk-materials-callout {
    margin-top: 24px;
    padding: 24px 27px;
    border-left: 6px solid var(--rk-cyan);
    border-radius: 0 18px 18px 0;
    background: var(--rk-cyan-soft);
  }

  #rk-materials-guide .rk-materials-callout.is-warning {
    border-left-color: var(--rk-orange);
    background: var(--rk-warm);
  }

  #rk-materials-guide .rk-materials-table-wrap {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-white);
  }

  #rk-materials-guide table {
    width: 100%;
    margin: 0;
    border-collapse: collapse;
    table-layout: fixed;
  }

  #rk-materials-guide th,
  #rk-materials-guide td {
    padding: 17px 15px;
    border: 0;
    border-bottom: 1px solid var(--rk-line);
    vertical-align: top;
    text-align: left;
    overflow-wrap: anywhere;
  }

  #rk-materials-guide th {
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.02em;
    line-height: 1.4;
  }

  #rk-materials-guide td {
    color: var(--rk-text);
    font-size: 0.83rem;
    line-height: 1.6;
  }

  #rk-materials-guide tr:last-child td {
    border-bottom: 0;
  }

  #rk-materials-guide tbody tr:nth-child(even) td {
    background: var(--rk-soft);
  }

  #rk-materials-guide .rk-materials-audit {
    overflow: hidden;
    border: 1px solid #bcdde8;
    border-radius: 28px;
    background: var(--rk-white);
    box-shadow: 0 20px 48px rgba(16, 37, 54, 0.09);
  }

  #rk-materials-guide .rk-materials-audit-head {
    padding: clamp(28px, 5vw, 48px);
    color: var(--rk-white);
    background:
      radial-gradient(circle at 91% 15%, rgba(255, 109, 56, 0.35), transparent 29%),
      linear-gradient(125deg, var(--rk-dark), #164a62);
  }

  #rk-materials-guide .rk-materials-audit-head h2,
  #rk-materials-guide .rk-materials-audit-head p {
    color: var(--rk-white);
  }

  #rk-materials-guide .rk-materials-audit-head p {
    max-width: 900px;
    margin-bottom: 0;
    color: #d8eaf1;
  }

  #rk-materials-guide .rk-materials-audit-layout {
    display: grid;
    grid-template-columns: minmax(300px, 0.8fr) minmax(0, 1.2fr);
  }

  #rk-materials-guide .rk-materials-audit-form {
    padding: clamp(25px, 4vw, 38px);
    border-right: 1px solid var(--rk-line);
    background: var(--rk-soft);
  }

  #rk-materials-guide .rk-materials-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }

  #rk-materials-guide .rk-materials-field {
    min-width: 0;
  }

  #rk-materials-guide .rk-materials-field.is-full {
    grid-column: 1 / -1;
  }

  #rk-materials-guide .rk-materials-field label {
    display: block;
    min-height: 2.6em;
    margin-bottom: 6px;
    color: var(--rk-dark);
    font-size: 0.7rem;
    font-weight: 900;
    line-height: 1.3;
  }

  #rk-materials-guide .rk-materials-field input,
  #rk-materials-guide .rk-materials-field select {
    width: 100%;
    min-height: 48px;
    padding: 10px 12px;
    border: 1px solid #bdd4de;
    border-radius: 12px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.82rem;
    font-weight: 760;
    outline: none;
  }

  #rk-materials-guide .rk-materials-field input:focus,
  #rk-materials-guide .rk-materials-field select:focus {
    border-color: var(--rk-blue);
    box-shadow: 0 0 0 4px rgba(7, 143, 190, 0.12);
  }

  #rk-materials-guide .rk-materials-checks {
    display: grid;
    gap: 10px;
    margin-top: 18px;
  }

  #rk-materials-guide .rk-materials-check {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 11px;
    align-items: start;
    padding: 12px;
    border: 1px solid var(--rk-line);
    border-radius: 13px;
    background: var(--rk-white);
    cursor: pointer;
  }

  #rk-materials-guide .rk-materials-check input {
    width: 20px;
    height: 20px;
    margin-top: 2px;
    accent-color: var(--rk-blue);
  }

  #rk-materials-guide .rk-materials-check span {
    color: var(--rk-text);
    font-size: 0.75rem;
    font-weight: 760;
    line-height: 1.45;
  }

  #rk-materials-guide .rk-materials-audit-reset {
    width: 100%;
    min-height: 48px;
    margin-top: 17px;
    padding: 11px 16px;
    border: 1px solid #bdd4de;
    border-radius: 12px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-weight: 900;
    cursor: pointer;
  }

  #rk-materials-guide .rk-materials-audit-reset:hover,
  #rk-materials-guide .rk-materials-audit-reset:focus-visible {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-materials-guide .rk-materials-audit-output {
    min-width: 0;
    padding: clamp(25px, 4vw, 42px);
  }

  #rk-materials-guide .rk-materials-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 20px;
  }

  #rk-materials-guide .rk-materials-metrics-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #rk-materials-guide .rk-materials-metric {
    min-width: 0;
    padding: 17px;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    background: var(--rk-soft);
  }

  #rk-materials-guide .rk-materials-metric small {
    display: block;
    min-height: 2.7em;
    color: var(--rk-muted);
    font-size: 0.65rem;
    font-weight: 850;
    line-height: 1.35;
  }

  #rk-materials-guide .rk-materials-metric strong {
    display: block;
    margin-top: 6px;
    color: var(--rk-dark);
    font-size: clamp(1.15rem, 2.6vw, 1.75rem);
    font-weight: 950;
    line-height: 1.15;
  }

  #rk-materials-guide .rk-materials-audit-status {
    margin-bottom: 20px;
    padding: 18px 20px;
    border-left: 6px solid var(--rk-green);
    border-radius: 0 15px 15px 0;
    background: var(--rk-green-soft);
  }

  #rk-materials-guide .rk-materials-audit-status.is-warning {
    border-left-color: var(--rk-yellow);
    background: var(--rk-yellow-soft);
  }

  #rk-materials-guide .rk-materials-audit-status.is-danger {
    border-left-color: var(--rk-red);
    background: #fff0ef;
  }

  #rk-materials-guide .rk-materials-audit-status strong,
  #rk-materials-guide .rk-materials-audit-status span {
    display: block;
  }

  #rk-materials-guide .rk-materials-audit-status span {
    margin-top: 4px;
    color: var(--rk-text);
    font-size: 0.77rem;
    line-height: 1.55;
  }

  #rk-materials-guide .rk-materials-audit-plan {
    overflow: hidden;
    margin-bottom: 20px;
    padding: 14px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-soft);
  }

  #rk-materials-guide .rk-materials-audit-plan svg {
    display: block;
    width: 100%;
    height: auto;
  }

  #rk-materials-guide .rk-materials-audit-list {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  #rk-materials-guide .rk-materials-audit-list li {
    position: relative;
    margin: 0;
    padding: 12px 14px 12px 43px;
    border: 1px solid var(--rk-line);
    border-radius: 13px;
    color: var(--rk-text);
    background: var(--rk-white);
    font-size: 0.77rem;
    line-height: 1.5;
  }

  #rk-materials-guide .rk-materials-audit-list li::before {
    content: "!";
    position: absolute;
    top: 12px;
    left: 13px;
    display: inline-flex;
    width: 21px;
    height: 21px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 0.66rem;
    font-weight: 950;
  }

  #rk-materials-guide .rk-materials-tool-note {
    padding: 18px clamp(25px, 4vw, 42px);
    border-top: 1px solid var(--rk-line);
    color: var(--rk-muted);
    background: #fbfdfe;
    font-size: 0.69rem;
    line-height: 1.55;
  }

  #rk-materials-guide .rk-materials-formulas {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin: 25px 0;
  }

  #rk-materials-guide .rk-materials-formula {
    min-width: 0;
    padding: 25px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: linear-gradient(145deg, var(--rk-white), var(--rk-cyan-soft));
  }

  #rk-materials-guide .rk-materials-formula span {
    display: block;
    margin-bottom: 10px;
    color: var(--rk-blue);
    font-size: 0.68rem;
    font-weight: 950;
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }

  #rk-materials-guide .rk-materials-formula strong {
    display: block;
    overflow-wrap: anywhere;
    color: var(--rk-dark);
    font-size: clamp(1.18rem, 2.6vw, 1.7rem);
    line-height: 1.35;
  }

  #rk-materials-guide .rk-materials-formula p {
    margin: 12px 0 0;
    color: var(--rk-text);
    font-size: 0.76rem;
    line-height: 1.6;
  }

  #rk-materials-guide .rk-materials-inline-cta,
  #rk-materials-guide .rk-materials-final-cta {
    overflow: hidden;
    border-radius: 27px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 91% 16%, rgba(255, 109, 56, 0.39), transparent 28%),
      linear-gradient(125deg, var(--rk-dark), #17475e);
  }

  #rk-materials-guide .rk-materials-inline-cta {
    margin-top: 25px;
    padding: clamp(28px, 5vw, 48px);
  }

  #rk-materials-guide .rk-materials-final-cta {
    margin-top: clamp(55px, 8vw, 88px);
    padding: clamp(31px, 5vw, 55px);
  }

  #rk-materials-guide .rk-materials-inline-cta h3,
  #rk-materials-guide .rk-materials-final-cta h2 {
    max-width: 880px;
    color: var(--rk-white);
  }

  #rk-materials-guide .rk-materials-inline-cta p,
  #rk-materials-guide .rk-materials-final-cta p {
    max-width: 920px;
    color: #d7e9f1;
  }

  #rk-materials-guide .rk-materials-cta-button {
    display: inline-flex;
    min-height: 54px;
    align-items: center;
    justify-content: center;
    margin-top: 8px;
    padding: 13px 23px;
    border-radius: 14px;
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-orange), #ef4937);
    box-shadow: 0 14px 30px rgba(239, 73, 55, 0.25);
    font-weight: 950;
    line-height: 1.35;
    text-align: center;
    text-decoration: none;
  }

  #rk-materials-guide .rk-materials-cta-button:hover,
  #rk-materials-guide .rk-materials-cta-button:focus-visible {
    color: var(--rk-white);
    transform: translateY(-2px);
    box-shadow: 0 18px 36px rgba(239, 73, 55, 0.32);
  }

  #rk-materials-guide .rk-materials-disclosure {
    display: block;
    margin-top: 12px;
    color: #b9d0db;
    font-size: 0.65rem;
    line-height: 1.5;
  }

  #rk-materials-guide .rk-materials-steps {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    counter-reset: joint-step;
  }

  #rk-materials-guide .rk-materials-step {
    position: relative;
    min-width: 0;
    padding: 25px 25px 25px 78px;
    border: 1px solid var(--rk-line);
    border-radius: 19px;
    background: var(--rk-white);
  }

  #rk-materials-guide .rk-materials-step::before {
    counter-increment: joint-step;
    content: counter(joint-step, decimal-leading-zero);
    position: absolute;
    top: 24px;
    left: 22px;
    display: inline-flex;
    width: 42px;
    height: 42px;
    align-items: center;
    justify-content: center;
    border-radius: 13px;
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.68rem;
    font-weight: 950;
  }

  #rk-materials-guide .rk-materials-step p {
    margin-bottom: 0;
    color: var(--rk-text);
  }

  #rk-materials-guide .rk-materials-error {
    position: relative;
    padding: 26px;
    border: 1px solid #f0cbc5;
    border-radius: 20px;
    background: #fff9f8;
  }

  #rk-materials-guide .rk-materials-error b {
    display: inline-block;
    margin-bottom: 11px;
    color: var(--rk-red);
    font-size: 0.68rem;
    letter-spacing: 0.08em;
  }

  #rk-materials-guide .rk-materials-checklist {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px;
    margin: 22px 0 0;
    padding: 0;
    list-style: none;
  }

  #rk-materials-guide .rk-materials-checklist li {
    position: relative;
    margin: 0;
    padding: 17px 17px 17px 51px;
    border: 1px solid var(--rk-line);
    border-radius: 15px;
    color: var(--rk-text);
    background: var(--rk-soft);
  }

  #rk-materials-guide .rk-materials-checklist li::before {
    content: "✓";
    position: absolute;
    top: 17px;
    left: 17px;
    display: inline-flex;
    width: 23px;
    height: 23px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-green);
    font-size: 0.69rem;
    font-weight: 950;
  }

  #rk-materials-guide .rk-materials-faq {
    display: grid;
    gap: 12px;
  }

  #rk-materials-guide .rk-materials-faq details {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    background: var(--rk-white);
  }

  #rk-materials-guide .rk-materials-faq summary {
    position: relative;
    padding: 19px 55px 19px 20px;
    color: var(--rk-dark);
    font-weight: 900;
    line-height: 1.45;
    cursor: pointer;
    list-style: none;
  }

  #rk-materials-guide .rk-materials-faq summary::-webkit-details-marker {
    display: none;
  }

  #rk-materials-guide .rk-materials-faq summary::after {
    content: "+";
    position: absolute;
    top: 50%;
    right: 18px;
    display: inline-flex;
    width: 28px;
    height: 28px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-blue);
    transform: translateY(-50%);
  }

  #rk-materials-guide .rk-materials-faq details[open] summary::after {
    content: "−";
  }

  #rk-materials-guide .rk-materials-faq-answer {
    padding: 0 20px 20px;
    color: var(--rk-text);
  }

  #rk-materials-guide .rk-materials-faq-answer p:last-child {
    margin-bottom: 0;
  }

  #rk-materials-guide .rk-materials-sources {
    padding: 24px 27px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    color: var(--rk-text);
    background: var(--rk-soft);
    font-size: 0.76rem;
    line-height: 1.65;
  }

  #rk-materials-guide .rk-materials-sources strong {
    display: block;
    margin-bottom: 8px;
    color: var(--rk-dark);
  }

  #rk-materials-guide .rk-materials-author {
    position: relative;
    overflow: hidden;
    margin-top: clamp(55px, 8vw, 88px);
    border: 1px solid var(--rk-line);
    border-radius: 27px;
    background: var(--rk-white);
    box-shadow: 0 20px 50px rgba(16, 37, 54, 0.09);
  }

  #rk-materials-guide .rk-materials-author > input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
  }

  #rk-materials-guide .rk-materials-author-head {
    display: flex;
    gap: 20px;
    align-items: center;
    justify-content: space-between;
    padding: clamp(27px, 5vw, 44px);
    color: var(--rk-white);
    border-bottom: 5px solid var(--rk-cyan);
    background: var(--rk-dark);
  }

  #rk-materials-guide .rk-materials-author-head h2,
  #rk-materials-guide .rk-materials-author-head p {
    color: var(--rk-white);
  }

  #rk-materials-guide .rk-materials-author-head h2 {
    margin-bottom: 5px;
  }

  #rk-materials-guide .rk-materials-author-head p {
    margin-bottom: 0;
    color: #d7e9f1;
  }

  #rk-materials-guide .rk-materials-author-mark {
    flex: 0 0 auto;
    padding: 12px 17px;
    border: 1px solid rgba(37, 199, 216, 0.4);
    border-radius: 15px;
    color: #79f1ff;
    font-size: 0.72rem;
    font-weight: 950;
    letter-spacing: 0.08em;
  }

  #rk-materials-guide .rk-materials-author-layout {
    display: grid;
    grid-template-columns: minmax(270px, 0.64fr) minmax(0, 1.36fr);
  }

  #rk-materials-guide .rk-materials-author-side {
    padding: clamp(30px, 5vw, 48px);
    border-right: 1px solid var(--rk-line);
    background: var(--rk-soft);
    text-align: center;
  }

  #rk-materials-guide .rk-materials-author-photo {
    width: min(205px, 74%);
    margin: 0 auto 22px;
    overflow: hidden;
    border: 8px solid var(--rk-white);
    border-radius: 50%;
    box-shadow: 0 16px 36px rgba(16, 37, 54, 0.14);
    aspect-ratio: 1;
  }

  #rk-materials-guide .rk-materials-author-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  #rk-materials-guide .rk-materials-author-name {
    margin-bottom: 7px;
    color: var(--rk-dark);
    font-size: 1.5rem;
    font-weight: 950;
    letter-spacing: -0.04em;
    line-height: 1.1;
  }

  #rk-materials-guide .rk-materials-author-role {
    color: var(--rk-blue);
    font-size: 0.7rem;
    font-weight: 950;
    letter-spacing: 0.07em;
    line-height: 1.55;
    text-transform: uppercase;
  }

  #rk-materials-guide .rk-materials-author-main {
    padding: clamp(30px, 5vw, 48px);
  }

  #rk-materials-guide .rk-materials-author-quote {
    position: relative;
    margin: 0 0 24px;
    padding: 24px 24px 24px 68px;
    border: 0;
    border-radius: 18px;
    background: var(--rk-cyan-soft);
  }

  #rk-materials-guide .rk-materials-author-quote::before {
    content: "“";
    position: absolute;
    top: 3px;
    left: 20px;
    color: var(--rk-cyan);
    font-size: 4rem;
    font-weight: 950;
    line-height: 1;
  }

  #rk-materials-guide .rk-materials-author-quote p {
    margin-bottom: 0;
    color: var(--rk-dark);
    font-size: 1.01rem;
    font-style: italic;
    font-weight: 800;
    line-height: 1.75;
  }

  #rk-materials-guide .rk-materials-author-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 15px 15px 0 0;
  }

  #rk-materials-guide .rk-materials-author-tab {
    padding: 14px 10px;
    color: var(--rk-muted);
    background: var(--rk-soft);
    font-size: 0.7rem;
    font-weight: 900;
    line-height: 1.35;
    text-align: center;
    text-transform: uppercase;
    cursor: pointer;
  }

  #rk-materials-guide .rk-materials-author-tab + .rk-materials-author-tab {
    border-left: 1px solid var(--rk-line);
  }

  #rk-materials-guide .rk-materials-author-panel {
    display: none;
    min-height: 176px;
    padding: 25px;
    border: 1px solid var(--rk-line);
    border-top: 0;
    border-radius: 0 0 15px 15px;
  }

  #rk-materials-guide .rk-materials-author-panel p:last-child {
    margin-bottom: 0;
  }

  #rk-materials-author-about:checked ~ .rk-materials-author-layout .rk-materials-author-panel-about,
  #rk-materials-author-exp:checked ~ .rk-materials-author-layout .rk-materials-author-panel-exp,
  #rk-materials-author-sites:checked ~ .rk-materials-author-layout .rk-materials-author-panel-sites {
    display: block;
  }

  #rk-materials-author-about:checked ~ .rk-materials-author-layout label[for="rk-materials-author-about"],
  #rk-materials-author-exp:checked ~ .rk-materials-author-layout label[for="rk-materials-author-exp"],
  #rk-materials-author-sites:checked ~ .rk-materials-author-layout label[for="rk-materials-author-sites"] {
    color: var(--rk-blue);
    background: var(--rk-white);
    box-shadow: inset 0 -5px 0 var(--rk-blue);
  }

  #rk-materials-guide .rk-materials-site-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
  }

  #rk-materials-guide .rk-materials-site-links a {
    padding: 8px 13px;
    border: 1px solid #c6dbe4;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.74rem;
    font-weight: 900;
    text-decoration: none;
  }

  #rk-materials-guide .rk-materials-site-links a:hover,
  #rk-materials-guide .rk-materials-site-links a:focus-visible {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  @media (max-width: 980px) {
    #rk-materials-guide .rk-materials-hero-grid,
    #rk-materials-guide .rk-materials-answer,
    #rk-materials-guide .rk-materials-audit-layout,
    #rk-materials-guide .rk-materials-author-layout {
      grid-template-columns: 1fr;
    }

    #rk-materials-guide .rk-materials-answer-side,
    #rk-materials-guide .rk-materials-audit-form,
    #rk-materials-guide .rk-materials-author-side {
      border-right: 0;
      border-left: 0;
      border-bottom: 1px solid var(--rk-line);
    }

    #rk-materials-guide .rk-materials-grid-4,
    #rk-materials-guide .rk-materials-grid-3 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-materials-guide .rk-materials-metrics-4,
    #rk-materials-guide .rk-materials-formulas {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (max-width: 720px) {
    #rk-materials-guide {
      margin-top: 20px;
      font-size: 16px;
    }

    #rk-materials-guide .rk-materials-shell {
      border-radius: 20px;
    }

    #rk-materials-guide .rk-materials-hero,
    #rk-materials-guide .rk-materials-body {
      padding-right: 21px;
      padding-left: 21px;
    }

    #rk-materials-guide .rk-materials-nav {
      width: auto;
      margin: 18px 20px 0;
      padding: 20px;
      gap: 10px;
      border: 1px solid var(--rk-line);
      border-radius: 20px;
      background: var(--rk-soft);
    }

    #rk-materials-guide .rk-materials-nav::before {
      content: "NA SKRÓTY";
      flex: 0 0 100%;
      margin-bottom: 4px;
      color: var(--rk-dark);
      font-size: 0.75rem;
      font-weight: 900;
      letter-spacing: 0.08em;
      line-height: 1.3;
    }

    #rk-materials-guide .rk-materials-grid-2,
    #rk-materials-guide .rk-materials-grid-3,
    #rk-materials-guide .rk-materials-grid-4,
    #rk-materials-guide .rk-materials-steps,
    #rk-materials-guide .rk-materials-checklist,
    #rk-materials-guide .rk-materials-metrics {
      grid-template-columns: 1fr;
    }

    #rk-materials-guide .rk-materials-formulas {
      grid-template-columns: 1fr;
    }

    #rk-materials-guide .rk-materials-fields {
      grid-template-columns: 1fr;
    }

    #rk-materials-guide .rk-materials-field.is-full {
      grid-column: auto;
    }

    #rk-materials-guide .rk-materials-field label,
    #rk-materials-guide .rk-materials-metric small {
      min-height: 0;
    }

    #rk-materials-guide .rk-materials-step {
      padding: 76px 22px 23px;
    }

    #rk-materials-guide .rk-materials-step::before {
      top: 20px;
      left: 21px;
    }

    #rk-materials-guide .rk-materials-author-head {
      align-items: flex-start;
      flex-direction: column;
    }

    #rk-materials-guide .rk-materials-author-main {
      padding-right: 20px;
      padding-left: 20px;
    }

    #rk-materials-guide .rk-materials-author-quote {
      padding: 58px 20px 21px;
    }

    #rk-materials-guide .rk-materials-author-quote::before {
      top: 0;
      left: 18px;
    }

    #rk-materials-guide .rk-materials-author-tabs {
      grid-template-columns: 1fr;
      border-radius: 15px 15px 0 0;
    }

    #rk-materials-guide .rk-materials-author-tab + .rk-materials-author-tab {
      border-top: 1px solid var(--rk-line);
      border-left: 0;
    }

    #rk-materials-guide .rk-materials-table-wrap {
      overflow: visible;
      border: 0;
      background: transparent;
    }

    #rk-materials-guide table,
    #rk-materials-guide tbody,
    #rk-materials-guide tr,
    #rk-materials-guide td {
      display: block;
      width: 100%;
    }

    #rk-materials-guide thead {
      position: absolute;
      width: 1px;
      height: 1px;
      overflow: hidden;
      clip: rect(0 0 0 0);
      white-space: nowrap;
    }

    #rk-materials-guide tbody {
      display: grid;
      gap: 13px;
    }

    #rk-materials-guide tbody tr {
      overflow: hidden;
      border: 1px solid var(--rk-line);
      border-radius: 16px;
      background: var(--rk-white);
      box-shadow: 0 8px 22px rgba(16, 37, 54, 0.05);
    }

    #rk-materials-guide td,
    #rk-materials-guide tbody tr:nth-child(even) td {
      display: grid;
      grid-template-columns: minmax(110px, 0.8fr) minmax(0, 1.2fr);
      gap: 12px;
      align-items: start;
      padding: 13px 15px;
      border-bottom: 1px solid var(--rk-line);
      background: var(--rk-white);
    }

    #rk-materials-guide td:last-child {
      border-bottom: 0;
    }

    #rk-materials-guide td::before {
      content: attr(data-label);
      color: var(--rk-dark);
      font-size: 0.69rem;
      font-weight: 900;
      line-height: 1.45;
    }
  }

  @media (max-width: 470px) {
    #rk-materials-guide .rk-materials-hero-title {
      font-size: 2.1rem;
    }

    #rk-materials-guide td,
    #rk-materials-guide tbody tr:nth-child(even) td {
      grid-template-columns: 1fr;
      gap: 4px;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    #rk-materials-guide *,
    #rk-materials-guide *::before,
    #rk-materials-guide *::after {
      scroll-behavior: auto !important;
      transition-duration: 0.01ms !important;
    }
  }


#rk-materials-guide .rk-materials-equivalence {
    display: grid;
    gap: 12px;
    margin: 20px 0;
    padding: 20px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-soft);
  }

  #rk-materials-guide .rk-materials-equivalence-row {
    display: grid;
    grid-template-columns: 86px minmax(0, 1fr) 76px;
    gap: 12px;
    align-items: center;
  }

  #rk-materials-guide .rk-materials-equivalence-row span,
  #rk-materials-guide .rk-materials-equivalence-row strong {
    color: var(--rk-dark);
    font-size: 0.72rem;
    line-height: 1.35;
  }

  #rk-materials-guide .rk-materials-equivalence-row strong {
    text-align: right;
  }

  #rk-materials-guide .rk-materials-bar-track {
    height: 15px;
    overflow: hidden;
    border-radius: 999px;
    background: #dcebf0;
  }

  #rk-materials-guide .rk-materials-bar {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    transition: width 220ms ease;
  }

  #rk-materials-guide .rk-materials-bar.is-eps { background: var(--rk-cyan); }
  #rk-materials-guide .rk-materials-bar.is-xps { background: var(--rk-purple); }
  #rk-materials-guide .rk-materials-bar.is-pir { background: var(--rk-orange); }

  #rk-materials-guide .rk-materials-layer-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 14px 0 0;
    padding: 0;
    list-style: none;
  }

  #rk-materials-guide .rk-materials-layer-legend li {
    display: inline-flex;
    gap: 7px;
    align-items: center;
    margin: 0;
    color: var(--rk-muted);
    font-size: 0.65rem;
    font-weight: 800;
  }

  #rk-materials-guide .rk-materials-layer-legend i {
    width: 11px;
    height: 11px;
    border-radius: 3px;
  }

  #rk-materials-guide .rk-materials-myth {
    position: relative;
    overflow: hidden;
    padding: clamp(24px, 4vw, 38px);
    border: 1px solid #ffd0c2;
    border-radius: 24px;
    background: linear-gradient(135deg, #fff6f1, #fffdfb);
  }

  #rk-materials-guide .rk-materials-myth::before {
    content: "MIT";
    position: absolute;
    top: 16px;
    right: 18px;
    color: rgba(223, 69, 55, 0.09);
    font-size: clamp(3.2rem, 9vw, 7rem);
    font-weight: 980;
    line-height: 1;
  }

  #rk-materials-guide .rk-materials-myth > * {
    position: relative;
    z-index: 1;
  }

  #rk-materials-guide .rk-materials-decision {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-top: 24px;
  }

  #rk-materials-guide .rk-materials-decision-card {
    min-width: 0;
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 19px;
    background: var(--rk-white);
  }

  #rk-materials-guide .rk-materials-decision-card b {
    display: inline-flex;
    margin-bottom: 12px;
    padding: 5px 9px;
    border-radius: 8px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 0.65rem;
  }

  #rk-materials-guide .rk-materials-decision-card h3 {
    margin-bottom: 8px;
    font-size: 1rem;
  }

  #rk-materials-guide .rk-materials-decision-card p {
    margin: 0;
    color: var(--rk-text);
    font-size: 0.75rem;
    line-height: 1.55;
  }

  @media (max-width: 980px) {
    #rk-materials-guide .rk-materials-decision {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (max-width: 720px) {
    #rk-materials-guide .rk-materials-decision {
      grid-template-columns: 1fr;
    }

    #rk-materials-guide .rk-materials-equivalence-row {
      grid-template-columns: 70px minmax(0, 1fr) 64px;
      gap: 9px;
    }
  }
  #rk-materials-guide .rk-materials-concepts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: 24px;
  }

  #rk-materials-guide .rk-materials-concept {
    min-width: 0;
    padding: 24px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: linear-gradient(145deg, var(--rk-white), var(--rk-soft));
  }

  #rk-materials-guide .rk-materials-concept b {
    display: inline-flex;
    min-width: 42px;
    height: 42px;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
    padding: 0 10px;
    border-radius: 12px;
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.7rem;
  }

  #rk-materials-guide .rk-materials-concept h3 {
    margin-bottom: 8px;
    font-size: 1.04rem;
  }

  #rk-materials-guide .rk-materials-concept p {
    margin: 0;
    color: var(--rk-text);
    font-size: 0.78rem;
    line-height: 1.62;
  }

  #rk-materials-guide .rk-materials-comparison {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 0 0 20px;
  }

  #rk-materials-guide .rk-materials-scenario {
    min-width: 0;
    padding: 20px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-soft);
  }

  #rk-materials-guide .rk-materials-scenario.is-b {
    border-color: #a9e0e8;
    background: var(--rk-cyan-soft);
  }

  #rk-materials-guide .rk-materials-scenario span {
    display: block;
    margin-bottom: 5px;
    color: var(--rk-muted);
    font-size: 0.64rem;
    font-weight: 950;
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }

  #rk-materials-guide .rk-materials-scenario strong {
    display: block;
    color: var(--rk-dark);
    font-size: 1.1rem;
    font-weight: 950;
    line-height: 1.25;
  }

  #rk-materials-guide .rk-materials-scenario small {
    display: block;
    margin-top: 7px;
    color: var(--rk-text);
    font-size: 0.68rem;
    line-height: 1.45;
  }

  #rk-materials-guide .rk-materials-chart {
    margin-bottom: 20px;
    padding: 21px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-soft);
  }

  #rk-materials-guide .rk-materials-chart-title {
    margin-bottom: 14px;
    color: var(--rk-dark);
    font-size: 0.74rem;
    font-weight: 950;
  }

  #rk-materials-guide .rk-materials-bar-row {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr) 110px;
    gap: 11px;
    align-items: center;
    margin-top: 12px;
  }

  #rk-materials-guide .rk-materials-bar-row span,
  #rk-materials-guide .rk-materials-bar-row strong {
    color: var(--rk-dark);
    font-size: 0.69rem;
    line-height: 1.35;
  }

  #rk-materials-guide .rk-materials-bar-row strong {
    text-align: right;
  }

  #rk-materials-guide .rk-materials-bar-track {
    height: 18px;
    overflow: hidden;
    border-radius: 999px;
    background: #dcebf0;
  }

  #rk-materials-guide .rk-materials-bar {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    transition: width 220ms ease;
  }

  #rk-materials-guide .rk-materials-bar.is-a {
    background: linear-gradient(90deg, var(--rk-orange), #ef4937);
  }

  #rk-materials-guide .rk-materials-bar.is-b {
    background: linear-gradient(90deg, var(--rk-blue), var(--rk-cyan));
  }

  #rk-materials-guide .rk-materials-truth {
    position: relative;
    overflow: hidden;
    padding: clamp(25px, 4vw, 40px);
    border: 1px solid #ffd0c2;
    border-radius: 24px;
    background: linear-gradient(135deg, #fff4ee, #fffdfb);
  }

  #rk-materials-guide .rk-materials-truth::after {
    content: "FAKT";
    position: absolute;
    top: 17px;
    right: 19px;
    color: rgba(223, 69, 55, 0.08);
    font-size: clamp(3.1rem, 9vw, 7rem);
    font-weight: 980;
    line-height: 1;
  }

  #rk-materials-guide .rk-materials-truth > * {
    position: relative;
    z-index: 1;
  }

  #rk-materials-guide .rk-materials-factors {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 15px;
    margin-top: 24px;
  }

  #rk-materials-guide .rk-materials-factor {
    min-width: 0;
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-white);
  }

  #rk-materials-guide .rk-materials-factor b {
    display: inline-flex;
    margin-bottom: 11px;
    padding: 5px 9px;
    border-radius: 8px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 0.63rem;
  }

  #rk-materials-guide .rk-materials-factor h3 {
    margin-bottom: 7px;
    font-size: 1rem;
  }

  #rk-materials-guide .rk-materials-factor p {
    margin: 0;
    color: var(--rk-text);
    font-size: 0.74rem;
    line-height: 1.55;
  }

  #rk-materials-guide .rk-materials-assumption {
    margin-top: 18px;
    padding: 17px 19px;
    border: 1px dashed #b9d6e0;
    border-radius: 15px;
    color: var(--rk-text);
    background: #fbfdfe;
    font-size: 0.71rem;
    line-height: 1.55;
  }

  @media (max-width: 980px) {
    #rk-materials-guide .rk-materials-concepts,
    #rk-materials-guide .rk-materials-factors {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (max-width: 720px) {
    #rk-materials-guide .rk-materials-concepts,
    #rk-materials-guide .rk-materials-factors,
    #rk-materials-guide .rk-materials-comparison {
      grid-template-columns: 1fr;
    }

    #rk-materials-guide .rk-materials-bar-row {
      grid-template-columns: 72px minmax(0, 1fr);
      gap: 8px;
    }

    #rk-materials-guide .rk-materials-bar-row strong {
      grid-column: 1 / -1;
      text-align: left;
    }
  }


  /* Ten konfigurator ma trzy rozbudowane listy wyników, dlatego na desktopie
     formularz i wynik korzystają z pełnej szerokości zamiast wąskich kolumn. */
  #rk-materials-guide .rk-materials-audit-layout {
    grid-template-columns: 1fr;
  }

  #rk-materials-guide .rk-materials-audit-form {
    border-right: 0;
    border-bottom: 1px solid var(--rk-line);
  }

  #rk-materials-guide .rk-materials-decision.is-two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-materials-guide .rk-materials-config-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 18px;
  }

  #rk-materials-guide .rk-materials-config-badge {
    display: inline-flex;
    align-items: center;
    padding: 7px 11px;
    border: 1px solid #c7dde6;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-soft);
    font-size: 0.64rem;
    font-weight: 900;
    line-height: 1.3;
  }

  #rk-materials-guide .rk-materials-output-columns {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 18px;
  }

  #rk-materials-guide .rk-materials-output-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: var(--rk-white);
  }

  #rk-materials-guide .rk-materials-output-card h3 {
    min-height: 65px;
    margin: 0;
    padding: 15px 16px;
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.78rem;
    line-height: 1.35;
  }

  #rk-materials-guide .rk-materials-output-card.is-selected h3 {
    background: var(--rk-blue);
  }

  #rk-materials-guide .rk-materials-output-card.is-verify h3 {
    background: #a95729;
  }

  #rk-materials-guide .rk-materials-material-list {
    display: grid;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  #rk-materials-guide .rk-materials-material-list li {
    position: relative;
    margin: 0;
    padding: 12px 12px 12px 38px;
    border-bottom: 1px solid var(--rk-line);
    color: var(--rk-text);
    font-size: 0.69rem;
    line-height: 1.48;
  }

  #rk-materials-guide .rk-materials-material-list li:last-child {
    border-bottom: 0;
  }

  #rk-materials-guide .rk-materials-material-list li::before {
    content: "✓";
    position: absolute;
    top: 13px;
    left: 13px;
    display: inline-flex;
    width: 18px;
    height: 18px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-green);
    font-size: 0.58rem;
    font-weight: 950;
  }

  #rk-materials-guide .rk-materials-output-card.is-selected .rk-materials-material-list li::before {
    background: var(--rk-blue);
  }

  #rk-materials-guide .rk-materials-output-card.is-verify .rk-materials-material-list li::before {
    content: "?";
    background: var(--rk-orange);
  }

  #rk-materials-guide .rk-materials-layer-stack {
    display: grid;
    gap: 7px;
    margin: 20px 0;
    padding: 17px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-soft);
  }

  #rk-materials-guide .rk-materials-layer-row {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    padding: 11px 13px;
    border: 1px solid #d1e2e8;
    border-radius: 12px;
    background: var(--rk-white);
  }

  #rk-materials-guide .rk-materials-layer-row b {
    color: var(--rk-blue);
    font-size: 0.62rem;
    letter-spacing: 0.045em;
    line-height: 1.35;
    text-transform: uppercase;
  }

  #rk-materials-guide .rk-materials-layer-row span {
    color: var(--rk-text);
    font-size: 0.7rem;
    font-weight: 760;
    line-height: 1.45;
  }

  #rk-materials-guide .rk-materials-tool-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 18px;
  }

  #rk-materials-guide .rk-materials-tool-button {
    min-height: 47px;
    padding: 10px 14px;
    border: 1px solid #bdd4de;
    border-radius: 12px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.72rem;
    font-weight: 900;
    cursor: pointer;
  }

  #rk-materials-guide .rk-materials-tool-button.is-primary {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-materials-guide .rk-materials-tool-button:hover,
  #rk-materials-guide .rk-materials-tool-button:focus-visible {
    color: var(--rk-white);
    border-color: var(--rk-orange);
    background: var(--rk-orange);
  }

  #rk-materials-guide .rk-materials-copy-status {
    min-height: 1.45em;
    margin: 9px 0 0;
    color: var(--rk-green);
    font-size: 0.64rem;
    font-weight: 850;
    line-height: 1.4;
  }

  #rk-materials-guide .rk-materials-buy-warning {
    margin-top: 18px;
    padding: 18px;
    border-left: 6px solid var(--rk-orange);
    border-radius: 0 15px 15px 0;
    color: var(--rk-text);
    background: var(--rk-warm);
  }

  #rk-materials-guide .rk-materials-buy-warning strong {
    display: block;
    margin-bottom: 7px;
    color: var(--rk-dark);
    font-size: 0.76rem;
  }

  #rk-materials-guide .rk-materials-buy-warning p {
    margin: 0;
    font-size: 0.7rem;
    line-height: 1.55;
  }

  #rk-materials-guide .rk-materials-field-note {
    display: block;
    margin-top: 5px;
    color: var(--rk-muted);
    font-size: 0.61rem;
    font-weight: 700;
    line-height: 1.4;
  }

  #rk-materials-guide .rk-materials-sales-cta {
    text-decoration: none;
  }

  @media (max-width: 980px) {
    #rk-materials-guide .rk-materials-output-columns {
      grid-template-columns: 1fr;
    }

    #rk-materials-guide .rk-materials-output-card h3 {
      min-height: 0;
    }
  }

  @media (max-width: 720px) {
    #rk-materials-guide .rk-materials-decision.is-two {
      grid-template-columns: 1fr;
    }

    #rk-materials-guide .rk-materials-tool-actions {
      grid-template-columns: 1fr;
    }

    #rk-materials-guide .rk-materials-layer-row {
      grid-template-columns: 1fr;
      gap: 4px;
    }
  }


</style>

<article id="rk-materials-guide">
  <div class="rk-materials-shell">
    <div class="rk-materials-progress-track" aria-hidden="true"><div class="rk-materials-progress" id="rk-materials-progress"></div></div>

    <header class="rk-materials-hero">
      <div class="rk-materials-hero-grid">
        <div>
          <span class="rk-materials-eyebrow"><b></b> Kompletowanie systemu • bez przypadkowych zakupów</span>
          <div class="rk-materials-hero-title">Jakie materiały są potrzebne do ogrzewania podłogowego?</div>
          <p class="rk-materials-hero-lead">Kompletna lista nie kończy się na rurze, styropianie i rozdzielaczu. Musi uwzględnić konstrukcję podłogi, system mocowania, dylatacje, hydraulikę, automatykę, próbę szczelności i rodzaj okładziny. Pokazujemy, co jest potrzebne zawsze, co zależy od technologii oraz czego nie warto kupować przed otrzymaniem projektu.</p>
          <div class="rk-materials-meta">
            <span><i></i> Autor: Robert Kucharski</span>
            <span><i></i> Aktualizacja techniczna: 27 sierpnia 2026 r.</span>
            <span><i></i> Lista zakupowa • kompatybilność • wykonanie</span>
          </div>
        </div>
      </div>
    </header>

    <nav class="rk-materials-nav" aria-label="Spis treści artykułu">
      <a href="#rk-materials-answer">Szybka lista</a>
      <a href="#rk-materials-scope">Zakres systemu</a>
      <a href="#rk-materials-configurator">Konfigurator</a>
      <a href="#rk-materials-project">Projekt</a>
      <a href="#rk-materials-layers">Warstwy podłogi</a>
      <a href="#rk-materials-pipes">Rury i mocowanie</a>
      <a href="#rk-materials-manifold">Rozdzielacz</a>
      <a href="#rk-materials-hydraulics">Hydraulika</a>
      <a href="#rk-materials-control">Sterowanie</a>
      <a href="#rk-materials-screed">Jastrych i okładzina</a>
      <a href="#rk-materials-tools">Narzędzia</a>
      <a href="#rk-materials-checklist">Checklista</a>
      <a href="#rk-materials-faq">FAQ</a>
      <a href="#rk-materials-author">Autor</a>
    </nav>

    <div class="rk-materials-body">
      <section class="rk-materials-section" id="rk-materials-answer">
        <span class="rk-materials-kicker">Odpowiedź w jednym miejscu</span>
        <h2>Podstawowe materiały do wodnego ogrzewania podłogowego</h2>
        <p class="rk-materials-lead rk-materials-dropcap">Do wykonania typowego systemu mokrego potrzebne są: dokumentacja wykonawcza, właściwa izolacja podłogi, taśma brzegowa, warstwa systemowa lub płyty mocujące, rura z barierą antydyfuzyjną, elementy mocujące, osłony przejść, rozdzielacz z przyłączami, szafka, materiał jastrychowy oraz wyposażenie do napełnienia i próby szczelności. Pompa, mieszacz, siłowniki i termostaty nie należą automatycznie do każdego zestawu.</p>

        <div class="rk-materials-answer">
          <div class="rk-materials-answer-main">
            <h3>Lista podstawowa</h3>
            <p><strong>Po stronie podłogi:</strong> izolacja cieplna i ewentualnie akustyczna, ochrona przeciwwilgociowa zgodna z konstrukcją, taśma brzegowa, folia lub płyta systemowa, rura, klipsy albo listwy, tuleje ochronne, profile dylatacyjne i jastrych.</p>
            <p><strong>Po stronie instalacji:</strong> rozdzielacz dobrany do liczby pętli, eurokonusy zgodne z rurą, zawory odcinające, odpowietrzenie, elementy napełniania i spustu, szafka lub konstrukcja montażowa, przewody zasilające oraz oznaczenia obwodów.</p>
            <p><strong>Do uruchomienia:</strong> pompa do próby, manometr, węże do płukania i napełniania, medium zgodne z wymaganiami instalacji, protokół próby oraz dane do ustawienia przepływów.</p>
          </div>
          <aside class="rk-materials-answer-side">
            <h3>Nie kupuj wszystkiego z gotowego „zestawu na metry”</h3>
            <p>Liczba sekcji rozdzielacza, długość rury, ilość klipsów, średnica magistrali i potrzeba grupy mieszającej wynikają z projektu. Powierzchnia domu sama nie mówi, ile obwodów będzie potrzebnych ani jakie przepływy musi obsłużyć instalacja.</p>
          </aside>
        </div>

        <div class="rk-materials-callout is-warning"><p><strong>Folia metalizowana nie zastępuje izolacji.</strong> Pod jastrychem, bez szczeliny powietrznej, o przepływie ciepła decydują przede wszystkim przewodzenie, grubość i współczynnik λ kolejnych warstw. Folia może pełnić funkcję systemową, separacyjną, uszczelniającą lub montażową, lecz nie należy opisywać jej jako materiału „odbijającego całe ciepło do góry”.</p></div>
      </section>

      <section class="rk-materials-section" id="rk-materials-scope">
        <span class="rk-materials-kicker">Najpierw ustal granice zamówienia</span>
        <h2>Gdzie kończy się zestaw podłogówki, a zaczyna wyposażenie kotłowni?</h2>
        <p class="rk-materials-lead">Lista materiałów może obejmować wyłącznie pętle i rozdzielacz albo cały układ od źródła ciepła do okładziny podłogowej. Bez zdefiniowania zakresu dwie wyceny tego samego domu mogą różnić się o pompę obiegową, bufor, sprzęgło, filtr, automatykę i przewody magistralne.</p>

        <div class="rk-materials-grid-3">
          <div class="rk-materials-card"><span class="rk-materials-card-number">A</span><h3>System w podłodze</h3><p>Warstwy izolacyjne, mocowanie, rury, taśma brzegowa, dylatacje, jastrych albo płyty suche oraz materiały przeznaczone pod wybraną okładzinę.</p></div>
          <div class="rk-materials-card"><span class="rk-materials-card-number">B</span><h3>Rozdział i regulacja</h3><p>Rozdzielacz, szafka, przyłącza pętli, zawory, odpowietrzenie, magistrala, równoważenie oraz opcjonalna automatyka strefowa.</p></div>
          <div class="rk-materials-card"><span class="rk-materials-card-number">C</span><h3>Źródło i hydraulika</h3><p>Pompa, grupa mieszająca, bufor, sprzęgło, filtr, separator i zabezpieczenia. Elementy dobiera się do źródła i schematu, a nie do samego słowa „podłogówka”.</p></div>
        </div>

        <div class="rk-materials-callout"><p><strong>Najważniejsze rozróżnienie:</strong> rozdzielacz nie musi mieć własnej pompy ani zaworu mieszającego. Jeśli cała instalacja i źródło pracują bezpośrednio na parametrze podłogowym, dodatkowa grupa może być zbędna. W układzie mieszanym, przy kotle stałopalnym albo wysokotemperaturowym obiegu grzejnikowym sytuacja będzie inna.</p></div>
      </section>

      <section class="rk-materials-section" id="rk-materials-configurator">
        <div class="rk-materials-audit">
          <div class="rk-materials-audit-head">
            <span class="rk-materials-kicker" style="color:#79f1ff">Interaktywny konfigurator materiałów</span>
            <h2>Utwórz listę dopasowaną do technologii podłogi</h2>
            <p>Wybierz podstawowe założenia. Konfigurator nie wylicza ilości i nie udaje kosztorysu. Porządkuje kategorie materiałów, wskazuje elementy zależne od projektu oraz ostrzega przed niekompatybilnym zestawieniem.</p>
          </div>

          <div class="rk-materials-audit-layout">
            <form class="rk-materials-audit-form" id="rk-materials-config-form" aria-label="Konfigurator listy materiałów do ogrzewania podłogowego">
              <div class="rk-materials-fields">
                <div class="rk-materials-field is-full"><label for="rk-materials-system">Technologia podłogi</label><select id="rk-materials-system"><option value="cement">System mokry • jastrych cementowy</option><option value="anhydrite">System mokry • jastrych anhydrytowy</option><option value="dry">System suchy • bez mokrego jastrychu</option></select></div>
                <div class="rk-materials-field is-full"><label for="rk-materials-base">Konstrukcja podłoża</label><select id="rk-materials-base"><option value="ground">Podłoga na gruncie</option><option value="heated">Strop nad ogrzewanym pomieszczeniem</option><option value="unheated">Strop nad garażem lub piwnicą</option><option value="timber">Strop drewniany</option></select></div>
                <div class="rk-materials-field"><label for="rk-materials-building">Rodzaj inwestycji</label><select id="rk-materials-building"><option value="new">Nowy budynek</option><option value="renovation">Remont / ograniczona wysokość</option></select></div>
                <div class="rk-materials-field"><label for="rk-materials-fixing">Sposób mocowania rury</label><select id="rk-materials-fixing"><option value="tacker">Klipsy i taker</option><option value="rail">Listwy montażowe</option><option value="stud">Płyty z wypustkami</option><option value="drypanel">Płyty systemu suchego</option></select></div>
                <div class="rk-materials-field is-full"><label for="rk-materials-source">Źródło i układ zasilania</label><select id="rk-materials-source"><option value="heatpump">Pompa ciepła • obieg niskotemperaturowy</option><option value="gas">Kocioł kondensacyjny • tylko podłogówka</option><option value="mixed">Podłogówka i grzejniki o różnych temperaturach</option><option value="solid">Kocioł na paliwo stałe / pellet</option></select></div>
                <div class="rk-materials-field is-full"><label for="rk-materials-control-mode">Sposób regulacji pomieszczeń</label><select id="rk-materials-control-mode"><option value="weather">Regulacja pogodowa i ręczne zrównoważenie</option><option value="zones">Sterowanie strefowe z siłownikami</option></select></div>
              </div>

              <div class="rk-materials-checks">
                <label class="rk-materials-check"><input id="rk-materials-moisture" type="checkbox"><span>Występuje podwyższona wilgoć, łazienka, pralnia lub ryzyko kontaktu warstw z wodą.</span></label>
                <label class="rk-materials-check"><input id="rk-materials-load" type="checkbox"><span>Podłoga będzie obciążona ciężką zabudową, zbiornikiem, kominkiem albo ruchem użytkowym większym niż mieszkalny.</span></label>
              </div>
              <button class="rk-materials-audit-reset" id="rk-materials-config-reset" type="button">Przywróć typowy wariant</button>
            </form>

            <div class="rk-materials-audit-output" aria-live="polite">
              <div class="rk-materials-config-summary" id="rk-materials-config-summary"></div>

              <div class="rk-materials-metrics rk-materials-metrics-4">
                <div class="rk-materials-metric"><small>Elementy podstawowe</small><strong id="rk-materials-count-core">10</strong></div>
                <div class="rk-materials-metric"><small>Dla wybranego wariantu</small><strong id="rk-materials-count-selected">12</strong></div>
                <div class="rk-materials-metric"><small>Do potwierdzenia</small><strong id="rk-materials-count-verify">7</strong></div>
                <div class="rk-materials-metric"><small>Ocena zestawu</small><strong id="rk-materials-result-state">spójny</strong></div>
              </div>

              <div class="rk-materials-audit-status" id="rk-materials-config-status">
                <strong id="rk-materials-config-title">Typowy system mokry na podłodze na gruncie</strong>
                <span id="rk-materials-config-copy">Możesz przygotować listę kategorii, lecz grubość izolacji, długość rury, liczba pętli i sekcji rozdzielacza nadal wymagają projektu.</span>
              </div>

              <div class="rk-materials-layer-stack" aria-label="Orientacyjny układ warstw wybranego systemu">
                <div class="rk-materials-layer-row"><b>Wykończenie</b><span id="rk-materials-layer-finish">Okładzina i materiały montażowe o znanym oporze cieplnym</span></div>
                <div class="rk-materials-layer-row"><b>Rozdział ciepła</b><span id="rk-materials-layer-transfer">Jastrych cementowy wykonany według specyfikacji</span></div>
                <div class="rk-materials-layer-row"><b>Rura</b><span id="rk-materials-layer-pipe">Rura z barierą antydyfuzyjną mocowana klipsami</span></div>
                <div class="rk-materials-layer-row"><b>Izolacja</b><span id="rk-materials-layer-insulation">Izolacja cieplna i warstwa systemowa dobrane do podłogi na gruncie</span></div>
                <div class="rk-materials-layer-row"><b>Podłoże</b><span id="rk-materials-layer-base">Równe, nośne podłoże z koordynacją hydroizolacji</span></div>
              </div>

              <div class="rk-materials-output-columns">
                <div class="rk-materials-output-card"><h3>Potrzebne w każdym wariancie</h3><ul class="rk-materials-material-list" id="rk-materials-core-list"></ul></div>
                <div class="rk-materials-output-card is-selected"><h3>Wynikające z Twojego wyboru</h3><ul class="rk-materials-material-list" id="rk-materials-selected-list"></ul></div>
                <div class="rk-materials-output-card is-verify"><h3>Potwierdź w projekcie lub instrukcji</h3><ul class="rk-materials-material-list" id="rk-materials-verify-list"></ul></div>
              </div>

              <div class="rk-materials-buy-warning"><strong>Czego nie dodawać automatycznie?</strong><p id="rk-materials-do-not-buy">Grupy mieszającej, dodatkowej pompy, siłowników na każdą pętlę, przypadkowej liczby sekcji rozdzielacza ani uniwersalnej grubości EPS.</p></div>

              <div class="rk-materials-tool-actions">
                <button class="rk-materials-tool-button is-primary" id="rk-materials-copy" type="button">Kopiuj listę materiałów</button>
                <button class="rk-materials-tool-button" id="rk-materials-print" type="button">Drukuj konfigurację</button>
              </div>
              <p class="rk-materials-copy-status" id="rk-materials-copy-status" aria-live="polite"></p>
            </div>
          </div>
          <div class="rk-materials-tool-note"><strong>Ważne:</strong> konfigurator tworzy listę kategorii, nie zestawienie ilościowe ani ofertę handlową. Nie oblicza powierzchni czynnej, rozstawów, długości pętli, liczby sekcji, przepływów, oporów, średnic magistrali, ilości jastrychu ani parametrów izolacji.</div>
        </div>

        <div class="rk-materials-inline-cta">
          <span class="rk-materials-kicker" style="color:#79f1ff">Lista kategorii to jeszcze nie bezpieczne zamówienie</span>
          <h3>Masz już technologię, ale nie wiesz, ile rur, obwodów i sekcji rozdzielacza zamówić?</h3>
          <p>Konfigurator wskazuje grupy materiałów, lecz dokładne zestawienie powstaje dopiero po wyznaczeniu czynnej powierzchni, rozstawów, długości dobiegów, liczby pętli, lokalizacji rozdzielaczy, przepływów i oporów hydraulicznych. W projekcie wszystkie te dane są ze sobą powiązane, dzięki czemu zamówienie nie opiera się na średniej liczbie metrów przypadających na dom.</p>
          <a class="rk-materials-cta-button rk-materials-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt z zestawieniem materiałów</a>
          <small class="rk-materials-disclosure">Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
        </div>
      </section>

      <section class="rk-materials-section" id="rk-materials-project">
        <span class="rk-materials-kicker">Pierwszy materiał to dokumentacja</span>
        <h2>Dlaczego lista zakupowa powinna powstać z projektu?</h2>
        <p class="rk-materials-lead">Projekt nie służy wyłącznie do narysowania ślimaków. Łączy zapotrzebowanie cieplne pomieszczeń z konstrukcją podłogi, temperaturą wody, rozstawem, długością obwodów i hydrauliką rozdzielacza. Dopiero z tych wyników powstają ilości.</p>

        <div class="rk-materials-formulas">
          <div class="rk-materials-formula"><span>Rura na powierzchni</span><strong>L ≈ A<sub>czynna</sub> / s</strong><p>Do wyniku dochodzą dwa dobiegi każdej pętli i kontrolowany zapas. Nie mnoży się całej długości automatycznie razy dwa.</p></div>
          <div class="rk-materials-formula"><span>Liczba obwodów</span><strong>n = funkcja L, Q i Δp</strong><p>Nie wynika tylko z metrażu. Ograniczają ją długość pętli, wymagana moc, przepływ i dopuszczalny opór hydrauliczny.</p></div>
          <div class="rk-materials-formula"><span>Rozdzielacz</span><strong>sekcje = liczba pętli</strong><p>Liczba króćców jest wynikiem rzeczywistego podziału pomieszczeń. Warto przewidzieć rezerwę tylko wtedy, gdy ma konkretny cel.</p></div>
        </div>

        <p>Do wstępnej kontroli rzędu wielkości służy osobny <a href="https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/">kalkulator ilości rury do ogrzewania podłogowego</a>. Nie należy jednak przenosić jego wyniku bezpośrednio do koszyka zakupowego bez uwzględnienia dobiegów i hydrauliki.</p>
      </section>

      <section class="rk-materials-section" id="rk-materials-layers">
        <span class="rk-materials-kicker">Warstwy pełnią różne funkcje</span>
        <h2>Izolacja cieplna, hydroizolacja i folia systemowa to nie ten sam materiał</h2>
        <p class="rk-materials-lead">Najczęstszy błąd list zakupowych polega na wpisaniu jednego „styropianu pod podłogówkę” i jednej „folii”. Tymczasem nośność, izolacyjność, ochrona przed wilgocią, akustyka oraz mocowanie rur są odrębnymi zadaniami.</p>

        <div class="rk-materials-table-wrap">
          <table>
            <thead><tr><th>Warstwa</th><th>Jej rzeczywista funkcja</th><th>Co trzeba sprawdzić?</th><th>Czego nie zakładać?</th></tr></thead>
            <tbody>
              <tr><td data-label="Warstwa"><strong>EPS</strong></td><td data-label="Funkcja">Izolacja cieplna i przenoszenie obciążeń w zakresie deklarowanym dla produktu.</td><td data-label="Co sprawdzić?">λ, grubość, CS(10), pełzanie, układ warstw i obciążenie posadzki.</td><td data-label="Nie zakładaj">Że samo oznaczenie EPS 100 wyznacza właściwą grubość dla każdego budynku.</td></tr>
              <tr><td data-label="Warstwa"><strong>XPS</strong></td><td data-label="Funkcja">Izolacja o małej nasiąkliwości i podwyższonej odporności mechanicznej w uzasadnionych miejscach.</td><td data-label="Co sprawdzić?">Wilgoć, obciążenie, zgodność całej przegrody i wymagania hydroizolacji.</td><td data-label="Nie zakładaj">Że XPS automatycznie jest najlepszym materiałem pod całą podłogę.</td></tr>
              <tr><td data-label="Warstwa"><strong>PIR</strong></td><td data-label="Funkcja">Wysoki opór cieplny przy ograniczonej grubości konstrukcji.</td><td data-label="Co sprawdzić?">Nośność, sposób rozłożenia obciążenia, połączenia płyt i dokumentację producenta.</td><td data-label="Nie zakładaj">Że każda płyta PIR może bezpośrednio pracować pod jastrychem pływającym.</td></tr>
              <tr><td data-label="Warstwa"><strong>Hydroizolacja / warstwa przeciwwilgociowa</strong></td><td data-label="Funkcja">Ochrona konstrukcji i warstw podłogi przed wodą lub wilgocią.</td><td data-label="Co sprawdzić?">Położenie w przegrodzie, połączenia ze ścianami, przepusty i zgodność z pomieszczeniem.</td><td data-label="Nie zakładaj">Że folia z rastrem pod rurami zastąpi hydroizolację podłogi na gruncie lub łazienki.</td></tr>
              <tr><td data-label="Warstwa"><strong>Folia lub mata systemowa</strong></td><td data-label="Funkcja">Rozdzielenie warstw, raster, uszczelnienie przed wodą zarobową albo element mocowania.</td><td data-label="Co sprawdzić?">Zakłady, szczelność, kompatybilność z klipsami i jastrychem.</td><td data-label="Nie zakładaj">Że cienka metalizowana powierzchnia zastępuje centymetry izolacji.</td></tr>
              <tr><td data-label="Warstwa"><strong>Izolacja brzegowa</strong></td><td data-label="Funkcja">Oddzielenie jastrychu od ścian, ograniczenie mostków i umożliwienie odkształceń pola.</td><td data-label="Co sprawdzić?">Ciągłość, wysokość, narożniki, słupy i połączenie z warstwą systemową.</td><td data-label="Nie zakładaj">Że cienka przypadkowa pianka wykonuje wszystkie funkcje taśmy systemowej.</td></tr>
            </tbody>
          </table>
        </div>

        <p>Szczegółowe porównanie znajduje się w artykule <a href="https://projekt-ogrzewania.pl/jakie-sa-najlepsze-sposoby-izolacji-pod-ogrzewanie-podlogowe/">EPS, XPS, PIR i prawidłowy dobór izolacji pod podłogówkę</a>. Grubości nie należy wybierać z uniwersalnej listy; zależą od całej przegrody, współczynnika λ, wymaganej izolacyjności i warunków gruntu.</p>
      </section>

      <section class="rk-materials-section" id="rk-materials-pipes">
        <span class="rk-materials-kicker">Element, którego później nie wymienisz</span>
        <h2>Rura, bariera antydyfuzyjna i system mocowania</h2>
        <p class="rk-materials-lead">Rura zatopiona w jastrychu powinna tworzyć ciągłą pętlę od zasilania do powrotu rozdzielacza. Nie kupuje się jej wyłącznie na podstawie napisu PEX albo PE‑RT. Liczą się pełny wymiar, średnica wewnętrzna, bariera tlenowa, klasa zastosowania, promień gięcia, dane hydrauliczne i zgodność z przyłączami.</p>

        <div class="rk-materials-grid-3">
          <div class="rk-materials-card"><span class="rk-materials-card-number">R</span><h3>Rura systemowa</h3><p>Najczęściej 16 × 2 mm w budownictwie mieszkaniowym, ale średnicę i długości trzeba sprawdzić hydraulicznie. Rura powinna mieć udokumentowaną barierę ograniczającą przenikanie tlenu.</p></div>
          <div class="rk-materials-card"><span class="rk-materials-card-number">M</span><h3>Mocowanie</h3><p>Klipsy z takera, listwy, płyty z wypustkami, mocowanie do siatki albo kompletne panele suche. Nie miesza się przypadkowych klipsów z płytą, której nie potrafią pewnie zakotwić.</p></div>
          <div class="rk-materials-card"><span class="rk-materials-card-number">O</span><h3>Osłony przejść</h3><p>Rury prowadzone przez dylatacje, progi i miejsca narażone na uszkodzenie wymagają tulei lub peszla o długości zgodnej z rozwiązaniem systemowym.</p></div>
        </div>

        <div class="rk-materials-callout is-warning"><p><strong>Nie planuj zwykłych złączek w polu jastrychu.</strong> Eurokonusy i adaptery służą do połączenia pętli z rozdzielaczem. Jeżeli na budowie dojdzie do uszkodzenia rury, sposób naprawy trzeba uzgodnić z producentem systemu i dokładnie udokumentować — nie dodawać profilaktycznie muf do listy.</p></div>

        <p>Rodzaje polimerów, barierę EVOH i wpływ średnicy omawia osobny poradnik <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">jak wybrać rury do ogrzewania podłogowego</a>.</p>
      </section>

      <section class="rk-materials-section" id="rk-materials-manifold">
        <span class="rk-materials-kicker">Centrum rozdziału, nie gotowa kotłownia</span>
        <h2>Co powinno znaleźć się przy rozdzielaczu?</h2>
        <p class="rk-materials-lead">Rozdzielacz dobiera się do liczby rzeczywistych pętli. Podstawowa belka powinna umożliwiać pomiar lub nastawę przepływu, odcięcie obwodów, odpowietrzenie, napełnienie i spust. Pozostałe elementy zależą od przyjętej hydrauliki.</p>

        <div class="rk-materials-table-wrap">
          <table>
            <thead><tr><th>Element</th><th>Status</th><th>Funkcja</th><th>Warunek doboru</th></tr></thead>
            <tbody>
              <tr><td data-label="Element"><strong>Belki z rotametrami i zaworami powrotnymi</strong></td><td data-label="Status">Zwykle podstawowe</td><td data-label="Funkcja">Pomiar, regulacja i odcięcie przepływu każdej pętli.</td><td data-label="Warunek">Zakres rotametrów powinien obejmować projektowe przepływy.</td></tr>
              <tr><td data-label="Element"><strong>Eurokonusy / adaptery</strong></td><td data-label="Status">Obowiązkowe dla pętli</td><td data-label="Funkcja">Połączenie rury z króćcami rozdzielacza.</td><td data-label="Warunek">Muszą pasować do wymiaru i konstrukcji konkretnej rury oraz gwintu rozdzielacza.</td></tr>
              <tr><td data-label="Element"><strong>Odpowietrzenie, napełnianie i spust</strong></td><td data-label="Status">Podstawowe</td><td data-label="Funkcja">Uruchomienie, płukanie i obsługa rozdzielacza.</td><td data-label="Warunek">Dostęp serwisowy i możliwość płukania pojedynczych pętli.</td></tr>
              <tr><td data-label="Element"><strong>Szafka</strong></td><td data-label="Status">Najczęściej potrzebna</td><td data-label="Funkcja">Montaż, ochrona i dostęp do armatury.</td><td data-label="Warunek">Wymiary rozdzielacza, siłowników, rur i ewentualnej grupy mieszającej.</td></tr>
              <tr><td data-label="Element"><strong>Siłowniki</strong></td><td data-label="Status">Opcjonalne</td><td data-label="Funkcja">Otwieranie i zamykanie pętli na sygnał automatyki.</td><td data-label="Warunek">Podział na strefy, zgodność gwintu, napięcia, typu NC/NO i listwy.</td></tr>
              <tr><td data-label="Element"><strong>Pompa i mieszacz</strong></td><td data-label="Status">Tylko gdy wymagane</td><td data-label="Funkcja">Wytworzenie przepływu i obniżenie temperatury obiegu.</td><td data-label="Warunek">Schemat źródła, temperatura innych obiegów, przepływ i opór hydrauliczny.</td></tr>
            </tbody>
          </table>
        </div>

        <p>Więcej informacji znajduje się w opracowaniu <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">jak dobrać rozdzielacz do podłogówki</a>.</p>
      </section>

      <section class="rk-materials-section" id="rk-materials-hydraulics">
        <span class="rk-materials-kicker">Elementy „na wszelki wypadek” często szkodzą</span>
        <h2>Kiedy potrzebne są pompa, mieszacz, bufor i separator?</h2>
        <p class="rk-materials-lead">Tych urządzeń nie powinno się dodawać do zestawu tylko dlatego, że instalacja jest podłogowa. Każdy element musi rozwiązywać konkretny problem: brak ciśnienia dyspozycyjnego, różne temperatury obiegów, minimalny zład źródła, separację hydrauliczną albo ochronę urządzeń przed zanieczyszczeniami.</p>

        <div class="rk-materials-decision is-two">
          <div class="rk-materials-decision-card"><b>UKŁAD NISKOTEMPERATUROWY</b><h3>Pompa ciepła lub kocioł pracujący bezpośrednio na podłogówkę</h3><p>Źródło może zasilać rozdzielacze bez lokalnego mieszania, jeśli jego pompa zapewnia wymagany łączny przepływ i wysokość podnoszenia. Potrzebę bufora, sprzęgła, dodatkowej pompy, filtra i separatora sprawdza się na podstawie wymagań urządzenia oraz całego schematu.</p></div>
          <div class="rk-materials-decision-card"><b>RÓŻNE TEMPERATURY</b><h3>Podłogówka połączona z grzejnikami albo źródłem wysokotemperaturowym</h3><p>Może wymagać osobnego obiegu pompowego i regulacji temperatury. Układ z kotłem na paliwo stałe potrzebuje również rozwiązań wynikających z ochrony kotła i magazynowania ciepła. Konkretne średnice, Kv zaworów i pompy wyznacza projekt hydrauliczny.</p></div>
        </div>

        <div class="rk-materials-callout"><p><strong>Filtr i separator nie są zamiennikami.</strong> Filtr zatrzymuje zanieczyszczenia o określonej wielkości, separator może usuwać drobne cząstki lub powietrze, a magnetyt wymaga rozwiązania magnetycznego. Miejsce montażu i spadek ciśnienia trzeba uwzględnić w całej instalacji.</p></div>
      </section>

      <section class="rk-materials-section" id="rk-materials-control">
        <span class="rk-materials-kicker">Regulacja nie oznacza obowiązkowego Wi‑Fi</span>
        <h2>Jakie elementy automatyki naprawdę są potrzebne?</h2>
        <p class="rk-materials-lead">Każda instalacja wymaga właściwej temperatury wody i zrównoważenia przepływów. Nie oznacza to jednak, że każda pętla musi być stale zamykana siłownikiem. W budynku z pompą ciepła i dużą bezwładnością podłogi podstawą bywa dobrze ustawiona regulacja pogodowa oraz stabilny przepływ.</p>

        <div class="rk-materials-grid-3">
          <div class="rk-materials-card"><span class="rk-materials-card-number">P</span><h3>Regulacja pogodowa</h3><p>Dopasowuje temperaturę zasilania do warunków zewnętrznych. Zwykle jest realizowana przez automatykę źródła i nie wymaga termostatu Wi‑Fi w każdym pomieszczeniu.</p></div>
          <div class="rk-materials-card"><span class="rk-materials-card-number">S</span><h3>Sterowanie strefowe</h3><p>Wymaga regulatorów, listwy, siłowników, okablowania lub komunikacji radiowej i koordynacji ze źródłem. Strefy powinny odpowiadać rzeczywistemu sposobowi użytkowania.</p></div>
          <div class="rk-materials-card"><span class="rk-materials-card-number">T</span><h3>Czujnik podłogowy</h3><p>Jest przydatny do ograniczenia temperatury wrażliwej okładziny lub w specjalnej strefie. Nie jest uniwersalnie potrzebny w każdym pokoju z wodną podłogówką.</p></div>
        </div>

        <p>Zanim kupisz komplet siłowników, przeczytaj opracowania o <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">sterowaniu strefowym</a> oraz <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">siłownikach termoelektrycznych na rozdzielaczu</a>.</p>
      </section>

      <section class="rk-materials-section" id="rk-materials-screed">
        <span class="rk-materials-kicker">Warstwa grzejna musi być jednym systemem</span>
        <h2>Jastrych, dylatacje i materiały pod okładzinę</h2>
        <p class="rk-materials-lead">Nie istnieje uniwersalny zestaw „beton C16/20 + plastyfikator + włókna”. Skład, klasa, grubość, zbrojenie, pola dylatacyjne, termin rozpoczęcia wygrzewania oraz dopuszczalna wilgotność muszą wynikać z projektu podłogi i dokumentacji producenta jastrychu.</p>

        <div class="rk-materials-table-wrap">
          <table>
            <thead><tr><th>Technologia</th><th>Materiały charakterystyczne</th><th>Co trzeba uzgodnić?</th><th>Najważniejsze ryzyko</th></tr></thead>
            <tbody>
              <tr><td data-label="Technologia"><strong>Jastrych cementowy</strong></td><td data-label="Materiały">Mieszanka jastrychowa, dodatki i ewentualne zbrojenie zgodne z recepturą, taśmy brzegowe i profile dylatacyjne.</td><td data-label="Do uzgodnienia">Grubość, konsystencję, pola, pielęgnację, wygrzewanie i pomiar wilgotności.</td><td data-label="Ryzyko">Przypadkowe dolewanie wody, brak pielęgnacji i niekontrolowany skurcz.</td></tr>
              <tr><td data-label="Technologia"><strong>Jastrych na bazie siarczanu wapnia</strong></td><td data-label="Materiały">Płynna mieszanka, szczelna warstwa pod rurami, taśmy i uszczelnienie przejść.</td><td data-label="Do uzgodnienia">Minimalną otulinę, pola, szlifowanie, wygrzewanie, wilgotność i zastosowanie w strefach mokrych.</td><td data-label="Ryzyko">Uznanie daty wylania za potwierdzenie gotowości pod okładzinę.</td></tr>
              <tr><td data-label="Technologia"><strong>System suchy</strong></td><td data-label="Materiały">Płyty profilowane, lamele przewodzące, rura systemowa, warstwa rozkładająca obciążenie i elementy wykończeniowe.</td><td data-label="Do uzgodnienia">Nośność stropu, rozstaw podpór, dopuszczalne okładziny i pełny układ producenta.</td><td data-label="Ryzyko">Łączenie płyt, rur i blach z różnych systemów bez potwierdzonej kompatybilności.</td></tr>
            </tbody>
          </table>
        </div>

        <p>Przed wykonaniem warstwy grzejnej warto sprawdzić szczegółowy poradnik o <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewce na ogrzewanie podłogowe</a>.</p>

        <h3>Materiały wykończeniowe także należą do systemu cieplnego</h3>
        <p>Klej, masa samopoziomująca, podkład pod panele i sama okładzina tworzą łączny opór cieplny nad rurą. Projekt powinien uwzględniać deklarowaną wartość, a wykonawca nie powinien zastępować wybranego materiału grubszym podkładem bez ponownej oceny. Dylatacje konstrukcyjne i pola jastrychu trzeba przenieść przez kolejne warstwy zgodnie z ich technologią.</p>
      </section>

      <section class="rk-materials-section" id="rk-materials-tools">
        <span class="rk-materials-kicker">Materiały to nie wszystko</span>
        <h2>Narzędzia oraz wyposażenie do próby, płukania i uruchomienia</h2>
        <p class="rk-materials-lead">Dobra lista zakupowa rozdziela materiały pozostające w budynku od sprzętu potrzebnego tylko wykonawcy. Brak odpowiedniego rozwijaka, kalibratora czy pompy próbnej może jednak zniszczyć nawet wysokiej jakości rury.</p>

        <div class="rk-materials-grid-4">
          <div class="rk-materials-card"><span class="rk-materials-card-number">01</span><h3>Układanie</h3><p>Rozwijak do kręgu, nożyce do rur, miara, marker, taker albo narzędzie właściwe dla mocowania, ochraniacze i wyposażenie do kontroli rozstawu.</p></div>
          <div class="rk-materials-card"><span class="rk-materials-card-number">02</span><h3>Przyłącza</h3><p>Kalibrator lub gratownik, klucze i narzędzia zalecane do konkretnej rury oraz eurokonusów. Prasownica tylko wtedy, gdy system rzeczywiście zawiera połączenia zaprasowywane poza pętlą.</p></div>
          <div class="rk-materials-card"><span class="rk-materials-card-number">03</span><h3>Próba</h3><p>Pompa próbna, manometr o odpowiednim zakresie i dokładności, zaślepki, węże oraz protokół. Parametry próby przyjmuje się z instrukcji systemu.</p></div>
          <div class="rk-materials-card"><span class="rk-materials-card-number">04</span><h3>Uruchomienie</h3><p>Węże do płukania pojedynczych pętli, medium o wymaganej jakości, oznaczenia obwodów, termometry lub przyrządy pomiarowe i tabela nastaw przepływów.</p></div>
        </div>

        <div class="rk-materials-callout"><p><strong>Próba szczelności to procedura i dokument, nie samo „nabicie ciśnienia”.</strong> Trzeba zapisać medium, ciśnienie, czas, temperaturę, wynik oględzin i osobę wykonującą. Pętle powinny być opisane przed zasłonięciem, a instalacja przepłukana w kontrolowanej kolejności. Medium dobiera się z uwzględnieniem źródła, materiałów i ryzyka zamarznięcia; zobacz <a href="https://projekt-ogrzewania.pl/czym-napelnic-instalacje-ogrzewania-podlogowego/">czym napełnić ogrzewanie podłogowe</a>.</p></div>
      </section>

      <section class="rk-materials-section" id="rk-materials-errors">
        <span class="rk-materials-kicker">Najdroższe są zakupy wykonane za wcześnie</span>
        <h2>Czego nie kupować przed otrzymaniem projektu?</h2>
        <div class="rk-materials-grid-3">
          <div class="rk-materials-error"><b>BŁĄD 01</b><h3>Całej rury według metrażu domu</h3><p>Powierzchnia użytkowa nie jest powierzchnią czynną. Nie obejmuje również rozstawów, dobiegów, stref i hydraulicznego podziału pętli.</p></div>
          <div class="rk-materials-error"><b>BŁĄD 02</b><h3>Rozdzielacza „z zapasem” bez układu pętli</h3><p>Zbyt mały blokuje wykonanie projektu, a zbyt duży zwiększa szafkę i koszty. Najpierw trzeba znać rzeczywistą liczbę obwodów.</p></div>
          <div class="rk-materials-error"><b>BŁĄD 03</b><h3>Grupy pompowej dodanej automatycznie</h3><p>Może być zbędna w bezpośrednim układzie niskotemperaturowym albo źle dobrana do przepływu i oporu instalacji.</p></div>
          <div class="rk-materials-error"><b>BŁĄD 04</b><h3>Uniwersalnych 5 lub 10 cm styropianu</h3><p>Grubość nie wynika z obecności rur. Musi spełnić wymagania całej przegrody i warunki konstrukcyjne budynku.</p></div>
          <div class="rk-materials-error"><b>BŁĄD 05</b><h3>Siłownika na każdą pętlę</h3><p>Strefa może obejmować kilka pętli, a część instalacji może pracować bez odcinania. Potrzebna jest wcześniej ustalona strategia sterowania.</p></div>
          <div class="rk-materials-error"><b>BŁĄD 06</b><h3>Najtańszych elementów z różnych systemów</h3><p>Nominalnie podobna rura, eurokonus, klips i płyta nie muszą tworzyć kompatybilnego zestawu ani zachowywać wspólnej gwarancji.</p></div>
        </div>
      </section>

      <section class="rk-materials-section" id="rk-materials-checklist">
        <span class="rk-materials-kicker">Od założeń do odbioru dostawy</span>
        <h2>Jak skompletować materiały do podłogówki krok po kroku?</h2>
        <div class="rk-materials-steps">
          <div class="rk-materials-step"><h3>Ustal technologię ogrzewanej podłogi</h3><p>Wybierz system mokry cementowy, mokry na bazie siarczanu wapnia albo kompletny system suchy. Sprawdź dostępną wysokość, masę i ograniczenia konstrukcji.</p></div>
          <div class="rk-materials-step"><h3>Sprawdź konstrukcję i warunki podłoża</h3><p>Określ, czy jest to podłoga na gruncie, strop nad pomieszczeniem ogrzewanym lub nieogrzewanym albo strop drewniany. Uwzględnij wilgoć, akustykę i obciążenia.</p></div>
          <div class="rk-materials-step"><h3>Odbierz projekt cieplny i hydrauliczny</h3><p>Projekt powinien podać powierzchnie czynne, rozstawy, długości pętli, przepływy, opory, liczbę sekcji, temperatury pracy i sposób zasilania rozdzielaczy.</p></div>
          <div class="rk-materials-step"><h3>Dobierz jeden kompatybilny system rur i mocowania</h3><p>Potwierdź wymiar rury, barierę antydyfuzyjną, promień gięcia, dane hydrauliczne, eurokonusy, klipsy lub płyty oraz zasady ochrony przejść.</p></div>
          <div class="rk-materials-step"><h3>Skompletuj rozdzielacz i elementy hydrauliczne</h3><p>Dopasuj liczbę sekcji, zakres rotametrów, zawory, szafkę, przyłącza i magistralę. Pompę, mieszacz, bufor lub sprzęgło dodawaj tylko zgodnie ze schematem.</p></div>
          <div class="rk-materials-step"><h3>Przygotuj warstwy, dylatacje i jastrych</h3><p>Zweryfikuj izolację, hydroizolację, taśmę brzegową, folię systemową, profile dylatacyjne oraz kompletną specyfikację jastrychu lub podłogi suchej.</p></div>
          <div class="rk-materials-step"><h3>Wykonaj próbę i udokumentuj instalację</h3><p>Przed zakryciem sprawdź szczelność według instrukcji, opisz pętle, zapisz długości i ciśnienie oraz wykonaj zdjęcia przebiegu rur z punktami odniesienia.</p></div>
          <div class="rk-materials-step"><h3>Zapisz nastawy i dokumenty powykonawcze</h3><p>Po płukaniu i uruchomieniu zanotuj przepływy, temperatury, ustawienia pompy, automatykę oraz materiały faktycznie użyte zamiast projektowanych zamienników.</p></div>
        </div>

        <ul class="rk-materials-checklist">
          <li>Rury, eurokonusy, rozdzielacz i sposób mocowania są wzajemnie kompatybilne.</li>
          <li>Liczba sekcji odpowiada liczbie pętli na rysunku wykonawczym.</li>
          <li>Każda pętla ma podaną długość, wymagany przepływ i oznaczenie pomieszczenia.</li>
          <li>Izolacja ma potwierdzone λ, nośność, pełzanie i grubość wynikającą z przegrody.</li>
          <li>Taśma brzegowa, tuleje i profile dylatacyjne odpowiadają projektowi pól jastrychu.</li>
          <li>Jastrych ma specyfikację grubości, pielęgnacji, wygrzewania i wilgotności odbiorowej.</li>
          <li>Automatyka ma zgodne napięcie, typ siłowników, liczbę kanałów i sposób komunikacji ze źródłem.</li>
          <li>Przygotowano sprzęt do próby, płukania i napełniania oraz wzór protokołu.</li>
          <li>Okładzina i podkład mają znany łączny opór cieplny oraz dopuszczenie do ogrzewanej podłogi.</li>
          <li>Każda zmiana materiałowa jest naniesiona do dokumentacji powykonawczej.</li>
        </ul>
      </section>

      <section class="rk-materials-section" id="rk-materials-faq">
        <span class="rk-materials-kicker">Najczęstsze pytania inwestorów</span>
        <h2>Materiały do ogrzewania podłogowego — FAQ</h2>
        <div class="rk-materials-faq">
          <details><summary>Jakie materiały są potrzebne do wodnego ogrzewania podłogowego?</summary><div class="rk-materials-faq-answer"><p>Podstawowy zakres obejmuje projekt, izolację podłogi, taśmę brzegową, warstwę systemową, rurę z barierą antydyfuzyjną, mocowanie, osłony przejść, rozdzielacz, przyłącza, szafkę, jastrych albo kompletny system suchy oraz wyposażenie do próby i uruchomienia. Pompa, mieszacz i automatyka zależą od schematu.</p></div></details>
          <details><summary>Czy folia aluminiowa pod podłogówkę jest obowiązkowa?</summary><div class="rk-materials-faq-answer"><p>Nie każda instalacja wymaga folii metalizowanej. Potrzebna może być folia systemowa, warstwa separacyjna albo szczelna warstwa chroniąca izolację przed wodą zarobową. Bez szczeliny powietrznej metalizowana powierzchnia nie zastępuje izolacji cieplnej i nie powinna być głównym kryterium zakupu.</p></div></details>
          <details><summary>Jaki styropian kupić pod ogrzewanie podłogowe?</summary><div class="rk-materials-faq-answer"><p>Należy dobrać materiał o odpowiednim współczynniku λ, naprężeniu ściskającym, pełzaniu i grubości wynikającej z konstrukcji przegrody. Samo oznaczenie EPS 100 nie określa kompletnego rozwiązania. Przy wilgoci, dużych obciążeniach albo ograniczonej wysokości można rozważyć inne materiały po sprawdzeniu projektu.</p></div></details>
          <details><summary>Jaką rurę wybrać do ogrzewania podłogowego?</summary><div class="rk-materials-faq-answer"><p>Rura powinna mieć wymiar zgodny z obliczeniami, udokumentowaną barierę antydyfuzyjną, dane hydrauliczne, właściwy promień gięcia i przyłącza zgodne z rozdzielaczem. W domach często stosuje się 16 × 2 mm, ale materiał PEX lub PE‑RT i sama średnica nie zastępują sprawdzenia długości oraz oporu pętli.</p></div></details>
          <details><summary>Czy do każdego rozdzielacza potrzebna jest pompa i zawór mieszający?</summary><div class="rk-materials-faq-answer"><p>Nie. W bezpośrednim układzie niskotemperaturowym pompa źródła może obsługiwać rozdzielacze bez lokalnego mieszania, jeśli zapewnia wymagany przepływ i wysokość podnoszenia. Osobna pompa i mieszacz są potrzebne wtedy, gdy wynika to z temperatur obiegów i obliczeń hydraulicznych.</p></div></details>
          <details><summary>Czy każda pętla podłogówki musi mieć siłownik?</summary><div class="rk-materials-faq-answer"><p>Nie. Każda pętla wymaga możliwości regulacji przepływu, ale siłownik jest potrzebny tylko wtedy, gdy obwód ma być odcinany przez automatykę strefową. Jedna strefa może obejmować kilka pętli, a instalacja może pracować również na regulacji pogodowej bez ciągłego zamykania obwodów.</p></div></details>
          <details><summary>Czy można łączyć rurę ogrzewania podłogowego w wylewce?</summary><div class="rk-materials-faq-answer"><p>Standardowo pętlę wykonuje się z jednego ciągłego odcinka między zasilaniem i powrotem rozdzielacza. Nie należy planować zwykłych złączek w jastrychu. Jeżeli rura zostanie uszkodzona, naprawę trzeba wykonać rozwiązaniem dopuszczonym przez producenta, oznaczyć i udokumentować.</p></div></details>
          <details><summary>Co jest potrzebne do próby szczelności podłogówki?</summary><div class="rk-materials-faq-answer"><p>Potrzebne są urządzenie do wytworzenia ciśnienia, manometr o odpowiednim zakresie i dokładności, medium próbne, węże, zaślepki oraz protokół. Ciśnienie, czas, temperatura i sposób badania powinny odpowiadać instrukcji konkretnego systemu oraz warunkom na budowie.</p></div></details>
          <details><summary>Czy do jastrychu zawsze potrzebny jest plastyfikator i włókna?</summary><div class="rk-materials-faq-answer"><p>Nie. Dodatki, zbrojenie, receptura i grubość są elementami konkretnej technologii jastrychu. Nie należy samodzielnie dodawać plastyfikatora lub włókien do gotowej mieszanki bez zgody jej producenta. Liczą się kompletna specyfikacja, pola dylatacyjne, pielęgnacja i procedura wygrzewania.</p></div></details>
          <details><summary>Czy można kupić kompletny materiał do podłogówki przed projektem?</summary><div class="rk-materials-faq-answer"><p>Można wcześniej wybrać technologię i producenta systemu, ale nie warto zamawiać całej ilości rury, rozdzielaczy, magistrali, pomp i automatyki. Ich ilości oraz parametry zależą od powierzchni czynnej, rozstawów, liczby pętli, przepływów, oporów i sposobu współpracy ze źródłem ciepła.</p></div></details>
        </div>
      </section>

      <section class="rk-materials-section" id="rk-materials-sources">
        <span class="rk-materials-kicker">Podstawa techniczna opracowania</span>
        <h2>Źródła i ograniczenia listy</h2>
        <p>Wymagania dotyczące projektowania i wymiarowania systemów wbudowanych opisuje <a href="https://www.iso.org/standard/74684.html" target="_blank" rel="noopener nofollow">ISO 11855-3:2021</a>, a zakres wykonania instalacji obejmuje <a href="https://www.iso.org/standard/74685.html" target="_blank" rel="noopener nofollow">ISO 11855-5:2021</a>. Konkretny system należy wykonywać zgodnie z jego dokumentacją, ponieważ sposób mocowania, próby i warstwy różnią się między technologiami.</p>
        <p>Przykładowe wymagania dla podłogi z jastrychem, izolacji brzegowej i układania rur pokazuje <a href="https://www.uponor.com/getmedia/dd9d7f2b-aa59-4001-b2b4-5c5460f98e33/solid-screed-installation-instructions?disposition=attachment&amp;sitename=UK" target="_blank" rel="noopener nofollow">instrukcja Uponor Solid Screed Floor</a>. Informacje o barierze antydyfuzyjnej i stosowaniu dedykowanych złączek zawiera <a href="https://www.uponor.com/getmedia/f58885a3-89c4-4694-9fae-cf6ff2ecc613/Uponor-TI-PEX-piping-systems-EN-1118689-v1-Jan-2021?disposition=attachment&amp;sitename=UponorInternational" target="_blank" rel="noopener nofollow">dokumentacja systemów rur Uponor PEX</a>. Zależność U od rodzaju, λ i grubości warstw można sprawdzić również w oficjalnym <a href="https://budowlaneabc.gov.pl/charakterystyka-energetyczna-budynkow/kalkulatory/calc-wpc/" target="_blank" rel="noopener nofollow">kalkulatorze charakterystyki przegród Budowlane ABC</a>.</p>
        <div class="rk-materials-sources"><p><strong>Zakres odpowiedzialności:</strong> artykuł i konfigurator mają charakter edukacyjny. Nie zastępują projektu architektonicznego, konstrukcyjnego, cieplnego i hydraulicznego ani dokumentacji producentów materiałów użytych na konkretnej budowie.</p></div>
      </section>

      <section class="rk-materials-author" id="rk-materials-author" aria-label="Autor opracowania">
        <input type="radio" name="rk-materials-author-tabs" id="rk-materials-author-about" checked>
        <input type="radio" name="rk-materials-author-tabs" id="rk-materials-author-exp">
        <input type="radio" name="rk-materials-author-tabs" id="rk-materials-author-sites">

        <header class="rk-materials-author-head">
          <div><span class="rk-materials-kicker">Autor opracowania</span><h2>Robert Kucharski</h2><p>Projektant instalacji sanitarnych • specjalista HVAC i ogrzewania podłogowego</p></div>
          <span class="rk-materials-author-mark">E-E-A-T • HVAC</span>
        </header>

        <div class="rk-materials-author-layout">
          <aside class="rk-materials-author-side">
            <div class="rk-materials-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji sanitarnych i specjalista ogrzewania podłogowego" width="600" height="600" loading="lazy" decoding="async"></div>
            <div class="rk-materials-author-name">Robert Kucharski</div>
            <div class="rk-materials-author-role">Projektant instalacji sanitarnych<br>Specjalista HVAC i ogrzewania podłogowego</div>
          </aside>

          <div class="rk-materials-author-main">
            <blockquote class="rk-materials-author-quote"><p>„Komplet materiałów nie zaczyna się od koszyka w hurtowni. Zaczyna się od informacji, jaką moc ma przekazać każde pomieszczenie, ile pętli powstanie i jaki przepływ trzeba przez nie rzeczywiście przeprowadzić.”</p></blockquote>

            <div class="rk-materials-author-tabs" role="tablist" aria-label="Informacje o autorze">
              <label class="rk-materials-author-tab" for="rk-materials-author-about">O autorze</label>
              <label class="rk-materials-author-tab" for="rk-materials-author-exp">Doświadczenie</label>
              <label class="rk-materials-author-tab" for="rk-materials-author-sites">Portale</label>
            </div>

            <div class="rk-materials-author-panel rk-materials-author-panel-about"><p>Projektuję wodne ogrzewanie podłogowe i przygotowuję techniczne publikacje dotyczące HVAC, hydrauliki, konstrukcji podłogi oraz świadomego prowadzenia inwestycji. W zestawieniach rozdzielam elementy obowiązkowe, opcjonalne i zależne od technologii, aby inwestor nie kupował przypadkowych urządzeń.</p></div>
            <div class="rk-materials-author-panel rk-materials-author-panel-exp"><p>W dokumentacji wyznaczam obciążenia cieplne pomieszczeń, rozstawy, długości pętli, przepływy, opory hydrauliczne, liczbę sekcji rozdzielaczy, średnice magistrali, nastawy i parametry źródła. Na tej podstawie powstaje ilościowe zestawienie materiałów przeznaczone do konkretnej realizacji.</p></div>
            <div class="rk-materials-author-panel rk-materials-author-panel-sites">
              <p>Jestem właścicielem trzech serwisów branżowych. Powiązanie portali podaję jawnie, aby czytelnik znał autorstwo i kontekst linkowania.</p>
              <div class="rk-materials-site-links"><a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a><a href="https://remont.biz.pl/" target="_blank" rel="noopener nofollow">Remont.biz.pl</a><a href="https://sobir.pl/" target="_blank" rel="noopener nofollow">Sobir.pl</a></div>
            </div>
          </div>
        </div>
      </section>

      <section class="rk-materials-final-cta" aria-label="Projekt ogrzewania podłogowego z zestawieniem materiałów">
        <span class="rk-materials-kicker" style="color:#79f1ff">Nie zamawiaj systemu według uśrednionej listy</span>
        <h2>Otrzymaj projekt z długościami pętli, przepływami i zestawieniem materiałów</h2>
        <p>Indywidualna dokumentacja łączy rzeczywiste straty ciepła, powierzchnie czynne, konstrukcję podłogi, rozstaw rur, długości obwodów, rozdzielacze i hydraulikę źródła. Dzięki temu wiadomo, jakie materiały są potrzebne oraz w jakiej ilości należy je zamówić.</p>
        <a class="rk-materials-cta-button rk-materials-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
        <small class="rk-materials-disclosure">Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
      </section>
    </div>
  </div>
</article>




<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/jakie-materialy-sa-potrzebne-do-instalacji-ogrzewania-podlogowego/#article",
      "mainEntityOfPage": {"@id": "https://projekt-ogrzewania.pl/jakie-materialy-sa-potrzebne-do-instalacji-ogrzewania-podlogowego/#webpage"},
      "headline": "Jakie materiały są potrzebne do ogrzewania podłogowego? Kompletna lista zakupowa",
      "description": "Kompletna lista materiałów do wodnego ogrzewania podłogowego z interaktywnym konfiguratorem, zasadami kompatybilności i checklistą odbioru.",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "dateModified": "2026-08-27",
      "inLanguage": "pl-PL",
      "author": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"},
      "publisher": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "about": [
        "wodne ogrzewanie podłogowe",
        "materiały do ogrzewania podłogowego",
        "rury grzewcze",
        "rozdzielacz ogrzewania podłogowego",
        "izolacja podłogi",
        "jastrych ogrzewany"
      ],
      "keywords": "materiały do ogrzewania podłogowego, lista materiałów do podłogówki, rury do podłogówki, rozdzielacz, izolacja, jastrych, automatyka",
      "isPartOf": {"@id": "https://projekt-ogrzewania.pl/#website"},
      "mentions": [
        {"@id": "https://projekt-ogrzewania.pl/jakie-materialy-sa-potrzebne-do-instalacji-ogrzewania-podlogowego/#configurator"},
        {"@id": "https://projekt-ogrzewania.pl/jakie-materialy-sa-potrzebne-do-instalacji-ogrzewania-podlogowego/#howto"},
        {"@id": "https://projekt-ogrzewania.pl/jakie-materialy-sa-potrzebne-do-instalacji-ogrzewania-podlogowego/#faq"}
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jakie-materialy-sa-potrzebne-do-instalacji-ogrzewania-podlogowego/#webpage",
      "url": "https://projekt-ogrzewania.pl/jakie-materialy-sa-potrzebne-do-instalacji-ogrzewania-podlogowego/",
      "name": "Jakie materiały są potrzebne do ogrzewania podłogowego?",
      "description": "Praktyczny przewodnik po materiałach, warstwach, hydraulice, sterowaniu, narzędziach i dokumentacji potrzebnej do wykonania wodnego ogrzewania podłogowego.",
      "inLanguage": "pl-PL",
      "isPartOf": {"@id": "https://projekt-ogrzewania.pl/#website"},
      "breadcrumb": {"@id": "https://projekt-ogrzewania.pl/jakie-materialy-sa-potrzebne-do-instalacji-ogrzewania-podlogowego/#breadcrumb"},
      "primaryImageOfPage": {"@type": "ImageObject", "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp"},
      "mainEntity": {"@id": "https://projekt-ogrzewania.pl/jakie-materialy-sa-potrzebne-do-instalacji-ogrzewania-podlogowego/#article"}
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/jakie-materialy-sa-potrzebne-do-instalacji-ogrzewania-podlogowego/#breadcrumb",
      "itemListElement": [
        {"@type": "ListItem", "position": 1, "name": "Strona główna", "item": "https://projekt-ogrzewania.pl/"},
        {"@type": "ListItem", "position": 2, "name": "Ogrzewanie podłogowe", "item": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe/"},
        {"@type": "ListItem", "position": 3, "name": "Materiały do ogrzewania podłogowego", "item": "https://projekt-ogrzewania.pl/jakie-materialy-sa-potrzebne-do-instalacji-ogrzewania-podlogowego/"}
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/jakie-materialy-sa-potrzebne-do-instalacji-ogrzewania-podlogowego/#configurator",
      "name": "Konfigurator materiałów do ogrzewania podłogowego",
      "url": "https://projekt-ogrzewania.pl/jakie-materialy-sa-potrzebne-do-instalacji-ogrzewania-podlogowego/#rk-materials-configurator",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Dowolny system z przeglądarką internetową",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "description": "Interaktywne narzędzie porządkujące materiały obowiązkowe, elementy zależne od technologii i parametry wymagające potwierdzenia w projekcie.",
      "author": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"},
      "provider": {"@id": "https://projekt-ogrzewania.pl/#organization"}
    },
    {
      "@type": "ItemList",
      "@id": "https://projekt-ogrzewania.pl/jakie-materialy-sa-potrzebne-do-instalacji-ogrzewania-podlogowego/#material-list",
      "name": "Podstawowe kategorie materiałów do wodnego ogrzewania podłogowego",
      "numberOfItems": 10,
      "itemListOrder": "https://schema.org/ItemListOrderAscending",
      "itemListElement": [
        {"@type": "ListItem", "position": 1, "name": "Projekt cieplny i hydrauliczny"},
        {"@type": "ListItem", "position": 2, "name": "Izolacja cieplna i warstwy ochronne"},
        {"@type": "ListItem", "position": 3, "name": "Taśma brzegowa i dylatacje"},
        {"@type": "ListItem", "position": 4, "name": "Rura z barierą antydyfuzyjną"},
        {"@type": "ListItem", "position": 5, "name": "System mocowania rur"},
        {"@type": "ListItem", "position": 6, "name": "Rozdzielacz i przyłącza"},
        {"@type": "ListItem", "position": 7, "name": "Szafka i przewody magistralne"},
        {"@type": "ListItem", "position": 8, "name": "Jastrych albo kompletny system suchy"},
        {"@type": "ListItem", "position": 9, "name": "Wyposażenie do próby i uruchomienia"},
        {"@type": "ListItem", "position": 10, "name": "Dokumentacja i oznaczenia obwodów"}
      ]
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/jakie-materialy-sa-potrzebne-do-instalacji-ogrzewania-podlogowego/#howto",
      "name": "Jak skompletować materiały do wodnego ogrzewania podłogowego?",
      "description": "Osiem kroków od wyboru technologii do zapisania dokumentacji powykonawczej.",
      "totalTime": "P7D",
      "supply": [
        {"@type": "HowToSupply", "name": "Projekt instalacji"},
        {"@type": "HowToSupply", "name": "Dokumentacja systemu ogrzewania podłogowego"}
      ],
      "tool": [
        {"@type": "HowToTool", "name": "Lista materiałów i karta kontroli"}
      ],
      "step": [
        {"@type": "HowToStep", "position": 1, "name": "Ustal technologię ogrzewanej podłogi", "text": "Wybierz system mokry cementowy, mokry na bazie siarczanu wapnia albo kompletny system suchy. Sprawdź dostępną wysokość, masę i ograniczenia konstrukcji."},
        {"@type": "HowToStep", "position": 2, "name": "Sprawdź konstrukcję i warunki podłoża", "text": "Określ, czy jest to podłoga na gruncie, strop nad pomieszczeniem ogrzewanym lub nieogrzewanym albo strop drewniany. Uwzględnij wilgoć, akustykę i obciążenia."},
        {"@type": "HowToStep", "position": 3, "name": "Odbierz projekt cieplny i hydrauliczny", "text": "Projekt powinien podać powierzchnie czynne, rozstawy, długości pętli, przepływy, opory, liczbę sekcji, temperatury pracy i sposób zasilania rozdzielaczy."},
        {"@type": "HowToStep", "position": 4, "name": "Dobierz jeden kompatybilny system rur i mocowania", "text": "Potwierdź wymiar rury, barierę antydyfuzyjną, promień gięcia, dane hydrauliczne, eurokonusy, klipsy lub płyty oraz zasady ochrony przejść."},
        {"@type": "HowToStep", "position": 5, "name": "Skompletuj rozdzielacz i elementy hydrauliczne", "text": "Dopasuj liczbę sekcji, zakres rotametrów, zawory, szafkę, przyłącza i magistralę. Pompę, mieszacz, bufor lub sprzęgło dodawaj tylko zgodnie ze schematem."},
        {"@type": "HowToStep", "position": 6, "name": "Przygotuj warstwy, dylatacje i jastrych", "text": "Zweryfikuj izolację, hydroizolację, taśmę brzegową, folię systemową, profile dylatacyjne oraz kompletną specyfikację jastrychu lub podłogi suchej."},
        {"@type": "HowToStep", "position": 7, "name": "Wykonaj próbę i udokumentuj instalację", "text": "Przed zakryciem sprawdź szczelność według instrukcji, opisz pętle, zapisz długości i ciśnienie oraz wykonaj zdjęcia przebiegu rur z punktami odniesienia."},
        {"@type": "HowToStep", "position": 8, "name": "Zapisz nastawy i dokumenty powykonawcze", "text": "Po płukaniu i uruchomieniu zanotuj przepływy, temperatury, ustawienia pompy, automatykę oraz materiały faktycznie użyte zamiast projektowanych zamienników."}
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/jakie-materialy-sa-potrzebne-do-instalacji-ogrzewania-podlogowego/#faq",
      "mainEntity": [
        {"@type": "Question", "name": "Jakie materiały są potrzebne do wodnego ogrzewania podłogowego?", "acceptedAnswer": {"@type": "Answer", "text": "Podstawowy zakres obejmuje projekt, izolację podłogi, taśmę brzegową, warstwę systemową, rurę z barierą antydyfuzyjną, mocowanie, osłony przejść, rozdzielacz, przyłącza, szafkę, jastrych albo kompletny system suchy oraz wyposażenie do próby i uruchomienia. Pompa, mieszacz i automatyka zależą od schematu."}},
        {"@type": "Question", "name": "Czy folia aluminiowa pod podłogówkę jest obowiązkowa?", "acceptedAnswer": {"@type": "Answer", "text": "Nie każda instalacja wymaga folii metalizowanej. Potrzebna może być folia systemowa, warstwa separacyjna albo szczelna warstwa chroniąca izolację przed wodą zarobową. Bez szczeliny powietrznej metalizowana powierzchnia nie zastępuje izolacji cieplnej i nie powinna być głównym kryterium zakupu."}},
        {"@type": "Question", "name": "Jaki styropian kupić pod ogrzewanie podłogowe?", "acceptedAnswer": {"@type": "Answer", "text": "Należy dobrać materiał o odpowiednim współczynniku λ, naprężeniu ściskającym, pełzaniu i grubości wynikającej z konstrukcji przegrody. Samo oznaczenie EPS 100 nie określa kompletnego rozwiązania. Przy wilgoci, dużych obciążeniach albo ograniczonej wysokości można rozważyć inne materiały po sprawdzeniu projektu."}},
        {"@type": "Question", "name": "Jaką rurę wybrać do ogrzewania podłogowego?", "acceptedAnswer": {"@type": "Answer", "text": "Rura powinna mieć wymiar zgodny z obliczeniami, udokumentowaną barierę antydyfuzyjną, dane hydrauliczne, właściwy promień gięcia i przyłącza zgodne z rozdzielaczem. W domach często stosuje się 16 × 2 mm, ale materiał PEX lub PE‑RT i sama średnica nie zastępują sprawdzenia długości oraz oporu pętli."}},
        {"@type": "Question", "name": "Czy do każdego rozdzielacza potrzebna jest pompa i zawór mieszający?", "acceptedAnswer": {"@type": "Answer", "text": "Nie. W bezpośrednim układzie niskotemperaturowym pompa źródła może obsługiwać rozdzielacze bez lokalnego mieszania, jeśli zapewnia wymagany przepływ i wysokość podnoszenia. Osobna pompa i mieszacz są potrzebne wtedy, gdy wynika to z temperatur obiegów i obliczeń hydraulicznych."}},
        {"@type": "Question", "name": "Czy każda pętla podłogówki musi mieć siłownik?", "acceptedAnswer": {"@type": "Answer", "text": "Nie. Każda pętla wymaga możliwości regulacji przepływu, ale siłownik jest potrzebny tylko wtedy, gdy obwód ma być odcinany przez automatykę strefową. Jedna strefa może obejmować kilka pętli, a instalacja może pracować również na regulacji pogodowej bez ciągłego zamykania obwodów."}},
        {"@type": "Question", "name": "Czy można łączyć rurę ogrzewania podłogowego w wylewce?", "acceptedAnswer": {"@type": "Answer", "text": "Standardowo pętlę wykonuje się z jednego ciągłego odcinka między zasilaniem i powrotem rozdzielacza. Nie należy planować zwykłych złączek w jastrychu. Jeżeli rura zostanie uszkodzona, naprawę trzeba wykonać rozwiązaniem dopuszczonym przez producenta, oznaczyć i udokumentować."}},
        {"@type": "Question", "name": "Co jest potrzebne do próby szczelności podłogówki?", "acceptedAnswer": {"@type": "Answer", "text": "Potrzebne są urządzenie do wytworzenia ciśnienia, manometr o odpowiednim zakresie i dokładności, medium próbne, węże, zaślepki oraz protokół. Ciśnienie, czas, temperatura i sposób badania powinny odpowiadać instrukcji konkretnego systemu oraz warunkom na budowie."}},
        {"@type": "Question", "name": "Czy do jastrychu zawsze potrzebny jest plastyfikator i włókna?", "acceptedAnswer": {"@type": "Answer", "text": "Nie. Dodatki, zbrojenie, receptura i grubość są elementami konkretnej technologii jastrychu. Nie należy samodzielnie dodawać plastyfikatora lub włókien do gotowej mieszanki bez zgody jej producenta. Liczą się kompletna specyfikacja, pola dylatacyjne, pielęgnacja i procedura wygrzewania."}},
        {"@type": "Question", "name": "Czy można kupić kompletny materiał do podłogówki przed projektem?", "acceptedAnswer": {"@type": "Answer", "text": "Można wcześniej wybrać technologię i producenta systemu, ale nie warto zamawiać całej ilości rury, rozdzielaczy, magistrali, pomp i automatyki. Ich ilości oraz parametry zależą od powierzchni czynnej, rozstawów, liczby pętli, przepływów, oporów i sposobu współpracy ze źródłem ciepła."}}
      ]
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "description": "Autor i projektant specjalizujący się w wodnym ogrzewaniu podłogowym, hydraulice instalacyjnej oraz dokumentacji wykonawczej.",
      "worksFor": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "sameAs": ["https://remont.biz.pl/", "https://sobir.pl/"]
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt-Ogrzewania.pl",
      "url": "https://projekt-ogrzewania.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt-Ogrzewania.pl",
      "inLanguage": "pl-PL",
      "publisher": {"@id": "https://projekt-ogrzewania.pl/#organization"}
    }
  ]
}
</script>



<script>
(function () {
  "use strict";

  function rkMaterialsInit() {
    var root = document.getElementById("rk-materials-guide");
    if (!root) {
      return false;
    }
    if (root.getAttribute("data-rk-materials-ready") === "true") {
      return true;
    }

    var form = document.getElementById("rk-materials-config-form");
    var systemInput = document.getElementById("rk-materials-system");
    var baseInput = document.getElementById("rk-materials-base");
    var buildingInput = document.getElementById("rk-materials-building");
    var fixingInput = document.getElementById("rk-materials-fixing");
    var sourceInput = document.getElementById("rk-materials-source");
    var controlInput = document.getElementById("rk-materials-control-mode");
    var moistureInput = document.getElementById("rk-materials-moisture");
    var loadInput = document.getElementById("rk-materials-load");
    var resetButton = document.getElementById("rk-materials-config-reset");
    var summary = document.getElementById("rk-materials-config-summary");
    var countCore = document.getElementById("rk-materials-count-core");
    var countSelected = document.getElementById("rk-materials-count-selected");
    var countVerify = document.getElementById("rk-materials-count-verify");
    var resultState = document.getElementById("rk-materials-result-state");
    var statusBox = document.getElementById("rk-materials-config-status");
    var statusTitle = document.getElementById("rk-materials-config-title");
    var statusCopy = document.getElementById("rk-materials-config-copy");
    var layerFinish = document.getElementById("rk-materials-layer-finish");
    var layerTransfer = document.getElementById("rk-materials-layer-transfer");
    var layerPipe = document.getElementById("rk-materials-layer-pipe");
    var layerInsulation = document.getElementById("rk-materials-layer-insulation");
    var layerBase = document.getElementById("rk-materials-layer-base");
    var coreList = document.getElementById("rk-materials-core-list");
    var selectedList = document.getElementById("rk-materials-selected-list");
    var verifyList = document.getElementById("rk-materials-verify-list");
    var doNotBuy = document.getElementById("rk-materials-do-not-buy");
    var copyButton = document.getElementById("rk-materials-copy");
    var printButton = document.getElementById("rk-materials-print");
    var copyStatus = document.getElementById("rk-materials-copy-status");

    var required = [
      form, systemInput, baseInput, buildingInput, fixingInput, sourceInput,
      controlInput, moistureInput, loadInput, resetButton, summary, countCore,
      countSelected, countVerify, resultState, statusBox, statusTitle, statusCopy,
      layerFinish, layerTransfer, layerPipe, layerInsulation, layerBase, coreList,
      selectedList, verifyList, doNotBuy, copyButton, printButton, copyStatus
    ];
    var ready = true;
    required.forEach(function (element) {
      if (!element) {
        ready = false;
      }
    });
    if (!ready) {
      return false;
    }

    var labels = {
      system: {
        cement: "jastrych cementowy",
        anhydrite: "jastrych anhydrytowy",
        dry: "system suchy"
      },
      base: {
        ground: "podłoga na gruncie",
        heated: "strop nad pomieszczeniem ogrzewanym",
        unheated: "strop nad garażem lub piwnicą",
        timber: "strop drewniany"
      },
      building: {
        new: "nowy budynek",
        renovation: "remont"
      },
      fixing: {
        tacker: "klipsy i taker",
        rail: "listwy montażowe",
        stud: "płyty z wypustkami",
        drypanel: "płyty systemu suchego"
      },
      source: {
        heatpump: "pompa ciepła",
        gas: "kocioł kondensacyjny",
        mixed: "podłogówka i grzejniki",
        solid: "kocioł na paliwo stałe"
      },
      control: {
        weather: "regulacja pogodowa",
        zones: "sterowanie strefowe"
      }
    };

    var coreItems = [
      "Projekt cieplny i hydrauliczny z rozstawami, pętlami, przepływami i nastawami.",
      "Izolacja cieplna oraz warstwy ochronne dobrane do całej konstrukcji podłogi.",
      "Ciągła taśma brzegowa, dylatacje i osłony rur w przejściach.",
      "Rura systemowa z udokumentowaną barierą antydyfuzyjną.",
      "Eurokonusy lub adaptery zgodne z wymiarem i konstrukcją rury.",
      "Rozdzielacz z rotametrami, zaworami powrotnymi, odpowietrzeniem i spustem.",
      "Szafka albo stabilna konstrukcja montażowa z dostępem serwisowym.",
      "Oznaczenia pętli, etykiety rozdzielaczy i fotograficzna dokumentacja przebiegu.",
      "Pompa próbna, manometr, węże, zaślepki i protokół próby szczelności.",
      "Instrukcje systemowe, tabela nastaw oraz protokół uruchomienia i wygrzewania."
    ];

    var lastResult = null;

    function rkMaterialsClear(element) {
      while (element.firstChild) {
        element.removeChild(element.firstChild);
      }
    }

    function rkMaterialsAddUnique(list, text) {
      if (list.indexOf(text) === -1) {
        list.push(text);
      }
    }

    function rkMaterialsRenderList(element, items) {
      rkMaterialsClear(element);
      items.forEach(function (text) {
        var item = document.createElement("li");
        item.textContent = text;
        element.appendChild(item);
      });
    }

    function rkMaterialsRenderSummary(values) {
      rkMaterialsClear(summary);
      values.forEach(function (text) {
        var badge = document.createElement("span");
        badge.className = "rk-materials-config-badge";
        badge.textContent = text;
        summary.appendChild(badge);
      });
    }

    function rkMaterialsBuildResult() {
      var system = systemInput.value;
      var base = baseInput.value;
      var building = buildingInput.value;
      var fixing = fixingInput.value;
      var source = sourceInput.value;
      var control = controlInput.value;
      var moisture = moistureInput.checked;
      var heavyLoad = loadInput.checked;
      var selected = [];
      var verify = [
        "Obciążenie cieplne i czynna powierzchnia każdego pomieszczenia.",
        "Średnica rury, rozstaw, długości obwodów i całkowita ilość rury z dobiegami.",
        "Lokalizacje rozdzielaczy, rzeczywista liczba pętli i liczba sekcji.",
        "Projektowe przepływy, opory pętli i zakres pracy rotametrów.",
        "Grubość, współczynnik λ, nośność i pełzanie warstw izolacyjnych.",
        "Średnice magistrali, wymagany przepływ oraz dyspozycyjne ciśnienie pompy.",
        "Grubość jastrychu lub płyt, pola dylatacyjne, procedurę wygrzewania i wilgotność pod okładzinę."
      ];
      var warnings = [];
      var level = "ok";
      var title = "Spójny punkt wyjścia do przygotowania listy materiałów";
      var copy = "Kategorie są dopasowane do wskazanego wariantu. Ilości oraz parametry nadal trzeba pobrać z projektu i dokumentacji wybranego systemu.";
      var transferText = "Jastrych cementowy wykonany według receptury i projektu pól";
      var pipeText = "Rura z barierą antydyfuzyjną mocowana klipsami";
      var insulationText = "Izolacja cieplna i warstwa systemowa dobrane do podłogi na gruncie";
      var baseText = "Równe, nośne podłoże z koordynacją hydroizolacji";
      var finishText = "Okładzina i materiały montażowe o znanym oporze cieplnym";
      var doNotBuyText = "Grupy mieszającej, dodatkowej pompy, siłowników na każdą pętlę, przypadkowej liczby sekcji rozdzielacza ani uniwersalnej grubości EPS.";

      if (system === "cement") {
        rkMaterialsAddUnique(selected, "Jastrych cementowy o recepturze przeznaczonej na ogrzewanie podłogowe.");
        rkMaterialsAddUnique(selected, "Warstwa separacyjna lub systemowa zabezpieczona przed wodą zarobową.");
        rkMaterialsAddUnique(selected, "Materiały do pielęgnacji, pomiaru wilgotności i kontrolowanego wygrzewania.");
        rkMaterialsAddUnique(selected, "Dodatki i zbrojenie wyłącznie wtedy, gdy przewiduje je receptura jastrychu.");
      }
      if (system === "anhydrite") {
        rkMaterialsAddUnique(selected, "Jastrych na bazie siarczanu wapnia zgodny z wybranym systemem grzewczym.");
        rkMaterialsAddUnique(selected, "Szczelna warstwa pod rurami oraz uszczelnione zakłady i przejścia.");
        rkMaterialsAddUnique(selected, "Materiały do przygotowania powierzchni, pomiaru wilgotności i wygrzewania.");
        rkMaterialsAddUnique(selected, "Taśma brzegowa i profile dobrane do płynnego jastrychu oraz pól wykonawczych.");
        transferText = "Jastrych na bazie siarczanu wapnia zgodny ze specyfikacją wykonawcy";
      }
      if (system === "dry") {
        rkMaterialsAddUnique(selected, "Kompletne płyty profilowane systemu suchego.");
        rkMaterialsAddUnique(selected, "Lamele lub blachy przewodzące ciepło dopasowane do płyt i rury.");
        rkMaterialsAddUnique(selected, "Płyty rozkładające obciążenie i warstwy wykończeniowe dopuszczone przez producenta.");
        rkMaterialsAddUnique(selected, "Elementy połączeń, kleje i wkręty przewidziane w dokumentacji systemu.");
        rkMaterialsAddUnique(verify, "Nośność, ugięcie, rozstaw podpór i dopuszczalne obciążenie kompletnej podłogi suchej.");
        transferText = "Lamele przewodzące i suche płyty rozkładające obciążenie";
      }

      if (base === "ground") {
        rkMaterialsAddUnique(selected, "Izolacja cieplna o parametrach wynikających z obliczeń podłogi na gruncie.");
        rkMaterialsAddUnique(selected, "Hydroizolacja lub warstwa przeciwwilgociowa połączona z izolacją budynku.");
        rkMaterialsAddUnique(selected, "Materiał do szczelnego wypełnienia i wyrównania przejść instalacyjnych.");
      }
      if (base === "heated") {
        rkMaterialsAddUnique(selected, "Warstwa izolacyjna ograniczająca przepływ ciepła i przenoszenie dźwięków przez strop.");
        rkMaterialsAddUnique(selected, "Warstwa rozdzielająca dobrana do konstrukcji pływającej podłogi.");
        insulationText = "Izolacja cieplna i akustyczna dobrana do stropu wewnętrznego";
        baseText = "Równy i nośny strop nad ogrzewanym pomieszczeniem";
      }
      if (base === "unheated") {
        rkMaterialsAddUnique(selected, "Izolacja cieplna dobrana do przegrody nad przestrzenią nieogrzewaną.");
        rkMaterialsAddUnique(selected, "Warstwa akustyczna, jeśli wymaga jej konstrukcja i przeznaczenie stropu.");
        rkMaterialsAddUnique(selected, "Warstwa ochronna lub paroszczelna w położeniu wynikającym z projektu przegrody.");
        insulationText = "Izolacja cieplna zweryfikowana dla stropu nad strefą nieogrzewaną";
        baseText = "Nośny strop nad garażem lub piwnicą z kontrolą warunków wilgotnościowych";
      }
      if (base === "timber") {
        rkMaterialsAddUnique(selected, "Lekki układ rozkładający obciążenie dostosowany do stropu drewnianego.");
        rkMaterialsAddUnique(selected, "Warstwy akustyczne i kontrolujące przepływ pary zgodne z fizyką przegrody.");
        rkMaterialsAddUnique(selected, "Wzmocnienia, podparcia i łączniki wskazane przez projektanta konstrukcji.");
        rkMaterialsAddUnique(verify, "Dopuszczalne ugięcie, masa warstw i wilgotność konstrukcji drewnianej.");
        insulationText = "Izolacja i warstwy akustyczne zgodne z układem stropu drewnianego";
        baseText = "Sprawdzony konstrukcyjnie strop drewniany o kontrolowanym ugięciu";
      }

      if (fixing === "tacker") {
        rkMaterialsAddUnique(selected, "Folia lub mata systemowa kompatybilna z klipsami.");
        rkMaterialsAddUnique(selected, "Klipsy o długości dobranej do warstwy mocującej.");
        rkMaterialsAddUnique(selected, "Taker, rozwijak do rury i materiały do naprawy przebić warstwy systemowej.");
        pipeText = "Rura z barierą antydyfuzyjną, klipsy oraz kompatybilna warstwa pod taker";
      }
      if (fixing === "rail") {
        rkMaterialsAddUnique(selected, "Listwy montażowe o rastrze zgodnym z projektowanym rozstawem rur.");
        rkMaterialsAddUnique(selected, "Łączniki listew i mocowania przeznaczone do konkretnego podłoża.");
        pipeText = "Rura z barierą antydyfuzyjną mocowana w listwach montażowych";
      }
      if (fixing === "stud") {
        rkMaterialsAddUnique(selected, "Płyty z wypustkami oraz systemowe elementy łączenia i uszczelniania.");
        rkMaterialsAddUnique(selected, "Uchwyty dodatkowe w miejscach, w których wymaga ich geometria pętli.");
        pipeText = "Rura z barierą antydyfuzyjną osadzona w kompatybilnych płytach z wypustkami";
      }
      if (fixing === "drypanel") {
        rkMaterialsAddUnique(selected, "Płyty profilowane i lamele należące do jednego kompletnego systemu suchego.");
        rkMaterialsAddUnique(selected, "Rura o wymiarze i promieniu gięcia dopuszczonym dla wybranych paneli.");
        pipeText = "Rura systemowa osadzona w profilowanych panelach i lamelach przewodzących";
      }

      if (source === "heatpump") {
        rkMaterialsAddUnique(selected, "Zawory odcinające, filtracja i zabezpieczenia wymagane przez producenta pompy ciepła.");
        rkMaterialsAddUnique(selected, "Czujnik zewnętrzny oraz automatyka do regulacji temperatury zasilania.");
        rkMaterialsAddUnique(selected, "Izolowane przewody magistralne dobrane do łącznego przepływu rozdzielaczy.");
        rkMaterialsAddUnique(verify, "Minimalny przepływ pompy ciepła oraz potrzeba bufora, sprzęgła lub zaworu nadmiarowego.");
      }
      if (source === "gas") {
        rkMaterialsAddUnique(selected, "Zawory odcinające, filtracja i automatyka pogodowa kotła kondensacyjnego.");
        rkMaterialsAddUnique(selected, "Izolowane przewody magistralne dobrane do łącznego przepływu rozdzielaczy.");
        rkMaterialsAddUnique(verify, "Minimalną moc kotła, zakres modulacji i zdolność jego pompy do obsługi instalacji.");
      }
      if (source === "mixed") {
        rkMaterialsAddUnique(selected, "Osobny obieg pompowy podłogówki, jeśli wymaga go bilans przepływów.");
        rkMaterialsAddUnique(selected, "Zawór mieszający z siłownikiem i regulacją temperatury obiegu podłogowego.");
        rkMaterialsAddUnique(selected, "Armatura zwrotna, odcinająca i równoważąca oba poziomy temperatury.");
        rkMaterialsAddUnique(verify, "Dobór Kv mieszacza, pompy, sprzęgła lub bufora i współpracę obiegów.");
        doNotBuyText = "Przypadkowej grupy mieszającej bez obliczenia przepływu i Kv, uniwersalnej pompy, zbyt małej magistrali ani sterowania, które zamyka wszystkie obiegi bez koordynacji ze źródłem.";
      }
      if (source === "solid") {
        rkMaterialsAddUnique(selected, "Bufor lub inne rozwiązanie magazynowania ciepła wynikające ze schematu źródła.");
        rkMaterialsAddUnique(selected, "Ochrona temperatury powrotu kotła i wymagane zabezpieczenia instalacji.");
        rkMaterialsAddUnique(selected, "Obieg pompowy oraz regulacja temperatury zasilania podłogówki.");
        rkMaterialsAddUnique(selected, "Armatura odcinająca, zwrotna, filtracyjna i równoważąca zgodna ze schematem.");
        rkMaterialsAddUnique(verify, "Pojemność bufora, zabezpieczenia źródła, Kv mieszacza i parametry pomp.");
        doNotBuyText = "Bufora o przypadkowej pojemności, uniwersalnego mieszacza, pompy dobranej tylko do średnicy przyłącza ani elementów zabezpieczających niezgodnych z dokumentacją kotła.";
      }

      if (control === "weather") {
        rkMaterialsAddUnique(selected, "Czujnik zewnętrzny i regulator temperatury zasilania zgodny ze źródłem.");
        rkMaterialsAddUnique(selected, "Tabela projektowych nastaw przepływu dla wszystkich pętli.");
      }
      if (control === "zones") {
        rkMaterialsAddUnique(selected, "Siłowniki dobrane do gwintu zaworów, napięcia oraz trybu NC lub NO.");
        rkMaterialsAddUnique(selected, "Regulatory pomieszczeniowe odpowiadające rzeczywistemu podziałowi na strefy.");
        rkMaterialsAddUnique(selected, "Listwa sterująca, okablowanie albo elementy komunikacji radiowej.");
        rkMaterialsAddUnique(selected, "Sygnał zapotrzebowania i blokady skoordynowany z pompą oraz źródłem ciepła.");
        rkMaterialsAddUnique(verify, "Przypisanie pętli do stref i minimalny przepływ po zamknięciu części siłowników.");
      }

      if (moisture) {
        rkMaterialsAddUnique(selected, "Hydroizolacja podpłytkowa lub inna ochrona strefy mokrej zgodna z jej przeznaczeniem.");
        rkMaterialsAddUnique(selected, "Taśmy, narożniki, mankiety i uszczelnienia wszystkich przejść przez warstwę wodochronną.");
        rkMaterialsAddUnique(verify, "Położenie warstw wodochronnych i kompatybilność gruntów, klejów oraz okładziny.");
      }
      if (heavyLoad) {
        rkMaterialsAddUnique(selected, "Izolacja o potwierdzonej nośności i ograniczonym pełzaniu pod danym obciążeniem.");
        rkMaterialsAddUnique(selected, "Warstwa rozkładająca obciążenie oraz oddzielenie miejsc nieogrzewanych lub posadowionych osobno.");
        rkMaterialsAddUnique(verify, "Naprężenia trwałe, pełzanie, grubość jastrychu i sposób posadowienia ciężkich elementów.");
      }

      if (system === "dry") {
        if (fixing !== "drypanel") {
          level = "danger";
          warnings.push("System suchy wymaga paneli i elementów przewidzianych przez jego producenta. Klipsy, listwy lub typowe płyty mokrego systemu nie tworzą samodzielnie kompletnej podłogi suchej.");
        }
      } else {
        if (fixing === "drypanel") {
          level = "danger";
          warnings.push("Wybrano panele systemu suchego razem z mokrym jastrychem. Zmień technologię albo zastosuj mocowanie dopuszczone pod wybraną wylewkę.");
        }
      }
      if (base === "timber") {
        if (system !== "dry") {
          if (level !== "danger") {
            level = "warning";
          }
          warnings.push("Mokry jastrych na stropie drewnianym wymaga sprawdzenia masy, ugięcia, wilgotności i warstw przez konstruktora. Zwykle warto porównać go z kompletnym systemem suchym.");
        }
      }
      if (system === "anhydrite") {
        if (moisture) {
          if (level !== "danger") {
            level = "warning";
          }
          warnings.push("Jastrych na bazie siarczanu wapnia w strefie mokrej wymaga potwierdzenia dopuszczenia, wysuszenia i właściwej hydroizolacji przed okładziną.");
        }
      }
      if (building === "renovation") {
        if (level === "ok") {
          level = "warning";
        }
        warnings.push("Ograniczona wysokość wymaga sprawdzenia całego przekroju, nośności i progów. Nie wolno kompensować braku miejsca przypadkowym zmniejszeniem izolacji albo grubości warstwy nośnej.");
      }
      if (heavyLoad) {
        if (level === "ok") {
          level = "warning";
        }
        warnings.push("Ciężkie obciążenie wymaga obliczenia warstw nośnych i sposobu posadowienia. Sam symbol EPS 100 lub EPS 200 nie zamyka tej kontroli.");
      }

      if (level === "warning") {
        title = "Wariant wymaga dodatkowego potwierdzenia";
        copy = warnings.join(" ");
      }
      if (level === "danger") {
        title = "Wybrane elementy nie tworzą spójnego systemu";
        copy = warnings.join(" ");
      }

      if (base === "ground") {
        insulationText = "Izolacja cieplna i warstwy przeciwwilgociowe dobrane do podłogi na gruncie";
      }
      if (building === "renovation") {
        baseText = baseText + "; wysokość całego przekroju wymaga pomiaru";
      }

      return {
        system: system,
        base: base,
        building: building,
        fixing: fixing,
        source: source,
        control: control,
        moisture: moisture,
        heavyLoad: heavyLoad,
        core: coreItems.slice(),
        selected: selected,
        verify: verify,
        warnings: warnings,
        level: level,
        title: title,
        copy: copy,
        finishText: finishText,
        transferText: transferText,
        pipeText: pipeText,
        insulationText: insulationText,
        baseText: baseText,
        doNotBuyText: doNotBuyText
      };
    }

    function rkMaterialsCalculate() {
      var result = rkMaterialsBuildResult();
      var summaryItems = [
        "Podłoga: " + labels.system[result.system],
        "Podłoże: " + labels.base[result.base],
        "Inwestycja: " + labels.building[result.building],
        "Mocowanie: " + labels.fixing[result.fixing],
        "Źródło: " + labels.source[result.source],
        "Regulacja: " + labels.control[result.control]
      ];
      if (result.moisture) {
        summaryItems.push("Strefa wilgotna");
      }
      if (result.heavyLoad) {
        summaryItems.push("Podwyższone obciążenie");
      }

      rkMaterialsRenderSummary(summaryItems);
      rkMaterialsRenderList(coreList, result.core);
      rkMaterialsRenderList(selectedList, result.selected);
      rkMaterialsRenderList(verifyList, result.verify);
      countCore.textContent = String(result.core.length);
      countSelected.textContent = String(result.selected.length);
      countVerify.textContent = String(result.verify.length);
      resultState.textContent = "spójny";
      if (result.level === "warning") {
        resultState.textContent = "sprawdź";
      }
      if (result.level === "danger") {
        resultState.textContent = "zmień wybór";
      }
      statusBox.className = "rk-materials-audit-status";
      if (result.level === "warning") {
        statusBox.classList.add("is-warning");
      }
      if (result.level === "danger") {
        statusBox.classList.add("is-danger");
      }
      statusTitle.textContent = result.title;
      statusCopy.textContent = result.copy;
      layerFinish.textContent = result.finishText;
      layerTransfer.textContent = result.transferText;
      layerPipe.textContent = result.pipeText;
      layerInsulation.textContent = result.insulationText;
      layerBase.textContent = result.baseText;
      doNotBuy.textContent = result.doNotBuyText;
      copyStatus.textContent = "";
      lastResult = result;
    }

    function rkMaterialsTextList(title, items) {
      var lines = [title];
      items.forEach(function (item) {
        lines.push("- " + item);
      });
      return lines.join("\n");
    }

    function rkMaterialsCopyText() {
      if (!lastResult) {
        rkMaterialsCalculate();
      }
      var result = lastResult;
      var textParts = [
        "MATERIAŁY DO OGRZEWANIA PODŁOGOWEGO — LISTA WSTĘPNA",
        "Technologia: " + labels.system[result.system],
        "Podłoże: " + labels.base[result.base],
        "Inwestycja: " + labels.building[result.building],
        "Mocowanie: " + labels.fixing[result.fixing],
        "Źródło: " + labels.source[result.source],
        "Regulacja: " + labels.control[result.control],
        "",
        rkMaterialsTextList("POTRZEBNE W KAŻDYM WARIANCIE", result.core),
        "",
        rkMaterialsTextList("WYNIKAJĄCE Z WYBORU", result.selected),
        "",
        rkMaterialsTextList("DO POTWIERDZENIA", result.verify),
        "",
        "Ocena: " + result.title,
        result.copy,
        "",
        "Uwaga: lista nie jest zestawieniem ilościowym ani projektem wykonawczym."
      ];
      var textValue = textParts.join("\n");

      function success() {
        copyStatus.textContent = "Lista została skopiowana do schowka.";
      }

      function fallback() {
        var area = document.createElement("textarea");
        area.value = textValue;
        area.setAttribute("readonly", "readonly");
        area.style.position = "fixed";
        area.style.left = "-9999px";
        document.body.appendChild(area);
        area.select();
        var copied = false;
        try {
          copied = document.execCommand("copy");
        } catch (error) {
          copied = false;
        }
        document.body.removeChild(area);
        if (copied) {
          success();
        } else {
          copyStatus.textContent = "Nie udało się skopiować automatycznie. Zaznacz listę bezpośrednio na stronie.";
        }
      }

      if (navigator.clipboard) {
        if (typeof navigator.clipboard.writeText === "function") {
          navigator.clipboard.writeText(textValue).then(success, fallback);
          return;
        }
      }
      fallback();
    }

    function rkMaterialsReset() {
      systemInput.value = "cement";
      baseInput.value = "ground";
      buildingInput.value = "new";
      fixingInput.value = "tacker";
      sourceInput.value = "heatpump";
      controlInput.value = "weather";
      moistureInput.checked = false;
      loadInput.checked = false;
      rkMaterialsCalculate();
    }

    form.addEventListener("change", rkMaterialsCalculate);
    form.addEventListener("input", rkMaterialsCalculate);
    form.addEventListener("submit", function (event) {
      event.preventDefault();
      rkMaterialsCalculate();
    });
    resetButton.addEventListener("click", rkMaterialsReset);
    copyButton.addEventListener("click", rkMaterialsCopyText);
    printButton.addEventListener("click", function () {
      window.print();
    });

    root.querySelectorAll('.rk-materials-nav a[href^="#rk-materials-"]').forEach(function (link) {
      link.addEventListener("click", function (event) {
        var target = document.querySelector(link.getAttribute("href"));
        if (!target) {
          return;
        }
        event.preventDefault();
        var behavior = "smooth";
        if (window.matchMedia) {
          if (window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
            behavior = "auto";
          }
        }
        target.scrollIntoView({behavior: behavior, block: "start"});
      });
    });

    var progress = document.getElementById("rk-materials-progress");
    function rkMaterialsUpdateProgress() {
      if (!progress) {
        return;
      }
      var rect = root.getBoundingClientRect();
      var viewport = window.innerHeight || document.documentElement.clientHeight;
      var total = root.offsetHeight - viewport;
      var passed = -rect.top;
      var percentValue = 0;
      if (total > 0) {
        percentValue = Math.max(0, Math.min(100, passed / total * 100));
      }
      progress.style.width = percentValue.toFixed(1) + "%";
    }
    window.addEventListener("scroll", rkMaterialsUpdateProgress, {passive: true});
    window.addEventListener("resize", rkMaterialsUpdateProgress);

    root.setAttribute("data-rk-materials-ready", "true");
    rkMaterialsCalculate();
    rkMaterialsUpdateProgress();
    return true;
  }

  function rkMaterialsBoot() {
    rkMaterialsInit();
  }

  rkMaterialsBoot();
  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", rkMaterialsBoot, {once: true});
  }
  window.addEventListener("load", rkMaterialsBoot, {once: true});
  window.setTimeout(rkMaterialsBoot, 180);
  window.setTimeout(rkMaterialsBoot, 700);
  window.setTimeout(rkMaterialsBoot, 1600);

  if (window.MutationObserver) {
    var observerTarget = document.body || document.documentElement;
    if (observerTarget) {
      var observer = new MutationObserver(function () {
        if (rkMaterialsInit()) {
          observer.disconnect();
        }
      });
      observer.observe(observerTarget, {childList: true, subtree: true});
      window.setTimeout(function () {
        observer.disconnect();
      }, 5000);
    }
  }
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jakie-materialy-sa-potrzebne-do-instalacji-ogrzewania-podlogowego/">Jakie materiały są potrzebne do instalacji ogrzewania podłogowego?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
