<?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 Instalacja ogrzewania podłogowego - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/category/instalacja-ogrzewania-podlogowego/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/category/instalacja-ogrzewania-podlogowego/</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 Instalacja ogrzewania podłogowego - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/category/instalacja-ogrzewania-podlogowego/</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>Kalkulator strat ciepła budynku – jak samodzielnie obliczyć zapotrzebowanie na ogrzewanie.</title>
		<link>https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Mon, 09 Mar 2026 11:26:18 +0000</pubDate>
				<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacja ogrzewania podłogowego]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Instalacje hydrauliczne]]></category>
		<category><![CDATA[Kalkulatory budowlane]]></category>
		<category><![CDATA[Modernizacja domu]]></category>
		<category><![CDATA[Modernizacja ogrzewania]]></category>
		<category><![CDATA[Narzędzia i kalkulatory]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki inwestora]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[ile wat na m2]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[kalkulator strat ciepła]]></category>
		<category><![CDATA[moc ogrzewania domu]]></category>
		<category><![CDATA[obliczanie strat ciepła]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[straty ciepła domu]]></category>
		<category><![CDATA[zapotrzebowanie na ogrzewanie]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3743</guid>

					<description><![CDATA[<p>Obliczenie zapotrzebowania na ciepło budynku to pierwszy krok do prawidłowego zaprojektowania instalacji grzewczej. W tym poradniku pokazujemy, jak w prosty sposób oszacować straty energii w domu i sprawdzić, czy ogrzewanie podłogowe będzie wystarczające. Dzięki praktycznym wskazówkom oraz przykładom obliczeń dowiesz się, jak wykorzystać kalkulator strat ciepła domu – jak samodzielnie obliczyć zapotrzebowanie na ogrzewanie, aby ocenić moc instalacji, temperaturę zasilania oraz potencjalne koszty eksploatacji. To wiedza szczególnie przydatna dla inwestorów budujących dom lub modernizujących starsze budynki.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">Kalkulator strat ciepła budynku – jak samodzielnie obliczyć zapotrzebowanie na ogrzewanie.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-hl-guide {
    --rk-dark: #102536;
    --rk-navy: #15394d;
    --rk-blue: #078fbe;
    --rk-cyan: #25c7d8;
    --rk-cyan-soft: #e9fbff;
    --rk-orange: #ff6a3d;
    --rk-orange-soft: #fff1eb;
    --rk-green: #16836b;
    --rk-green-soft: #eaf8f3;
    --rk-yellow: #e9ae27;
    --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: #6d808d;
    --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.72;
  }

  #rk-hl-guide,
  #rk-hl-guide * { box-sizing: border-box; }
  #rk-hl-guide img,
  #rk-hl-guide svg { max-width: 100%; }
  #rk-hl-guide button,
  #rk-hl-guide input,
  #rk-hl-guide select,
  #rk-hl-guide label,
  #rk-hl-guide summary,
  #rk-hl-guide a { font: inherit; -webkit-tap-highlight-color: transparent; }
  #rk-hl-guide button,
  #rk-hl-guide input,
  #rk-hl-guide select { max-width: 100%; }
  #rk-hl-guide a {
    color: var(--rk-blue);
    font-weight: 780;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }
  #rk-hl-guide a:hover,
  #rk-hl-guide a:focus-visible { color: var(--rk-red); }
  #rk-hl-guide p,
  #rk-hl-guide ul,
  #rk-hl-guide ol { margin-top: 0; margin-bottom: 1.08em; }
  #rk-hl-guide h2,
  #rk-hl-guide h3,
  #rk-hl-guide h4 {
    margin-top: 0;
    color: var(--rk-dark);
    font-weight: 920;
    letter-spacing: -.035em;
    line-height: 1.15;
  }
  #rk-hl-guide h2 { margin-bottom: 18px; font-size: clamp(1.72rem, 4vw, 2.68rem); }
  #rk-hl-guide h3 { margin-bottom: 11px; font-size: clamp(1.12rem, 2.35vw, 1.46rem); }
  #rk-hl-guide h4 { margin-bottom: 8px; font-size: 1.02rem; }
  #rk-hl-guide strong { color: var(--rk-dark); }
  #rk-hl-guide [id] { scroll-margin-top: 24px; }

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

  #rk-hl-guide .rk-hl-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(38px, 7vw, 76px) clamp(25px, 6vw, 76px) 42px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 91% 4%, rgba(37, 199, 216, .32), transparent 28%),
      radial-gradient(circle at 6% 95%, rgba(255, 106, 61, .22), transparent 27%),
      linear-gradient(135deg, #0d2332 0%, #143e53 58%, #0b6680 100%);
  }
  #rk-hl-guide .rk-hl-hero::after {
    position: absolute;
    right: -74px;
    bottom: -120px;
    width: 350px;
    height: 350px;
    border: 44px solid rgba(255, 255, 255, .055);
    border-radius: 50%;
    content: "";
  }
  #rk-hl-guide .rk-hl-kicker {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 15px;
    color: #78efff;
    font-size: .69rem;
    font-weight: 950;
    letter-spacing: .09em;
    line-height: 1.2;
    text-transform: uppercase;
  }
  #rk-hl-guide .rk-hl-kicker::before {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--rk-orange);
    box-shadow: 0 0 0 6px rgba(255, 106, 61, .14);
    content: "";
  }
  #rk-hl-guide .rk-hl-hero-title {
    position: relative;
    z-index: 1;
    max-width: 960px;
    margin: 0 0 19px;
    color: var(--rk-white);
    font-size: clamp(2.05rem, 5.4vw, 4.28rem);
    font-weight: 950;
    letter-spacing: -.055em;
    line-height: 1.01;
  }
  #rk-hl-guide .rk-hl-hero-title span { color: #78efff; }
  #rk-hl-guide .rk-hl-lead {
    position: relative;
    z-index: 1;
    max-width: 900px;
    margin-bottom: 24px;
    color: #d8e9ef;
    font-size: clamp(1.02rem, 2vw, 1.24rem);
    line-height: 1.67;
  }
  #rk-hl-guide .rk-hl-hero-tags {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-bottom: 27px;
  }
  #rk-hl-guide .rk-hl-hero-tag {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 8px 13px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 999px;
    color: #eefcff;
    background: rgba(255, 255, 255, .075);
    font-size: .72rem;
    font-weight: 850;
    line-height: 1.3;
  }
  #rk-hl-guide .rk-hl-byline {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    color: #bad3dc;
    font-size: .72rem;
    font-weight: 720;
  }
  #rk-hl-guide .rk-hl-byline strong { color: var(--rk-white); }
  #rk-hl-guide .rk-hl-hero-metrics {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 34px;
  }
  #rk-hl-guide .rk-hl-hero-metric {
    padding: 17px 18px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 16px;
    background: rgba(5, 24, 36, .28);
  }
  #rk-hl-guide .rk-hl-hero-metric b {
    display: block;
    margin-bottom: 4px;
    color: #7af0ff;
    font-size: 1.04rem;
    font-weight: 950;
  }
  #rk-hl-guide .rk-hl-hero-metric span {
    display: block;
    color: #d5e7ec;
    font-size: .7rem;
    line-height: 1.45;
  }

  #rk-hl-guide .rk-hl-nav {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    padding: 18px clamp(20px, 4vw, 46px);
    border-bottom: 1px solid var(--rk-line);
    background: var(--rk-white);
  }
  #rk-hl-guide .rk-hl-nav-label {
    padding-top: 8px;
    color: var(--rk-dark);
    font-size: .65rem;
    font-weight: 950;
    letter-spacing: .07em;
    text-transform: uppercase;
    white-space: nowrap;
  }
  #rk-hl-guide .rk-hl-nav-links { display: flex; flex-wrap: wrap; gap: 8px; min-width: 0; }
  #rk-hl-guide .rk-hl-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 7px 13px;
    border: 1px solid transparent;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-soft);
    font-size: .68rem;
    font-weight: 900;
    line-height: 1.25;
    text-decoration: none;
  }
  #rk-hl-guide .rk-hl-nav a:hover,
  #rk-hl-guide .rk-hl-nav a:focus-visible { color: var(--rk-dark); border-color: var(--rk-cyan); background: var(--rk-cyan-soft); }

  #rk-hl-guide .rk-hl-content { padding: 0 clamp(22px, 5vw, 62px) 56px; }
  #rk-hl-guide .rk-hl-section { padding: clamp(44px, 7vw, 76px) 0; border-bottom: 1px solid var(--rk-line); }
  #rk-hl-guide .rk-hl-section:last-child { border-bottom: 0; }
  #rk-hl-guide .rk-hl-section-intro { max-width: 920px; color: var(--rk-text); font-size: 1.02rem; }
  #rk-hl-guide .rk-hl-eyebrow {
    display: block;
    margin-bottom: 9px;
    color: var(--rk-blue);
    font-size: .66rem;
    font-weight: 950;
    letter-spacing: .09em;
    text-transform: uppercase;
  }

  #rk-hl-guide .rk-hl-answer {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(260px, .55fr);
    gap: 22px;
    margin-top: 28px;
  }
  #rk-hl-guide .rk-hl-answer-main,
  #rk-hl-guide .rk-hl-answer-side,
  #rk-hl-guide .rk-hl-card {
    padding: clamp(22px, 4vw, 34px);
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-white);
  }
  #rk-hl-guide .rk-hl-answer-main { border-left: 6px solid var(--rk-cyan); background: linear-gradient(135deg, var(--rk-cyan-soft), #fff 68%); }
  #rk-hl-guide .rk-hl-answer-main p:last-child,
  #rk-hl-guide .rk-hl-answer-side p:last-child,
  #rk-hl-guide .rk-hl-card p:last-child { margin-bottom: 0; }
  #rk-hl-guide .rk-hl-answer-number { display: block; margin-bottom: 8px; color: var(--rk-blue); font-size: clamp(1.65rem, 4vw, 2.7rem); font-weight: 950; line-height: 1; }
  #rk-hl-guide .rk-hl-answer-side { background: var(--rk-soft); }
  #rk-hl-guide .rk-hl-answer-side ul { margin-bottom: 0; padding-left: 20px; color: var(--rk-text); font-size: .85rem; }

  #rk-hl-guide .rk-hl-grid-2,
  #rk-hl-guide .rk-hl-grid-3,
  #rk-hl-guide .rk-hl-grid-4 { display: grid; gap: 16px; margin-top: 24px; }
  #rk-hl-guide .rk-hl-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #rk-hl-guide .rk-hl-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #rk-hl-guide .rk-hl-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  #rk-hl-guide .rk-hl-card { height: 100%; }
  #rk-hl-guide .rk-hl-card-icon {
    display: inline-grid;
    width: 42px;
    height: 42px;
    margin-bottom: 14px;
    place-items: center;
    border-radius: 12px;
    color: var(--rk-dark);
    background: var(--rk-cyan-soft);
    font-size: .8rem;
    font-weight: 950;
  }
  #rk-hl-guide .rk-hl-card p,
  #rk-hl-guide .rk-hl-card li { color: var(--rk-text); font-size: .82rem; }
  #rk-hl-guide .rk-hl-card ul { margin-bottom: 0; padding-left: 19px; }

  #rk-hl-guide .rk-hl-formula {
    margin: 22px 0;
    padding: 23px clamp(20px, 4vw, 34px);
    border: 1px solid #bce7ef;
    border-radius: 18px;
    color: var(--rk-dark);
    background: linear-gradient(135deg, #effcff, #fff);
    font-size: clamp(1.05rem, 2.5vw, 1.36rem);
    font-weight: 900;
    line-height: 1.45;
    text-align: center;
  }
  #rk-hl-guide .rk-hl-formula small { display: block; margin-top: 8px; color: var(--rk-muted); font-size: .7rem; font-weight: 650; }

  #rk-hl-guide .rk-hl-callout {
    margin: 24px 0;
    padding: 20px 22px;
    border-left: 5px solid var(--rk-yellow);
    border-radius: 14px;
    color: var(--rk-text);
    background: var(--rk-yellow-soft);
  }
  #rk-hl-guide .rk-hl-callout strong { display: block; margin-bottom: 5px; }
  #rk-hl-guide .rk-hl-callout p:last-child { margin-bottom: 0; }
  #rk-hl-guide .rk-hl-callout-red { border-left-color: var(--rk-red); background: var(--rk-red-soft); }
  #rk-hl-guide .rk-hl-callout-green { border-left-color: var(--rk-green); background: var(--rk-green-soft); }

  #rk-hl-guide .rk-hl-table-wrap { overflow: hidden; margin-top: 25px; border: 1px solid var(--rk-line); border-radius: 18px; }
  #rk-hl-guide table { width: 100%; margin: 0; border-collapse: collapse; font-size: .78rem; }
  #rk-hl-guide th { padding: 14px 15px; color: var(--rk-white); background: var(--rk-navy); font-size: .67rem; font-weight: 900; letter-spacing: .025em; text-align: left; }
  #rk-hl-guide td { padding: 14px 15px; border-bottom: 1px solid var(--rk-line); color: var(--rk-text); vertical-align: top; }
  #rk-hl-guide tbody tr:last-child td { border-bottom: 0; }
  #rk-hl-guide tbody tr:nth-child(even) { background: var(--rk-soft); }

  #rk-hl-guide .rk-hl-tool {
    overflow: hidden;
    margin-top: 30px;
    border-radius: 24px;
    color: #edf8fb;
    background: #102b3b;
    box-shadow: 0 22px 52px rgba(16, 37, 54, .18);
  }
  #rk-hl-guide .rk-hl-tool-head {
    padding: clamp(27px, 5vw, 46px);
    background:
      radial-gradient(circle at 88% 0%, rgba(37,199,216,.25), transparent 32%),
      linear-gradient(135deg, #153f52, #10576c);
  }
  #rk-hl-guide .rk-hl-tool-head h3 { margin-bottom: 10px; color: var(--rk-white); font-size: clamp(1.45rem, 3.4vw, 2.35rem); }
  #rk-hl-guide .rk-hl-tool-head p { max-width: 920px; margin-bottom: 0; color: #cce2e9; font-size: .82rem; }
  #rk-hl-guide .rk-hl-tool-body { padding: clamp(20px, 4vw, 38px); }
  #rk-hl-guide .rk-hl-step {
    margin-bottom: 22px;
    padding: clamp(20px, 3vw, 30px);
    border: 1px solid #355b6e;
    border-radius: 19px;
    background: #163546;
  }
  #rk-hl-guide .rk-hl-step:last-child { margin-bottom: 0; }
  #rk-hl-guide .rk-hl-step-title { display: flex; gap: 13px; align-items: flex-start; margin-bottom: 20px; }
  #rk-hl-guide .rk-hl-step-no {
    display: inline-grid;
    flex: 0 0 35px;
    width: 35px;
    height: 35px;
    place-items: center;
    border-radius: 10px;
    color: #073040;
    background: var(--rk-cyan);
    font-size: .77rem;
    font-weight: 950;
  }
  #rk-hl-guide .rk-hl-step-title h4 { margin-bottom: 4px; color: var(--rk-white); font-size: 1rem; }
  #rk-hl-guide .rk-hl-step-title p { margin-bottom: 0; color: #a9c6d1; font-size: .68rem; }
  #rk-hl-guide .rk-hl-field-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; }
  #rk-hl-guide .rk-hl-field-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #rk-hl-guide .rk-hl-field { min-width: 0; }
  #rk-hl-guide .rk-hl-field label { display: block; min-height: 38px; margin-bottom: 7px; color: #d8edf2; font-size: .64rem; font-weight: 850; line-height: 1.35; }
  #rk-hl-guide .rk-hl-field input,
  #rk-hl-guide .rk-hl-field select {
    width: 100%;
    min-height: 47px;
    padding: 10px 12px;
    border: 1px solid #6d8b99;
    border-radius: 10px;
    outline: 0;
    color: #102536;
    background: var(--rk-white);
    font-size: .76rem;
    font-weight: 760;
  }
  #rk-hl-guide .rk-hl-field input:focus,
  #rk-hl-guide .rk-hl-field select:focus { border-color: var(--rk-cyan); box-shadow: 0 0 0 3px rgba(37,199,216,.18); }
  #rk-hl-guide .rk-hl-field small { display: block; margin-top: 6px; color: #91b3c0; font-size: .58rem; line-height: 1.45; }
  #rk-hl-guide .rk-hl-field[hidden] { display: none; }

  #rk-hl-guide .rk-hl-envelope-head,
  #rk-hl-guide .rk-hl-envelope-row {
    display: grid;
    grid-template-columns: 1.25fr .72fr .72fr .72fr .82fr;
    gap: 10px;
    align-items: center;
  }
  #rk-hl-guide .rk-hl-envelope-head { margin-bottom: 8px; padding: 0 10px; color: #91b3c0; font-size: .57rem; font-weight: 900; letter-spacing: .03em; text-transform: uppercase; }
  #rk-hl-guide .rk-hl-envelope-row { margin-bottom: 9px; padding: 10px; border: 1px solid #315568; border-radius: 13px; background: #123041; }
  #rk-hl-guide .rk-hl-envelope-row:last-child { margin-bottom: 0; }
  #rk-hl-guide .rk-hl-envelope-name { color: #eaf8fb; font-size: .71rem; font-weight: 900; }
  #rk-hl-guide .rk-hl-envelope-name small { display: block; margin-top: 2px; color: #88aebc; font-size: .56rem; font-weight: 600; }
  #rk-hl-guide .rk-hl-envelope-row input {
    width: 100%;
    min-height: 42px;
    padding: 8px 10px;
    border: 1px solid #6d8b99;
    border-radius: 9px;
    outline: 0;
    color: #102536;
    background: #fff;
    font-size: .71rem;
    font-weight: 760;
  }
  #rk-hl-guide .rk-hl-envelope-row input:focus { border-color: var(--rk-cyan); box-shadow: 0 0 0 3px rgba(37,199,216,.18); }
  #rk-hl-guide .rk-hl-row-result { padding-right: 5px; color: #7defff; font-size: .76rem; font-weight: 950; text-align: right; }
  #rk-hl-guide .rk-hl-row-result small { display: block; color: #8eb0bd; font-size: .54rem; font-weight: 650; }

  #rk-hl-guide .rk-hl-results {
    padding: clamp(24px, 4vw, 38px);
    border: 1px solid #3e6578;
    border-radius: 21px;
    background: linear-gradient(145deg, #173c4e, #102d3d);
  }
  #rk-hl-guide .rk-hl-results-top { display: grid; grid-template-columns: 1.35fr repeat(3, minmax(0, .65fr)); gap: 12px; }
  #rk-hl-guide .rk-hl-result-main,
  #rk-hl-guide .rk-hl-result-card {
    min-width: 0;
    padding: 18px;
    border: 1px solid #3b6274;
    border-radius: 15px;
    background: rgba(8, 34, 48, .42);
  }
  #rk-hl-guide .rk-hl-result-main { border-color: #2ec8d7; background: linear-gradient(135deg, rgba(37,199,216,.16), rgba(8,34,48,.5)); }
  #rk-hl-guide .rk-hl-result-label { display: block; margin-bottom: 7px; color: #97bac7; font-size: .58rem; font-weight: 900; letter-spacing: .045em; text-transform: uppercase; }
  #rk-hl-guide .rk-hl-result-value { display: block; color: var(--rk-white); font-size: clamp(1.22rem, 3vw, 2.25rem); font-weight: 950; letter-spacing: -.04em; line-height: 1.08; }
  #rk-hl-guide .rk-hl-result-value small { color: #8ceffc; font-size: .56em; }
  #rk-hl-guide .rk-hl-result-note { display: block; margin-top: 6px; color: #a7c4ce; font-size: .57rem; line-height: 1.4; }
  #rk-hl-guide .rk-hl-result-card .rk-hl-result-value { font-size: clamp(1rem, 2.3vw, 1.52rem); }
  #rk-hl-guide .rk-hl-status {
    margin-top: 14px;
    padding: 15px 17px;
    border-left: 5px solid var(--rk-yellow);
    border-radius: 12px;
    color: #f1f8fa;
    background: rgba(233,174,39,.12);
    font-size: .69rem;
  }
  #rk-hl-guide .rk-hl-status[data-level="good"] { border-left-color: #32d5a5; background: rgba(50,213,165,.11); }
  #rk-hl-guide .rk-hl-status[data-level="alert"] { border-left-color: #ff7157; background: rgba(255,113,87,.12); }

  #rk-hl-guide .rk-hl-chart-panel,
  #rk-hl-guide .rk-hl-breakdown-panel,
  #rk-hl-guide .rk-hl-diagnostic-panel {
    margin-top: 18px;
    padding: clamp(20px, 3vw, 28px);
    border: 1px solid #3b6071;
    border-radius: 17px;
    background: #123242;
  }
  #rk-hl-guide .rk-hl-chart-panel h4,
  #rk-hl-guide .rk-hl-breakdown-panel h4,
  #rk-hl-guide .rk-hl-diagnostic-panel h4 { color: var(--rk-white); }
  #rk-hl-guide .rk-hl-chart-panel p,
  #rk-hl-guide .rk-hl-breakdown-panel p,
  #rk-hl-guide .rk-hl-diagnostic-panel p { color: #9ebfca; font-size: .65rem; }
  #rk-hl-guide .rk-hl-chart-box { overflow: hidden; min-height: 330px; padding: 8px; border-radius: 13px; background: #f8fdff; }
  #rk-hl-guide .rk-hl-chart-box svg { display: block; width: 100%; height: auto; min-height: 310px; }
  #rk-hl-guide .rk-hl-chart-legend { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 10px; color: #b9d2db; font-size: .61rem; font-weight: 800; }
  #rk-hl-guide .rk-hl-chart-legend span { display: inline-flex; align-items: center; gap: 6px; }
  #rk-hl-guide .rk-hl-chart-legend i { display: inline-block; width: 22px; height: 4px; border-radius: 4px; background: var(--rk-cyan); }
  #rk-hl-guide .rk-hl-chart-legend .rk-hl-legend-design { background: var(--rk-orange); }
  #rk-hl-guide .rk-hl-breakdown-list { display: grid; gap: 12px; }
  #rk-hl-guide .rk-hl-breakdown-row { display: grid; grid-template-columns: 150px minmax(0, 1fr) 100px; gap: 12px; align-items: center; }
  #rk-hl-guide .rk-hl-breakdown-name { color: #dceef3; font-size: .66rem; font-weight: 820; }
  #rk-hl-guide .rk-hl-breakdown-track { overflow: hidden; height: 12px; border-radius: 999px; background: #234c5e; }
  #rk-hl-guide .rk-hl-breakdown-bar { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--rk-cyan), #60e6ef); transition: width .25s ease; }
  #rk-hl-guide .rk-hl-breakdown-row:nth-child(2) .rk-hl-breakdown-bar { background: linear-gradient(90deg, var(--rk-orange), #ff9a79); }
  #rk-hl-guide .rk-hl-breakdown-row:nth-child(3) .rk-hl-breakdown-bar { background: linear-gradient(90deg, var(--rk-purple), #9688ec); }
  #rk-hl-guide .rk-hl-breakdown-value { color: #fff; font-size: .66rem; font-weight: 900; text-align: right; }
  #rk-hl-guide .rk-hl-diagnostic-list { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
  #rk-hl-guide .rk-hl-diagnostic-list li { padding: 12px 14px; border-left: 4px solid #6b92a2; border-radius: 9px; color: #dcecf1; background: #173c4d; font-size: .66rem; }
  #rk-hl-guide .rk-hl-diagnostic-list li[data-state="good"] { border-left-color: #32d5a5; }
  #rk-hl-guide .rk-hl-diagnostic-list li[data-state="warn"] { border-left-color: var(--rk-yellow); }
  #rk-hl-guide .rk-hl-diagnostic-list li[data-state="bad"] { border-left-color: var(--rk-orange); }
  #rk-hl-guide .rk-hl-disclaimer { margin: 18px 0 0; color: #8fb2bf; font-size: .58rem; line-height: 1.55; }

  #rk-hl-guide .rk-hl-sales-cta {
    margin: clamp(34px, 6vw, 62px) 0;
    padding: clamp(28px, 5vw, 46px);
    border-radius: 22px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 95% 5%, rgba(37,199,216,.25), transparent 29%),
      linear-gradient(135deg, #102536, #16465b);
    box-shadow: 0 18px 44px rgba(16,37,54,.17);
  }
  #rk-hl-guide .rk-hl-sales-cta h3 { color: var(--rk-white); font-size: clamp(1.35rem, 3vw, 2rem); }
  #rk-hl-guide .rk-hl-sales-cta p { max-width: 940px; color: #d0e4eb; }
  #rk-hl-guide .rk-hl-cta-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 13px 22px;
    border-radius: 12px;
    color: var(--rk-dark);
    background: var(--rk-cyan);
    box-shadow: 0 10px 24px rgba(37,199,216,.2);
    font-size: .78rem;
    font-weight: 950;
    line-height: 1.3;
    text-decoration: none;
    transition: transform .18s ease, background .18s ease;
  }
  #rk-hl-guide .rk-hl-cta-button:hover,
  #rk-hl-guide .rk-hl-cta-button:focus-visible { color: var(--rk-dark); background: #9af3fb; transform: translateY(-1px); }

  #rk-hl-guide .rk-hl-checklist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 24px; }
  #rk-hl-guide .rk-hl-check {
    position: relative;
    padding: 17px 18px 17px 50px;
    border: 1px solid var(--rk-line);
    border-radius: 15px;
    color: var(--rk-text);
    background: var(--rk-white);
    font-size: .78rem;
  }
  #rk-hl-guide .rk-hl-check::before {
    position: absolute;
    top: 16px;
    left: 17px;
    display: grid;
    width: 24px;
    height: 24px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--rk-green);
    content: "✓";
    font-size: .68rem;
    font-weight: 950;
  }

  #rk-hl-guide .rk-hl-faq { display: grid; gap: 11px; margin-top: 25px; }
  #rk-hl-guide .rk-hl-faq details { overflow: hidden; border: 1px solid var(--rk-line); border-radius: 15px; background: var(--rk-white); }
  #rk-hl-guide .rk-hl-faq summary { position: relative; padding: 18px 52px 18px 20px; color: var(--rk-dark); font-size: .82rem; font-weight: 900; cursor: pointer; list-style: none; }
  #rk-hl-guide .rk-hl-faq summary::-webkit-details-marker { display: none; }
  #rk-hl-guide .rk-hl-faq summary::after { position: absolute; top: 50%; right: 19px; width: 25px; height: 25px; border-radius: 50%; color: var(--rk-blue); background: var(--rk-cyan-soft); content: "+"; font-size: 1rem; font-weight: 900; line-height: 23px; text-align: center; transform: translateY(-50%); }
  #rk-hl-guide .rk-hl-faq details[open] summary::after { content: "−"; }
  #rk-hl-guide .rk-hl-faq-answer { padding: 0 20px 19px; color: var(--rk-text); font-size: .79rem; }
  #rk-hl-guide .rk-hl-faq-answer p:last-child { margin-bottom: 0; }

  #rk-hl-guide .rk-hl-source-list { display: grid; gap: 12px; margin-top: 24px; }
  #rk-hl-guide .rk-hl-source { padding: 18px 20px; border: 1px solid var(--rk-line); border-radius: 15px; background: var(--rk-soft); }
  #rk-hl-guide .rk-hl-source strong { display: block; margin-bottom: 4px; }
  #rk-hl-guide .rk-hl-source p { margin-bottom: 0; color: var(--rk-text); font-size: .75rem; }

  #rk-hl-guide .rk-hl-author {
    position: relative;
    overflow: hidden;
    margin-top: 28px;
    border: 1px solid var(--rk-line);
    border-radius: 22px;
    background: #f5fafc;
  }
  #rk-hl-guide .rk-hl-author > input { position: absolute; opacity: 0; pointer-events: none; }
  #rk-hl-guide .rk-hl-author-head { display: flex; justify-content: space-between; gap: 20px; align-items: center; padding: 22px clamp(22px, 4vw, 38px); border-bottom: 1px solid var(--rk-line); background: #eef6f9; }
  #rk-hl-guide .rk-hl-author-head h3 { margin-bottom: 7px; font-size: clamp(1.45rem, 3vw, 2rem); }
  #rk-hl-guide .rk-hl-author-head p { margin-bottom: 0; color: var(--rk-muted); font-size: .72rem; }
  #rk-hl-guide .rk-hl-author-mark { max-width: 350px; color: var(--rk-blue); font-size: .6rem; font-weight: 950; letter-spacing: .055em; line-height: 1.5; text-align: right; }
  #rk-hl-guide .rk-hl-author-layout { display: grid; grid-template-columns: 300px minmax(0, 1fr); }
  #rk-hl-guide .rk-hl-author-side { padding: 34px 24px; color: #fff; background: var(--rk-dark); text-align: center; }
  #rk-hl-guide .rk-hl-author-photo { overflow: hidden; width: 150px; height: 150px; margin: 0 auto 18px; border: 6px solid rgba(255,255,255,.16); border-radius: 50%; background: #fff; }
  #rk-hl-guide .rk-hl-author-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
  #rk-hl-guide .rk-hl-author-name { color: var(--rk-white); font-size: 1.08rem; font-weight: 950; }
  #rk-hl-guide .rk-hl-author-role { margin-top: 5px; color: #bdd4dd; font-size: .66rem; line-height: 1.55; }
  #rk-hl-guide .rk-hl-author-social-label { margin: 22px 0 10px; color: #89a9b7; font-size: .58rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
  #rk-hl-guide .rk-hl-author-social { display: flex; justify-content: center; gap: 9px; }
  #rk-hl-guide .rk-hl-author-social a { display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid #45677a; border-radius: 50%; color: #c6dce5; background: transparent; text-decoration: none; }
  #rk-hl-guide .rk-hl-author-social a:hover,
  #rk-hl-guide .rk-hl-author-social a:focus-visible { color: var(--rk-white); border-color: var(--rk-cyan); background: rgba(37,199,216,.12); }
  #rk-hl-guide .rk-hl-author-social svg { width: 20px; height: 20px; fill: currentColor; }
  #rk-hl-guide .rk-hl-author-main { padding: clamp(25px, 4vw, 40px); }
  #rk-hl-guide .rk-hl-author-quote { position: relative; margin: 0 0 24px; padding: 20px 20px 20px 72px; border: 1px solid var(--rk-line); border-radius: 15px; background: var(--rk-white); }
  #rk-hl-guide .rk-hl-author-quote::before { position: absolute; top: 9px; left: 23px; color: var(--rk-cyan); content: "“"; font-family: Georgia, serif; font-size: 3.6rem; font-weight: 900; line-height: 1; }
  #rk-hl-guide .rk-hl-author-quote p { margin-bottom: 0; color: var(--rk-dark); font-size: .84rem; font-weight: 780; }
  #rk-hl-guide .rk-hl-author-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
  #rk-hl-guide .rk-hl-author-tab { display: inline-flex; align-items: center; min-height: 39px; padding: 8px 14px; border-radius: 999px; color: #59707c; background: #e4eef2; font-size: .65rem; font-weight: 900; cursor: pointer; }
  #rk-hl-guide .rk-hl-author-panel { display: none; color: var(--rk-text); font-size: .78rem; }
  #rk-hl-guide #rk-hl-author-about:checked ~ .rk-hl-author-layout .rk-hl-author-panel-about,
  #rk-hl-guide #rk-hl-author-exp:checked ~ .rk-hl-author-layout .rk-hl-author-panel-exp,
  #rk-hl-guide #rk-hl-author-method:checked ~ .rk-hl-author-layout .rk-hl-author-panel-method { display: block; }
  #rk-hl-guide #rk-hl-author-about:checked ~ .rk-hl-author-layout label[for="rk-hl-author-about"],
  #rk-hl-guide #rk-hl-author-exp:checked ~ .rk-hl-author-layout label[for="rk-hl-author-exp"],
  #rk-hl-guide #rk-hl-author-method:checked ~ .rk-hl-author-layout label[for="rk-hl-author-method"] { color: var(--rk-white); background: var(--rk-blue); }
  #rk-hl-guide .rk-hl-portals { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 19px; }
  #rk-hl-guide .rk-hl-portals a { display: inline-flex; align-items: center; min-height: 37px; padding: 7px 12px; border: 1px solid var(--rk-line); border-radius: 999px; background: #fff; font-size: .65rem; text-decoration: none; }

  @media (max-width: 980px) {
    #rk-hl-guide .rk-hl-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #rk-hl-guide .rk-hl-grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #rk-hl-guide .rk-hl-field-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #rk-hl-guide .rk-hl-results-top { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #rk-hl-guide .rk-hl-result-main { grid-column: 1 / -1; }
    #rk-hl-guide .rk-hl-author-layout { grid-template-columns: 225px minmax(0, 1fr); }
  }

  @media (max-width: 760px) {
    #rk-hl-guide { margin: 18px auto 46px; font-size: 16px; }
    #rk-hl-guide .rk-hl-shell { border-radius: 18px; }
    #rk-hl-guide .rk-hl-hero-metrics,
    #rk-hl-guide .rk-hl-answer,
    #rk-hl-guide .rk-hl-grid-2,
    #rk-hl-guide .rk-hl-grid-3,
    #rk-hl-guide .rk-hl-grid-4,
    #rk-hl-guide .rk-hl-checklist { grid-template-columns: 1fr; }
    #rk-hl-guide .rk-hl-nav { grid-template-columns: 1fr; }
    #rk-hl-guide .rk-hl-nav-label { padding-top: 0; }
    #rk-hl-guide .rk-hl-author-head { display: block; }
    #rk-hl-guide .rk-hl-author-mark { margin-top: 12px; text-align: left; }
    #rk-hl-guide .rk-hl-author-layout { grid-template-columns: 1fr; }
    #rk-hl-guide .rk-hl-breakdown-row { grid-template-columns: 110px minmax(0, 1fr) 76px; gap: 8px; }
    #rk-hl-guide .rk-hl-table-wrap { overflow: visible; border: 0; border-radius: 0; }
    #rk-hl-guide table,
    #rk-hl-guide thead,
    #rk-hl-guide tbody,
    #rk-hl-guide th,
    #rk-hl-guide td,
    #rk-hl-guide tr { display: block; }
    #rk-hl-guide thead { position: absolute; overflow: hidden; width: 1px; height: 1px; clip: rect(0 0 0 0); white-space: nowrap; }
    #rk-hl-guide tbody { display: grid; gap: 12px; }
    #rk-hl-guide tbody tr { overflow: hidden; border: 1px solid var(--rk-line); border-radius: 15px; background: var(--rk-white); }
    #rk-hl-guide tbody tr:nth-child(even) { background: var(--rk-white); }
    #rk-hl-guide td { display: grid; grid-template-columns: minmax(115px, .75fr) minmax(0, 1.25fr); gap: 13px; padding: 12px 14px; border-bottom: 1px solid var(--rk-line); }
    #rk-hl-guide td::before { color: var(--rk-dark); content: attr(data-label); font-size: .65rem; font-weight: 900; }
  }

  @media (max-width: 620px) {
    #rk-hl-guide .rk-hl-content { padding-right: 16px; padding-left: 16px; }
    #rk-hl-guide .rk-hl-hero { padding-right: 21px; padding-left: 21px; }
    #rk-hl-guide .rk-hl-hero-title { font-size: clamp(1.85rem, 10.2vw, 3rem); }
    #rk-hl-guide .rk-hl-field-grid,
    #rk-hl-guide .rk-hl-field-grid-3,
    #rk-hl-guide .rk-hl-results-top { grid-template-columns: 1fr; }
    #rk-hl-guide .rk-hl-envelope-head { display: none; }
    #rk-hl-guide .rk-hl-envelope-row { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 14px; }
    #rk-hl-guide .rk-hl-envelope-name { grid-column: 1 / -1; padding-bottom: 4px; }
    #rk-hl-guide .rk-hl-envelope-row input { min-height: 44px; }
    #rk-hl-guide .rk-hl-envelope-row input[data-role="factor"] { grid-column: 1; }
    #rk-hl-guide .rk-hl-row-result { display: flex; align-items: center; justify-content: flex-end; min-height: 44px; padding: 7px 9px; border-radius: 9px; background: #0e2938; }
    #rk-hl-guide .rk-hl-row-result small { margin-left: 5px; }
    #rk-hl-guide .rk-hl-chart-box { min-height: 250px; }
    #rk-hl-guide .rk-hl-chart-box svg { min-height: 235px; }
    #rk-hl-guide .rk-hl-breakdown-row { grid-template-columns: 1fr; gap: 5px; }
    #rk-hl-guide .rk-hl-breakdown-value { text-align: left; }
    #rk-hl-guide .rk-hl-author-main { padding: 24px 18px; }
    #rk-hl-guide .rk-hl-author-quote { padding-left: 58px; }
    #rk-hl-guide .rk-hl-sales-cta { padding: 26px 20px; }
    #rk-hl-guide .rk-hl-cta-button { width: 100%; text-align: center; }
    #rk-hl-guide td { grid-template-columns: 1fr; gap: 3px; }
  }

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

<article id="rk-hl-guide" itemscope itemtype="https://schema.org/TechArticle">
  <div class="rk-hl-shell">
    <header class="rk-hl-hero">
      <span class="rk-hl-kicker">Bilans cieplny budynku • aktualizacja 2026</span>
      <div class="rk-hl-hero-title">Oblicz projektową stratę ciepła — <span>przegroda po przegrodzie</span></div>
      <p class="rk-hl-lead">Wpisz rzeczywiste powierzchnie, współczynniki U, temperatury, wentylację i mostki. Kalkulator pokaże wymaganą moc w kW, wskaźnik W/m², udział poszczególnych strat oraz krzywą obciążenia względem temperatury zewnętrznej.</p>
      <div class="rk-hl-hero-tags" aria-label="Najważniejsze funkcje artykułu">
        <span class="rk-hl-hero-tag">przenikanie przez przegrody</span>
        <span class="rk-hl-hero-tag">wentylacja i infiltracja</span>
        <span class="rk-hl-hero-tag">mostki cieplne</span>
        <span class="rk-hl-hero-tag">budynek lub pomieszczenie</span>
        <span class="rk-hl-hero-tag">dynamiczny wykres</span>
      </div>
      <div class="rk-hl-byline">
        <span>Autor: <strong>Robert Kucharski</strong></span>
        <span>Czas czytania: około 24 minuty</span>
        <span>Aktualizacja techniczna: 1 września 2026 r.</span>
      </div>
      <div class="rk-hl-hero-metrics" aria-label="Zakres kalkulatora">
        <div class="rk-hl-hero-metric"><b>W i kW</b><span>Projektowa moc potrzebna w wybranych warunkach zewnętrznych.</span></div>
        <div class="rk-hl-hero-metric"><b>W/m²</b><span>Wskaźnik kontrolny odniesiony do powierzchni ogrzewanej lub czynnej.</span></div>
        <div class="rk-hl-hero-metric"><b>Nie kWh/rok</b><span>Kalkulator nie wyznacza rocznego zużycia energii ani kosztów ogrzewania.</span></div>
      </div>
    </header>

    <nav class="rk-hl-nav" aria-label="Nawigacja po artykule">
      <span class="rk-hl-nav-label">Na skróty</span>
      <div class="rk-hl-nav-links">
        <a href="#rk-hl-szybka-odpowiedz">Szybka odpowiedź</a>
        <a href="#rk-hl-moc-a-energia">Moc a energia</a>
        <a href="#rk-hl-bilans-strat">Składowe strat</a>
        <a href="#rk-hl-dane">Dane wejściowe</a>
        <a href="#rk-hl-kalkulator">Kalkulator</a>
        <a href="#rk-hl-interpretacja">Jak czytać wynik</a>
        <a href="#rk-hl-budynek-pomieszczenia">Budynek a pokoje</a>
        <a href="#rk-hl-podlogowka">Wynik a podłogówka</a>
        <a href="#rk-hl-zrodlo">Wynik a źródło</a>
        <a href="#rk-hl-przyklad">Przykład</a>
        <a href="#rk-hl-bledy">Błędy i checklista</a>
        <a href="#rk-hl-faq">FAQ</a>
        <a href="#rk-hl-zrodla">Źródła</a>
        <a href="#rk-hl-autor">Autor</a>
      </div>
    </nav>

    <div class="rk-hl-content">
      <section class="rk-hl-section" id="rk-hl-szybka-odpowiedz">
        <span class="rk-hl-eyebrow">01 • Najważniejsza odpowiedź</span>
        <h2>Co naprawdę oblicza kalkulator strat ciepła budynku?</h2>
        <p class="rk-hl-section-intro">Kalkulator szacuje <strong>projektową moc potrzebną do uzupełnienia strat ciepła</strong> przy zadanej temperaturze wewnętrznej i zewnętrznej. Nie wystarcza do tego sam metraż ani rok budowy domu.</p>
        <div class="rk-hl-answer">
          <div class="rk-hl-answer-main">
            <span class="rk-hl-answer-number">Φ<sub>HL</sub> [W lub kW]</span>
            <h3>Najpierw bilans, później urządzenie i instalacja</h3>
            <p>Sumujemy straty przez ściany, okna, drzwi, dach, podłogę, przegrody do stref nieogrzewanych, wentylację, infiltrację i mostki cieplne. Dopiero taki wynik może być punktem wyjścia do dalszego projektowania.</p>
          </div>
          <aside class="rk-hl-answer-side">
            <h3>Czego wynik nie wybiera?</h3>
            <ul>
              <li>konkretnego modelu pompy ciepła,</li>
              <li>rozstawu rur w każdym pokoju,</li>
              <li>temperatury zasilania podłogówki,</li>
              <li>rocznego zużycia energii w kWh,</li>
              <li>kosztu ogrzewania całego sezonu.</li>
            </ul>
          </aside>
        </div>
        <div class="rk-hl-callout rk-hl-callout-green">
          <strong>Najważniejsza zasada</strong>
          <p>Wskaźnik W/m² jest wynikiem obliczenia i narzędziem kontrolnym. Nie powinien być domyślnym założeniem typu „nowy dom zawsze potrzebuje 45 W/m²”.</p>
        </div>
      </section>

      <section class="rk-hl-section" id="rk-hl-moc-a-energia">
        <span class="rk-hl-eyebrow">02 • Jednostki bez pomyłek</span>
        <h2>Moc w kW a energia w kWh — to nie jest ten sam wynik</h2>
        <p class="rk-hl-section-intro">Najczęstszy błąd w internetowych kalkulatorach polega na zamiennym używaniu mocy, energii i kosztu. Każda z tych wielkości odpowiada na inne pytanie.</p>
        <div class="rk-hl-table-wrap">
          <table>
            <thead>
              <tr><th>Wielkość</th><th>Jednostka</th><th>Co opisuje?</th><th>Do czego służy?</th></tr>
            </thead>
            <tbody>
              <tr>
                <td data-label="Wielkość"><strong>Projektowe obciążenie cieplne</strong></td>
                <td data-label="Jednostka">W lub kW</td>
                <td data-label="Co opisuje?">Moc potrzebną przy projektowych warunkach zimowych.</td>
                <td data-label="Do czego służy?">Do projektowania instalacji i analizy źródła ciepła.</td>
              </tr>
              <tr>
                <td data-label="Wielkość"><strong>Wskaźnik obciążenia</strong></td>
                <td data-label="Jednostka">W/m²</td>
                <td data-label="Co opisuje?">Moc odniesioną do powierzchni budynku albo pomieszczenia.</td>
                <td data-label="Do czego służy?">Do kontroli wyniku i porównania stref.</td>
              </tr>
              <tr>
                <td data-label="Wielkość"><strong>Energia użytkowa</strong></td>
                <td data-label="Jednostka">kWh/rok</td>
                <td data-label="Co opisuje?">Ilość ciepła potrzebną podczas całego sezonu.</td>
                <td data-label="Do czego służy?">Do analiz energetycznych i kosztowych.</td>
              </tr>
              <tr>
                <td data-label="Wielkość"><strong>Energia jednostkowa</strong></td>
                <td data-label="Jednostka">kWh/(m²·rok)</td>
                <td data-label="Co opisuje?">Sezonowe potrzeby odniesione do powierzchni.</td>
                <td data-label="Do czego służy?">Do oceny standardu energetycznego budynku.</td>
              </tr>
            </tbody>
          </table>
        </div>
        <p>Norma EN 12831-1 opisuje obliczanie projektowego obciążenia cieplnego pomieszczeń i budynków. Metody z rodziny ISO 52016 obejmują również potrzeby energetyczne i obciążenia w czasie. Dlatego wynik w kW nie jest rocznym zużyciem energii. Więcej o samym pojęciu przeczytasz w opracowaniu <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne OZC</a>.</p>
      </section>

      <section class="rk-hl-section" id="rk-hl-bilans-strat">
        <span class="rk-hl-eyebrow">03 • Fizyka budynku</span>
        <h2>Z czego składa się projektowy bilans strat ciepła?</h2>
        <p class="rk-hl-section-intro">W modelu uproszczonym całkowita strata jest sumą przenikania przez przegrody, wymiany powietrza i mostków cieplnych.</p>
        <div class="rk-hl-formula">
          Φ<sub>HL</sub> ≈ Φ<sub>T</sub> + Φ<sub>V</sub> + Φ<sub>TB</sub>
          <small>Model referencyjny kalkulatora. Pełne obliczenia projektowe mogą uwzględniać dodatkowe zasady metodyczne i dane krajowe.</small>
        </div>
        <div class="rk-hl-grid-3">
          <article class="rk-hl-card">
            <span class="rk-hl-card-icon">T</span>
            <h3>Przenikanie</h3>
            <p>Straty przez ściany, okna, drzwi, dach, podłogę i przegrody do pomieszczeń nieogrzewanych.</p>
            <div class="rk-hl-formula">Φ<sub>T,i</sub> = U<sub>i</sub> · A<sub>i</sub> · b<sub>i</sub> · Δθ</div>
          </article>
          <article class="rk-hl-card">
            <span class="rk-hl-card-icon">V</span>
            <h3>Wentylacja i infiltracja</h3>
            <p>Ciepło potrzebne do ogrzania powietrza wentylacyjnego oraz napływającego przez nieszczelności.</p>
            <div class="rk-hl-formula">Φ<sub>V</sub> = 0,34 · V̇<sub>eff</sub> · Δθ</div>
          </article>
          <article class="rk-hl-card">
            <span class="rk-hl-card-icon">ψ</span>
            <h3>Mostki cieplne</h3>
            <p>Dodatkowy przepływ ciepła przez połączenia przegród, nadproża, wieńce i inne węzły.</p>
            <div class="rk-hl-formula">Φ<sub>TB</sub> = Σ(ψ · l) · Δθ</div>
          </article>
        </div>
        <div class="rk-hl-callout">
          <strong>Uwaga na podłogę na gruncie</strong>
          <p>Proste działanie U · A · Δθ jest tutaj przybliżeniem. Dokładna wymiana z gruntem zależy między innymi od geometrii podłogi, obwodu, poziomu zagłębienia i właściwości gruntu. W kalkulatorze stosujemy jawny współczynnik redukcyjny b, ale nie przedstawiamy wyniku jako pełnego obliczenia według ISO 13370.</p>
        </div>
      </section>

      <section class="rk-hl-section" id="rk-hl-dane">
        <span class="rk-hl-eyebrow">04 • Przygotowanie</span>
        <h2>Jakie dane przygotować przed uruchomieniem kalkulatora?</h2>
        <p class="rk-hl-section-intro">Jakość wyniku nie może być lepsza niż jakość danych wejściowych. Największą różnicę robią rzeczywiste powierzchnie przegród, prawidłowe U oraz przepływ powietrza.</p>
        <div class="rk-hl-grid-4">
          <article class="rk-hl-card">
            <span class="rk-hl-card-icon">01</span>
            <h3>Geometria</h3>
            <ul>
              <li>powierzchnia ogrzewana,</li>
              <li>kubatura ogrzewana,</li>
              <li>powierzchnie ścian,</li>
              <li>osobno okna i drzwi.</li>
            </ul>
          </article>
          <article class="rk-hl-card">
            <span class="rk-hl-card-icon">02</span>
            <h3>Przegrody</h3>
            <ul>
              <li>współczynniki U,</li>
              <li>układ warstw,</li>
              <li>przestrzeń po drugiej stronie,</li>
              <li>dane stolarki.</li>
            </ul>
          </article>
          <article class="rk-hl-card">
            <span class="rk-hl-card-icon">03</span>
            <h3>Temperatury</h3>
            <ul>
              <li>temperatura wewnętrzna,</li>
              <li>temperatura projektowa,</li>
              <li>temperatury stref buforowych,</li>
              <li>lokalizacja budynku.</li>
            </ul>
          </article>
          <article class="rk-hl-card">
            <span class="rk-hl-card-icon">04</span>
            <h3>Powietrze</h3>
            <ul>
              <li>strumień wentylacji,</li>
              <li>infiltracja,</li>
              <li>rodzaj systemu,</li>
              <li>sprawność odzysku.</li>
            </ul>
          </article>
        </div>
        <p>Jeżeli nie znasz U przegrody, możesz pomocniczo skorzystać z oficjalnego <a href="https://budowlaneabc.gov.pl/charakterystyka-energetyczna-budynkow/kalkulatory/calc-wpc/" target="_blank" rel="noopener nofollow">kalkulatora współczynnika U w serwisie Budowlane ABC</a>. Pamiętaj jednak, że metoda dla ściany wielowarstwowej nie jest automatycznie metodą dla podłogi pozostającej w kontakcie z gruntem.</p>
      </section>

      <section class="rk-hl-section" id="rk-hl-kalkulator">
        <span class="rk-hl-eyebrow">05 • Narzędzie interaktywne</span>
        <h2>Kalkulator strat ciepła budynku i pomieszczenia</h2>
        <p class="rk-hl-section-intro">Wszystkie wartości są przeliczane na żywo. Współczynnik b pozwala jawnie ograniczyć różnicę temperatur dla gruntu lub strefy buforowej. Jeżeli nie znasz mostków cieplnych, pozostaw zero — kalkulator zgłosi brak w diagnostyce zamiast doliczać arbitralny procent.</p>

        <div class="rk-hl-tool" id="rk-hl-tool" aria-label="Interaktywny kalkulator strat ciepła">
          <div class="rk-hl-tool-head">
            <h3>Policz wstępny bilans projektowych strat ciepła</h3>
            <p>Wynik pokazuje moc wymaganą do pokrycia wprowadzonych strat przy zadanej różnicy temperatur. To model edukacyjny i kontrolny — nie pełne OZC oraz nie automatyczny dobór źródła ciepła.</p>
          </div>
          <div class="rk-hl-tool-body">
            <section class="rk-hl-step" aria-labelledby="rk-hl-step-1-title">
              <div class="rk-hl-step-title">
                <span class="rk-hl-step-no">1</span>
                <div><h4 id="rk-hl-step-1-title">Zakres i geometria analizowanej strefy</h4><p>Możesz policzyć cały budynek albo jedno pomieszczenie. W trybie pomieszczenia pojawi się powierzchnia czynna podłogi.</p></div>
              </div>
              <div class="rk-hl-field-grid">
                <div class="rk-hl-field">
                  <label for="rk-hl-scope">Zakres obliczenia</label>
                  <select id="rk-hl-scope">
                    <option value="building">Cały budynek</option>
                    <option value="room">Jedno pomieszczenie</option>
                  </select>
                </div>
                <div class="rk-hl-field">
                  <label for="rk-hl-area">Powierzchnia ogrzewana [m²]</label>
                  <input id="rk-hl-area" type="number" min="1" max="5000" step="1" value="140" inputmode="decimal">
                  <small>W trybie pokoju wpisz jego powierzchnię.</small>
                </div>
                <div class="rk-hl-field">
                  <label for="rk-hl-volume">Kubatura ogrzewana [m³]</label>
                  <input id="rk-hl-volume" type="number" min="1" max="20000" step="1" value="350" inputmode="decimal">
                  <small>Powierzchnia razy średnia wysokość netto.</small>
                </div>
                <div class="rk-hl-field" id="rk-hl-active-field" hidden>
                  <label for="rk-hl-active-area">Czynna powierzchnia podłogi [m²]</label>
                  <input id="rk-hl-active-area" type="number" min="0" max="5000" step="0.1" value="16" inputmode="decimal">
                  <small>Bez trwałej zabudowy i stref bez rur.</small>
                </div>
              </div>
            </section>

            <section class="rk-hl-step" aria-labelledby="rk-hl-step-2-title">
              <div class="rk-hl-step-title">
                <span class="rk-hl-step-no">2</span>
                <div><h4 id="rk-hl-step-2-title">Temperatury projektowe</h4><p>Wybór strefy wpisuje wartość pomocniczą. Temperaturę zewnętrzną możesz następnie zmienić ręcznie zgodnie z lokalizacją i dokumentacją.</p></div>
              </div>
              <div class="rk-hl-field-grid rk-hl-field-grid-3">
                <div class="rk-hl-field">
                  <label for="rk-hl-zone">Pomocnicza strefa zimowa</label>
                  <select id="rk-hl-zone">
                    <option value="-16">Strefa I — −16°C</option>
                    <option value="-18">Strefa II — −18°C</option>
                    <option value="-20" selected>Strefa III — −20°C</option>
                    <option value="-22">Strefa IV — −22°C</option>
                    <option value="-24">Strefa V — −24°C</option>
                    <option value="manual">Wartość własna</option>
                  </select>
                </div>
                <div class="rk-hl-field">
                  <label for="rk-hl-indoor">Temperatura wewnętrzna θi [°C]</label>
                  <input id="rk-hl-indoor" type="number" min="5" max="35" step="0.5" value="20" inputmode="decimal">
                </div>
                <div class="rk-hl-field">
                  <label for="rk-hl-outdoor">Temperatura zewnętrzna θe [°C]</label>
                  <input id="rk-hl-outdoor" type="number" min="-40" max="15" step="0.5" value="-20" inputmode="decimal">
                </div>
              </div>
            </section>

            <section class="rk-hl-step" aria-labelledby="rk-hl-step-3-title">
              <div class="rk-hl-step-title">
                <span class="rk-hl-step-no">3</span>
                <div><h4 id="rk-hl-step-3-title">Przegrody — powierzchnia, U i współczynnik redukcyjny b</h4><p>Dla przegród do powietrza zewnętrznego przyjmij b = 1,00. Mniejsza wartość może opisywać uproszczony wpływ gruntu albo strefy buforowej.</p></div>
              </div>
              <div class="rk-hl-envelope-head" aria-hidden="true">
                <span>Przegroda</span><span>Powierzchnia A [m²]</span><span>U [W/(m²·K)]</span><span>Współczynnik b</span><span>Strata</span>
              </div>
              <div class="rk-hl-envelope-row" data-envelope="walls">
                <div class="rk-hl-envelope-name">Ściany zewnętrzne<small>Powierzchnia netto bez okien i drzwi</small></div>
                <input aria-label="Powierzchnia ścian zewnętrznych" data-role="area" type="number" min="0" step="0.1" value="150" inputmode="decimal">
                <input aria-label="Współczynnik U ścian" data-role="u" type="number" min="0" step="0.01" value="0.20" inputmode="decimal">
                <input aria-label="Współczynnik redukcyjny ścian" data-role="factor" type="number" min="0" max="1.5" step="0.05" value="1" inputmode="decimal">
                <output class="rk-hl-row-result" data-role="result">— <small>W</small></output>
              </div>
              <div class="rk-hl-envelope-row" data-envelope="windows">
                <div class="rk-hl-envelope-name">Okna i przeszklenia<small>U całego okna Uw, nie samej szyby Ug</small></div>
                <input aria-label="Powierzchnia okien" data-role="area" type="number" min="0" step="0.1" value="30" inputmode="decimal">
                <input aria-label="Współczynnik U okien" data-role="u" type="number" min="0" step="0.01" value="0.90" inputmode="decimal">
                <input aria-label="Współczynnik redukcyjny okien" data-role="factor" type="number" min="0" max="1.5" step="0.05" value="1" inputmode="decimal">
                <output class="rk-hl-row-result" data-role="result">— <small>W</small></output>
              </div>
              <div class="rk-hl-envelope-row" data-envelope="doors">
                <div class="rk-hl-envelope-name">Drzwi zewnętrzne<small>Łączna powierzchnia skrzydeł i bram</small></div>
                <input aria-label="Powierzchnia drzwi" data-role="area" type="number" min="0" step="0.1" value="5" inputmode="decimal">
                <input aria-label="Współczynnik U drzwi" data-role="u" type="number" min="0" step="0.01" value="1.30" inputmode="decimal">
                <input aria-label="Współczynnik redukcyjny drzwi" data-role="factor" type="number" min="0" max="1.5" step="0.05" value="1" inputmode="decimal">
                <output class="rk-hl-row-result" data-role="result">— <small>W</small></output>
              </div>
              <div class="rk-hl-envelope-row" data-envelope="roof">
                <div class="rk-hl-envelope-name">Dach lub strop<small>Przegroda nad przestrzenią ogrzewaną</small></div>
                <input aria-label="Powierzchnia dachu lub stropu" data-role="area" type="number" min="0" step="0.1" value="140" inputmode="decimal">
                <input aria-label="Współczynnik U dachu" data-role="u" type="number" min="0" step="0.01" value="0.15" inputmode="decimal">
                <input aria-label="Współczynnik redukcyjny dachu" data-role="factor" type="number" min="0" max="1.5" step="0.05" value="1" inputmode="decimal">
                <output class="rk-hl-row-result" data-role="result">— <small>W</small></output>
              </div>
              <div class="rk-hl-envelope-row" data-envelope="floor">
                <div class="rk-hl-envelope-name">Podłoga na gruncie<small>Model uproszczony — pełna metoda zależy od geometrii</small></div>
                <input aria-label="Powierzchnia podłogi" data-role="area" type="number" min="0" step="0.1" value="140" inputmode="decimal">
                <input aria-label="Współczynnik U podłogi" data-role="u" type="number" min="0" step="0.01" value="0.25" inputmode="decimal">
                <input aria-label="Współczynnik redukcyjny podłogi" data-role="factor" type="number" min="0" max="1.5" step="0.05" value="0.50" inputmode="decimal">
                <output class="rk-hl-row-result" data-role="result">— <small>W</small></output>
              </div>
              <div class="rk-hl-envelope-row" data-envelope="buffer">
                <div class="rk-hl-envelope-name">Strefa nieogrzewana<small>Garaż, piwnica, poddasze lub inna strefa buforowa</small></div>
                <input aria-label="Powierzchnia przegrody do strefy nieogrzewanej" data-role="area" type="number" min="0" step="0.1" value="0" inputmode="decimal">
                <input aria-label="Współczynnik U przegrody buforowej" data-role="u" type="number" min="0" step="0.01" value="0.30" inputmode="decimal">
                <input aria-label="Współczynnik redukcyjny strefy buforowej" data-role="factor" type="number" min="0" max="1.5" step="0.05" value="0.50" inputmode="decimal">
                <output class="rk-hl-row-result" data-role="result">— <small>W</small></output>
              </div>
              <div class="rk-hl-envelope-row" data-envelope="custom">
                <div class="rk-hl-envelope-name">Przegroda dodatkowa<small>Własna pozycja kontrolna</small></div>
                <input aria-label="Powierzchnia przegrody dodatkowej" data-role="area" type="number" min="0" step="0.1" value="0" inputmode="decimal">
                <input aria-label="Współczynnik U przegrody dodatkowej" data-role="u" type="number" min="0" step="0.01" value="0.30" inputmode="decimal">
                <input aria-label="Współczynnik redukcyjny przegrody dodatkowej" data-role="factor" type="number" min="0" max="1.5" step="0.05" value="1" inputmode="decimal">
                <output class="rk-hl-row-result" data-role="result">— <small>W</small></output>
              </div>
            </section>

            <section class="rk-hl-step" aria-labelledby="rk-hl-step-4-title">
              <div class="rk-hl-step-title">
                <span class="rk-hl-step-no">4</span>
                <div><h4 id="rk-hl-step-4-title">Wentylacja, infiltracja i mostki cieplne</h4><p>Odzysk ciepła redukuje część mechaniczną strumienia, ale nie usuwa infiltracji. Mostki wpisujemy jako sumaryczny współczynnik Htb w W/K.</p></div>
              </div>
              <div class="rk-hl-field-grid">
                <div class="rk-hl-field">
                  <label for="rk-hl-vent-flow">Strumień wentylacji V̇ [m³/h]</label>
                  <input id="rk-hl-vent-flow" type="number" min="0" max="50000" step="1" value="175" inputmode="decimal">
                  <small>Dla wentylacji grawitacyjnej wpisz szacowany pełny strumień.</small>
                </div>
                <div class="rk-hl-field">
                  <label for="rk-hl-recovery">Sprawność odzysku η [%]</label>
                  <input id="rk-hl-recovery" type="number" min="0" max="95" step="1" value="0" inputmode="decimal">
                  <small>Dla braku odzysku wpisz 0%.</small>
                </div>
                <div class="rk-hl-field">
                  <label for="rk-hl-infiltration">Infiltracja n<sub>inf</sub> [1/h]</label>
                  <input id="rk-hl-infiltration" type="number" min="0" max="3" step="0.01" value="0.10" inputmode="decimal">
                  <small>Osobny napływ przez nieszczelności obudowy.</small>
                </div>
                <div class="rk-hl-field">
                  <label for="rk-hl-bridges">Mostki cieplne H<sub>TB</sub> [W/K]</label>
                  <input id="rk-hl-bridges" type="number" min="0" max="5000" step="0.1" value="15" inputmode="decimal">
                  <small>Suma ψ · l. Wpisz 0, jeśli brak danych.</small>
                </div>
              </div>
            </section>

            <section class="rk-hl-results" aria-live="polite" aria-atomic="false">
              <div class="rk-hl-step-title">
                <span class="rk-hl-step-no">5</span>
                <div><h4>Wynik na żywo</h4><p>Wartości wynikają wyłącznie z aktualnie wpisanych danych i jawnego modelu referencyjnego.</p></div>
              </div>
              <div class="rk-hl-results-top">
                <div class="rk-hl-result-main">
                  <span class="rk-hl-result-label">Projektowa strata całkowita</span>
                  <output class="rk-hl-result-value" id="rk-hl-total-kw">— <small>kW</small></output>
                  <span class="rk-hl-result-note" id="rk-hl-delta-note">Różnica temperatur: — K</span>
                </div>
                <div class="rk-hl-result-card">
                  <span class="rk-hl-result-label">Wskaźnik</span>
                  <output class="rk-hl-result-value" id="rk-hl-wm2">— <small>W/m²</small></output>
                  <span class="rk-hl-result-note">Odniesiony do wpisanej powierzchni</span>
                </div>
                <div class="rk-hl-result-card">
                  <span class="rk-hl-result-label">Przenikanie</span>
                  <output class="rk-hl-result-value" id="rk-hl-transmission">— <small>kW</small></output>
                  <span class="rk-hl-result-note">Suma wprowadzonych przegród</span>
                </div>
                <div class="rk-hl-result-card">
                  <span class="rk-hl-result-label">Wentylacja</span>
                  <output class="rk-hl-result-value" id="rk-hl-ventilation">— <small>kW</small></output>
                  <span class="rk-hl-result-note">Wentylacja po odzysku plus infiltracja</span>
                </div>
                <div class="rk-hl-result-card" id="rk-hl-active-result-card" hidden>
                  <span class="rk-hl-result-label">Moc z powierzchni czynnej</span>
                  <output class="rk-hl-result-value" id="rk-hl-active-wm2">— <small>W/m²</small></output>
                  <span class="rk-hl-result-note">Tylko kontrola w trybie pomieszczenia</span>
                </div>
              </div>
              <div class="rk-hl-status" id="rk-hl-status" data-level="warn">Uzupełnij dane, aby zobaczyć ocenę wyniku.</div>

              <div class="rk-hl-chart-panel">
                <h4>Moc budynku a temperatura zewnętrzna</h4>
                <p>Krzywa wykorzystuje aktualny sumaryczny współczynnik strat H. Pomarańczowy punkt oznacza temperaturę projektową wpisaną w kalkulatorze.</p>
                <div class="rk-hl-chart-box">
                  <svg id="rk-hl-chart" viewBox="0 0 760 330" role="img" aria-labelledby="rk-hl-chart-title rk-hl-chart-desc">
                    <title id="rk-hl-chart-title">Wykres wymaganej mocy względem temperatury zewnętrznej</title>
                    <desc id="rk-hl-chart-desc">Dynamiczna linia pokazująca wzrost strat ciepła wraz ze spadkiem temperatury zewnętrznej.</desc>
                    <g id="rk-hl-chart-grid"></g>
                    <polyline id="rk-hl-chart-line" fill="none" stroke="#25c7d8" stroke-width="5" stroke-linecap="round" stroke-linejoin="round" points=""></polyline>
                    <line id="rk-hl-chart-design-line" x1="0" y1="0" x2="0" y2="0" stroke="#ff6a3d" stroke-width="2" stroke-dasharray="7 7"></line>
                    <circle id="rk-hl-chart-design-point" cx="0" cy="0" r="7" fill="#ff6a3d" stroke="#ffffff" stroke-width="3"></circle>
                    <text id="rk-hl-chart-design-label" x="0" y="0" fill="#102536" font-size="14" font-weight="900">—</text>
                  </svg>
                </div>
                <div class="rk-hl-chart-legend"><span><i></i> wymagana moc modelu</span><span><i class="rk-hl-legend-design"></i> punkt projektowy</span></div>
              </div>

              <div class="rk-hl-breakdown-panel">
                <h4>Udział głównych składowych</h4>
                <p>Paski porównują przenikanie, wymianę powietrza i mostki w identycznym punkcie temperaturowym.</p>
                <div class="rk-hl-breakdown-list">
                  <div class="rk-hl-breakdown-row">
                    <span class="rk-hl-breakdown-name">Przenikanie</span>
                    <span class="rk-hl-breakdown-track"><span class="rk-hl-breakdown-bar" id="rk-hl-bar-transmission"></span></span>
                    <span class="rk-hl-breakdown-value" id="rk-hl-share-transmission">—</span>
                  </div>
                  <div class="rk-hl-breakdown-row">
                    <span class="rk-hl-breakdown-name">Wentylacja</span>
                    <span class="rk-hl-breakdown-track"><span class="rk-hl-breakdown-bar" id="rk-hl-bar-ventilation"></span></span>
                    <span class="rk-hl-breakdown-value" id="rk-hl-share-ventilation">—</span>
                  </div>
                  <div class="rk-hl-breakdown-row">
                    <span class="rk-hl-breakdown-name">Mostki cieplne</span>
                    <span class="rk-hl-breakdown-track"><span class="rk-hl-breakdown-bar" id="rk-hl-bar-bridges"></span></span>
                    <span class="rk-hl-breakdown-value" id="rk-hl-share-bridges">—</span>
                  </div>
                </div>
              </div>

              <div class="rk-hl-diagnostic-panel">
                <h4>Diagnostyka danych i granic modelu</h4>
                <p>Kalkulator nie ukrywa pominiętych informacji. Ostrzeżenie nie oznacza automatycznie błędu instalacji — wskazuje, czego nie należy wyciągać z wyniku.</p>
                <ul class="rk-hl-diagnostic-list" id="rk-hl-diagnostics">
                  <li data-state="warn">Trwa inicjalizacja diagnostyki.</li>
                </ul>
              </div>
              <p class="rk-hl-disclaimer">Model referencyjny: ΦT = Σ(U · A · b) · Δθ, ΦV = 0,34 · [V̇ · (1 − η) + ninf · V] · Δθ, ΦTB = HTB · Δθ. Wartość b dla gruntu lub stref buforowych jest uproszczeniem. Narzędzie nie wykonuje pełnych obliczeń EN 12831-1, ISO 13370 ani analizy rocznej ISO 52016.</p>
            </section>
          </div>
          <noscript><p style="padding:20px;color:#fff;background:#7b281f">Kalkulator wymaga włączonej obsługi JavaScript. Treść i wzory pozostają dostępne w artykule.</p></noscript>
        </div>
      </section>

      <aside class="rk-hl-sales-cta" aria-label="Zamówienie projektu po obliczeniu strat ciepła">
        <h3>Masz wynik budynku. Do projektu podłogówki potrzebujesz jeszcze wyników każdego pomieszczenia.</h3>
        <p>Kalkulator nie zna pełnej geometrii węzłów, dokładnej wymiany z gruntem, rzeczywistych mostków, trwałej zabudowy ani przebiegu każdej pętli. Projekt przekłada obciążenie pomieszczeń na powierzchnie czynne, rozstawy rur, temperaturę wody, długości obwodów, przepływy i nastawy rozdzielacza.</p>
        <a class="rk-hl-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt z obliczeniami dla pomieszczeń</a>
      </aside>

      <section class="rk-hl-section" id="rk-hl-interpretacja">
        <span class="rk-hl-eyebrow">06 • Interpretacja</span>
        <h2>Jak czytać wynik kalkulatora strat ciepła?</h2>
        <p class="rk-hl-section-intro">Najważniejszą wartością jest całkowita moc w kW przy wpisanej temperaturze zewnętrznej. Wskaźnik W/m² i procentowy rozkład strat służą do kontroli, ale nie zastępują analizy danych źródłowych.</p>
        <div class="rk-hl-grid-3">
          <article class="rk-hl-card">
            <span class="rk-hl-card-icon">kW</span>
            <h3>Moc projektowa</h3>
            <p>Informuje, ile ciepła trzeba dostarczać w rozpatrywanym punkcie zimowym, aby kompensować wprowadzone straty.</p>
          </article>
          <article class="rk-hl-card">
            <span class="rk-hl-card-icon">W/m²</span>
            <h3>Wskaźnik kontrolny</h3>
            <p>Ułatwia porównanie budynków i pomieszczeń, ale średnia całego domu może ukryć trudną łazienkę albo salon z dużymi oknami.</p>
          </article>
          <article class="rk-hl-card">
            <span class="rk-hl-card-icon">%</span>
            <h3>Rozkład strat</h3>
            <p>Pokazuje, czy największy udział ma obudowa budynku, wymiana powietrza czy mostki wpisane do modelu.</p>
          </article>
        </div>
        <h3>Dlaczego wykres jest przydatniejszy niż jedna liczba?</h3>
        <p>Strata ciepła zmienia się wraz z różnicą temperatur. Jeżeli model wyznacza 7 kW przy −20°C, przy 0°C wymagana moc będzie mniejsza. Wykres pozwala zobaczyć tę zależność bez udawania, że budynek przez cały sezon pracuje w najzimniejszym punkcie.</p>
        <div class="rk-hl-callout rk-hl-callout-red">
          <strong>Nie dodawaj automatycznie „15% zapasu”</strong>
          <p>Rezerwa nie naprawia błędnych powierzchni, U, temperatur ani wentylacji. Najpierw trzeba poprawić dane, a dopiero później analizować sposób doboru źródła, modulację i warunki jego pracy.</p>
        </div>
      </section>

      <section class="rk-hl-section" id="rk-hl-budynek-pomieszczenia">
        <span class="rk-hl-eyebrow">07 • Dwa poziomy obliczeń</span>
        <h2>Strata całego budynku a strata pojedynczego pomieszczenia</h2>
        <p class="rk-hl-section-intro">Wynik budynku odpowiada na inne pytanie niż wynik salonu, łazienki czy sypialni. Do zaprojektowania odbiorników ciepła potrzebny jest podział na pomieszczenia.</p>
        <div class="rk-hl-table-wrap">
          <table>
            <thead>
              <tr><th>Zakres</th><th>Co wynika z obliczenia?</th><th>Czego nadal nie wiadomo?</th></tr>
            </thead>
            <tbody>
              <tr>
                <td data-label="Zakres"><strong>Cały budynek</strong></td>
                <td data-label="Co wynika?">Łączna moc wynikająca z obudowy, powietrza i mostków.</td>
                <td data-label="Czego nie wiadomo?">Rozkładu mocy pomiędzy pokoje oraz lokalnych ograniczeń ogrzewania.</td>
              </tr>
              <tr>
                <td data-label="Zakres"><strong>Pomieszczenie</strong></td>
                <td data-label="Co wynika?">Moc potrzebna w konkretnej strefie i obciążenie jej powierzchni.</td>
                <td data-label="Czego nie wiadomo?">Czy wybrana konstrukcja podłogi odda tę moc przy planowanej temperaturze wody.</td>
              </tr>
              <tr>
                <td data-label="Zakres"><strong>Powierzchnia czynna</strong></td>
                <td data-label="Co wynika?">Wymagana średnia moc z fragmentu, na którym rzeczywiście mogą leżeć rury.</td>
                <td data-label="Czego nie wiadomo?">Rozstawu, temperatury powierzchni i hydrauliki bez charakterystyki systemu.</td>
              </tr>
            </tbody>
          </table>
        </div>
        <div class="rk-hl-formula">
          q<sub>wym</sub> = Φ<sub>HL,pom</sub> / A<sub>czynna</sub>
          <small>Dzielenie łącznej straty domu przez łączną powierzchnię podłogi nie zastępuje obliczeń każdego pomieszczenia.</small>
        </div>
        <p>Przykład: dom może mieć średnio 42 W/m², a łazienka — ze względu na wyższą temperaturę wewnętrzną, ścianę zewnętrzną i niewielką powierzchnię bez zabudowy — wymagać znacznie większej mocy z każdego aktywnego metra podłogi.</p>
      </section>

      <section class="rk-hl-section" id="rk-hl-podlogowka">
        <span class="rk-hl-eyebrow">08 • Przełożenie na instalację</span>
        <h2>Co wynik strat ciepła oznacza dla ogrzewania podłogowego?</h2>
        <p class="rk-hl-section-intro">Obciążenie cieplne jest wejściem do projektu podłogi, ale nie wydaje automatycznej decyzji „10 cm”, „15 cm” albo „35°C”.</p>
        <div class="rk-hl-grid-2">
          <article class="rk-hl-card">
            <h3>Najpierw trzeba sprawdzić moc powierzchni</h3>
            <ol>
              <li>Obliczyć stratę każdego pomieszczenia.</li>
              <li>Wyznaczyć rzeczywistą powierzchnię czynną.</li>
              <li>Określić konstrukcję jastrychu i opór okładziny.</li>
              <li>Porównać charakterystykę 10, 15 lub 20 cm przy tej samej temperaturze wody.</li>
              <li>Sprawdzić temperaturę powierzchni oraz hydraulikę pętli.</li>
            </ol>
          </article>
          <article class="rk-hl-card">
            <h3>Średnia budynku nie wyznacza rozstawu</h3>
            <p>Rozstaw może być różny w salonie, łazience i sypialni. W jednym pokoju 15 cm zapewni wystarczającą moc przy niskiej temperaturze wody, a w innym nawet 10 cm nie pokryje obciążenia z dostępnej powierzchni.</p>
            <p>Zobacz szczegółowe porównanie: <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>
        </div>
        <p>Dopiero po dobraniu rozstawu i tras pętli można policzyć <a href="https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/">ile rury potrzeba na m² ogrzewania podłogowego</a>, wyznaczyć długości obwodów oraz obliczyć przepływy. Granice temperatury pracy instalacji szerzej omawia artykuł <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalna temperatura zasilania podłogówki</a>.</p>
      </section>

      <section class="rk-hl-section" id="rk-hl-zrodlo">
        <span class="rk-hl-eyebrow">09 • Dobór urządzenia</span>
        <h2>Czy wynik kalkulatora wystarcza do wyboru źródła ciepła?</h2>
        <p class="rk-hl-section-intro"><strong>Nie.</strong> Projektowe obciążenie jest podstawową daną, ale karta konkretnego urządzenia i cały sposób pracy układu mają własne parametry.</p>
        <div class="rk-hl-grid-3">
          <article class="rk-hl-card">
            <span class="rk-hl-card-icon">PC</span>
            <h3>Pompa ciepła</h3>
            <p>Sprawdzamy moc przy właściwej temperaturze zewnętrznej i wymaganej temperaturze wody, punkt biwalentny, minimalną modulację, udział grzałki oraz przygotowanie c.w.u.</p>
          </article>
          <article class="rk-hl-card">
            <span class="rk-hl-card-icon">K</span>
            <h3>Kocioł</h3>
            <p>Oprócz obciążenia ważna jest moc minimalna, zakres modulacji, sposób przygotowania c.w.u., hydraulika układu oraz wymagania producenta urządzenia.</p>
          </article>
          <article class="rk-hl-card">
            <span class="rk-hl-card-icon">CO</span>
            <h3>Instalacja</h3>
            <p>Całkowita moc służy do obliczenia przepływu, ale wysokość podnoszenia pompy obiegowej wynika z oporów krytycznej drogi przepływu, nie z samego kW.</p>
          </article>
        </div>
        <div class="rk-hl-callout">
          <strong>Oddziel moc na ogrzewanie od ciepłej wody użytkowej</strong>
          <p>Kalkulator liczy straty ogrzewanej strefy. Nie dolicza automatycznie mocy chwilowej potrzebnej do ładowania zasobnika c.w.u. ani nie zakłada jednego uniwersalnego zapasu.</p>
        </div>
        <p>Po ustaleniu przepływu projektowego można przejść do osobnego <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">kalkulatora doboru pompy obiegowej</a>. Nie należy jednak przenosić do niego wyniku bez podziału instalacji na rzeczywiste obiegi i krytyczne drogi przepływu.</p>
      </section>

      <section class="rk-hl-section" id="rk-hl-przyklad">
        <span class="rk-hl-eyebrow">10 • Przykład krok po kroku</span>
        <h2>Przykładowy bilans domu o powierzchni 140 m²</h2>
        <p class="rk-hl-section-intro">Poniższe liczby odpowiadają wartościom startowym kalkulatora. To przykład dydaktyczny, a nie uniwersalny model każdego domu 140 m².</p>
        <h3>Założenia temperatury</h3>
        <div class="rk-hl-formula">Δθ = 20°C − (−20°C) = 40 K</div>
        <h3>Przenikanie przez przegrody</h3>
        <div class="rk-hl-table-wrap">
          <table>
            <thead>
              <tr><th>Przegroda</th><th>A [m²]</th><th>U [W/(m²·K)]</th><th>b</th><th>Strata [W]</th></tr>
            </thead>
            <tbody>
              <tr><td data-label="Przegroda">Ściany</td><td data-label="A">150</td><td data-label="U">0,20</td><td data-label="b">1,00</td><td data-label="Strata">1200</td></tr>
              <tr><td data-label="Przegroda">Okna</td><td data-label="A">30</td><td data-label="U">0,90</td><td data-label="b">1,00</td><td data-label="Strata">1080</td></tr>
              <tr><td data-label="Przegroda">Drzwi</td><td data-label="A">5</td><td data-label="U">1,30</td><td data-label="b">1,00</td><td data-label="Strata">260</td></tr>
              <tr><td data-label="Przegroda">Dach</td><td data-label="A">140</td><td data-label="U">0,15</td><td data-label="b">1,00</td><td data-label="Strata">840</td></tr>
              <tr><td data-label="Przegroda">Podłoga — model uproszczony</td><td data-label="A">140</td><td data-label="U">0,25</td><td data-label="b">0,50</td><td data-label="Strata">700</td></tr>
            </tbody>
          </table>
        </div>
        <h3>Wentylacja, infiltracja i mostki</h3>
        <p>Przy strumieniu wentylacji 175 m³/h bez odzysku, infiltracji 0,10 1/h i kubaturze 350 m³ efektywny strumień wynosi 210 m³/h:</p>
        <div class="rk-hl-formula">Φ<sub>V</sub> = 0,34 · 210 · 40 = 2856 W</div>
        <p>Dla wpisanego H<sub>TB</sub> = 15 W/K mostki odpowiadają za:</p>
        <div class="rk-hl-formula">Φ<sub>TB</sub> = 15 · 40 = 600 W</div>
        <p>Łączny wynik przykładu wynosi około <strong>7,54 kW</strong>, czyli około <strong>53,8 W/m²</strong>. Po wprowadzeniu 85% odzysku dla części wentylacyjnej wynik spadnie, ale składnik infiltracji nadal pozostanie w bilansie.</p>
        <div class="rk-hl-callout rk-hl-callout-green">
          <strong>Co pokazuje przykład?</strong>
          <p>Największą zmianę wyniku może powodować nie metraż, lecz przyjęty strumień powietrza, sprawność odzysku i kompletność przegród. Dlatego gotowy wskaźnik W/m² nie zastąpi danych konkretnego domu.</p>
        </div>
      </section>

      <section class="rk-hl-section" id="rk-hl-bledy">
        <span class="rk-hl-eyebrow">11 • Kontrola jakości</span>
        <h2>Najczęstsze błędy i checklista przed obliczeniem</h2>
        <div class="rk-hl-grid-2">
          <article class="rk-hl-card">
            <h3>Błędy, które zmieniają wynik</h3>
            <ul>
              <li>mnożenie powierzchni podłogi przez losowe W/m²,</li>
              <li>użycie powierzchni pokoju jako powierzchni ściany,</li>
              <li>pominięcie okien albo niewłaściwe użycie Ug zamiast Uw,</li>
              <li>wyliczenie U całej przegrody wyłącznie jako λ/d jednej warstwy,</li>
              <li>zastosowanie temperatury z innej lokalizacji,</li>
              <li>pominięcie wentylacji lub dwukrotne policzenie infiltracji,</li>
              <li>odjęcie sprawności rekuperacji od całej wymiany powietrza,</li>
              <li>automatyczne doliczenie mostków jako stałego procentu.</li>
            </ul>
          </article>
          <article class="rk-hl-card">
            <h3>Wnioski, których kalkulator nie potwierdza</h3>
            <ul>
              <li>„Dom potrzebuje dokładnie takiej pompy ciepła”.</li>
              <li>„W każdym pokoju wystarczy rozstaw 15 cm”.</li>
              <li>„Podłogówka musi pracować na 35°C”.</li>
              <li>„Roczne zużycie wyniesie wynik kW razy liczba godzin”.</li>
              <li>„Rekuperacja usuwa wszystkie straty wentylacyjne”.</li>
              <li>„Wartość U podłogi wynika wyłącznie z grubości EPS”.</li>
            </ul>
          </article>
        </div>
        <h3>Checklista danych wejściowych</h3>
        <div class="rk-hl-checklist">
          <div class="rk-hl-check">Mam powierzchnię ogrzewaną i kubaturę netto.</div>
          <div class="rk-hl-check">Oddzieliłem ściany od okien i drzwi.</div>
          <div class="rk-hl-check">Używam współczynników U całych przegród.</div>
          <div class="rk-hl-check">Sprawdziłem temperaturę projektową lokalizacji.</div>
          <div class="rk-hl-check">Znam założony strumień wentylacji.</div>
          <div class="rk-hl-check">Oddzieliłem odzysk ciepła od infiltracji.</div>
          <div class="rk-hl-check">Uwzględniłem strefy nieogrzewane i grunt.</div>
          <div class="rk-hl-check">Wiem, czy mostki cieplne są policzone.</div>
          <div class="rk-hl-check">Dla podłogówki mam wyniki pomieszczeń.</div>
          <div class="rk-hl-check">Nie traktuję kalkulatora jako doboru urządzenia.</div>
        </div>
      </section>

      <section class="rk-hl-section" id="rk-hl-faq">
        <span class="rk-hl-eyebrow">12 • Pytania inwestorów</span>
        <h2>FAQ: kalkulator strat ciepła budynku</h2>
        <div class="rk-hl-faq">
          <details>
            <summary>Czy ten kalkulator zastępuje pełne OZC?</summary>
            <div class="rk-hl-faq-answer"><p>Nie. Jest przejrzystym modelem referencyjnym do wstępnego bilansu i kontroli danych. Pełne obliczenia wymagają kompletnej geometrii, warunków brzegowych, właściwej metody wymiany z gruntem, mostków, wentylacji oraz obliczeń pomieszczenie po pomieszczeniu.</p></div>
          </details>
          <details>
            <summary>Czy wystarczy pomnożyć metraż domu przez 40 albo 50 W/m²?</summary>
            <div class="rk-hl-faq-answer"><p>Nie jako obliczenie projektowe. Taki wskaźnik może być późniejszą kontrolą rzędu wielkości, ale nie zna powierzchni okien, geometrii, wentylacji, temperatur ani lokalnych strat pomieszczeń.</p></div>
          </details>
          <details>
            <summary>Dlaczego wynik jest podany w kW, a nie w kWh?</summary>
            <div class="rk-hl-faq-answer"><p>Ponieważ kalkulator wyznacza moc potrzebną w konkretnym punkcie temperaturowym. kWh opisuje energię zużytą lub dostarczoną w określonym czasie. Do wyniku rocznego potrzebny jest model sezonu, klimatu, zysków i sposobu użytkowania.</p></div>
          </details>
          <details>
            <summary>Jaką temperaturę zewnętrzną wpisać?</summary>
            <div class="rk-hl-faq-answer"><p>Należy przyjąć temperaturę projektową właściwą dla lokalizacji i stosowanej metody. Pomocniczy wybór pięciu stref w kalkulatorze nie zastępuje sprawdzenia położenia budynku. Szczegóły opisuje artykuł o <a href="https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/">strefach klimatycznych w Polsce</a>.</p></div>
          </details>
          <details>
            <summary>Co wpisać jako współczynnik b?</summary>
            <div class="rk-hl-faq-answer"><p>Dla bezpośredniej wymiany z powietrzem zewnętrznym przyjmujemy zwykle 1,00. Mniejsza wartość może w uproszczeniu opisywać grunt lub strefę buforową, ale prawidłowa wartość zależy od warunków po drugiej stronie i metody obliczeń. Domyślne 0,50 dla podłogi jest przykładem, nie uniwersalnym parametrem.</p></div>
          </details>
          <details>
            <summary>Czy sprawność rekuperatora można odjąć od wszystkich strat wentylacyjnych?</summary>
            <div class="rk-hl-faq-answer"><p>Nie. Odzysk dotyczy określonego strumienia przechodzącego przez wymiennik. Infiltracja przez nieszczelności pozostaje osobnym składnikiem, a rzeczywista praca instalacji może odbiegać od jednej wartości katalogowej.</p></div>
          </details>
          <details>
            <summary>Czy z wyniku można dobrać pompę ciepła?</summary>
            <div class="rk-hl-faq-answer"><p>Wynik jest ważnym wejściem do doboru, ale nie wskazuje samodzielnie konkretnego modelu. Trzeba porównać jego moc w odpowiednim punkcie pracy, temperaturę zasilania, punkt biwalentny, modulację, udział grzałki i przygotowanie c.w.u.</p></div>
          </details>
          <details>
            <summary>Czy wynik całego domu wystarczy do zaprojektowania podłogówki?</summary>
            <div class="rk-hl-faq-answer"><p>Nie. Podłogówkę dobiera się do obciążenia każdego pomieszczenia oraz jego rzeczywistej powierzchni czynnej. Następnie sprawdza się moc konkretnej konstrukcji podłogi, temperaturę powierzchni, rozstawy, długości, przepływy i opory pętli.</p></div>
          </details>
          <details>
            <summary>Czy audyt energetyczny i OZC to ten sam dokument?</summary>
            <div class="rk-hl-faq-answer"><p>Nie należy tych pojęć utożsamiać. Audyt energetyczny ma określony zakres, cel i wymagania dokumentacyjne. Projektowe obciążenie cieplne jest obliczeniem mocy. Wynik internetowego kalkulatora nie staje się audytem ani dokumentem wymaganym przez program dotacyjny.</p></div>
          </details>
        </div>
      </section>

      <section class="rk-hl-section" id="rk-hl-zrodla">
        <span class="rk-hl-eyebrow">13 • Metodyka i wiarygodność</span>
        <h2>Oficjalne źródła i ograniczenia modelu</h2>
        <p class="rk-hl-section-intro">Źródła zewnętrzne prowadzą wyłącznie do oficjalnych organizacji normalizacyjnych i serwisów publicznych. Kalkulator nie korzysta z tabel producentów ani materiałów sklepów internetowych.</p>
        <div class="rk-hl-source-list">
          <div class="rk-hl-source">
            <strong><a href="https://knowledge.bsigroup.com/products/energy-performance-of-buildings-method-for-calculation-of-the-design-heat-load-space-heating-load-module-m3-3" target="_blank" rel="noopener nofollow">BS EN 12831-1 — projektowe obciążenie cieplne</a></strong>
            <p>Metoda obliczania projektowego obciążenia cieplnego pomieszczeń, jednostek budynku i całych budynków.</p>
          </div>
          <div class="rk-hl-source">
            <strong><a href="https://www.iso.org/standard/65696.html" target="_blank" rel="noopener nofollow">ISO 52016-1 — potrzeby energetyczne, temperatury i obciążenia</a></strong>
            <p>Rozróżnia między innymi potrzeby energetyczne ogrzewania i chłodzenia oraz obciążenia cieplne.</p>
          </div>
          <div class="rk-hl-source">
            <strong><a href="https://www.iso.org/standard/65708.html" target="_blank" rel="noopener nofollow">ISO 6946:2017 — opór i współczynnik przenikania ciepła</a></strong>
            <p>Metoda dla komponentów budowlanych; jej zakres nie obejmuje między innymi okien ani elementów wymieniających ciepło z gruntem.</p>
          </div>
          <div class="rk-hl-source">
            <strong><a href="https://www.iso.org/standard/65716.html" target="_blank" rel="noopener nofollow">ISO 13370:2017 — wymiana ciepła przez grunt</a></strong>
            <p>Obliczanie współczynników i strumieni ciepła dla podłóg na gruncie, podłóg podniesionych i piwnic.</p>
          </div>
          <div class="rk-hl-source">
            <strong><a href="https://www.iso.org/standard/65706.html" target="_blank" rel="noopener nofollow">ISO 14683:2017 — liniowe mostki cieplne</a></strong>
            <p>Metody uproszczone i wartości domyślne dla liniowego współczynnika przenikania ciepła.</p>
          </div>
          <div class="rk-hl-source">
            <strong><a href="https://czystepowietrze.gov.pl/wez-dofinansowanie/pytania-i-odpowiedzi/nowy-program-czyste-powietrze-obowiazujacy-od-31-marca-2025/14" target="_blank" rel="noopener nofollow">Program „Czyste Powietrze” — wymagania dotyczące audytu</a></strong>
            <p>Oficjalna odpowiedź dotycząca audytu energetycznego i dokumentu podsumowującego audyt. Nie należy utożsamiać ich z wynikiem kalkulatora internetowego.</p>
          </div>
        </div>
        <div class="rk-hl-callout">
          <strong>Zakres odpowiedzialności narzędzia</strong>
          <p>Kalkulator służy do edukacji, kontroli założeń i wstępnego bilansu. Wynik zależy od danych użytkownika. Nie zastępuje dokumentacji projektowej, audytu energetycznego, świadectwa charakterystyki energetycznej ani doboru konkretnego urządzenia.</p>
        </div>
      </section>

      <section class="rk-hl-section" id="rk-hl-autor">
        <span class="rk-hl-eyebrow">14 • E-E-A-T</span>
        <h2>Autor opracowania i metodyki kalkulatora</h2>
        <section class="rk-hl-author" aria-label="Autor opracowania">
          <input type="radio" name="rk-hl-author-tabs" id="rk-hl-author-about" checked>
          <input type="radio" name="rk-hl-author-tabs" id="rk-hl-author-exp">
          <input type="radio" name="rk-hl-author-tabs" id="rk-hl-author-method">
          <header class="rk-hl-author-head">
            <div>
              <h3>Robert Kucharski</h3>
              <p>Projektant instalacji sanitarnych, specjalista HVAC i ogrzewania podłogowego</p>
            </div>
            <span class="rk-hl-author-mark">OBLICZENIA CIEPLNE • OGRZEWANIE PŁASZCZYZNOWE • HYDRAULIKA INSTALACJI</span>
          </header>
          <div class="rk-hl-author-layout">
            <aside class="rk-hl-author-side">
              <div class="rk-hl-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 HVAC" width="600" height="600" loading="lazy" decoding="async"></div>
              <div class="rk-hl-author-name">Robert Kucharski</div>
              <div class="rk-hl-author-role">Projektant instalacji sanitarnych<br>Specjalista HVAC i ogrzewania podłogowego</div>
              <div class="rk-hl-author-social-label">Profile autora</div>
              <div class="rk-hl-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="me noopener nofollow" aria-label="Robert Kucharski na LinkedIn">
                  <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4.98 3.5C4.98 4.88 3.87 6 2.5 6A2.5 2.5 0 1 1 5 3.5ZM.5 8h4V24h-4V8Zm7 0h3.84v2.19h.05C11.93 9.18 13.24 7.5 17.2 7.5 23.21 7.5 24 11.46 24 16.61V24h-4v-6.56c0-1.57-.03-3.59-2.19-3.59-2.19 0-2.53 1.71-2.53 3.48V24h-4V8h3.84v2.19h.05C15.7 9.18 17.02 7.5 19.79 7.5Z"></path></svg>
                </a>
                <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="me noopener nofollow" aria-label="Projekt Ogrzewania na Facebooku">
                  <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M24 12.07C24 5.4 18.63 0 12 0S0 5.4 0 12.07C0 18.1 4.39 23.1 10.13 24v-8.44H7.08v-3.49h3.05V9.41c0-3.03 1.79-4.7 4.53-4.7 1.31 0 2.68.24 2.68.24v2.96h-1.51c-1.49 0-1.96.93-1.96 1.89v2.27h3.33l-.53 3.49h-2.8V24C19.61 23.1 24 18.1 24 12.07Z"></path></svg>
                </a>
                <a href="https://x.com/Projekt_HVAC" target="_blank" rel="me noopener nofollow" aria-label="Projekt HVAC w serwisie X">
                  <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231 5.45-6.231Zm-1.161 17.52h1.833L7.084 4.126H5.117L17.083 19.77Z"></path></svg>
                </a>
              </div>
            </aside>
            <div class="rk-hl-author-main">
              <blockquote class="rk-hl-author-quote"><p>„Wartość W/m² powinna być wynikiem obliczenia przegród, temperatur i wymiany powietrza. Jeżeli wpisujemy ją na początku tylko dlatego, że dom ma 140 m², nie obliczamy strat — zgadujemy.”</p></blockquote>
              <div class="rk-hl-author-tabs" role="tablist" aria-label="Informacje o autorze">
                <label class="rk-hl-author-tab" for="rk-hl-author-about">O autorze</label>
                <label class="rk-hl-author-tab" for="rk-hl-author-exp">Doświadczenie</label>
                <label class="rk-hl-author-tab" for="rk-hl-author-method">Metodyka</label>
              </div>
              <div class="rk-hl-author-panel rk-hl-author-panel-about">
                <p>Robert Kucharski opracowuje projekty ogrzewania podłogowego, obliczenia cieplne i hydrauliczne oraz materiały edukacyjne dla inwestorów i wykonawców. W publikacjach łączy fizykę budynku z praktycznym przełożeniem wyniku na rozstawy, długości pętli, przepływy i pracę źródła ciepła.</p>
                <p>Prowadzi serwis Projekt-Ogrzewania.pl oraz rozwija portale budowlane Remont.biz.pl i Sobir.pl. Celem materiałów jest pokazanie założeń i ograniczeń obliczeń, a nie zastępowanie projektu pojedynczą liczbą z internetowego formularza.</p>
              </div>
              <div class="rk-hl-author-panel rk-hl-author-panel-exp">
                <p>Doświadczenie autora obejmuje analizę dokumentacji budynków nowych i modernizowanych, obliczanie obciążeń pomieszczeń, dobór powierzchni grzewczych oraz hydrauliczne bilansowanie instalacji. Szczególną uwagę poświęca sytuacjom, w których średnia całego domu ukrywa problem lokalny: małą powierzchnię czynną łazienki, duże przeszklenia, strefy bez rur albo ograniczenia posadzki.</p>
                <p>Praktyka projektowa pokazuje, że poprawne dane wejściowe są ważniejsze od rozbudowanej grafiki kalkulatora. Dlatego narzędzie jawnie pokazuje wzory, składowe i ostrzeżenia o pominiętych mostkach lub uproszczonej wymianie z gruntem.</p>
              </div>
              <div class="rk-hl-author-panel rk-hl-author-panel-method">
                <p>Model kalkulatora rozdziela straty przez przenikanie, wentylację wraz z infiltracją oraz mostki cieplne. Nie miesza mocy projektowej w kW z roczną energią w kWh i nie dobiera automatycznie rozstawu rur ani modelu urządzenia.</p>
                <p>Podstawą dalszego projektu podłogówki pozostaje obciążenie każdego pomieszczenia, jego powierzchnia czynna oraz charakterystyka konkretnej konstrukcji podłogi przy określonych temperaturach wody.</p>
              </div>
              <p><a href="https://projekt-ogrzewania.pl/author/admin3399/">Wszystkie wpisy autora</a></p>
              <div class="rk-hl-portals" aria-label="Serwisy prowadzone przez autora">
                <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>
        </section>
      </section>

      <aside class="rk-hl-sales-cta" aria-label="Końcowe zamówienie projektu ogrzewania podłogowego">
        <h3>Od bilansu strat do kompletnego projektu ogrzewania podłogowego</h3>
        <p>Otrzymasz rozstaw rur wpisany na rzut budynku, długości pętli, przepływy, nastawy rozdzielacza i zestawienie materiałowe oparte na danych poszczególnych pomieszczeń — bez projektowania całego domu na jednym uśrednionym W/m².</p>
        <a class="rk-hl-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
      </aside>
    </div>
  </div>

  <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.pl",
        "inLanguage": "pl-PL",
        "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" }
      },
      {
        "@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": "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",
        "description": "Autor opracowań, kalkulatorów i projektów dotyczących ogrzewania podłogowego, obliczeń cieplnych oraz hydrauliki instalacji grzewczych.",
        "knowsAbout": [
          "projektowe obciążenie cieplne budynków",
          "ogrzewanie podłogowe",
          "hydraulika instalacji grzewczych",
          "dobór pomp obiegowych",
          "równoważenie hydrauliczne",
          "projektowanie instalacji sanitarnych"
        ],
        "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": "BreadcrumbList",
        "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#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 strat ciepła budynku",
            "item": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/"
          }
        ]
      },
      {
        "@type": "WebPage",
        "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#webpage",
        "url": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/",
        "name": "Kalkulator strat ciepła budynku – oblicz wymaganą moc ogrzewania w kW",
        "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
        "breadcrumb": { "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#breadcrumb" },
        "primaryImageOfPage": { "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#primaryimage" },
        "datePublished": "2026-03-09T11:26:18+01:00",
        "dateModified": "2026-09-01T12:00:00+02:00",
        "inLanguage": "pl-PL",
        "mainEntity": { "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#article" }
      },
      {
        "@type": "ImageObject",
        "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#primaryimage",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/03/Kalkulator-strat-ciepla-domu-–-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie.webp",
        "caption": "Kalkulator strat ciepła budynku"
      },
      {
        "@type": "WebApplication",
        "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#calculator",
        "name": "Kalkulator strat ciepła budynku i pomieszczenia",
        "url": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#rk-hl-kalkulator",
        "applicationCategory": "UtilitiesApplication",
        "operatingSystem": "Any",
        "browserRequirements": "JavaScript enabled",
        "isAccessibleForFree": true,
        "inLanguage": "pl-PL",
        "description": "Kalkulator wstępnego bilansu projektowych strat ciepła przez przegrody, wentylację, infiltrację i mostki cieplne, z wykresem wymaganej mocy względem temperatury zewnętrznej.",
        "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
        "provider": { "@id": "https://projekt-ogrzewania.pl/#organization" },
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "PLN"
        },
        "featureList": [
          "obliczanie strat przez przegrody",
          "obliczanie strat wentylacyjnych i infiltracyjnych",
          "uwzględnienie odzysku ciepła",
          "uwzględnienie liniowych mostków cieplnych",
          "wynik w W, kW i W/m²",
          "dynamiczna krzywa mocy względem temperatury zewnętrznej",
          "diagnostyka kompletności danych"
        ]
      },
      {
        "@type": "HowTo",
        "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#howto",
        "name": "Jak wstępnie obliczyć projektowe straty ciepła budynku?",
        "description": "Pięć kroków prowadzących od geometrii i temperatur do wyniku oraz jego prawidłowej interpretacji.",
        "totalTime": "PT20M",
        "tool": [
          { "@type": "HowToTool", "name": "Dokumentacja przegród i stolarki" },
          { "@type": "HowToTool", "name": "Kalkulator strat ciepła na stronie" }
        ],
        "step": [
          {
            "@type": "HowToStep",
            "position": 1,
            "name": "Określ zakres i geometrię",
            "text": "Wybierz cały budynek albo pomieszczenie, a następnie wpisz powierzchnię ogrzewaną i kubaturę."
          },
          {
            "@type": "HowToStep",
            "position": 2,
            "name": "Wpisz temperatury projektowe",
            "text": "Podaj wymaganą temperaturę wewnętrzną oraz temperaturę zewnętrzną właściwą dla lokalizacji."
          },
          {
            "@type": "HowToStep",
            "position": 3,
            "name": "Opisz przegrody",
            "text": "Dla ścian, okien, drzwi, dachu, podłogi i stref buforowych podaj powierzchnię, współczynnik U oraz współczynnik redukcyjny."
          },
          {
            "@type": "HowToStep",
            "position": 4,
            "name": "Uzupełnij wymianę powietrza i mostki",
            "text": "Podaj strumień wentylacji, sprawność odzysku, infiltrację i znany sumaryczny współczynnik mostków cieplnych."
          },
          {
            "@type": "HowToStep",
            "position": 5,
            "name": "Oceń wynik i ograniczenia",
            "text": "Odczytaj moc w kW, wskaźnik W/m², rozkład strat, wykres temperatury oraz ostrzeżenia o brakujących danych."
          }
        ]
      },
      {
        "@type": "FAQPage",
        "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#faq",
        "mainEntity": [
          {
            "@type": "Question",
            "name": "Czy ten kalkulator zastępuje pełne OZC?",
            "acceptedAnswer": { "@type": "Answer", "text": "Nie. Jest modelem referencyjnym do wstępnego bilansu i kontroli danych. Pełne obliczenia wymagają kompletnej geometrii, warunków brzegowych, wymiany z gruntem, mostków, wentylacji i wyników każdego pomieszczenia." }
          },
          {
            "@type": "Question",
            "name": "Czy wystarczy pomnożyć metraż domu przez 40 albo 50 W/m²?",
            "acceptedAnswer": { "@type": "Answer", "text": "Nie jako obliczenie projektowe. Taki wskaźnik może być kontrolą rzędu wielkości, ale nie uwzględnia powierzchni okien, geometrii, wentylacji, temperatur ani lokalnych strat pomieszczeń." }
          },
          {
            "@type": "Question",
            "name": "Dlaczego wynik jest podany w kW, a nie w kWh?",
            "acceptedAnswer": { "@type": "Answer", "text": "Kalkulator wyznacza moc potrzebną w konkretnym punkcie temperaturowym. kWh opisuje energię w określonym czasie i wymaga modelu sezonu, klimatu, zysków oraz sposobu użytkowania." }
          },
          {
            "@type": "Question",
            "name": "Jaką temperaturę zewnętrzną wpisać?",
            "acceptedAnswer": { "@type": "Answer", "text": "Należy przyjąć temperaturę projektową właściwą dla lokalizacji i stosowanej metody. Pomocniczy wybór strefy nie zastępuje sprawdzenia położenia budynku." }
          },
          {
            "@type": "Question",
            "name": "Co wpisać jako współczynnik b?",
            "acceptedAnswer": { "@type": "Answer", "text": "Dla bezpośredniej wymiany z powietrzem zewnętrznym przyjmuje się 1,00. Mniejsza wartość może w uproszczeniu opisywać grunt lub strefę buforową, ale zależy od warunków i metody obliczeń." }
          },
          {
            "@type": "Question",
            "name": "Czy sprawność rekuperatora można odjąć od wszystkich strat wentylacyjnych?",
            "acceptedAnswer": { "@type": "Answer", "text": "Nie. Odzysk dotyczy strumienia przechodzącego przez wymiennik. Infiltracja przez nieszczelności pozostaje osobnym składnikiem." }
          },
          {
            "@type": "Question",
            "name": "Czy z wyniku można dobrać pompę ciepła?",
            "acceptedAnswer": { "@type": "Answer", "text": "Wynik jest ważnym wejściem, ale nie wskazuje konkretnego modelu. Trzeba sprawdzić moc urządzenia w punkcie pracy, temperaturę zasilania, punkt biwalentny, modulację, grzałkę i ciepłą wodę użytkową." }
          },
          {
            "@type": "Question",
            "name": "Czy wynik całego domu wystarczy do zaprojektowania podłogówki?",
            "acceptedAnswer": { "@type": "Answer", "text": "Nie. Potrzebne jest obciążenie każdego pomieszczenia, jego powierzchnia czynna, konstrukcja podłogi, temperatura powierzchni, rozstawy, długości, przepływy i opory pętli." }
          },
          {
            "@type": "Question",
            "name": "Czy audyt energetyczny i OZC to ten sam dokument?",
            "acceptedAnswer": { "@type": "Answer", "text": "Nie należy utożsamiać tych pojęć. Audyt energetyczny ma określony zakres i cel dokumentacyjny, a projektowe obciążenie cieplne jest obliczeniem mocy. Wynik kalkulatora nie jest audytem." }
          }
        ]
      },
      {
        "@type": "TechArticle",
        "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#article",
        "headline": "Kalkulator strat ciepła budynku – oblicz wymaganą moc ogrzewania w kW",
        "description": "Oblicz straty przez ściany, okna, dach, podłogę i wentylację. Sprawdź wymaganą moc w kW, W/m² oraz udział każdej części bilansu.",
        "url": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/",
        "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#webpage" },
        "image": { "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#primaryimage" },
        "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
        "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
        "datePublished": "2026-03-09T11:26:18+01:00",
        "dateModified": "2026-09-01T12:00:00+02:00",
        "inLanguage": "pl-PL",
        "isAccessibleForFree": true,
        "proficiencyLevel": "Intermediate",
        "about": [
          { "@type": "Thing", "name": "projektowe obciążenie cieplne" },
          { "@type": "Thing", "name": "straty ciepła budynku" },
          { "@type": "Thing", "name": "ogrzewanie podłogowe" },
          { "@type": "Thing", "name": "wentylacja i infiltracja" }
        ],
        "mentions": [
          { "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#calculator" },
          { "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#howto" },
          { "@id": "https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/#faq" }
        ],
        "citation": [
          "https://knowledge.bsigroup.com/products/energy-performance-of-buildings-method-for-calculation-of-the-design-heat-load-space-heating-load-module-m3-3",
          "https://www.iso.org/standard/65696.html",
          "https://www.iso.org/standard/65708.html",
          "https://www.iso.org/standard/65716.html",
          "https://www.iso.org/standard/65706.html",
          "https://budowlaneabc.gov.pl/charakterystyka-energetyczna-budynkow/kalkulatory/calc-wpc/",
          "https://czystepowietrze.gov.pl/wez-dofinansowanie/pytania-i-odpowiedzi/nowy-program-czyste-powietrze-obowiazujacy-od-31-marca-2025/14"
        ]
      }
    ]
  }
  </script>

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

    function rkHlInit() {
      var root = document.getElementById("rk-hl-tool");
      if (!root) { return; }

      var scope = document.getElementById("rk-hl-scope");
      var areaInput = document.getElementById("rk-hl-area");
      var volumeInput = document.getElementById("rk-hl-volume");
      var activeField = document.getElementById("rk-hl-active-field");
      var activeInput = document.getElementById("rk-hl-active-area");
      var activeResultCard = document.getElementById("rk-hl-active-result-card");
      var zone = document.getElementById("rk-hl-zone");
      var indoorInput = document.getElementById("rk-hl-indoor");
      var outdoorInput = document.getElementById("rk-hl-outdoor");
      var ventFlowInput = document.getElementById("rk-hl-vent-flow");
      var recoveryInput = document.getElementById("rk-hl-recovery");
      var infiltrationInput = document.getElementById("rk-hl-infiltration");
      var bridgesInput = document.getElementById("rk-hl-bridges");
      var rows = root.querySelectorAll(".rk-hl-envelope-row");
      var totalKwOutput = document.getElementById("rk-hl-total-kw");
      var wm2Output = document.getElementById("rk-hl-wm2");
      var transmissionOutput = document.getElementById("rk-hl-transmission");
      var ventilationOutput = document.getElementById("rk-hl-ventilation");
      var activeWm2Output = document.getElementById("rk-hl-active-wm2");
      var deltaNote = document.getElementById("rk-hl-delta-note");
      var status = document.getElementById("rk-hl-status");
      var diagnostics = document.getElementById("rk-hl-diagnostics");

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

      function rkHlClamp(value, minimum, maximum) {
        if (value < minimum) { return minimum; }
        if (value > maximum) { return maximum; }
        return value;
      }

      function rkHlFormat(value, digits) {
        if (!Number.isFinite(value)) { return "—"; }
        return value.toLocaleString("pl-PL", {
          minimumFractionDigits: digits,
          maximumFractionDigits: digits
        });
      }

      function rkHlSetOutput(element, value, unit, digits) {
        element.innerHTML = rkHlFormat(value, digits) + " <small>" + unit + "</small>";
      }

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

      function rkHlClear(element) {
        while (element.firstChild) { element.removeChild(element.firstChild); }
      }

      function rkHlDrawChart(totalH, indoor, outdoor, totalKw) {
        var grid = document.getElementById("rk-hl-chart-grid");
        var line = document.getElementById("rk-hl-chart-line");
        var designLine = document.getElementById("rk-hl-chart-design-line");
        var designPoint = document.getElementById("rk-hl-chart-design-point");
        var designLabel = document.getElementById("rk-hl-chart-design-label");
        var left = 68;
        var right = 24;
        var top = 22;
        var bottom = 52;
        var width = 760;
        var height = 330;
        var plotWidth = width - left - right;
        var plotHeight = height - top - bottom;
        var xMin = -30;
        var xMax = 15;
        var yMax;
        var xStep;
        var points = [];
        var current;

        if (outdoor < xMin) { xMin = Math.floor(outdoor / 5) * 5; }
        if (indoor > xMax) { xMax = Math.ceil(indoor / 5) * 5; }
        yMax = totalH * Math.max(indoor - xMin, 1) / 1000;
        yMax = Math.max(1, Math.ceil(yMax));
        xStep = xMax - xMin > 50 ? 10 : 5;

        function xPos(value) {
          return left + (value - xMin) / (xMax - xMin) * plotWidth;
        }

        function yPos(value) {
          return top + plotHeight - value / yMax * plotHeight;
        }

        rkHlClear(grid);

        for (current = 0; current <= 5; current += 1) {
          var yValue = yMax * current / 5;
          var y = yPos(yValue);
          grid.appendChild(rkHlCreateSvg("line", {
            x1: left,
            y1: y,
            x2: width - right,
            y2: y,
            stroke: "#d9e8ed",
            "stroke-width": 1
          }));
          grid.appendChild(rkHlCreateSvg("text", {
            x: left - 10,
            y: y + 5,
            fill: "#607784",
            "font-size": 12,
            "text-anchor": "end"
          }, rkHlFormat(yValue, 1)));
        }

        for (current = xMin; current <= xMax; current += xStep) {
          var x = xPos(current);
          grid.appendChild(rkHlCreateSvg("line", {
            x1: x,
            y1: top,
            x2: x,
            y2: top + plotHeight,
            stroke: "#e4eef1",
            "stroke-width": 1
          }));
          grid.appendChild(rkHlCreateSvg("text", {
            x: x,
            y: height - 24,
            fill: "#607784",
            "font-size": 12,
            "text-anchor": "middle"
          }, String(current) + "°"));
        }

        grid.appendChild(rkHlCreateSvg("line", {
          x1: left,
          y1: top + plotHeight,
          x2: width - right,
          y2: top + plotHeight,
          stroke: "#728994",
          "stroke-width": 2
        }));
        grid.appendChild(rkHlCreateSvg("line", {
          x1: left,
          y1: top,
          x2: left,
          y2: top + plotHeight,
          stroke: "#728994",
          "stroke-width": 2
        }));
        grid.appendChild(rkHlCreateSvg("text", {
          x: left + plotWidth / 2,
          y: height - 3,
          fill: "#405965",
          "font-size": 13,
          "font-weight": 800,
          "text-anchor": "middle"
        }, "temperatura zewnętrzna [°C]"));
        grid.appendChild(rkHlCreateSvg("text", {
          x: 18,
          y: top + plotHeight / 2,
          fill: "#405965",
          "font-size": 13,
          "font-weight": 800,
          "text-anchor": "middle",
          transform: "rotate(-90 18 " + String(top + plotHeight / 2) + ")"
        }, "wymagana moc [kW]"));

        for (current = xMin; current <= xMax; current += 1) {
          var power = totalH * Math.max(indoor - current, 0) / 1000;
          points.push(rkHlFormat(xPos(current), 1).replace(",", ".") + "," + rkHlFormat(yPos(power), 1).replace(",", "."));
        }
        line.setAttribute("points", points.join(" "));

        var designTemperature = rkHlClamp(outdoor, xMin, xMax);
        var designX = xPos(designTemperature);
        var designY = yPos(totalKw);
        designLine.setAttribute("x1", String(designX));
        designLine.setAttribute("x2", String(designX));
        designLine.setAttribute("y1", String(top));
        designLine.setAttribute("y2", String(top + plotHeight));
        designPoint.setAttribute("cx", String(designX));
        designPoint.setAttribute("cy", String(designY));
        designLabel.setAttribute("x", String(designX > width - 135 ? designX - 92 : designX + 10));
        designLabel.setAttribute("y", String(Math.max(top + 16, designY - 12)));
        designLabel.textContent = rkHlFormat(totalKw, 2) + " kW przy " + rkHlFormat(outdoor, 1) + "°C";
      }

      function rkHlSetBar(barId, valueId, value, total) {
        var percentage = total > 0 ? value / total * 100 : 0;
        document.getElementById(barId).style.width = rkHlClamp(percentage, 0, 100) + "%";
        document.getElementById(valueId).textContent = rkHlFormat(value / 1000, 2) + " kW • " + rkHlFormat(percentage, 1) + "%";
      }

      function rkHlDiagnosticItem(textValue, stateValue) {
        var item = document.createElement("li");
        item.textContent = textValue;
        item.setAttribute("data-state", stateValue);
        return item;
      }

      function rkHlUpdate() {
        var area = Math.max(0, rkHlNumber(areaInput, 0));
        var volume = Math.max(0, rkHlNumber(volumeInput, 0));
        var activeArea = Math.max(0, rkHlNumber(activeInput, 0));
        var indoor = rkHlNumber(indoorInput, 20);
        var outdoor = rkHlNumber(outdoorInput, -20);
        var delta = Math.max(0, indoor - outdoor);
        var ventFlow = Math.max(0, rkHlNumber(ventFlowInput, 0));
        var recovery = rkHlClamp(rkHlNumber(recoveryInput, 0), 0, 95);
        var infiltration = Math.max(0, rkHlNumber(infiltrationInput, 0));
        var bridgesH = Math.max(0, rkHlNumber(bridgesInput, 0));
        var transmissionH = 0;
        var envelopeCount = 0;
        var invalidEnvelope = false;
        var floorSimplified = false;
        var ventEffective;
        var ventilationH;
        var totalH;
        var transmissionW;
        var ventilationW;
        var bridgesW;
        var totalW;
        var totalKw;
        var wm2;
        var activeWm2;
        var badCount = 0;
        var warnCount = 0;

        rows.forEach(function (row) {
          var rowArea = Math.max(0, rkHlNumber(row.querySelector('[data-role="area"]'), 0));
          var rowU = Math.max(0, rkHlNumber(row.querySelector('[data-role="u"]'), 0));
          var rowFactor = Math.max(0, rkHlNumber(row.querySelector('[data-role="factor"]'), 0));
          var rowH = rowArea * rowU * rowFactor;
          var rowW = rowH * delta;
          var rowOutput = row.querySelector('[data-role="result"]');
          transmissionH += rowH;
          if (rowArea > 0) { envelopeCount += 1; }
          if (rowArea > 0) {
            if (rowU <= 0) { invalidEnvelope = true; }
          }
          if (row.getAttribute("data-envelope") === "floor") {
            if (rowArea > 0) { floorSimplified = true; }
          }
          rowOutput.innerHTML = rkHlFormat(rowW, 0) + " <small>W</small>";
        });

        ventEffective = ventFlow * (1 - recovery / 100) + infiltration * volume;
        ventilationH = 0.34 * ventEffective;
        totalH = transmissionH + ventilationH + bridgesH;
        transmissionW = transmissionH * delta;
        ventilationW = ventilationH * delta;
        bridgesW = bridgesH * delta;
        totalW = transmissionW + ventilationW + bridgesW;
        totalKw = totalW / 1000;
        wm2 = area > 0 ? totalW / area : 0;
        activeWm2 = activeArea > 0 ? totalW / activeArea : 0;

        rkHlSetOutput(totalKwOutput, totalKw, "kW", 2);
        rkHlSetOutput(wm2Output, wm2, "W/m²", 1);
        rkHlSetOutput(transmissionOutput, transmissionW / 1000, "kW", 2);
        rkHlSetOutput(ventilationOutput, ventilationW / 1000, "kW", 2);
        rkHlSetOutput(activeWm2Output, activeWm2, "W/m²", 1);
        deltaNote.textContent = "Różnica temperatur: " + rkHlFormat(delta, 1) + " K • H całkowite: " + rkHlFormat(totalH, 1) + " W/K";

        rkHlSetBar("rk-hl-bar-transmission", "rk-hl-share-transmission", transmissionW, totalW);
        rkHlSetBar("rk-hl-bar-ventilation", "rk-hl-share-ventilation", ventilationW, totalW);
        rkHlSetBar("rk-hl-bar-bridges", "rk-hl-share-bridges", bridgesW, totalW);
        rkHlDrawChart(totalH, indoor, outdoor, totalKw);

        rkHlClear(diagnostics);

        if (delta <= 0) {
          diagnostics.appendChild(rkHlDiagnosticItem("Temperatura zewnętrzna nie jest niższa od wewnętrznej. Punkt nie opisuje zimowego obciążenia grzewczego.", "bad"));
          badCount += 1;
        } else {
          diagnostics.appendChild(rkHlDiagnosticItem("Różnica temperatur jest dodatnia i została jawnie pokazana w wyniku.", "good"));
        }

        if (area <= 0) {
          diagnostics.appendChild(rkHlDiagnosticItem("Brakuje powierzchni ogrzewanej, dlatego wskaźnik W/m² nie może być oceniony.", "bad"));
          badCount += 1;
        } else {
          diagnostics.appendChild(rkHlDiagnosticItem("Wskaźnik mocy został odniesiony do wpisanej powierzchni " + rkHlFormat(area, 1) + " m².", "good"));
        }

        if (envelopeCount < 3) {
          diagnostics.appendChild(rkHlDiagnosticItem("Wprowadzono mniej niż trzy rodzaje przegród. Sprawdź, czy bilans obejmuje całą analizowaną strefę.", "warn"));
          warnCount += 1;
        } else {
          diagnostics.appendChild(rkHlDiagnosticItem("Przenikanie jest liczone osobno dla " + String(envelopeCount) + " rodzajów przegród.", "good"));
        }

        if (invalidEnvelope) {
          diagnostics.appendChild(rkHlDiagnosticItem("Co najmniej jedna przegroda ma powierzchnię większą od zera i U równe zero.", "bad"));
          badCount += 1;
        }

        if (floorSimplified) {
          diagnostics.appendChild(rkHlDiagnosticItem("Podłoga na gruncie jest policzona przybliżeniem U · A · b · Δθ, a nie pełną metodą wymiany z gruntem.", "warn"));
          warnCount += 1;
        }

        if (ventFlow <= 0) {
          if (infiltration <= 0) {
            diagnostics.appendChild(rkHlDiagnosticItem("Wentylacja i infiltracja mają wartość zero. Wynik prawdopodobnie pomija istotną część strat.", "bad"));
            badCount += 1;
          } else {
            diagnostics.appendChild(rkHlDiagnosticItem("Straty powietrzne obejmują tylko infiltrację. Sprawdź, czy celowo pominięto strumień wentylacyjny.", "warn"));
            warnCount += 1;
          }
        } else {
          diagnostics.appendChild(rkHlDiagnosticItem("Efektywny strumień powietrza użyty w obliczeniu wynosi " + rkHlFormat(ventEffective, 1) + " m³/h.", "good"));
        }

        if (recovery > 0) {
          if (ventFlow <= 0) {
            diagnostics.appendChild(rkHlDiagnosticItem("Wpisano sprawność odzysku, ale strumień wentylacji wynosi zero.", "warn"));
            warnCount += 1;
          } else {
            diagnostics.appendChild(rkHlDiagnosticItem("Odzysk redukuje tylko wpisany strumień wentylacyjny; infiltracja pozostaje osobno.", "good"));
          }
        }

        if (bridgesH <= 0) {
          diagnostics.appendChild(rkHlDiagnosticItem("Mostki cieplne nie zostały uwzględnione. Nie doliczono automatycznego zapasu procentowego.", "warn"));
          warnCount += 1;
        } else {
          diagnostics.appendChild(rkHlDiagnosticItem("Mostki cieplne odpowiadają za " + rkHlFormat(bridgesW / 1000, 2) + " kW w punkcie projektowym.", "good"));
        }

        if (scope.value === "room") {
          if (activeArea <= 0) {
            diagnostics.appendChild(rkHlDiagnosticItem("W trybie pomieszczenia brakuje czynnej powierzchni podłogi.", "bad"));
            badCount += 1;
          } else {
            diagnostics.appendChild(rkHlDiagnosticItem("Wymagana średnia moc z powierzchni czynnej wynosi " + rkHlFormat(activeWm2, 1) + " W/m². Trzeba ją porównać z charakterystyką konkretnej podłogi.", "good"));
          }
        }

        if (wm2 > 120) {
          diagnostics.appendChild(rkHlDiagnosticItem("Wskaźnik przekracza 120 W/m². Zweryfikuj dane, a następnie osobno oceń możliwości odbiorników ciepła.", "warn"));
          warnCount += 1;
        }

        if (badCount > 0) {
          status.setAttribute("data-level", "alert");
          status.textContent = "Brakuje danych krytycznych albo warunki nie opisują punktu grzewczego. Nie używaj jeszcze wyniku do dalszych decyzji.";
        } else if (warnCount > 0) {
          status.setAttribute("data-level", "warn");
          status.textContent = "Wynik jest użyteczny do wstępnej analizy, ale zawiera jawne uproszczenia. Przeczytaj diagnostykę przed wykorzystaniem liczby.";
        } else {
          status.setAttribute("data-level", "good");
          status.textContent = "Wprowadzone dane tworzą spójny wstępny bilans. Nadal nie jest to pełne OZC ani automatyczny dobór urządzenia.";
        }
      }

      function rkHlScopeChange() {
        if (scope.value === "room") {
          activeField.hidden = false;
          activeResultCard.hidden = false;
        } else {
          activeField.hidden = true;
          activeResultCard.hidden = true;
        }
        rkHlUpdate();
      }

      zone.addEventListener("change", function () {
        if (zone.value !== "manual") { outdoorInput.value = zone.value; }
        rkHlUpdate();
      });

      scope.addEventListener("change", rkHlScopeChange);

      root.querySelectorAll("input, select").forEach(function (control) {
        if (control !== zone) {
          if (control !== scope) {
            control.addEventListener("input", rkHlUpdate);
            control.addEventListener("change", rkHlUpdate);
          }
        }
      });

      rkHlScopeChange();
    }

    if (document.readyState === "loading") {
      document.addEventListener("DOMContentLoaded", rkHlInit);
    } else {
      rkHlInit();
    }
  }());
  </script>
</article>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">Kalkulator strat ciepła budynku – jak samodzielnie obliczyć zapotrzebowanie na ogrzewanie.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Wylewka betonowa na ogrzewanie podłogowe.</title>
		<link>https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 27 Dec 2025 11:07:44 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Instalacja ogrzewania podłogowego]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Ogrzewanie domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Posadzki i wylewki]]></category>
		<category><![CDATA[dylatacje]]></category>
		<category><![CDATA[grubość wylewki]]></category>
		<category><![CDATA[jastrych anhydrytowy]]></category>
		<category><![CDATA[jastrych cementowy]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[przewodność cieplna]]></category>
		<category><![CDATA[wygrzewanie wylewki]]></category>
		<category><![CDATA[wylewka betonowa]]></category>
		<category><![CDATA[wylewka na podłogówkę]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2985</guid>

					<description><![CDATA[<p>Wydajność ogrzewania podłogowego nie zależy wyłącznie od rur i źródła ciepła. Kluczową rolę odgrywa wylewka betonowa na ogrzewanie podłogowe, która decyduje o komforcie, trwałości i reakcji całego systemu. W tym technicznym przewodniku krok po kroku wyjaśniamy, jak dobrać odpowiedni rodzaj wylewki, jaka grubość ma sens, czym różni się cement od anhydrytu oraz jak prawidłowo przeprowadzić suszenie i pierwsze uruchomienie ogrzewania. To praktyczna wiedza dla inwestorów, którzy chcą uniknąć kosztownych błędów i mieć system działający stabilnie przez lata.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">Wylewka betonowa 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-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-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-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">Jastrych grzejny • aktualizacja 24 sierpnia 2026 r.</div>
      <h2 itemprop="headline">Wylewka betonowa na ogrzewanie podłogowe – <span>grubość, zbrojenie, dylatacje i wygrzewanie</span></h2>
      <div class="rk-screed-hook">
        <p><strong>Nie istnieje jedna bezpieczna grubość wylewki, którą można wpisać do każdego domu.</strong> O wyniku decydują jednocześnie: rodzaj jastrychu, średnica rury, grubość warstwy nad rurą, klasa wytrzymałości, obciążenia, ściśliwość izolacji, geometria pól, okładzina oraz dokumentacja konkretnego systemu.</p>
      </div>
      <p class="rk-screed-hero-lead" itemprop="description">Ten techniczny przewodnik wyjaśnia, czym naprawdę jest potocznie nazywana wylewka betonowa na ogrzewanie podłogowe, jak czytać oznaczenia CT i CA, kiedy potrzebne jest zbrojenie, jak zaplanować szczeliny, próbę ciśnieniową, pielęgnację i pierwsze wygrzewanie. Interaktywny kalkulator szacuje ilość jastrychu, masę oraz pojemność cieplną, lecz nie zastępuje projektu konstrukcji podłogi.</p>
      <div class="rk-screed-hero-meta">
        <span>Autor: Robert Kucharski</span>
        <span>Oparte na PN-EN 1264 i PN-EN 13813</span>
        <span>Bez uniwersalnych recept „na oko”</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> wartości w tabelach są przykładami obliczeniowymi i typowymi zakresami spotykanymi w budownictwie mieszkaniowym, a nie projektem dla Twojej podłogi. Ostateczną grubość, klasę, układ szczelin, zbrojenie, pielęgnację i termin uruchomienia określa dokumentacja projektowa oraz instrukcja producenta wybranego jastrychu.</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>Co naprawdę oznacza „wylewka betonowa”</h4><p>Dlaczego w domu najczęściej chodzi o cementowy jastrych CT, a nie o zwykły beton konstrukcyjny z betoniarni.</p></div></div>
          <div class="rk-screed-learn-card"><div class="rk-screed-no">02</div><div><h4>Jak ustala się grubość nad rurą</h4><p>Jak średnica przewodu, wytrzymałość, obciążenie i podatne podłoże tworzą jeden warunek projektowy.</p></div></div>
          <div class="rk-screed-learn-card"><div class="rk-screed-no">03</div><div><h4>Kiedy zbrojenie ma sens</h4><p>Dlaczego siatka, włókna i szczeliny pełnią różne funkcje i nie można ich wymieniać jednym zdaniem.</p></div></div>
          <div class="rk-screed-learn-card"><div class="rk-screed-no">04</div><div><h4>Jak bezpiecznie uruchomić podłogówkę</h4><p>Jak rozdzielić wiązanie, wysychanie, wygrzewanie funkcjonalne i pomiar wilgotności CM.</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">Kalkulator</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">Wylewka betonowa na ogrzewanie podłogowe – najkrótsza poprawna odpowiedź</h2><p>Najpierw trzy zasady, które chronią przed większością błędów.</p></div>
        </div>

        <div class="rk-screed-answer">
          <p><strong>Wylewka na podłogówkę musi jednocześnie otoczyć rury, rozprowadzić ciepło, przenieść obciążenia na izolację i pracować bez niekontrolowanych pęknięć.</strong> Nie dobiera się jej wyłącznie według metrażu. Najpierw ustala się system podłogi i parametry wyrobu, potem grubość całkowitą oraz warstwę nad rurą, a na końcu układ pól, zbrojenie i procedurę wykonania.</p>
        </div>

        <div class="rk-screed-card-grid three">
          <div class="rk-screed-card"><div class="rk-screed-card-icon">1</div><h4>Nie ma jednej wartości minimalnej</h4><p>Popularne 4,5 cm nad rurą nie jest uniwersalną odpowiedzią dla wszystkich mieszanek, klas, obciążeń i podłoży.</p></div>
          <div class="rk-screed-card"><div class="rk-screed-card-icon">2</div><h4>Nie każda wylewka wymaga siatki</h4><p>Zbrojenie ogranicza skutki zarysowania, ale jego rodzaj i położenie muszą wynikać z konstrukcji pola oraz zaleceń systemu.</p></div>
          <div class="rk-screed-card"><div class="rk-screed-card-icon">3</div><h4>Wygrzewanie nie zastępuje suszenia</h4><p>Protokół funkcjonalny sprawdza pracę jastrychu grzejnego. Gotowość pod okładzinę potwierdza pomiar wilgotności i wymagania kleju lub posadzki.</p></div>
        </div>

        <div class="rk-screed-verdict">
          <div><h3>Co powinno znaleźć się w dokumentacji?</h3><p>Typ jastrychu i jego klasa, grubość całkowita oraz nad rurą, dopuszczalne obciążenia, podział na pola, sposób przejścia przewodów przez szczeliny, zbrojenie, warunki pielęgnacji, protokół pierwszego nagrzewania i kryterium wilgotności przed okładziną.</p></div>
          <div class="rk-screed-verdict-mark">Grubość to wynik systemu, nie zwyczaj ekipy</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">Jaka grubość wylewki betonowej na ogrzewanie podłogowe?</h2><p>Trzeba odróżnić grubość całkowitą od otuliny nad rurą.</p></div>
        </div>

        <div class="rk-screed-formula">
          <p><strong>Podstawowa zależność geometryczna:</strong></p>
          <code>grubość całkowita jastrychu h = średnica zewnętrzna rury d + warstwa nad rurą c</code>
          <p>Dla przewodu 16 mm i warstwy 45 mm nad jego górną krawędzią całkowita wysokość jastrychu wynosi 61 mm. To wyłącznie działanie arytmetyczne, a nie potwierdzenie, że 45 mm jest właściwe dla wybranego produktu.</p>
        </div>

        <div class="rk-screed-table-wrap">
          <table class="rk-screed-table">
            <thead><tr><th>Średnica rury</th><th>Przyjęta warstwa nad rurą</th><th>Wynikowa grubość całkowita</th><th>Jak czytać wynik?</th></tr></thead>
            <tbody>
              <tr><td data-label="Średnica"><strong>16 mm</strong></td><td data-label="Nad rurą">30 mm</td><td data-label="Całkowita">46 mm</td><td data-label="Interpretacja">Przykład systemu cienkowarstwowego; wymaga produktu i dokumentacji dopuszczających taki układ.</td></tr>
              <tr><td data-label="Średnica"><strong>16 mm</strong></td><td data-label="Nad rurą">35 mm</td><td data-label="Całkowita">51 mm</td><td data-label="Interpretacja">Nie jest automatycznym minimum. Trzeba sprawdzić klasę, obciążenie i podłoże.</td></tr>
              <tr><td data-label="Średnica"><strong>16 mm</strong></td><td data-label="Nad rurą">45 mm</td><td data-label="Całkowita">61 mm</td><td data-label="Interpretacja">Często spotykany przykład geometryczny dla jastrychu pływającego, nadal zależny od systemu.</td></tr>
              <tr><td data-label="Średnica"><strong>20 mm</strong></td><td data-label="Nad rurą">45 mm</td><td data-label="Całkowita">65 mm</td><td data-label="Interpretacja">Większa rura przy tej samej otulinie zwiększa grubość, masę i bezwładność.</td></tr>
            </tbody>
          </table>
        </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. Zbyt duża grubość zwiększa ilość materiału i pojemność cieplną; zbyt mała może pogorszyć rozkład obciążeń i odporność na rysy.</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">Kalkulator ilości, masy i bezwładności wylewki na podłogówkę</h2><p>Narzędzie pokazuje skutki przyjętej geometrii, ale nie zatwierdza grubości konstrukcyjnej.</p></div>
        </div>

        <div class="rk-screed-lab" data-rk-screed-lab="">
          <div class="rk-screed-lab-head">
            <h3>Laboratorium jastrychu grzejnego</h3>
            <p>Zmień parametry i zobacz orientacyjną objętość zamówienia, masę, długość rury, opór cieplny oraz energię magazynowaną przez warstwę.</p>
            <div class="rk-screed-presets" aria-label="Ustawienia przykładowe">
              <button class="rk-screed-preset is-active" type="button" data-screed-preset="standard">Dom 100 m²</button>
              <button class="rk-screed-preset" type="button" data-screed-preset="small">Mieszkanie 60 m²</button>
              <button class="rk-screed-preset" type="button" data-screed-preset="heavy">Duża masa 150 m²</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-area">Powierzchnia <output id="rk-screed-area-out">100 m²</output></label><input id="rk-screed-area" type="range" min="10" max="300" step="1" value="100"></div>
                <div class="rk-screed-control"><label for="rk-screed-diameter">Średnica rury <output id="rk-screed-diameter-out">16 mm</output></label><input id="rk-screed-diameter" type="range" min="12" max="20" step="1" value="16"></div>
                <div class="rk-screed-control"><label for="rk-screed-cover">Warstwa nad rurą <output id="rk-screed-cover-out">45 mm</output></label><input id="rk-screed-cover" type="range" min="25" max="70" step="1" value="45"></div>
                <div class="rk-screed-control"><label for="rk-screed-spacing">Rozstaw rur <output id="rk-screed-spacing-out">15 cm</output></label><input id="rk-screed-spacing" type="range" min="5" max="30" step="1" value="15"></div>
                <div class="rk-screed-control"><label for="rk-screed-density">Gęstość <output id="rk-screed-density-out">2100 kg/m³</output></label><input id="rk-screed-density" type="range" min="1700" 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.70" max="2.20" step="0.05" value="1.40"></div>
                <div class="rk-screed-control"><label for="rk-screed-delta">Zmiana temperatury <output id="rk-screed-delta-out">5 K</output></label><input id="rk-screed-delta" type="range" min="1" max="15" step="1" value="5"></div>
                <div class="rk-screed-control"><label for="rk-screed-reserve">Rezerwa zamówienia <output id="rk-screed-reserve-out">5%</output></label><input id="rk-screed-reserve" type="range" min="0" max="15" step="1" value="5"></div>
              </div>
              <div class="rk-screed-status is-warning" id="rk-screed-lab-warning">Wpisana warstwa nad rurą jest parametrem do analizy, a nie zaleceniem wykonawczym.</div>
            </div>

            <div class="rk-screed-visual">
              <div class="rk-screed-results">
                <div class="rk-screed-result is-accent"><span>Grubość całkowita</span><strong id="rk-screed-total-result">61 mm</strong></div>
                <div class="rk-screed-result"><span>Objętość z rezerwą</span><strong id="rk-screed-volume-result">6,4 m³</strong></div>
                <div class="rk-screed-result"><span>Masa jastrychu</span><strong id="rk-screed-mass-result">12,7 t</strong></div>
                <div class="rk-screed-result"><span>Masa na 1 m²</span><strong id="rk-screed-load-result">127 kg/m²</strong></div>
                <div class="rk-screed-result"><span>Długość rury</span><strong id="rk-screed-pipe-result">700 m</strong></div>
                <div class="rk-screed-result"><span>Pojemność na 1 K</span><strong id="rk-screed-capacity-result">3,1 kWh/K</strong></div>
                <div class="rk-screed-result"><span>Energia dla ΔT</span><strong id="rk-screed-energy-result">15,5 kWh</strong></div>
                <div class="rk-screed-result"><span>Opór samej warstwy</span><strong id="rk-screed-resistance-result">0,044 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 okładzinę, jastrych, rurę, warstwę nad rurą i izolację.</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="20"></circle>
                    <line class="rk-screed-dimension" id="rk-screed-svg-cover-line" x1="277" y1="47" x2="277" y2="141"></line>
                    <text id="rk-screed-svg-cover-text" x="286" y="98">45 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">61 mm łącznie</text>
                    <text x="38" y="36">okładzina</text><text x="38" y="73">jastrych</text><text x="38" y="215">izolacja</text>
                  </svg>
                  <div class="rk-screed-legend"><span><i></i>jastrych</span><span class="pipe"><i></i>rura</span><span class="insulation"><i></i>izolacja</span></div>
                </div>

                <div class="rk-screed-energy-card">
                  <span class="rk-screed-energy-title">Energia magazynowana na 1 K przy różnych grubościach</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">Porównanie pojemności cieplnej jastrychu</title>
                    <desc id="rk-screed-chart-desc">Wykres słupkowy pokazuje energię magazynowaną przez jastrych o grubości 45, 55, 65 i 75 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">kWh/K</text>
                  </svg>
                </div>
              </div>
            </div>
          </div>
          <div class="rk-screed-disclaimer"><strong>Założenia i ograniczenia:</strong> długość rury jest szacowana jako powierzchnia podzielona przez rozstaw z 5% dodatkiem na nawroty; objętość rury odejmowana jest od objętości brutto jastrychu. Kalkulator nie uwzględnia stref bez rur, wnęk, szczelin, nierówności, grubości okładziny ani strat technologicznych innych niż ustawiona rezerwa. Nie dobiera klasy wytrzymałości, zbrojenia, nośności ani terminu wyschnięcia.</div>
        </div>

        <div class="rk-screed-formula">
          <p><strong>Wzory użyte w kalkulatorze:</strong></p>
          <code>V = A × h &nbsp; • &nbsp; m = ρ × V &nbsp; • &nbsp; C = m × cₚ / 3600 &nbsp; • &nbsp; E = C × ΔT &nbsp; • &nbsp; R = h / λ</code>
          <p>Parametry ρ, cₚ i λ należy brać z deklaracji wybranego wyrobu. Wartość λ nie wynika automatycznie z samego słowa „cementowy” albo „anhydrytowy”.</p>
        </div>
      </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. Wybór ma obejmować całą podłogę, a nie tylko łatwość rozlewania.</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 24 sierpnia 2026 r. Podstawę stanowią: PN-EN 1264-4 dotycząca instalowania wodnych systemów ogrzewania powierzchniowego, PN-EN 13813 dotycząca materiałów na podkłady podłogowe oraz oficjalna karta normy
          <a href="https://www.iso.org/standard/74685.html" target="_blank" rel="noopener noreferrer">ISO 11855-5:2021 – Installation</a>
          wraz z
          <a href="https://www.iso.org/standard/83785.html" target="_blank" rel="noopener noreferrer">ISO 11855-5:2021/Amd 1:2023</a>.
          Normy nie zastępują deklaracji, instrukcji i projektu konkretnego systemu.
        </div>
      </section>

      <section class="rk-screed-cta" aria-label="Zamówienie projektu ogrzewania podłogowego">
        <h3>Chcesz ustalić parametry podłogi przed wylaniem jastrychu?</h3>
        <p>Projekt określa obciążenie cieplne pomieszczeń, rozstaw i przebieg rur, długości pętli, temperaturę zasilania, przepływy, opory oraz miejsca kolizji z planowanymi szczelinami. Dzięki temu wykonawca wylewki pracuje na znanym układzie, a nie na instalacji rozłożonej „na oko”.</p>
        <a class="rk-screed-cta-link" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt instalacji ogrzewania podłogowego</a>
        <small>To jedyne CTA sprzedażowe w artykule. Projekt-Ogrzewania.pl jest serwisem należącym do autora publikacji.</small>
      </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">CEO • specjalista systemów HVAC i ogrzewania podłogowego</span>
          </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 noreferrer">Remont.biz.pl</a>
                <a href="https://sobir.pl/" target="_blank" rel="noopener noreferrer">Sobir.pl</a>
              </div>
            </div>
          </div>
        </div>
      </aside>
    </div>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/#webpage",
      "url": "https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/",
      "name": "Wylewka betonowa na ogrzewanie podłogowe – grubość, zbrojenie, dylatacje i wygrzewanie",
      "description": "Techniczny przewodnik po grubości jastrychu nad rurą, klasach CT i CA, zbrojeniu, dylatacjach, próbie szczelności, wygrzewaniu i wilgotności.",
      "inLanguage": "pl-PL",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
      "about": [
        { "@type": "Thing", "name": "Wylewka betonowa na ogrzewanie podłogowe" },
        { "@type": "Thing", "name": "Jastrych cementowy CT" },
        { "@type": "Thing", "name": "Jastrych na bazie siarczanu wapnia CA" },
        { "@type": "Thing", "name": "Wygrzewanie jastrychu grzejnego" }
      ],
      "mainEntity": { "@id": "https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/#article" },
      "dateModified": "2026-08-24T20:30:00+02:00"
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/#article",
      "url": "https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/",
      "headline": "Wylewka betonowa na ogrzewanie podłogowe – grubość, zbrojenie, dylatacje i wygrzewanie",
      "alternativeHeadline": "Jaka wylewka na podłogówkę? Techniczny przewodnik po jastrychu CT i CA",
      "description": "Wylewka betonowa na ogrzewanie podłogowe: grubość nad rurą, klasy jastrychu, zbrojenie, szczeliny, próba ciśnieniowa, pielęgnacja, wygrzewanie i pomiar CM.",
      "inLanguage": "pl-PL",
      "dateModified": "2026-08-24T20:30: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/wylewka-betonowa-na-ogrzewanie-podlogowe/#webpage" },
      "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/#webpage" },
      "wordCount": 4342,
      "proficiencyLevel": "Expert",
      "genre": ["poradnik techniczny", "ogrzewanie podłogowe", "budownictwo"],
      "keywords": [
        "wylewka betonowa na ogrzewanie podłogowe",
        "grubość wylewki na podłogówkę",
        "ile wylewki nad rurą ogrzewania podłogowego",
        "jastrych cementowy CT",
        "jastrych anhydrytowy CA",
        "zbrojenie wylewki na ogrzewaniu podłogowym",
        "dylatacje w ogrzewaniu podłogowym",
        "wygrzewanie wylewki",
        "wilgotność CM jastrychu",
        "kalkulator wylewki"
      ],
      "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/wylewka-betonowa-na-ogrzewanie-podlogowe/#calculator" },
        { "@id": "https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/#howto" },
        { "@id": "https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/#faq" }
      ],
      "audience": { "@type": "Audience", "audienceType": "Inwestorzy, projektanci i wykonawcy ogrzewania podłogowego" }
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/#calculator",
      "name": "Kalkulator ilości i bezwładności wylewki na ogrzewanie podłogowe",
      "description": "Narzędzie szacuje grubość całkowitą, objętość, masę, długość rury, pojemność cieplną i opór warstwy jastrychu na podstawie parametrów użytkownika.",
      "url": "https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/#rk-screed-kalkulator",
      "applicationCategory": "UtilitiesApplication",
      "applicationSubCategory": "Kalkulator budowlany",
      "operatingSystem": "Any",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "creator": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "featureList": [
        "Obliczenie grubości całkowitej z warstwy nad rurą i średnicy przewodu",
        "Szacunek objętości i masy jastrychu",
        "Szacunek długości rury z rozstawu",
        "Obliczenie pojemności cieplnej i energii dla zadanej zmiany temperatury",
        "Obliczenie oporu cieplnego samej warstwy",
        "Dynamiczny przekrój i wykres pojemności cieplnej"
      ]
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/#howto",
      "name": "Jak wykonać wylewkę na ogrzewanie podłogowe",
      "description": "Kolejność od ustalenia konstrukcji podłogi i projektu instalacji do nagrzewania funkcjonalnego, pomiaru wilgotności i odbioru podłoża.",
      "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 rodzaj i klasę jastrychu, grubość, izolację, okładzinę, obciążenia i poziomy.", "url": "https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/#rk-screed-step-1" },
        { "@type": "HowToStep", "position": 2, "name": "Zaprojektuj ogrzewanie", "text": "Oblicz obciążenie cieplne, rozstaw, temperaturę zasilania, pętle i przepływy.", "url": "https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/#rk-screed-step-2" },
        { "@type": "HowToStep", "position": 3, "name": "Przygotuj podłoże i izolację", "text": "Wyrównaj podłoże, ułóż stabilną izolację i ciągłą taśmę brzegową.", "url": "https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/#rk-screed-step-3" },
        { "@type": "HowToStep", "position": 4, "name": "Ułóż i zamocuj rury", "text": "Zachowaj projektowany rozstaw, przebieg i miejsca planowanych szczelin.", "url": "https://projekt-ogrzewania.pl/wylewka-betonowa-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 dokumentacją systemu.", "url": "https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/#rk-screed-step-5" },
        { "@type": "HowToStep", "position": 6, "name": "Zbuduj podział na pola", "text": "Wykonaj profile, szczeliny i tuleje ochronne zgodnie z planem.", "url": "https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/#rk-screed-step-6" },
        { "@type": "HowToStep", "position": 7, "name": "Wbuduj mieszankę", "text": "Kontroluj recepturę, konsystencję, zagęszczenie i poziomy bez dolewania wody na oko.", "url": "https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/#rk-screed-step-7" },
        { "@type": "HowToStep", "position": 8, "name": "Pielęgnuj i chroń", "text": "Zapewnij warunki właściwe dla produktu i nie obciążaj podłoża przed terminem.", "url": "https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/#rk-screed-step-8" },
        { "@type": "HowToStep", "position": 9, "name": "Przeprowadź nagrzewanie funkcjonalne", "text": "Uruchom wszystkie obwody i zrealizuj zapisany protokół temperatur.", "url": "https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/#rk-screed-step-9" },
        { "@type": "HowToStep", "position": 10, "name": "Zmierz wilgotność i odbierz podłoże", "text": "Sprawdź wilgotność, równość, rysy i przygotuj protokoły dla wykonawcy posadzki.", "url": "https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/#rk-screed-step-10" }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/wylewka-betonowa-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." } },
        { "@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. 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ść lambda deklarowaną dla konkretnego wyrobu." } },
        { "@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." } },
        { "@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 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 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." } },
        { "@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 powinny wynikać z instrukcji i protokołu." } },
        { "@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." } },
        { "@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." } }
      ]
    },
    {
      "@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://projekt-ogrzewania.pl/",
        "https://remont.biz.pl/",
        "https://sobir.pl/",
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy"
      ],
      "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" }
      ]
    },
    {
      "@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.webp" },
      "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" },
      "creator": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "copyrightHolder": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" }
    },
    {
      "@type": "WebSite",
      "@id": "https://remont.biz.pl/#website",
      "url": "https://remont.biz.pl/",
      "name": "Remont.biz.pl",
      "inLanguage": "pl-PL",
      "creator": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "copyrightHolder": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" }
    },
    {
      "@type": "WebSite",
      "@id": "https://sobir.pl/#website",
      "url": "https://sobir.pl/",
      "name": "Sobir.pl",
      "inLanguage": "pl-PL",
      "creator": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "copyrightHolder": { "@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, text) {
      var element = one(selector);
      if (element) {
        element.textContent = text;
      }
    }

    function svgElement(name, attributes, text) {
      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 text === "string") {
        element.textContent = text;
      }
      return element;
    }

    var fields = {
      area: one("#rk-screed-area"),
      diameter: one("#rk-screed-diameter"),
      cover: one("#rk-screed-cover"),
      spacing: one("#rk-screed-spacing"),
      density: one("#rk-screed-density"),
      cp: one("#rk-screed-cp"),
      lambda: one("#rk-screed-lambda"),
      delta: one("#rk-screed-delta"),
      reserve: one("#rk-screed-reserve")
    };

    var presets = {
      standard: { area: 100, diameter: 16, cover: 45, spacing: 15, density: 2100, cp: 0.88, lambda: 1.40, delta: 5, reserve: 5 },
      small: { area: 60, diameter: 16, cover: 45, spacing: 15, density: 2050, cp: 0.88, lambda: 1.35, delta: 5, reserve: 5 },
      heavy: { area: 150, diameter: 16, cover: 60, spacing: 15, density: 2200, cp: 0.90, lambda: 1.55, delta: 5, reserve: 7 }
    };

    function updateCrossSection(total, diameter, 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 - 37) / 53 * 64;
      height = Math.min(Math.max(height, 92), 156);
      var top = bottom - height;
      var scale = height / total;
      var radius = diameter / 2 * scale;
      var pipeCenter = top + cover * scale + 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", (pipeCenter - radius - 5).toFixed(1));
      }
      if (totalLine) {
        totalLine.setAttribute("y1", (top + 4).toFixed(1));
        totalLine.setAttribute("y2", (bottom - 4).toFixed(1));
      }
      if (coverText) {
        coverText.setAttribute("y", (top + cover * 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 updateEnergyChart(area, 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 = [45, 55, 65, 75];
      var values = thicknesses.map(function (thickness) {
        return area * thickness / 1000 * density * cp / 3600;
      });
      var maxValue = Math.max.apply(null, values) * 1.15;
      thicknesses.forEach(function (thickness, index) {
        var value = values[index];
        var x = 72 + index * 82;
        var barHeight = value / 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(value, 1)));
        group.appendChild(svgElement("text", { x: x + 24, y: 225, "text-anchor": "middle" }, thickness + " mm"));
      });
      if (chart) {
        chart.setAttribute("aria-label", "Pojemność cieplna od " + format(values[0], 1) + " do " + format(values[3], 1) + " kilowatogodziny na kelwin dla powierzchni " + format(area, 0) + " metrów kwadratowych");
      }
    }

    function renderCalculator() {
      var area = valueOf(fields.area, 100);
      var diameter = valueOf(fields.diameter, 16);
      var cover = valueOf(fields.cover, 45);
      var spacing = valueOf(fields.spacing, 15);
      var density = valueOf(fields.density, 2100);
      var cp = valueOf(fields.cp, 0.88);
      var lambda = valueOf(fields.lambda, 1.4);
      var delta = valueOf(fields.delta, 5);
      var reserve = valueOf(fields.reserve, 5);
      var total = diameter + cover;
      var heightMetres = total / 1000;
      var grossVolume = area * heightMetres;
      var pipeLength = area / (spacing / 100) * 1.05;
      var pipeVolume = Math.PI * Math.pow(diameter / 1000, 2) / 4 * pipeLength;
      var netVolume = Math.max(grossVolume - pipeVolume, 0);
      var orderVolume = netVolume * (1 + reserve / 100);
      var mass = netVolume * density;
      var massPerArea = mass / area;
      var capacity = mass * cp / 3600;
      var energy = capacity * delta;
      var resistance = heightMetres / lambda;

      setText("#rk-screed-area-out", format(area, 0) + " m²");
      setText("#rk-screed-diameter-out", format(diameter, 0) + " mm");
      setText("#rk-screed-cover-out", format(cover, 0) + " mm");
      setText("#rk-screed-spacing-out", format(spacing, 0) + " cm");
      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-delta-out", format(delta, 0) + " K");
      setText("#rk-screed-reserve-out", format(reserve, 0) + "%");
      setText("#rk-screed-total-result", format(total, 0) + " mm");
      setText("#rk-screed-volume-result", format(orderVolume, 2) + " m³");
      setText("#rk-screed-mass-result", mass >= 1000 ? format(mass / 1000, 1) + " t" : format(mass, 0) + " kg");
      setText("#rk-screed-load-result", format(massPerArea, 0) + " kg/m²");
      setText("#rk-screed-pipe-result", format(pipeLength, 0) + " m");
      setText("#rk-screed-capacity-result", format(capacity, 1) + " kWh/K");
      setText("#rk-screed-energy-result", format(energy, 1) + " kWh");
      setText("#rk-screed-resistance-result", format(resistance, 3) + " m²K/W");

      var warning = one("#rk-screed-lab-warning");
      if (warning) {
        if (cover < 30) {
          warning.textContent = "Bardzo mała warstwa nad rurą: stosuj ją wyłącznie w systemie, który wprost dopuszcza taką konstrukcję.";
          warning.classList.add("is-warning");
        } else if (total > 80) {
          warning.textContent = "Duża grubość zwiększa masę i bezwładność. Sprawdź nośność oraz wpływ na regulację i wysokości budynku.";
          warning.classList.add("is-warning");
        } else if (massPerArea > 170) {
          warning.textContent = "Obciążenie stałe jest wysokie. Zweryfikuj nośność konstrukcji i ugięcie warstw pod jastrychem.";
          warning.classList.add("is-warning");
        } else {
          warning.textContent = "Wpisana warstwa nad rurą jest parametrem do analizy, a nie zaleceniem wykonawczym.";
          warning.classList.remove("is-warning");
        }
      }

      updateCrossSection(total, diameter, cover);
      updateEnergyChart(area, density, cp);
    }

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

    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);
        });
        renderCalculator();
      });
    });

    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);
    renderCalculator();
    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/wylewka-betonowa-na-ogrzewanie-podlogowe/">Wylewka betonowa na ogrzewanie podłogowe.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ile trwa montaż ogrzewania podłogowego? Kalkulator harmonogramu.</title>
		<link>https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 17 May 2025 12:45:04 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Instalacja ogrzewania podłogowego]]></category>
		<category><![CDATA[Montaż ogrzewania podłogowego]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Podłogówka]]></category>
		<category><![CDATA[Remont]]></category>
		<category><![CDATA[Remont domu]]></category>
		<category><![CDATA[Systemy grzewcze]]></category>
		<category><![CDATA[Systemy niskotemperaturowe]]></category>
		<category><![CDATA[Systemy ogrzewania]]></category>
		<category><![CDATA[czas montażu podłogówki]]></category>
		<category><![CDATA[ile trwa montaż ogrzewania podłogowego]]></category>
		<category><![CDATA[jak długo schnie jastrych]]></category>
		<category><![CDATA[montaż podłogówki]]></category>
		<category><![CDATA[ogrzewanie wodne]]></category>
		<category><![CDATA[podłogówka bez wylewki]]></category>
		<category><![CDATA[próba szczelności]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[system mokry]]></category>
		<category><![CDATA[system suchy]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2611</guid>

					<description><![CDATA[<p>Ile trwa montaż ogrzewania podłogowego? To pytanie zadaje sobie każdy, kto planuje modernizację lub budowę domu z komfortowym systemem grzewczym. Czas realizacji zależy od wielu czynników – powierzchni, systemu (mokrego lub suchego), etapu budowy i jakości projektu. W tym artykule przedstawiamy realistyczne scenariusze, praktyczne przykłady i sposoby na skrócenie czasu prac bez utraty jakości.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/">Ile trwa montaż ogrzewania podłogowego? Kalkulator harmonogramu.</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: Ile trwa montaż ogrzewania podłogowego? Kalkulator harmonogramu
  Fraza główna: ile trwa montaż ogrzewania podłogowego
  SEO title: Ile trwa montaż podłogówki? Harmonogram prac
  Meta description: Sprawdź, ile trwa montaż ogrzewania podłogowego. Oblicz czas układania rur, próby, jastrychu i przygotowania podłogi w systemie mokrym lub suchym.
  Slug: pozostaw bez zmian.

  GRAFIKA WYRÓŻNIAJĄCA:
  ALT: Ile trwa montaż ogrzewania podłogowego – harmonogram prac
  Tytuł: Ile trwa montaż ogrzewania podłogowego?
  Opis: Harmonogram montażu podłogówki od przygotowania podłoża przez układanie rur i próbę do jastrychu, wygrzewania oraz gotowej posadzki.

  WAŻNE:
  - blok nie zawiera dodatkowego H1,
  - dokładnie dwa CTA prowadzą do usługi projektowej,
  - linki wewnętrzne otwierają się w tej samej karcie,
  - linki zewnętrzne występują wyłącznie w źródłach i sekcji autora,
  - wartości startowe kalkulatora są jawnym przykładem scenariusza, a nie gwarantowanym terminem wykonania,
  - skrypt nie używa operatora podwójnego ampersandu, który bywa modyfikowany przez WordPress.
-->

<style>
  #rk-time-guide {
    --rk-navy: #0b2536;
    --rk-navy-2: #12394d;
    --rk-navy-3: #1b465b;
    --rk-cyan: #29c4d7;
    --rk-cyan-dark: #078faa;
    --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-time-guide,
  #rk-time-guide * {
    box-sizing: border-box;
    min-width: 0;
  }

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

  #rk-time-guide a:hover,
  #rk-time-guide a:focus-visible {
    color: var(--rk-orange-dark);
  }

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

  #rk-time-guide button:focus-visible,
  #rk-time-guide a:focus-visible,
  #rk-time-guide summary:focus-visible,
  #rk-time-guide input:focus-visible,
  #rk-time-guide select:focus-visible {
    outline: 3px solid rgba(41, 196, 215, 0.48);
    outline-offset: 3px;
  }

  #rk-time-guide img {
    display: block;
    height: auto;
    max-width: 100%;
  }

  #rk-time-guide p {
    color: var(--rk-copy);
    margin: 0 0 18px;
  }

  #rk-time-guide strong {
    color: var(--rk-ink);
  }

  #rk-time-guide .rk-time-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-time-guide .rk-time-hero {
    background:
      radial-gradient(circle at 90% 115%, rgba(41, 196, 215, 0.24) 0, rgba(41, 196, 215, 0.24) 18%, transparent 18.2%),
      linear-gradient(120deg, #0b2536 0%, #143e52 61%, #0d6576 100%);
    color: var(--rk-white);
    overflow: hidden;
    padding: 62px 58px 56px;
    position: relative;
  }

  #rk-time-guide .rk-time-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-time-guide .rk-time-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-time-guide .rk-time-hero-title,
  #rk-time-guide .rk-time-section-title,
  #rk-time-guide .rk-time-cta-title,
  #rk-time-guide .rk-time-author-title {
    font-family: Arial, Helvetica, sans-serif;
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.06;
  }

  #rk-time-guide .rk-time-hero-title {
    color: #ffffff !important;
    font-size: clamp(2.35rem, 6vw, 5rem);
    margin: 0;
    max-width: 1190px;
  }

  #rk-time-guide .rk-time-hero-title span {
    color: #69e7f2;
  }

  #rk-time-guide .rk-time-hero-lead {
    color: #e3f0f4 !important;
    font-size: clamp(1.08rem, 2vw, 1.43rem);
    line-height: 1.55;
    margin: 27px 0 0;
    max-width: 1100px;
  }

  #rk-time-guide .rk-time-hero-tags,
  #rk-time-guide .rk-time-meta,
  #rk-time-guide .rk-time-nav {
    display: flex;
    flex-wrap: wrap;
  }

  #rk-time-guide .rk-time-hero-tags {
    gap: 10px;
    margin-top: 30px;
  }

  #rk-time-guide .rk-time-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-time-guide .rk-time-meta {
    color: #c5d9df;
    font-size: 0.83rem;
    font-weight: 700;
    gap: 12px 24px;
    margin-top: 34px;
  }

  #rk-time-guide .rk-time-meta strong {
    color: #ffffff;
  }

  #rk-time-guide .rk-time-nav {
    align-items: center;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-line);
    gap: 9px;
    padding: 22px 34px;
    position: static;
  }

  #rk-time-guide .rk-time-nav-label {
    color: var(--rk-ink);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    margin-right: 4px;
    text-transform: uppercase;
  }

  #rk-time-guide .rk-time-nav 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-time-guide .rk-time-nav a:hover,
  #rk-time-guide .rk-time-nav a:focus-visible {
    background: var(--rk-cyan-soft);
    border-color: #91dce5;
    color: #075f78;
  }

  #rk-time-guide .rk-time-section {
    padding: 64px 58px;
  }

  #rk-time-guide .rk-time-section + .rk-time-section {
    border-top: 1px solid var(--rk-line);
  }

  #rk-time-guide .rk-time-section-soft {
    background: var(--rk-bg);
  }

  #rk-time-guide .rk-time-section-dark {
    background: var(--rk-navy);
    color: #ffffff;
  }

  #rk-time-guide .rk-time-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-time-guide .rk-time-section-dark .rk-time-eyebrow {
    color: #68e6ef;
  }

  #rk-time-guide .rk-time-section-title,
  #rk-time-guide .rk-time-author-title {
    color: var(--rk-ink);
    font-size: clamp(2rem, 4vw, 3.65rem);
    margin: 0;
    max-width: 1080px;
  }

  #rk-time-guide .rk-time-section-dark .rk-time-section-title {
    color: #ffffff;
  }

  #rk-time-guide .rk-time-lead {
    color: var(--rk-copy);
    font-size: clamp(1.03rem, 1.7vw, 1.24rem);
    line-height: 1.7;
    margin: 22px 0 0;
    max-width: 1130px;
  }

  #rk-time-guide .rk-time-copy {
    color: var(--rk-copy);
    margin: 22px 0 0;
  }

  #rk-time-guide .rk-time-section-dark .rk-time-lead,
  #rk-time-guide .rk-time-section-dark .rk-time-copy {
    color: #c8dbe2;
  }

  #rk-time-guide .rk-time-section-dark > strong,
  #rk-time-guide .rk-time-section-dark .rk-time-lead strong,
  #rk-time-guide .rk-time-section-dark .rk-time-copy strong {
    color: #ffffff;
  }

  #rk-time-guide .rk-time-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-time-guide .rk-time-answer strong {
    color: var(--rk-ink);
    display: block;
    font-size: 1.24rem;
    line-height: 1.4;
  }

  #rk-time-guide .rk-time-answer p {
    margin: 10px 0 0;
  }

  #rk-time-guide .rk-time-grid-2,
  #rk-time-guide .rk-time-grid-3,
  #rk-time-guide .rk-time-grid-4,
  #rk-time-guide .rk-time-author-facts,
  #rk-time-guide .rk-time-source-grid {
    display: grid;
    gap: 18px;
    margin-top: 30px;
  }

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

  #rk-time-guide .rk-time-card {
    background: #ffffff;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    padding: 24px;
  }

  #rk-time-guide .rk-time-section-soft .rk-time-card {
    background: rgba(255, 255, 255, 0.88);
  }

  #rk-time-guide .rk-time-card-no,
  #rk-time-guide .rk-time-card-label {
    align-items: center;
    background: var(--rk-cyan-soft);
    border-radius: 10px;
    color: #076c85;
    display: inline-flex;
    font-size: 0.78rem;
    font-weight: 900;
    height: 36px;
    justify-content: center;
    margin-bottom: 14px;
    min-width: 36px;
    padding: 0 10px;
  }

  #rk-time-guide .rk-time-card h3 {
    color: var(--rk-ink);
    font-size: 1.12rem;
    line-height: 1.3;
    margin: 0 0 9px;
  }

  #rk-time-guide .rk-time-card p {
    margin: 0;
  }

  #rk-time-guide .rk-time-note {
    background: #fff6e2;
    border-left: 6px solid var(--rk-yellow);
    border-radius: 14px;
    color: #5b4a1d;
    margin-top: 26px;
    padding: 18px 21px;
  }

  #rk-time-guide .rk-time-note p {
    color: inherit;
    margin: 0;
  }

  #rk-time-guide .rk-time-note-good {
    background: #e9faf5;
    border-left-color: var(--rk-green);
    color: #145e4d;
  }

  #rk-time-guide .rk-time-note-bad {
    background: #fff0ec;
    border-left-color: var(--rk-orange);
    color: #743425;
  }

  #rk-time-guide .rk-time-bullets {
    color: var(--rk-copy);
    margin: 20px 0 0;
    padding-left: 22px;
  }

  #rk-time-guide .rk-time-bullets li + li {
    margin-top: 9px;
  }

  #rk-time-guide .rk-time-table-wrap {
    margin-top: 30px;
    overflow-x: auto;
  }

  #rk-time-guide table {
    border-collapse: separate;
    border-spacing: 0;
    min-width: 760px;
    width: 100%;
  }

  #rk-time-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-time-guide th:first-child { border-radius: 14px 0 0; }
  #rk-time-guide th:last-child { border-radius: 0 14px 0 0; }

  #rk-time-guide td {
    background: #ffffff;
    border-bottom: 1px solid var(--rk-line);
    color: var(--rk-copy);
    padding: 16px;
    vertical-align: top;
  }

  #rk-time-guide tbody tr td:first-child { border-left: 1px solid var(--rk-line); }
  #rk-time-guide tbody tr td:last-child { border-right: 1px solid var(--rk-line); }
  #rk-time-guide tbody tr:last-child td:first-child { border-radius: 0 0 0 14px; }
  #rk-time-guide tbody tr:last-child td:last-child { border-radius: 0 0 14px; }
  #rk-time-guide td strong { color: var(--rk-ink); }

  #rk-time-guide .rk-time-baskets {
    background: var(--rk-navy);
    border-radius: 22px;
    color: #ffffff;
    margin-top: 32px;
    padding: 28px;
  }

  #rk-time-guide .rk-time-basket-intro {
    color: #bdd5de;
    margin: 0 0 20px;
  }

  #rk-time-guide .rk-time-basket-tabs {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-time-guide .rk-time-basket-tab {
    background: #173e51;
    border: 1px solid #356178;
    border-radius: 13px;
    color: #ffffff;
    cursor: pointer;
    font-weight: 900;
    line-height: 1.25;
    min-height: 68px;
    padding: 12px 14px;
    text-align: left;
  }

  #rk-time-guide .rk-time-basket-tab small {
    color: #bcd2db;
    display: block;
    font-size: 0.72rem;
    font-weight: 700;
    margin-top: 4px;
  }

  #rk-time-guide .rk-time-basket-tab[aria-selected="true"] {
    background: var(--rk-cyan);
    border-color: var(--rk-cyan);
    color: #072838;
  }

  #rk-time-guide .rk-time-basket-tab[aria-selected="true"] small {
    color: #17475a;
  }

  #rk-time-guide .rk-time-basket-panel {
    background: #17394b;
    border: 1px solid #356178;
    border-radius: 18px;
    margin-top: 18px;
    padding: 25px;
  }

  #rk-time-guide .rk-time-basket-panel-label {
    color: #71e6ef;
    display: block;
    font-size: 0.73rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  #rk-time-guide .rk-time-basket-panel h3 {
    color: #ffffff;
    font-size: 1.55rem;
    line-height: 1.25;
    margin: 7px 0 8px;
  }

  #rk-time-guide .rk-time-basket-panel > p {
    color: #c8dce3;
    margin: 0;
  }

  #rk-time-guide .rk-time-basket-facts {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 20px;
  }

  #rk-time-guide .rk-time-basket-fact {
    background: rgba(255, 255, 255, 0.055);
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 13px;
    padding: 16px;
  }

  #rk-time-guide .rk-time-basket-fact strong {
    color: #71e6ef;
    display: block;
    font-size: 0.71rem;
    letter-spacing: 0.07em;
    margin-bottom: 6px;
    text-transform: uppercase;
  }

  #rk-time-guide .rk-time-basket-fact span {
    color: #ffffff;
  }

  #rk-time-guide .rk-time-analyzer {
    background: #102f42;
    border: 1px solid #315a70;
    border-radius: 22px;
    margin-top: 32px;
    padding: 28px;
  }

  #rk-time-guide .rk-time-analyzer-head {
    border-bottom: 1px solid #315a70;
    margin-bottom: 25px;
    padding-bottom: 20px;
  }

  #rk-time-guide .rk-time-analyzer-head h3 {
    color: #ffffff;
    font-size: clamp(1.55rem, 3vw, 2.3rem);
    line-height: 1.2;
    margin: 0;
  }

  #rk-time-guide .rk-time-analyzer-head p {
    color: #bad3dc;
    margin: 9px 0 0;
  }

  #rk-time-guide .rk-time-stage,
  #rk-time-guide .rk-time-offer-panel {
    background: #17394b;
    border: 1px solid #376177;
    border-radius: 17px;
    margin-top: 18px;
    padding: 22px;
  }

  #rk-time-guide .rk-time-stage-head {
    align-items: flex-start;
    display: flex;
    gap: 13px;
    margin-bottom: 18px;
  }

  #rk-time-guide .rk-time-stage-no {
    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-time-guide .rk-time-stage-head h4,
  #rk-time-guide .rk-time-offer-title {
    color: #ffffff;
    font-size: 1.15rem;
    line-height: 1.3;
    margin: 0;
  }

  #rk-time-guide .rk-time-stage-head p {
    color: #aecad5;
    font-size: 0.88rem;
    margin: 4px 0 0;
  }

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

  #rk-time-guide .rk-time-field {
    display: block;
  }

  #rk-time-guide .rk-time-field span {
    color: #eaf6f8;
    display: block;
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1.35;
    margin-bottom: 7px;
  }

  #rk-time-guide .rk-time-field small {
    color: #9ebbc7;
    display: block;
    font-size: 0.7rem;
    line-height: 1.4;
    margin-top: 6px;
  }

  #rk-time-guide .rk-time-field input,
  #rk-time-guide .rk-time-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-time-guide .rk-time-scope-grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-time-guide .rk-time-scope-item {
    background: #214b60;
    border: 1px solid #416d81;
    border-radius: 13px;
    padding: 15px;
  }

  #rk-time-guide .rk-time-scope-check {
    align-items: flex-start;
    color: #ffffff;
    cursor: pointer;
    display: flex;
    font-size: 0.83rem;
    font-weight: 900;
    gap: 9px;
    line-height: 1.35;
  }

  #rk-time-guide .rk-time-scope-check input {
    accent-color: var(--rk-cyan);
    flex: 0 0 auto;
    height: 18px;
    margin: 1px 0 0;
    width: 18px;
  }

  #rk-time-guide .rk-time-scope-cost-label {
    color: #b9d0d9;
    display: block;
    font-size: 0.68rem;
    font-weight: 700;
    margin-top: 11px;
  }

  #rk-time-guide .rk-time-scope-cost {
    background: #ffffff;
    border: 1px solid #b8ccd5;
    border-radius: 9px;
    color: var(--rk-ink);
    margin-top: 5px;
    min-height: 42px;
    padding: 8px 10px;
    width: 100%;
  }

  #rk-time-guide .rk-time-offer-head {
    align-items: center;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    margin-bottom: 17px;
  }

  #rk-time-guide .rk-time-offer-badge {
    align-items: center;
    background: var(--rk-orange);
    border-radius: 10px;
    color: #ffffff;
    display: inline-flex;
    flex: 0 0 42px;
    font-weight: 900;
    height: 42px;
    justify-content: center;
  }

  #rk-time-guide .rk-time-offer-statuses {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 17px;
  }

  #rk-time-guide .rk-time-status-field {
    background: rgba(255, 255, 255, 0.055);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 11px;
    display: block;
    padding: 11px;
  }

  #rk-time-guide .rk-time-status-field span {
    color: #eaf6f8;
    display: block;
    font-size: 0.72rem;
    font-weight: 800;
    line-height: 1.35;
    margin-bottom: 7px;
  }

  #rk-time-guide .rk-time-status-field select {
    background: #ffffff;
    border: 1px solid #b8ccd5;
    border-radius: 8px;
    color: var(--rk-ink);
    min-height: 42px;
    padding: 8px;
    width: 100%;
  }

  #rk-time-guide .rk-time-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    margin-top: 20px;
  }

  #rk-time-guide .rk-time-run,
  #rk-time-guide .rk-time-reset {
    border-radius: 11px;
    cursor: pointer;
    font-weight: 900;
    min-height: 48px;
    padding: 11px 18px;
  }

  #rk-time-guide .rk-time-run {
    background: var(--rk-orange);
    border: 1px solid var(--rk-orange);
    color: #ffffff;
  }

  #rk-time-guide .rk-time-run:hover { background: var(--rk-orange-dark); }

  #rk-time-guide .rk-time-reset {
    background: transparent;
    border: 1px solid #5d7c8d;
    color: #ffffff;
  }

  #rk-time-guide .rk-time-result {
    background: #ffffff;
    border-left: 7px solid var(--rk-yellow);
    border-radius: 17px;
    margin-top: 22px;
    padding: 24px;
  }

  #rk-time-guide .rk-time-result.is-good { border-left-color: var(--rk-green); }
  #rk-time-guide .rk-time-result.is-stop { border-left-color: var(--rk-orange); }

  #rk-time-guide .rk-time-result-status {
    color: var(--rk-ink) !important;
    font-size: clamp(1.3rem, 2.6vw, 1.95rem);
    font-weight: 900;
    line-height: 1.25;
    margin: 0 !important;
  }

  #rk-time-guide .rk-time-result-intro {
    color: var(--rk-copy) !important;
    margin: 8px 0 0 !important;
  }

  #rk-time-guide .rk-time-result-offers {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 19px;
  }

  #rk-time-guide .rk-time-result-offer {
    background: #f4f8fa;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    padding: 17px;
  }

  #rk-time-guide .rk-time-result-offer h4 {
    color: var(--rk-ink);
    font-size: 1rem;
    margin: 0 0 12px;
  }

  #rk-time-guide .rk-time-result-metric {
    border-top: 1px solid #dce7eb;
    display: flex;
    gap: 10px;
    justify-content: space-between;
    padding: 8px 0;
  }

  #rk-time-guide .rk-time-result-metric span {
    color: var(--rk-muted);
    font-size: 0.77rem;
  }

  #rk-time-guide .rk-time-result-metric strong {
    color: var(--rk-ink) !important;
    font-size: 0.87rem;
    text-align: right;
  }

  #rk-time-guide .rk-time-chart {
    background: #f4f8fa;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    margin-top: 18px;
    padding: 18px;
  }

  #rk-time-guide .rk-time-chart h4 {
    color: var(--rk-ink);
    font-size: 0.95rem;
    margin: 0 0 6px;
  }

  #rk-time-guide .rk-time-chart > p {
    font-size: 0.78rem;
    margin: 0 0 16px;
  }

  #rk-time-guide .rk-time-chart-row + .rk-time-chart-row {
    margin-top: 15px;
  }

  #rk-time-guide .rk-time-chart-label {
    color: var(--rk-ink);
    display: flex;
    font-size: 0.78rem;
    font-weight: 900;
    gap: 10px;
    justify-content: space-between;
    margin-bottom: 6px;
  }

  #rk-time-guide .rk-time-chart-track {
    background: #dfe9ed;
    border-radius: 999px;
    display: flex;
    height: 22px;
    overflow: hidden;
  }

  #rk-time-guide .rk-time-chart-raw {
    background: var(--rk-cyan-dark);
    height: 100%;
  }

  #rk-time-guide .rk-time-chart-add {
    background: var(--rk-orange);
    height: 100%;
  }

  #rk-time-guide .rk-time-chart-legend {
    color: var(--rk-copy);
    display: flex;
    flex-wrap: wrap;
    font-size: 0.73rem;
    gap: 14px;
    margin-top: 14px;
  }

  #rk-time-guide .rk-time-chart-legend span::before {
    border-radius: 3px;
    content: "";
    display: inline-block;
    height: 9px;
    margin-right: 6px;
    width: 18px;
  }

  #rk-time-guide .rk-time-chart-legend .is-raw::before { background: var(--rk-cyan-dark); }
  #rk-time-guide .rk-time-chart-legend .is-add::before { background: var(--rk-orange); }

  #rk-time-guide .rk-time-question-box {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 18px;
  }

  #rk-time-guide .rk-time-question-list {
    background: #f7fafb;
    border: 1px solid var(--rk-line);
    border-radius: 13px;
    padding: 16px;
  }

  #rk-time-guide .rk-time-question-list h4 {
    color: var(--rk-ink);
    font-size: 0.84rem;
    letter-spacing: 0.04em;
    margin: 0 0 10px;
    text-transform: uppercase;
  }

  #rk-time-guide .rk-time-question-list ul {
    color: var(--rk-copy);
    font-size: 0.84rem;
    margin: 0;
    padding-left: 18px;
  }

  #rk-time-guide .rk-time-question-list li + li { margin-top: 7px; }

  #rk-time-guide .rk-time-disclaimer {
    color: #6c8190 !important;
    font-size: 0.78rem;
    margin: 15px 0 0 !important;
  }

  #rk-time-guide .rk-time-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-time-guide .rk-time-cta-title {
    color: #ffffff;
    font-size: clamp(1.7rem, 3.3vw, 2.8rem);
    margin: 0;
    max-width: 1000px;
  }

  #rk-time-guide .rk-time-cta p {
    color: #cee0e6;
    margin: 14px 0 0;
    max-width: 1000px;
  }

  #rk-time-guide .rk-time-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-time-guide .rk-time-cta-button:hover,
  #rk-time-guide .rk-time-cta-button:focus-visible {
    background: #ffffff;
    color: var(--rk-orange-dark);
  }

  #rk-time-guide .rk-time-link-disclosure {
    color: #a9c4ce;
    display: block;
    font-size: 0.75rem;
    margin-top: 12px;
  }

  #rk-time-guide .rk-time-final {
    background: linear-gradient(180deg, #f4fafb 0%, #ffffff 100%);
  }

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

  #rk-time-guide .rk-time-source-card {
    background: #f2f7f9;
    border: 1px solid #cfe0e7;
    border-radius: 15px;
    padding: 20px;
  }

  #rk-time-guide .rk-time-source-card a {
    color: var(--rk-cyan-dark);
    font-size: 1rem;
    font-weight: 900;
  }

  #rk-time-guide .rk-time-source-card p {
    margin: 8px 0 0;
  }

  #rk-time-guide .rk-time-responsibility {
    background: #fff0eb;
    border-left: 6px solid var(--rk-orange);
    border-radius: 14px;
    color: #613427;
    margin-top: 26px;
    padding: 19px 22px;
  }

  #rk-time-guide .rk-time-responsibility p {
    color: inherit;
    margin: 0;
  }

  #rk-time-guide .rk-time-faq {
    display: grid;
    gap: 12px;
    margin-top: 30px;
  }

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

  #rk-time-guide .rk-time-faq summary {
    color: var(--rk-ink);
    cursor: pointer;
    font-weight: 900;
    list-style: none;
    padding: 19px 52px 19px 20px;
    position: relative;
  }

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

  #rk-time-guide .rk-time-faq summary::after {
    color: var(--rk-cyan-dark);
    content: "+";
    font-size: 1.55rem;
    font-weight: 700;
    position: absolute;
    right: 20px;
    top: 12px;
  }

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

  #rk-time-guide .rk-time-faq-answer {
    border-top: 1px solid var(--rk-line);
    color: var(--rk-copy);
    padding: 18px 20px;
  }

  #rk-time-guide .rk-time-faq-answer p { margin: 0; }

  #rk-time-guide .rk-time-author {
    background: #eef6f8;
    border-top: 1px solid var(--rk-line);
    padding: 64px 58px;
  }

  #rk-time-guide .rk-time-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-time-guide .rk-time-author-side {
    align-items: center;
    background: var(--rk-navy);
    color: #ffffff;
    display: flex;
    flex-direction: column;
    padding: 35px 25px;
    text-align: center;
  }

  #rk-time-guide .rk-time-author-photo {
    background: #ffffff;
    border: 6px solid rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    overflow: hidden;
    width: 158px;
  }

  #rk-time-guide .rk-time-author-name {
    color: #ffffff;
    font-size: 1.25rem;
    font-weight: 900;
    margin-top: 20px;
  }

  #rk-time-guide .rk-time-author-role {
    color: #bcd2db;
    font-size: 0.82rem;
    margin: 8px 0 0;
  }

  #rk-time-guide .rk-time-author-social {
    display: flex;
    gap: 10px;
    margin-top: 21px;
  }

  #rk-time-guide .rk-time-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-time-guide .rk-time-author-social a:hover {
    background: var(--rk-cyan);
    color: var(--rk-navy);
  }

  #rk-time-guide .rk-time-author-main {
    padding: 37px;
  }

  #rk-time-guide .rk-time-author-title {
    font-size: clamp(1.85rem, 3.5vw, 3rem);
  }

  #rk-time-guide .rk-time-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-time-guide .rk-time-author-main > p {
    margin: 18px 0 0;
  }

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

  #rk-time-guide .rk-time-author-fact {
    background: #eef7f9;
    border: 1px solid #d2e4e9;
    border-radius: 13px;
    color: var(--rk-copy);
    font-size: 0.84rem;
    padding: 15px;
  }

  #rk-time-guide .rk-time-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-time-guide .rk-time-visually-hidden {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
  }

  #rk-time-guide .rk-time-check-grid {
    display: grid;
    gap: 11px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-time-guide .rk-time-check {
    align-items: flex-start;
    background: #214b60;
    border: 1px solid #416d81;
    border-radius: 12px;
    color: #ffffff;
    cursor: pointer;
    display: flex;
    font-size: 0.8rem;
    font-weight: 800;
    gap: 10px;
    line-height: 1.42;
    padding: 13px;
  }

  #rk-time-guide .rk-time-check input {
    accent-color: var(--rk-cyan);
    flex: 0 0 auto;
    height: 18px;
    margin: 2px 0 0;
    width: 18px;
  }

  #rk-time-guide .rk-time-kpi-grid {
    display: grid;
    gap: 13px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 20px;
  }

  #rk-time-guide .rk-time-kpi {
    background: #f2f7f9;
    border: 1px solid #d0e0e7;
    border-radius: 13px;
    padding: 16px;
  }

  #rk-time-guide .rk-time-kpi span {
    color: #6d8290 !important;
    display: block;
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.045em;
    line-height: 1.35;
    text-transform: uppercase;
  }

  #rk-time-guide .rk-time-kpi strong {
    color: var(--rk-ink) !important;
    display: block;
    font-size: 1.18rem;
    line-height: 1.25;
    margin-top: 7px;
  }

  #rk-time-guide .rk-time-confidence {
    border-radius: 999px;
    display: inline-flex;
    font-size: 0.72rem;
    font-weight: 900;
    margin-top: 12px;
    padding: 7px 11px;
    text-transform: uppercase;
  }

  #rk-time-guide .rk-time-confidence.is-high { background: #dff7ef; color: #12624f; }
  #rk-time-guide .rk-time-confidence.is-medium { background: #fff2ce; color: #73500c; }
  #rk-time-guide .rk-time-confidence.is-low { background: #ffe7df; color: #913b29; }

  #rk-time-guide .rk-time-timeline {
    background: #f4f8fa;
    border: 1px solid var(--rk-line);
    border-radius: 15px;
    margin-top: 19px;
    padding: 20px;
  }

  #rk-time-guide .rk-time-timeline h4 {
    color: var(--rk-ink);
    font-size: 1rem;
    margin: 0;
  }

  #rk-time-guide .rk-time-timeline-intro {
    color: var(--rk-copy) !important;
    font-size: 0.8rem;
    margin: 7px 0 17px !important;
  }

  #rk-time-guide .rk-time-timeline-row {
    display: grid;
    gap: 13px;
    grid-template-columns: 210px minmax(0, 1fr);
  }

  #rk-time-guide .rk-time-timeline-row + .rk-time-timeline-row { margin-top: 12px; }

  #rk-time-guide .rk-time-timeline-label strong {
    color: var(--rk-ink) !important;
    display: block;
    font-size: 0.82rem;
    line-height: 1.35;
  }

  #rk-time-guide .rk-time-timeline-label span {
    color: var(--rk-muted) !important;
    display: block;
    font-size: 0.7rem;
    margin-top: 3px;
  }

  #rk-time-guide .rk-time-timeline-track {
    background: #dfe9ed;
    border-radius: 999px;
    height: 28px;
    overflow: hidden;
    position: relative;
  }

  #rk-time-guide .rk-time-timeline-bar {
    align-items: center;
    background: var(--rk-cyan-dark);
    border-radius: 999px;
    color: #ffffff;
    display: flex;
    font-size: 0.68rem;
    font-weight: 900;
    height: 100%;
    justify-content: center;
    min-width: 34px;
    overflow: hidden;
    padding: 0 8px;
    position: absolute;
    white-space: nowrap;
  }

  #rk-time-guide .rk-time-timeline-bar.is-wait { background: var(--rk-yellow); color: #3c310b; }
  #rk-time-guide .rk-time-timeline-bar.is-check { background: var(--rk-green-dark); }
  #rk-time-guide .rk-time-timeline-bar.is-building { background: var(--rk-purple); }

  #rk-time-guide .rk-time-risk-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 18px;
  }

  #rk-time-guide .rk-time-risk-card {
    background: #f7fafb;
    border: 1px solid var(--rk-line);
    border-radius: 13px;
    padding: 16px;
  }

  #rk-time-guide .rk-time-risk-card h4 {
    color: var(--rk-ink);
    font-size: 0.84rem;
    letter-spacing: 0.04em;
    margin: 0 0 10px;
    text-transform: uppercase;
  }

  #rk-time-guide .rk-time-risk-card ul {
    color: var(--rk-copy);
    font-size: 0.84rem;
    margin: 0;
    padding-left: 18px;
  }

  #rk-time-guide .rk-time-risk-card li + li { margin-top: 7px; }

  #rk-time-guide .rk-time-scope-message {
    background: #e9f8fa;
    border-left: 5px solid var(--rk-cyan);
    border-radius: 12px;
    color: #185268;
    margin-top: 15px;
    padding: 14px 16px;
  }

  #rk-time-guide .rk-time-scope-message p { margin: 0; }

  #rk-time-guide .rk-time-step-list {
    display: grid;
    gap: 14px;
    margin-top: 28px;
  }

  #rk-time-guide .rk-time-step {
    align-items: flex-start;
    background: #ffffff;
    border: 1px solid var(--rk-line);
    border-radius: 15px;
    display: flex;
    gap: 15px;
    padding: 20px;
  }

  #rk-time-guide .rk-time-step-no {
    align-items: center;
    background: var(--rk-cyan-soft);
    border-radius: 10px;
    color: #076c85;
    display: inline-flex;
    flex: 0 0 40px;
    font-size: 0.86rem;
    font-weight: 900;
    height: 40px;
    justify-content: center;
  }

  #rk-time-guide .rk-time-step h3 {
    color: var(--rk-ink);
    font-size: 1.03rem;
    margin: 0 0 6px;
  }

  #rk-time-guide .rk-time-step p { color: var(--rk-copy); margin: 0; }

  #rk-time-guide [hidden] { display: none !important; }

  @media (max-width: 1050px) {
    #rk-time-guide .rk-time-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #rk-time-guide .rk-time-fields,
    #rk-time-guide .rk-time-scope-grid,
    #rk-time-guide .rk-time-offer-statuses { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #rk-time-guide .rk-time-result-offers { grid-template-columns: minmax(0, 1fr); }
    #rk-time-guide .rk-time-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #rk-time-guide .rk-time-check-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }

  @media (max-width: 820px) {
    #rk-time-guide .rk-time-hero,
    #rk-time-guide .rk-time-section,
    #rk-time-guide .rk-time-author {
      padding-left: 28px;
      padding-right: 28px;
    }
    #rk-time-guide .rk-time-hero::before { left: 28px; }
    #rk-time-guide .rk-time-nav { padding-left: 22px; padding-right: 22px; }
    #rk-time-guide .rk-time-grid-3,
    #rk-time-guide .rk-time-basket-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #rk-time-guide .rk-time-basket-facts { grid-template-columns: minmax(0, 1fr); }
    #rk-time-guide .rk-time-author-layout { grid-template-columns: minmax(0, 1fr); }
    #rk-time-guide .rk-time-timeline-row { grid-template-columns: 165px minmax(0, 1fr); }
  }

  @media (max-width: 660px) {
    #rk-time-guide .rk-time-hero { padding-bottom: 42px; padding-top: 52px; }
    #rk-time-guide .rk-time-section,
    #rk-time-guide .rk-time-author { padding-bottom: 46px; padding-top: 46px; }
    #rk-time-guide .rk-time-grid-2,
    #rk-time-guide .rk-time-grid-3,
    #rk-time-guide .rk-time-grid-4,
    #rk-time-guide .rk-time-fields,
    #rk-time-guide .rk-time-scope-grid,
    #rk-time-guide .rk-time-offer-statuses,
    #rk-time-guide .rk-time-question-box,
    #rk-time-guide .rk-time-source-grid,
    #rk-time-guide .rk-time-author-facts,
    #rk-time-guide .rk-time-basket-tabs {
      grid-template-columns: minmax(0, 1fr);
    }
    #rk-time-guide .rk-time-kpi-grid,
    #rk-time-guide .rk-time-check-grid,
    #rk-time-guide .rk-time-risk-grid { grid-template-columns: minmax(0, 1fr); }
    #rk-time-guide .rk-time-baskets,
    #rk-time-guide .rk-time-analyzer,
    #rk-time-guide .rk-time-cta { border-radius: 17px; padding: 20px; }
    #rk-time-guide .rk-time-basket-panel,
    #rk-time-guide .rk-time-stage,
    #rk-time-guide .rk-time-offer-panel,
    #rk-time-guide .rk-time-result { padding: 18px; }
    #rk-time-guide .rk-time-actions { display: grid; grid-template-columns: minmax(0, 1fr); }
    #rk-time-guide .rk-time-run,
    #rk-time-guide .rk-time-reset,
    #rk-time-guide .rk-time-cta-button { text-align: center; width: 100%; }
    #rk-time-guide .rk-time-table-wrap { overflow: visible; }
    #rk-time-guide table,
    #rk-time-guide thead,
    #rk-time-guide tbody,
    #rk-time-guide tr,
    #rk-time-guide th,
    #rk-time-guide td {
      display: block;
      min-width: 0;
      width: 100%;
    }
    #rk-time-guide thead {
      clip: rect(0 0 0 0);
      clip-path: inset(50%);
      height: 1px;
      overflow: hidden;
      position: absolute;
      white-space: nowrap;
      width: 1px;
    }
    #rk-time-guide tbody { display: grid; gap: 14px; }
    #rk-time-guide tbody tr {
      background: #ffffff;
      border: 1px solid var(--rk-line);
      border-radius: 14px;
      overflow: hidden;
    }
    #rk-time-guide td,
    #rk-time-guide tbody tr td:first-child,
    #rk-time-guide tbody tr td:last-child {
      border: 0;
      border-bottom: 1px solid #e1ebef;
      border-radius: 0;
      padding: 13px 15px;
    }
    #rk-time-guide td:last-child { border-bottom: 0; }
    #rk-time-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-time-guide .rk-time-author-main { padding: 25px 20px; }
    #rk-time-guide .rk-time-timeline-row { grid-template-columns: minmax(0, 1fr); }
    #rk-time-guide .rk-time-timeline-track { height: 32px; }
    #rk-time-guide .rk-time-timeline-bar {
      left: 0 !important;
      justify-content: flex-start;
      min-width: 0;
      padding-left: 11px;
      width: 100% !important;
    }
  }

  @media (max-width: 430px) {
    #rk-time-guide .rk-time-hero,
    #rk-time-guide .rk-time-section,
    #rk-time-guide .rk-time-author { padding-left: 18px; padding-right: 18px; }
    #rk-time-guide .rk-time-hero::before { left: 18px; }
    #rk-time-guide .rk-time-nav { padding-left: 14px; padding-right: 14px; }
    #rk-time-guide .rk-time-nav a { flex: 1 1 calc(50% - 9px); text-align: center; }
    #rk-time-guide .rk-time-nav-label { flex: 1 0 100%; }
    #rk-time-guide .rk-time-hero-title { font-size: 2.2rem; }
    #rk-time-guide .rk-time-section-title { font-size: 1.9rem; }
  }

  @media (prefers-reduced-motion: reduce) {
    #rk-time-guide *,
    #rk-time-guide *::before,
    #rk-time-guide *::after {
      scroll-behavior: auto;
      transition-duration: 0.01ms;
    }
  }
</style>

<article id="rk-time-guide" aria-labelledby="rk-time-visual-title">
  <div class="rk-time-shell">
    <header class="rk-time-hero">
      <span class="rk-time-kicker">Montaż · próba · jastrych · gotowa podłoga</span>
      <div class="rk-time-hero-title" id="rk-time-visual-title">Ile trwa montaż ogrzewania podłogowego? <span>Policz cały harmonogram</span></div>
      <p class="rk-time-hero-lead">Dwa dni układania rur nie oznaczają dwóch dni do gotowej posadzki. Ten poradnik oddziela aktywną pracę instalatorów od próby, robót budowlanych, czasu technologicznego jastrychu, wygrzewania oraz kontroli przed ułożeniem okładziny.</p>
      <div class="rk-time-hero-tags" aria-label="Zakres poradnika">
        <span>kalkulator harmonogramu</span>
        <span>system mokry i suchy</span>
        <span>czas pracy i oczekiwania</span>
        <span>nowy dom i remont</span>
        <span>ryzyko opóźnień</span>
      </div>
      <div class="rk-time-meta">
        <span>Autor: <strong>Robert Kucharski</strong></span>
        <span>Czas czytania: <strong>około 25 minut</strong></span>
        <span>Aktualizacja techniczna: <strong>16 września 2026 r.</strong></span>
      </div>
    </header>

    <nav class="rk-time-nav" aria-label="Na skróty — wszystkie sekcje artykułu">
      <span class="rk-time-nav-label">Na skróty</span>
      <a href="#rk-time-answer">Szybka odpowiedź</a>
      <a href="#rk-time-four-times">Cztery czasy</a>
      <a href="#rk-time-inputs">Dane do harmonogramu</a>
      <a href="#rk-time-calculator-section">Kalkulator</a>
      <a href="#rk-time-reading">Interpretacja</a>
      <a href="#rk-time-readiness">Przed wejściem ekipy</a>
      <a href="#rk-time-installation">Montaż rur</a>
      <a href="#rk-time-test">Próba</a>
      <a href="#rk-time-screed">Jastrych i wygrzewanie</a>
      <a href="#rk-time-systems">Mokry czy suchy</a>
      <a href="#rk-time-renovation">Nowy dom i remont</a>
      <a href="#rk-time-delays">Opóźnienia</a>
      <a href="#rk-time-scenarios">Przykładowe harmonogramy</a>
      <a href="#rk-time-contract">Umowa i odbiór</a>
      <a href="#rk-time-errors">Błędy</a>
      <a href="#rk-time-final">Podsumowanie</a>
      <a href="#rk-time-sources">Źródła</a>
      <a href="#rk-time-faq">FAQ</a>
      <a href="#rk-time-author">Autor</a>
    </nav>

    <section class="rk-time-section" id="rk-time-answer">
      <span class="rk-time-eyebrow">Odpowiedź w 60 sekund</span>
      <h2 class="rk-time-section-title">Ile dni trwa montaż podłogówki?</h2>
      <p class="rk-time-lead"><strong>W typowym domu samo przygotowanie i ułożenie pętli może zająć ekipie kilka dni, ale pełnego terminu nie da się wyznaczyć wyłącznie z powierzchni.</strong> Liczą się kondygnacje, liczba obwodów i rozdzielaczy, przygotowanie podłoża, logistyka materiału, technologia podłogi oraz procedura odbiorowa.</p>
      <div class="rk-time-answer">
        <strong>Czas pracy ekipy i czas do gotowej posadzki to dwa różne wyniki.</strong>
        <p>W systemie mokrym po zamontowaniu oraz sprawdzeniu instalacji dochodzą jastrych, czas wymagany przed rozpoczęciem programu grzewczego, samo wygrzewanie i kontrola gotowości podłoża. W systemie suchym odpada mokry jastrych, lecz nadal obowiązuje kolejność warstw i instrukcja kompletnego systemu.</p>
      </div>
      <div class="rk-time-grid-3">
        <article class="rk-time-card"><span class="rk-time-card-no">1</span><h3>Policz zakres</h3><p>Same pętle, instalacja z próbą i pełna podłoga nie są tym samym zleceniem.</p></article>
        <article class="rk-time-card"><span class="rk-time-card-no">2</span><h3>Oddziel pracę od oczekiwania</h3><p>Dzień technologiczny nie jest dniem roboczym instalatora, ale nadal wydłuża kalendarz inwestycji.</p></article>
        <article class="rk-time-card"><span class="rk-time-card-no">3</span><h3>Sprawdź warunki startu</h3><p>Brak projektu, materiału lub przygotowanego podłoża potrafi zatrzymać ekipę przed pierwszą pętlą.</p></article>
      </div>
    </section>

    <section class="rk-time-section rk-time-section-soft" id="rk-time-four-times">
      <span class="rk-time-eyebrow">Jedno pytanie, cztery różne odpowiedzi</span>
      <h2 class="rk-time-section-title">Jakiego czasu naprawdę szukasz?</h2>
      <p class="rk-time-lead">Najczęstsze nieporozumienie powstaje wtedy, gdy wykonawca mówi o czasie układania rur, a inwestor rozumie termin gotowej podłogi. W harmonogramie rozdzielimy cztery kamienie milowe.</p>
      <div class="rk-time-grid-4">
        <article class="rk-time-card"><span class="rk-time-card-label">MONTAŻ</span><h3>Aktywna praca ekipy</h3><p>Przygotowanie, rozdzielacze, pętle, dobiegi, podłączenie, opisanie oraz czynności odbiorowe.</p></article>
        <article class="rk-time-card"><span class="rk-time-card-label">ZAKRYCIE</span><h3>Gotowość do kolejnego etapu</h3><p>Instalacja jest wykonana, sprawdzona i udokumentowana zgodnie z przyjętą procedurą.</p></article>
        <article class="rk-time-card"><span class="rk-time-card-label">TECHNOLOGIA</span><h3>Czas warstw podłogi</h3><p>Wykonanie, dojrzewanie i wygrzewanie jastrychu albo zamknięcie systemu suchego.</p></article>
        <article class="rk-time-card"><span class="rk-time-card-label">POSADZKA</span><h3>Gotowość pod okładzinę</h3><p>Ocena podłoża, w tym wymagany pomiar i warunki przewidziane dla wybranego wykończenia.</p></article>
      </div>
      <div class="rk-time-note"><p><strong>Ważne:</strong> rozpoczęcie wygrzewania nie jest automatycznie potwierdzeniem, że podłoże jest gotowe pod płytki, drewno lub panele. Te momenty trzeba opisać oddzielnie.</p></div>
    </section>

    <section class="rk-time-section" id="rk-time-inputs">
      <span class="rk-time-eyebrow">Dane ważniejsze niż sam metraż</span>
      <h2 class="rk-time-section-title">Od czego zależy czas montażu ogrzewania podłogowego?</h2>
      <p class="rk-time-lead">Powierzchnia jest tylko pierwszym parametrem. Dom 100 m² z jedną otwartą kondygnacją może mieć inny harmonogram niż 100 m² podzielone na dwa piętra, wiele małych pomieszczeń i dwa rozdzielacze.</p>
      <div class="rk-time-grid-4">
        <article class="rk-time-card"><span class="rk-time-card-label">GEOMETRIA</span><h3>Pomieszczenia i kondygnacje</h3><p>Narożniki, przejścia, wyłączone pola, schody i długie dobiegi zwiększają liczbę decyzji oraz operacji.</p></article>
        <article class="rk-time-card"><span class="rk-time-card-label">PROJEKT</span><h3>Pętle i rozdzielacze</h3><p>Rysunki, długości i opisy obwodów pozwalają przygotować materiał i prowadzić prace bez projektowania na budowie.</p></article>
        <article class="rk-time-card"><span class="rk-time-card-label">PODŁOŻE</span><h3>Gotowość warstw</h3><p>Nierówności, brak izolacji, kolizje instalacyjne albo niedokończone dylatacje zatrzymują właściwy montaż.</p></article>
        <article class="rk-time-card"><span class="rk-time-card-label">LOGISTYKA</span><h3>Ekipa i dostawy</h3><p>Wydajność trzeba odnosić do całej ekipy, jej zakresu, dostępności materiału i warunków na budowie.</p></article>
      </div>
      <p class="rk-time-copy">Przed ustaleniem terminu warto sprawdzić, <a href="https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/">kiedy planować montaż podłogówki w nowym domu</a>, jakie <a href="https://projekt-ogrzewania.pl/jakie-materialy-sa-potrzebne-do-instalacji-ogrzewania-podlogowego/">materiały są potrzebne do instalacji</a> oraz jak <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">zaplanować rozmieszczenie pętli</a>.</p>
    </section>

    <section class="rk-time-section rk-time-section-dark" id="rk-time-calculator-section">
      <span class="rk-time-eyebrow">Narzędzie główne</span>
      <h2 class="rk-time-section-title">Kalkulator harmonogramu montażu podłogówki</h2>
      <p class="rk-time-lead">Wynik jest przedziałem opartym na wpisanej wydajności ekipy i jawnych założeniach użytkownika. Kalkulator nie narzuca uniwersalnego czasu jastrychu ani procedury próby.</p>

      <div class="rk-time-analyzer" id="rk-time-calculator">
        <div class="rk-time-analyzer-head">
          <h3>Od wejścia ekipy do wybranego kamienia milowego</h3>
          <p>Przykład startowy dotyczy domu 120 m². Zamień wartości na dane projektu, ustalenia z wykonawcą i dokumentację warstw podłogi.</p>
        </div>

        <div class="rk-time-stage">
          <div class="rk-time-stage-head"><span class="rk-time-stage-no">1</span><div><h4>Zakres i geometria</h4><p>Najpierw określ, na którym etapie ma zakończyć się obliczany harmonogram.</p></div></div>
          <div class="rk-time-fields">
            <label class="rk-time-field"><span>Zakres harmonogramu</span><select id="rk-time-scope"><option value="pipes">Pętle, rozdzielacze i próba</option><option value="insulation">Izolacja + instalacja + próba</option><option value="wet" selected="">System mokry do wykonania jastrychu</option><option value="fullwet">System mokry do orientacyjnej gotowości pod okładzinę</option><option value="dry">Kompletny system suchy przed okładziną</option></select></label>
            <label class="rk-time-field"><span>Powierzchnia ogrzewana [m²]</span><input id="rk-time-area" type="number" min="10" max="3000" step="1" value="120" inputmode="decimal"></label>
            <label class="rk-time-field"><span>Liczba kondygnacji</span><select id="rk-time-floors"><option value="1" selected="">1 kondygnacja</option><option value="2">2 kondygnacje</option><option value="3">3 kondygnacje</option><option value="4">4 kondygnacje</option></select></label>
            <label class="rk-time-field"><span>Liczba pętli z projektu</span><input id="rk-time-loops" type="number" min="1" max="300" step="1" value="12" inputmode="numeric"><small>Jeżeli nie znasz liczby, wpisz orientacyjne założenie i potraktuj wynik jako mniej pewny.</small></label>
            <label class="rk-time-field"><span>Liczba rozdzielaczy</span><select id="rk-time-manifolds"><option value="1" selected="">1 rozdzielacz</option><option value="2">2 rozdzielacze</option><option value="3">3 rozdzielacze</option><option value="4">4 rozdzielacze</option></select></label>
            <label class="rk-time-field"><span>Złożoność rzutu</span><select id="rk-time-geometry"><option value="simple">Prosty, dużo otwartych przestrzeni</option><option value="normal" selected="">Typowy dom</option><option value="complex">Wiele małych pomieszczeń i kolizji</option></select></label>
          </div>
        </div>

        <div class="rk-time-stage">
          <div class="rk-time-stage-head"><span class="rk-time-stage-no">2</span><div><h4>Ekipa i przygotowanie podłoża</h4><p>Wydajność jest edytowalnym założeniem całej ekipy, a nie obietnicą kalkulatora.</p></div></div>
          <div class="rk-time-fields">
            <label class="rk-time-field"><span>Liczba instalatorów</span><select id="rk-time-crew"><option value="1">1 osoba</option><option value="2" selected="">2 osoby</option><option value="3">3 osoby</option><option value="4">4 osoby</option><option value="5">5 osób</option></select></label>
            <label class="rk-time-field"><span>Wydajność całej ekipy [m²/dzień]</span><input id="rk-time-productivity" type="number" min="10" max="200" step="1" value="50" inputmode="decimal"><small>Wpisz wartość uzgodnioną z wykonawcą dla danego budynku.</small></label>
            <label class="rk-time-field"><span>Stan podłoża w dniu wejścia</span><select id="rk-time-substrate"><option value="ready">Izolacja i taśmy są gotowe</option><option value="bare" selected="">Równe podłoże, izolacja do ułożenia</option><option value="repair">Potrzebne poprawki i izolacja</option></select></label>
            <label class="rk-time-field"><span>Procedura próby / obserwacji [dni]</span><input id="rk-time-test-days" type="number" min="0.25" max="14" step="0.25" value="1" inputmode="decimal"><small>Wpisz czas wynikający z przyjętej procedury, projektu i dokumentacji systemu.</small></label>
            <label class="rk-time-field"><span>Rezerwa wykonawcza</span><select id="rk-time-reserve"><option value="0">0%</option><option value="10" selected="">10%</option><option value="20">20%</option><option value="30">30%</option></select></label>
          </div>
        </div>

        <div class="rk-time-stage">
          <div class="rk-time-stage-head"><span class="rk-time-stage-no">3</span><div><h4>Gotowość organizacyjna</h4><p>Odznacz element, którego nie można potwierdzić w dniu rozpoczęcia prac.</p></div></div>
          <div class="rk-time-check-grid">
            <label class="rk-time-check"><input id="rk-time-project-ready" type="checkbox" checked=""><span>Projekt wykonawczy i podział pętli są gotowe</span></label>
            <label class="rk-time-check"><input id="rk-time-materials-ready" type="checkbox" checked=""><span>Komplet materiałów znajduje się na budowie</span></label>
            <label class="rk-time-check"><input id="rk-time-manifold-ready" type="checkbox" checked=""><span>Miejsca oraz wysokości rozdzielaczy są ustalone</span></label>
            <label class="rk-time-check"><input id="rk-time-site-clear" type="checkbox" checked=""><span>Podłogi są opróżnione i dostępne dla ekipy</span></label>
            <label class="rk-time-check"><input id="rk-time-temperature-ready" type="checkbox" checked=""><span>Warunki otoczenia spełniają wymagania materiałów</span></label>
            <label class="rk-time-check"><input id="rk-time-coordination-ready" type="checkbox" checked=""><span>Trasy innych instalacji oraz dylatacje są uzgodnione</span></label>
          </div>
        </div>

        <div class="rk-time-stage" id="rk-time-wet-fields">
          <div class="rk-time-stage-head"><span class="rk-time-stage-no">4</span><div><h4>Założenia technologiczne podłogi</h4><p>Pola służą do budowy scenariusza. Nie zastępują dokumentacji konkretnego jastrychu ani pomiaru gotowości podłoża.</p></div></div>
          <div class="rk-time-fields">
            <label class="rk-time-field"><span>Rodzaj scenariusza</span><select id="rk-time-screed-type"><option value="cement" selected="">Jastrych cementowy — przykład</option><option value="calcium">Jastrych na spoiwie siarczanowym — przykład</option><option value="custom">Własne dane z dokumentacji</option></select></label>
            <label class="rk-time-field"><span>Najwcześniejszy start programu grzewczego [dni]</span><input id="rk-time-heat-wait" type="number" min="0" max="180" step="1" value="21" inputmode="numeric"><small>Zweryfikuj w dokumentacji zastosowanego materiału.</small></label>
            <label class="rk-time-field"><span>Czas programu grzewczego [dni]</span><input id="rk-time-protocol-days" type="number" min="0" max="60" step="1" value="7" inputmode="numeric"></label>
            <label class="rk-time-field"><span>Założony czas do kontroli pod okładzinę [dni]</span><input id="rk-time-floor-ready" type="number" min="0" max="365" step="1" value="35" inputmode="numeric"><small>Termin kontrolny nie jest potwierdzeniem wymaganej wilgotności.</small></label>
          </div>
          <div class="rk-time-scope-message"><p><strong>Nie traktuj liczby dni jako odbioru jastrychu.</strong> Przed ułożeniem okładziny trzeba spełnić wymagania jej systemu oraz przeprowadzić właściwą kontrolę podłoża.</p></div>
        </div>

        <div class="rk-time-actions">
          <button class="rk-time-run" id="rk-time-run" type="button">Oblicz harmonogram</button>
          <button class="rk-time-reset" id="rk-time-reset" type="button">Przywróć przykład</button>
        </div>

        <div class="rk-time-result" id="rk-time-result" aria-live="polite">
          <p class="rk-time-result-status" id="rk-time-result-status">Przykładowy harmonogram jest gotowy</p>
          <p class="rk-time-result-intro" id="rk-time-result-intro">Wynik rozdziela aktywną pracę, procedurę odbiorową i czas technologiczny.</p>
          <span class="rk-time-confidence is-high" id="rk-time-confidence">Pewność scenariusza: wysoka</span>
          <div class="rk-time-kpi-grid">
            <div class="rk-time-kpi"><span>Aktywna praca</span><strong id="rk-time-active-result">—</strong></div>
            <div class="rk-time-kpi"><span>Do zakończenia próby</span><strong id="rk-time-test-result">—</strong></div>
            <div class="rk-time-kpi"><span>Do końca wybranego zakresu</span><strong id="rk-time-scope-result">—</strong></div>
            <div class="rk-time-kpi"><span>Rezerwa organizacyjna</span><strong id="rk-time-risk-result">—</strong></div>
          </div>
          <div class="rk-time-timeline">
            <h4>Interaktywna oś czasu</h4>
            <p class="rk-time-timeline-intro">Paski pokazują kolejność oraz udział etapów w scenariuszu. Na telefonie każdy etap przechodzi w osobny, pełnowymiarowy wiersz.</p>
            <div id="rk-time-timeline-rows"></div>
          </div>
          <div class="rk-time-risk-grid">
            <div class="rk-time-risk-card"><h4>Ryzyka i ograniczenia</h4><ul id="rk-time-warning-list"><li>Uruchom obliczenie, aby sprawdzić założenia.</li></ul></div>
            <div class="rk-time-risk-card"><h4>Co przygotować przed startem</h4><ul id="rk-time-action-list"><li>Projekt, materiały i warunki odbioru instalacji.</li></ul></div>
          </div>
          <p class="rk-time-disclaimer">Kalkulator tworzy harmonogram orientacyjny z danych użytkownika. Nie zastępuje projektu, instrukcji systemu, dokumentacji jastrychu, pomiaru podłoża, ustaleń z wykonawcami ani nadzoru nad pracami.</p>
        </div>
      </div>

      <aside class="rk-time-cta" aria-label="Projekt ogrzewania podłogowego">
        <div class="rk-time-cta-title">Masz orientacyjny harmonogram. Największa niewiadoma zostaje tam, gdzie pętle trzeba dopiero ustalać na budowie</div>
        <p>Projekt wykonany przed wejściem ekipy określa rozstawy, przebieg i długości obwodów, lokalizację rozdzielaczy, przepływy oraz zestawienie materiałów. Nie skróci czasu technologicznego jastrychu, ale ograniczy decyzje i poprawki, które można rozstrzygnąć wcześniej.</p>
        <a class="rk-time-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Sprawdź zakres indywidualnego projektu podłogówki</a>
        <small class="rk-time-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </aside>
    </section>

    <section class="rk-time-section" id="rk-time-reading">
      <span class="rk-time-eyebrow">Kalkulator nie wydaje terminu wykonawcy</span>
      <h2 class="rk-time-section-title">Jak interpretować wynik harmonogramu?</h2>
      <p class="rk-time-lead">Przedział pokazuje skalę i kolejność prac. Ostateczny termin trzeba uzgodnić z ekipami, ponieważ część robót wykonuje instalator, część wykonawca podłogi, a część polega na kontrolowanym oczekiwaniu.</p>
      <div class="rk-time-grid-4">
        <article class="rk-time-card"><span class="rk-time-card-no">1</span><h3>Aktywna praca</h3><p>Suma dni roboczych potrzebnych na wybrane czynności przy wpisanej wydajności.</p></article>
        <article class="rk-time-card"><span class="rk-time-card-no">2</span><h3>Termin próby</h3><p>Moment, w którym instalacja powinna być wykonana, opisana i poddana ustalonej procedurze kontroli.</p></article>
        <article class="rk-time-card"><span class="rk-time-card-no">3</span><h3>Wybrany zakres</h3><p>Może kończyć się na próbie, jastrychu, systemie suchym albo orientacyjnej kontroli pod okładzinę.</p></article>
        <article class="rk-time-card"><span class="rk-time-card-no">4</span><h3>Pewność wyniku</h3><p>Spada, gdy brakuje projektu, liczby pętli, materiału, przygotowanego podłoża lub koordynacji branż.</p></article>
      </div>
      <div class="rk-time-note rk-time-note-good"><p><strong>Wynik porównuj z harmonogramem wykonawców, a nie zamiast niego.</strong> Kalkulator pomaga zadać właściwe pytania i wskazuje miejsca, w których termin zależy od danych spoza samego montażu rur.</p></div>
    </section>

    <section class="rk-time-section rk-time-section-soft" id="rk-time-readiness">
      <span class="rk-time-eyebrow">Termin rozpoczyna się przed pierwszą rurą</span>
      <h2 class="rk-time-section-title">Co musi być gotowe przed wejściem instalatorów?</h2>
      <p class="rk-time-lead">Ekipa nie powinna rozpoczynać od szukania miejsca na rozdzielacz, dzielenia pomieszczeń na pętle i ustalania na gorąco przebiegu innych instalacji.</p>
      <div class="rk-time-step-list">
        <article class="rk-time-step"><span class="rk-time-step-no">01</span><div><h3>Dokumentacja</h3><p>Rzuty, rozstawy, pętle, długości, dobiegi, dylatacje, rozdzielacze i ustalenia dotyczące stałej zabudowy.</p></div></article>
        <article class="rk-time-step"><span class="rk-time-step-no">02</span><div><h3>Materiały</h3><p>Rury, mocowanie, rozdzielacze, szafki, armatura, izolacja, taśmy oraz elementy przejść zgodne z zaakceptowaną specyfikacją.</p></div></article>
        <article class="rk-time-step"><span class="rk-time-step-no">03</span><div><h3>Podłoże</h3><p>Równe, oczyszczone i dostępne powierzchnie oraz zakończone roboty, które miały znaleźć się pod warstwami podłogi.</p></div></article>
        <article class="rk-time-step"><span class="rk-time-step-no">04</span><div><h3>Koordynacja</h3><p>Potwierdzone poziomy, przejścia, dylatacje, harmonogram jastrychu i odpowiedzialność za instalację podczas kolejnych prac.</p></div></article>
      </div>
      <p class="rk-time-copy">Zakres dokumentacji opisuje 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>. Warto również wcześniej rozstrzygnąć, <a href="https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/">gdzie nie układać ogrzewania podłogowego</a>.</p>
    </section>

    <section class="rk-time-section" id="rk-time-installation">
      <span class="rk-time-eyebrow">Powierzchnia nie opisuje całego nakładu</span>
      <h2 class="rk-time-section-title">Ile trwa układanie rur, pętli i rozdzielaczy?</h2>
      <p class="rk-time-lead">Rzetelny harmonogram powinien odnosić się do liczby obwodów oraz operacji, a nie tylko do metrów kwadratowych. Dwie instalacje o tej samej powierzchni mogą różnić się metrażem rur, długością dobiegów i liczbą rozdzielaczy.</p>
      <div class="rk-time-table-wrap">
        <table>
          <thead><tr><th>Element</th><th>Co zajmuje czas</th><th>Co przyspiesza</th><th>Co zatrzymuje</th></tr></thead>
          <tbody>
            <tr><td data-label="Element"><strong>Rozdzielacze</strong></td><td data-label="Co zajmuje czas">Osadzenie szafek, uzbrojenie, opis sekcji i przyłączenie magistral.</td><td data-label="Co przyspiesza">Ustalona lokalizacja, wysokość i liczba sekcji.</td><td data-label="Co zatrzymuje">Kolizje, brak zasilania lub zmiana miejsca na budowie.</td></tr>
            <tr><td data-label="Element"><strong>Pętle</strong></td><td data-label="Co zajmuje czas">Trasowanie, rozwijanie, mocowanie, nawroty, dobiegi i przejścia.</td><td data-label="Co przyspiesza">Czytelny rysunek i przygotowany system mocowania.</td><td data-label="Co zatrzymuje">Nieznane pola wyłączone, stała zabudowa i zmiany układu.</td></tr>
            <tr><td data-label="Element"><strong>Strefy brzegowe</strong></td><td data-label="Co zajmuje czas">Dokładniejsze prowadzenie rur i koordynacja z przeszkleniami.</td><td data-label="Co przyspiesza">Wcześniejsze obliczenie strefy i jej rozstawu.</td><td data-label="Co zatrzymuje">Projektowanie rozstawu dopiero przez instalatora.</td></tr>
            <tr><td data-label="Element"><strong>Oznaczenia</strong></td><td data-label="Co zajmuje czas">Numerowanie obwodów, zdjęcia, pomiary i zapis zmian.</td><td data-label="Co przyspiesza">Przygotowana tabela pętli i standard odbioru.</td><td data-label="Co zatrzymuje">Brak zgodności nazw między projektem a rozdzielaczem.</td></tr>
          </tbody>
        </table>
      </div>
      <p class="rk-time-copy">Wydajność zależy również od wybranego sposobu prowadzenia rur. Zobacz zasady <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/">układu ślimakowego</a>, <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/">układu meandrowego</a> i porównanie <a href="https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/">ślimaka, meandra oraz podwójnego meandra</a>.</p>
    </section>

    <section class="rk-time-section rk-time-section-soft" id="rk-time-test">
      <span class="rk-time-eyebrow">Kontrola przed zakryciem instalacji</span>
      <h2 class="rk-time-section-title">Ile trwa próba ogrzewania podłogowego?</h2>
      <p class="rk-time-lead">Nie wpiszemy jednej uniwersalnej wartości ciśnienia i czasu dla każdego systemu. Procedura powinna wynikać z dokumentacji technicznej, projektu, rodzaju połączeń i przyjętych warunków odbioru.</p>
      <div class="rk-time-grid-3">
        <article class="rk-time-card"><span class="rk-time-card-label">PRZED</span><h3>Przygotowanie obwodów</h3><p>Kontrola połączeń, napełnienie, odpowietrzenie, identyfikacja pętli i przygotowanie punktów pomiarowych.</p></article>
        <article class="rk-time-card"><span class="rk-time-card-label">W TRAKCIE</span><h3>Procedura i obserwacja</h3><p>Przebieg należy prowadzić zgodnie z ustaloną metodą oraz warunkami temperatury otoczenia i medium.</p></article>
        <article class="rk-time-card"><span class="rk-time-card-label">PO</span><h3>Protokół i dokumentacja</h3><p>Wynik, zastosowane parametry, czas, uwagi, zdjęcia i zatwierdzone odstępstwa powinny zostać zapisane.</p></article>
      </div>
      <div class="rk-time-note rk-time-note-bad"><p><strong>Próba nie powinna być skracana tylko dlatego, że kolejna ekipa czeka na wejście.</strong> Harmonogram trzeba przygotować tak, aby kontrola instalacji odbyła się przed jej zakryciem i była możliwa do udokumentowania.</p></div>
      <p class="rk-time-copy">Pełną procedurę i zakres protokołu omawia poradnik <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próba szczelności ogrzewania podłogowego</a>.</p>
    </section>

    <section class="rk-time-section" id="rk-time-screed">
      <span class="rk-time-eyebrow">Najczęściej mylony fragment harmonogramu</span>
      <h2 class="rk-time-section-title">Jastrych, dojrzewanie, wygrzewanie i gotowość pod okładzinę</h2>
      <p class="rk-time-lead">Wykonanie jastrychu może trwać krótko, ale jego dalszy przebieg technologiczny nie kończy się w dniu wylania. Nie wolno utożsamiać upływu określonej liczby dni z automatyczną gotowością pod każde wykończenie.</p>
      <div class="rk-time-step-list">
        <article class="rk-time-step"><span class="rk-time-step-no">1</span><div><h3>Wykonanie podkładu</h3><p>Kontrola instalacji, dylatacji, grubości, konsystencji, warunków otoczenia oraz ochrony świeżej warstwy.</p></div></article>
        <article class="rk-time-step"><span class="rk-time-step-no">2</span><div><h3>Czas przed uruchomieniem programu grzewczego</h3><p>Wynika z technologii i dokumentacji materiału. Nie należy przenosić jednej liczby między różnymi jastrychami.</p></div></article>
        <article class="rk-time-step"><span class="rk-time-step-no">3</span><div><h3>Program grzewczy</h3><p>To kontrolowana procedura prowadzona według przyjętych temperatur i czasu, a nie dowolne włączenie maksymalnego zasilania.</p></div></article>
        <article class="rk-time-step"><span class="rk-time-step-no">4</span><div><h3>Kontrola przed okładziną</h3><p>Wykonawca posadzki sprawdza wymagania systemu wykończeniowego i stan podłoża, zamiast opierać decyzję wyłącznie na kalendarzu.</p></div></article>
      </div>
      <p class="rk-time-copy">Szczegółowy zakres warstw opisuje poradnik <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewka na ogrzewanie podłogowe</a>. Osobno warto sprawdzić <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/">grubość wylewki betonowej</a> oraz wpływ <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">rodzaju okładziny na pracę podłogówki</a>.</p>
    </section>

    <section class="rk-time-section rk-time-section-soft" id="rk-time-systems">
      <span class="rk-time-eyebrow">Porównuj ten sam punkt końcowy</span>
      <h2 class="rk-time-section-title">System mokry a suchy — który montuje się szybciej?</h2>
      <p class="rk-time-lead">System suchy eliminuje mokry jastrych przewidziany w klasycznym układzie, dlatego może skrócić kalendarz. Nie oznacza to jednak, że zawsze ma mniej elementów, niższy koszt albo natychmiastową gotowość bez kontroli warstw.</p>
      <div class="rk-time-table-wrap">
        <table>
          <thead><tr><th>Etap</th><th>System mokry</th><th>System suchy</th><th>Co sprawdzić</th></tr></thead>
          <tbody>
            <tr><td data-label="Etap"><strong>Przygotowanie</strong></td><td data-label="System mokry">Izolacja, taśmy, dylatacje i mocowanie.</td><td data-label="System suchy">Równość podłoża, płyty systemowe i elementy przewodzące.</td><td data-label="Co sprawdzić">Nośność, poziomy i zgodność całego zestawu.</td></tr>
            <tr><td data-label="Etap"><strong>Pętle</strong></td><td data-label="System mokry">Mocowane przed wykonaniem jastrychu.</td><td data-label="System suchy">Prowadzone w przygotowanych kanałach lub płytach.</td><td data-label="Co sprawdzić">Dopuszczony wymiar, promień i geometria nawrotów.</td></tr>
            <tr><td data-label="Etap"><strong>Zamknięcie</strong></td><td data-label="System mokry">Jastrych oraz jego proces technologiczny.</td><td data-label="System suchy">Płyty rozkładające obciążenie zgodne z systemem.</td><td data-label="Co sprawdzić">Kolejność warstw i warunki ułożenia okładziny.</td></tr>
            <tr><td data-label="Etap"><strong>Największa różnica</strong></td><td data-label="System mokry">Długi etap zależny od technologii mokrej.</td><td data-label="System suchy">Brak oczekiwania na mokry jastrych.</td><td data-label="Co sprawdzić">Czy porównanie obejmuje dokładnie ten sam zakres końcowy.</td></tr>
          </tbody>
        </table>
      </div>
      <p class="rk-time-copy">Technologie omawiam osobno w poradnikach <a href="https://projekt-ogrzewania.pl/czym-jest-system-mokry-w-wodnym-ogrzewaniu-podlogowym/">czym jest system mokry</a>, <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">czym jest system suchy</a> oraz <a href="https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/">system mokry czy suchy — który wybrać</a>.</p>
    </section>

    <section class="rk-time-section" id="rk-time-renovation">
      <span class="rk-time-eyebrow">Ten sam metraż, inna logistyka</span>
      <h2 class="rk-time-section-title">Montaż w nowym domu i remontowanym budynku</h2>
      <p class="rk-time-lead">W nowym domu można skoordynować rzędne oraz instalacje przed rozpoczęciem prac. W remoncie czas często zależy od rozbiórek, odkrywek, napraw i informacji, których nie da się potwierdzić bez sprawdzenia istniejącej podłogi.</p>
      <div class="rk-time-grid-3">
        <article class="rk-time-card"><span class="rk-time-card-label">NOWY DOM</span><h3>Koordynacja przed montażem</h3><p>Największe ryzyko tworzą zmiany innych instalacji, wysokości podłogi i zabudowy wprowadzane po projekcie.</p></article>
        <article class="rk-time-card"><span class="rk-time-card-label">REMONT</span><h3>Stan zastany</h3><p>Trzeba doliczyć ocenę podłoża, demontaż, naprawy, ochronę pomieszczeń i transport odpadów.</p></article>
        <article class="rk-time-card"><span class="rk-time-card-label">FREZOWANIE</span><h3>Najpierw kwalifikacja</h3><p>Szybkość samego frezowania nie usuwa konieczności sprawdzenia jastrychu, kolizji i tras do rozdzielacza.</p></article>
      </div>
      <p class="rk-time-copy">Zobacz, kiedy <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/">podłogówka w remontowanym budynku ma sens</a> oraz jak kwalifikować podłoże przed <a href="https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/">frezowaniem ogrzewania podłogowego</a>.</p>
    </section>

    <section class="rk-time-section rk-time-section-soft" id="rk-time-delays">
      <span class="rk-time-eyebrow">Rezerwa powinna mieć przyczynę</span>
      <h2 class="rk-time-section-title">Co najczęściej opóźnia montaż podłogówki?</h2>
      <div class="rk-time-grid-3">
        <article class="rk-time-card"><span class="rk-time-card-label">OPÓŹNIENIE 1</span><h3>Brak kompletnego projektu</h3><p>Ekipa traci czas na ustalanie rozstawów, podziału pętli, rozdzielaczy i zmian w trakcie prac.</p></article>
        <article class="rk-time-card"><span class="rk-time-card-label">OPÓŹNIENIE 2</span><h3>Niegotowe podłoże</h3><p>Nierówności, brak izolacji, odpady, wilgoć albo niezakończone instalacje blokują kolejne warstwy.</p></article>
        <article class="rk-time-card"><span class="rk-time-card-label">OPÓŹNIENIE 3</span><h3>Braki materiałowe</h3><p>Niedopasowany rozdzielacz, brak złączek, taśmy lub elementów przejść zatrzymuje ciągłość montażu.</p></article>
        <article class="rk-time-card"><span class="rk-time-card-label">OPÓŹNIENIE 4</span><h3>Kolizje między branżami</h3><p>Przewody, kanały, dylatacje i zabudowa konkurują o tę samą przestrzeń podłogi.</p></article>
        <article class="rk-time-card"><span class="rk-time-card-label">OPÓŹNIENIE 5</span><h3>Brak procedury odbioru</h3><p>Nie wiadomo, kto wykonuje próbę, podpisuje protokół i dopuszcza instalację do zakrycia.</p></article>
        <article class="rk-time-card"><span class="rk-time-card-label">OPÓŹNIENIE 6</span><h3>Przyspieszanie technologii</h3><p>Presja harmonogramu prowadzi do prób skracania etapów, które powinny wynikać z dokumentacji materiału.</p></article>
      </div>
      <p class="rk-time-copy">Ryzyko wykonawcze rozwijają poradniki o <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">najczęstszych błędach montażu</a> oraz o <a href="https://projekt-ogrzewania.pl/jakie-bledy-najczesciej-popelniaja-instalatorzy-ogrzewania-podlogowego/">błędach popełnianych przez instalatorów</a>.</p>
    </section>

    <section class="rk-time-section" id="rk-time-scenarios">
      <span class="rk-time-eyebrow">Przedziały zamiast obietnic</span>
      <h2 class="rk-time-section-title">Przykładowe harmonogramy — jak czytać scenariusze?</h2>
      <p class="rk-time-lead">Poniższa tabela pokazuje logikę różnic, a nie cennik czasu. Scenariusz obowiązuje tylko przy podanych założeniach i nie zastępuje deklaracji konkretnego wykonawcy.</p>
      <div class="rk-time-table-wrap">
        <table>
          <thead><tr><th>Scenariusz</th><th>Założenia</th><th>Największy składnik aktywnej pracy</th><th>Ścieżka krytyczna</th></tr></thead>
          <tbody>
            <tr><td data-label="Scenariusz"><strong>Dom 100 m², przygotowana izolacja</strong></td><td data-label="Założenia">Jedna kondygnacja, jeden rozdzielacz, kompletny projekt i materiał.</td><td data-label="Największy składnik">Układanie, mocowanie i podłączenie pętli.</td><td data-label="Ścieżka krytyczna">Procedura próby, a w systemie mokrym później jastrych.</td></tr>
            <tr><td data-label="Scenariusz"><strong>Dom 150 m², dwie kondygnacje</strong></td><td data-label="Założenia">Dwa rozdzielacze, więcej dobiegów i koordynacji pionów.</td><td data-label="Największy składnik">Pętle oraz obsługa dwóch punktów rozdziału.</td><td data-label="Ścieżka krytyczna">Koordynacja kondygnacji i kolejność ekip.</td></tr>
            <tr><td data-label="Scenariusz"><strong>Remont 80 m²</strong></td><td data-label="Założenia">Niepewny stan podłoża i dodatkowe prace przygotowawcze.</td><td data-label="Największy składnik">Rozbiórki, naprawy i odtworzenie warstw.</td><td data-label="Ścieżka krytyczna">Kwalifikacja podłoża przed instalacją.</td></tr>
            <tr><td data-label="Scenariusz"><strong>System suchy 100 m²</strong></td><td data-label="Założenia">Równe podłoże, kompletny system i zgodna okładzina.</td><td data-label="Największy składnik">Montaż płyt, elementów przewodzących i warstwy nośnej.</td><td data-label="Ścieżka krytyczna">Dostępność całego zestawu oraz przygotowanie podłoża.</td></tr>
          </tbody>
        </table>
      </div>
      <div class="rk-time-note"><p><strong>Najlepszy scenariusz kontrolny tworzysz we własnym kalkulatorze.</strong> Wpisz liczbę pętli z projektu i wydajność zadeklarowaną przez ekipę, a następnie porównaj wynik z harmonogramem umownym.</p></div>
    </section>

    <section class="rk-time-section rk-time-section-soft" id="rk-time-contract">
      <span class="rk-time-eyebrow">Termin wymaga zakresu i odpowiedzialności</span>
      <h2 class="rk-time-section-title">Co zapisać w umowie i harmonogramie odbioru?</h2>
      <div class="rk-time-grid-3">
        <article class="rk-time-card"><span class="rk-time-card-label">START</span><h3>Warunki wejścia ekipy</h3><ul class="rk-time-bullets"><li>gotowość podłoża,</li><li>komplet dokumentacji,</li><li>dostępność materiałów,</li><li>lokalizacja rozdzielaczy,</li><li>koordynacja branż.</li></ul></article>
        <article class="rk-time-card"><span class="rk-time-card-label">REALIZACJA</span><h3>Zakres i kamienie milowe</h3><ul class="rk-time-bullets"><li>przygotowanie warstw,</li><li>montaż i opis pętli,</li><li>procedura próby,</li><li>obecność podczas zakrycia,</li><li>zasady zmian.</li></ul></article>
        <article class="rk-time-card"><span class="rk-time-card-label">ODBIÓR</span><h3>Dokumenty końcowe</h3><ul class="rk-time-bullets"><li>protokół próby,</li><li>zdjęcia przed zakryciem,</li><li>długości i opisy obwodów,</li><li>lista odstępstw,</li><li>ustalone nastawy.</li></ul></article>
      </div>
      <div class="rk-time-note rk-time-note-good"><p><strong>Termin „montaż zakończony” musi mieć definicję.</strong> Może oznaczać ułożone rury, zakończoną próbę, wykonany jastrych albo instalację przygotowaną do uruchomienia. Umowa powinna wskazać konkretny kamień milowy.</p></div>
    </section>

    <section class="rk-time-section" id="rk-time-errors">
      <span class="rk-time-eyebrow">Najczęstsze skróty myślowe</span>
      <h2 class="rk-time-section-title">Błędy przy planowaniu czasu montażu</h2>
      <div class="rk-time-grid-3">
        <article class="rk-time-card"><span class="rk-time-card-label">BŁĄD 1</span><h3>Powierzchnia jako jedyny parametr</h3><p>Metraż nie pokazuje liczby pętli, rozdzielaczy, pięter ani trudności prowadzenia.</p></article>
        <article class="rk-time-card"><span class="rk-time-card-label">BŁĄD 2</span><h3>Praca ekipy równa całemu terminowi</h3><p>Między montażem a gotową posadzką występują próby, roboty budowlane i czasy technologiczne.</p></article>
        <article class="rk-time-card"><span class="rk-time-card-label">BŁĄD 3</span><h3>Stała liczba dni dla każdego jastrychu</h3><p>Warunki kolejnych etapów trzeba odczytać z dokumentacji materiału i wymagań okładziny.</p></article>
        <article class="rk-time-card"><span class="rk-time-card-label">BŁĄD 4</span><h3>Zakup materiału bez podziału pętli</h3><p>Braki lub niewłaściwe elementy ujawniają się dopiero podczas pracy i tworzą przestoje.</p></article>
        <article class="rk-time-card"><span class="rk-time-card-label">BŁĄD 5</span><h3>Brak bufora między branżami</h3><p>Wylewkarz nie powinien czekać na nieskończoną próbę, a instalator nie powinien jej skracać pod presją.</p></article>
        <article class="rk-time-card"><span class="rk-time-card-label">BŁĄD 6</span><h3>Samodzielne przyspieszanie procedur</h3><p>Termin nie jest ważniejszy od poprawności wykonania, warunków gwarancji i bezpieczeństwa warstw.</p></article>
      </div>
      <p class="rk-time-copy">Jeżeli rozważasz wykonanie instalacji samodzielnie, przeczytaj także <a href="https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/">pięć błędów, których nie naprawisz po wylewce</a>.</p>
    </section>

    <section class="rk-time-section rk-time-final" id="rk-time-final">
      <span class="rk-time-eyebrow">Harmonogram zaczyna się od danych</span>
      <h2 class="rk-time-section-title">Zaplanuj montaż przed zamówieniem ekipy i jastrychu</h2>
      <p class="rk-time-lead">Najkrótszy realny termin powstaje wtedy, gdy projekt, materiały, podłoże i procedura odbioru są gotowe w odpowiedniej kolejności. Szybkość nie powinna wynikać z pomijania kontroli ani skracania technologii.</p>
      <div class="rk-time-cta">
        <div class="rk-time-cta-title">Daj wykonawcy dokumentację, na podstawie której może przygotować własny termin i ofertę</div>
        <p>Projekt podłogówki określi trasy, rozstawy, pętle, rozdzielacze, przepływy i zestawienie materiałów. Dzięki temu harmonogram można powiązać z konkretnym zakresem, zamiast planować montaż na podstawie samego metrażu domu.</p>
        <a class="rk-time-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
        <small class="rk-time-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </div>
    </section>

    <section class="rk-time-section" id="rk-time-sources">
      <span class="rk-time-eyebrow">Podstawa techniczna</span>
      <h2 class="rk-time-section-title">Oficjalne źródła i zakres odpowiedzialności</h2>
      <p class="rk-time-lead">Dokumenty normalizacyjne porządkują wymagania dotyczące projektowania, wykonania i kontroli systemów płaszczyznowych. Nie wyznaczają jednego czasu roboczego dla dowolnej ekipy i każdego budynku.</p>
      <div class="rk-time-source-grid">
        <article class="rk-time-source-card"><a href="https://www.iso.org/standard/74685.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-5:2021 — Installation</a><p>Oficjalna karta normy określającej wymagania instalacyjne dla wbudowanych wodnych systemów ogrzewania i chłodzenia płaszczyznowego.</p></article>
        <article class="rk-time-source-card"><a href="https://www.iso.org/standard/74683.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-2:2021 — Determination of design heating and cooling capacity</a><p>Oficjalna karta części normy dotyczącej określania projektowej wydajności systemów ogrzewania i chłodzenia płaszczyznowego.</p></article>
        <article class="rk-time-source-card"><a href="https://sklep.pkn.pl/pn-en-1264-4-2021-10e.html" target="_blank" rel="nofollow noopener noreferrer">PN-EN 1264-4:2021-10 — instalowanie systemów</a><p>Oficjalna karta Polskiego Komitetu Normalizacyjnego dotycząca instalowania wodnych systemów ogrzewania i chłodzenia płaszczyznowego.</p></article>
      </div>
      <div class="rk-time-responsibility"><p><strong>Zakres poradnika:</strong> materiał i kalkulator pomagają przygotować harmonogram rozmów z wykonawcami. Nie są instrukcją konkretnego systemu, procedurą próby, specyfikacją jastrychu, potwierdzeniem wilgotności podłoża, projektem organizacji robót ani zobowiązaniem terminowym wykonawcy. Wartości startowe są edytowalnym przykładem.</p></div>
    </section>

    <section class="rk-time-section rk-time-section-soft" id="rk-time-faq">
      <span class="rk-time-eyebrow">Pytania inwestorów i wykonawców</span>
      <h2 class="rk-time-section-title">FAQ — ile trwa montaż ogrzewania podłogowego?</h2>
      <div class="rk-time-faq">
        <details><summary>Ile dni trwa montaż podłogówki w domu 100 m²?</summary><div class="rk-time-faq-answer"><p>Nie można podać jednej wartości bez zakresu. Przy przygotowanym podłożu, kompletnym projekcie i materiale samo ułożenie oraz podłączenie pętli może zająć ekipie kilka dni. Do pełnego harmonogramu trzeba doliczyć przygotowanie, próbę, zakrycie instalacji i technologię podłogi.</p></div></details>
        <details><summary>Czy powierzchnia domu wystarcza do oszacowania czasu?</summary><div class="rk-time-faq-answer"><p>Nie. Potrzebne są co najmniej liczba kondygnacji, pętli i rozdzielaczy, stan podłoża, zakres izolacji, geometria pomieszczeń, sposób mocowania, liczebność ekipy i jej deklarowana wydajność.</p></div></details>
        <details><summary>Czy dwa dni układania rur oznaczają dwa dni do wylewki?</summary><div class="rk-time-faq-answer"><p>Nie zawsze. Po ułożeniu rur trzeba zakończyć podłączenia, oznaczyć obwody, napełnić i odpowietrzyć instalację, przeprowadzić przyjętą procedurę próby oraz udokumentować wynik przed zakryciem.</p></div></details>
        <details><summary>Ile trwa próba ogrzewania podłogowego?</summary><div class="rk-time-faq-answer"><p>Czas i parametry powinny wynikać z projektu, dokumentacji systemu oraz ustalonej procedury odbiorowej. Nie należy przenosić jednej wartości ciśnienia i czasu na wszystkie instalacje. Kalkulator pozwala wpisać własny czas procedury.</p></div></details>
        <details><summary>Czy próbę można zrobić w dniu wylewania jastrychu?</summary><div class="rk-time-faq-answer"><p>Harmonogram powinien pozostawić czas na wykonanie, obserwację i udokumentowanie próby przed zakryciem instalacji. Łączenie etapów nie może uniemożliwiać kontroli ani wymuszać skrócenia przyjętej procedury.</p></div></details>
        <details><summary>Jak długo schnie wylewka na ogrzewaniu podłogowym?</summary><div class="rk-time-faq-answer"><p>Nie istnieje jedna liczba właściwa dla każdego jastrychu. Znaczenie mają rodzaj materiału, grubość, warunki otoczenia, pielęgnacja, instrukcja produktu, program grzewczy i wymagania okładziny. Upływ czasu nie zastępuje kontroli podłoża.</p></div></details>
        <details><summary>Kiedy można rozpocząć wygrzewanie podłogówki?</summary><div class="rk-time-faq-answer"><p>Termin powinien wynikać z dokumentacji zastosowanego jastrychu oraz przyjętej procedury. W kalkulatorze pole jest edytowalne, ponieważ przykładowej wartości nie wolno traktować jako uniwersalnego terminu.</p></div></details>
        <details><summary>Czy zakończenie wygrzewania oznacza gotowość pod panele lub drewno?</summary><div class="rk-time-faq-answer"><p>Nie automatycznie. Wykonawca okładziny powinien sprawdzić wymagania swojego systemu i stan podłoża, w tym wymagane parametry oraz metodę kontroli. Program grzewczy i odbiór podłoża są odrębnymi etapami.</p></div></details>
        <details><summary>Czy system suchy zawsze montuje się szybciej?</summary><div class="rk-time-faq-answer"><p>Zwykle pozwala ominąć mokry jastrych i związany z nim czas technologiczny. Nadal trzeba jednak przygotować podłoże, zamontować wszystkie warstwy kompletnego systemu, wykonać próbę oraz spełnić wymagania okładziny.</p></div></details>
        <details><summary>Co najbardziej wydłuża montaż w remontowanym domu?</summary><div class="rk-time-faq-answer"><p>Najczęściej rozbiórki, nieznany stan podłoża, kolizje z istniejącymi instalacjami, naprawy, ograniczona wysokość warstw i konieczność utrzymania części pomieszczeń w użytkowaniu.</p></div></details>
        <details><summary>Czy większa ekipa skróci czas proporcjonalnie?</summary><div class="rk-time-faq-answer"><p>Nie zawsze. Część prac można podzielić, ale przy rozdzielaczu, w małych pomieszczeniach i podczas kontroli liczba stanowisk jest ograniczona. Dlatego kalkulator korzysta z wydajności całej ekipy wpisanej przez użytkownika, a nie z prostego mnożenia przez liczbę osób.</p></div></details>
        <details><summary>Czy projekt naprawdę skraca montaż?</summary><div class="rk-time-faq-answer"><p>Projekt nie zmienia czasu technologicznego jastrychu i nie gwarantuje konkretnej liczby dni. Ogranicza jednak decyzje podejmowane na budowie, porządkuje podział pętli, rozstawy, rozdzielacze i ilości materiałów, co zmniejsza ryzyko przestojów oraz poprawek.</p></div></details>
        <details><summary>Ile rezerwy czasowej przyjąć?</summary><div class="rk-time-faq-answer"><p>Rezerwa powinna wynikać z rozpoznanych ryzyk. Przy kompletnym projekcie, gotowym podłożu i materiale może być mniejsza niż w remoncie bez odkrywek. Kalkulator pozwala wybrać rezerwę i dodatkowo dolicza ryzyko braków organizacyjnych.</p></div></details>
        <details><summary>Czy można zacząć montaż bez wszystkich materiałów?</summary><div class="rk-time-faq-answer"><p>Technicznie niektóre prace mogą ruszyć, ale brak rozdzielacza, złączek, taśm albo elementów przejść utrudnia zakończenie i kontrolę instalacji. Pełny zestaw warto sprawdzić przed rozpoczęciem.</p></div></details>
        <details><summary>Co oznacza „montaż zakończony” w umowie?</summary><div class="rk-time-faq-answer"><p>To sformułowanie powinno zostać doprecyzowane. Może oznaczać ułożone pętle, instalację po próbie, wykonany jastrych albo układ przygotowany do uruchomienia. Umowa powinna wskazać konkretny kamień milowy i dokumenty odbiorowe.</p></div></details>
        <details><summary>Czy kalkulator zastępuje harmonogram wykonawcy?</summary><div class="rk-time-faq-answer"><p>Nie. Narzędzie porządkuje założenia i pomaga porównać zakresy. Termin wykonawczy musi uwzględniać rzeczywistą ekipę, dostawy, kolejność branż, dokumentację materiałów, warunki budowy oraz zobowiązania umowne.</p></div></details>
      </div>
    </section>

    <section class="rk-time-author" id="rk-time-author">
      <span class="rk-time-eyebrow">E-E-A-T i odpowiedzialność za treść</span>
      <h2 class="rk-time-author-title">Autor i weryfikacja merytoryczna</h2>
      <div class="rk-time-author-layout">
        <aside class="rk-time-author-side">
          <div class="rk-time-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-time-author-name"><a href="https://projekt-ogrzewania.pl/author/admin3399/">Robert Kucharski</a></div>
          <p class="rk-time-author-role">Projektant instalacji sanitarnych<br>specjalista HVAC i ogrzewania podłogowego</p>
          <div class="rk-time-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-time-author-main">
          <div class="rk-time-author-quote">„Moim zdaniem największy błąd harmonogramu polega na wpisaniu jednego terminu dla montażu rur, próby, jastrychu i gotowej posadzki. To różne etapy, zależne od różnych wykonawców i innych warunków odbioru.”</div>
          <p>Robert Kucharski opracowuje projekty ogrzewania podłogowego, obliczenia cieplne i hydrauliczne oraz materiały techniczne dla inwestorów i wykonawców. W dokumentacji wiąże podział pętli, rozstaw rur, przepływy, rozdzielacze i źródło ciepła z rzeczywistym układem budynku.</p>
          <p>W tym poradniku rozdziela nakład pracy instalatorów od czasu technologicznego warstw podłogi. Kalkulator celowo korzysta z edytowalnej wydajności ekipy oraz danych użytkownika i nie przedstawia wartości przykładowych jako normowego terminu.</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-time-author-facts">
            <div class="rk-time-author-fact"><strong>Praktyka projektowa</strong>OZC, rozmieszczenie pętli, przepływy, opory i parametry instalacji niskotemperaturowych.</div>
            <div class="rk-time-author-fact"><strong>Metoda poradnika</strong>Oddzielenie pracy wykonawczej, odbioru instalacji i technologii podłogi.</div>
            <div class="rk-time-author-fact"><strong>Aktualizacja</strong>Źródła oraz logika kalkulatora zweryfikowane 16 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",
        "projektowanie instalacji grzewczych",
        "harmonogram montażu ogrzewania podłogowego",
        "obliczenia strat ciepła",
        "hydraulika instalacji grzewczych",
        "odbiór instalacji ogrzewania podłogowego"
      ],
      "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/ile-trwa-montaz-ogrzewania-podlogowego/#primaryimage",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Ile-trwa-montaz-ogrzewania-podlogowego.webp",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Ile-trwa-montaz-ogrzewania-podlogowego.webp",
      "caption": "Ile trwa montaż ogrzewania podłogowego — harmonogram prac"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/#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": "Ile trwa montaż ogrzewania podłogowego?",
          "item": "https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/#webpage",
      "url": "https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/",
      "name": "Ile trwa montaż ogrzewania podłogowego? Kalkulator harmonogramu",
      "description": "Sprawdź, ile trwa montaż ogrzewania podłogowego. Oblicz czas układania rur, próby, jastrychu i przygotowania podłogi w systemie mokrym lub suchym.",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
      "breadcrumb": { "@id": "https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/#breadcrumb" },
      "primaryImageOfPage": { "@id": "https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/#primaryimage" },
      "datePublished": "2025-05-17T12:45:04+00:00",
      "dateModified": "2026-09-16T12:00:00+02:00",
      "inLanguage": "pl-PL",
      "mainEntity": { "@id": "https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/#article" }
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/#article",
      "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/#webpage" },
      "headline": "Ile trwa montaż ogrzewania podłogowego? Kalkulator harmonogramu",
      "description": "Techniczny poradnik o czasie montażu ogrzewania podłogowego z kalkulatorem, osią czasu, etapami próby, jastrychu i przygotowania pod okładzinę.",
      "image": { "@id": "https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/#primaryimage" },
      "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "datePublished": "2025-05-17T12:45:04+00:00",
      "dateModified": "2026-09-16T12:00:00+02:00",
      "inLanguage": "pl-PL",
      "about": [
        "czas montażu ogrzewania podłogowego",
        "harmonogram podłogówki",
        "próba instalacji ogrzewania podłogowego",
        "jastrych na ogrzewaniu podłogowym",
        "system mokry i suchy"
      ],
      "keywords": "ile trwa montaż ogrzewania podłogowego, harmonogram podłogówki, czas układania rur, próba podłogówki, wygrzewanie jastrychu",
      "isAccessibleForFree": true,
      "hasPart": [
        { "@id": "https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/#calculator" },
        { "@id": "https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/#howto" },
        { "@id": "https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/#stages" },
        { "@id": "https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/#faq-schema" }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/#calculator",
      "name": "Kalkulator harmonogramu montażu ogrzewania podłogowego",
      "url": "https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/#rk-time-calculator-section",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Dowolny system z nowoczesną przeglądarką internetową",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "description": "Narzędzie tworzące orientacyjny przedział aktywnej pracy, czasu próby i czasu do wybranego kamienia milowego na podstawie danych użytkownika.",
      "featureList": [
        "pięć zakresów harmonogramu",
        "edytowalna wydajność ekipy",
        "ocena gotowości organizacyjnej",
        "scenariusz systemu mokrego i suchego",
        "interaktywna oś czasu",
        "lista ryzyk i działań przygotowawczych"
      ]
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/#howto",
      "name": "Jak zaplanować harmonogram montażu ogrzewania podłogowego",
      "description": "Procedura oddzielająca przygotowanie, montaż, próbę, zakrycie instalacji i czas technologiczny podłogi.",
      "step": [
        { "@type": "HowToStep", "position": 1, "name": "Ustal zakres", "text": "Określ, czy termin kończy się po ułożeniu pętli, próbie, wykonaniu jastrychu czy kontroli podłoża przed okładziną." },
        { "@type": "HowToStep", "position": 2, "name": "Zbierz dane projektu", "text": "Ustal powierzchnię ogrzewaną, liczbę kondygnacji, pętli, rozdzielaczy i stopień złożoności rzutu." },
        { "@type": "HowToStep", "position": 3, "name": "Sprawdź podłoże", "text": "Zweryfikuj równość, dostępność, przebieg innych instalacji, dylatacje oraz zakres izolacji." },
        { "@type": "HowToStep", "position": 4, "name": "Ustal wydajność ekipy", "text": "Wpisz wydajność właściwą dla konkretnego zakresu, budynku i organizacji pracy." },
        { "@type": "HowToStep", "position": 5, "name": "Zaplanuj montaż", "text": "Uwzględnij rozdzielacze, układanie i podłączenie pętli, oznaczenia oraz dokumentację tras." },
        { "@type": "HowToStep", "position": 6, "name": "Zaplanuj próbę", "text": "Przyjmij procedurę i czas wynikające z projektu oraz dokumentacji zastosowanego systemu." },
        { "@type": "HowToStep", "position": 7, "name": "Dodaj etap podłogowy", "text": "Dla systemu mokrego uwzględnij wykonanie jastrychu, wymagany czas i program grzewczy; dla suchego pełny układ warstw." },
        { "@type": "HowToStep", "position": 8, "name": "Zdefiniuj odbiór", "text": "Wpisz w umowie mierzalny kamień milowy, wymagane protokoły oraz odpowiedzialność każdej ekipy." }
      ]
    },
    {
      "@type": "ItemList",
      "@id": "https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/#stages",
      "name": "Etapy harmonogramu montażu ogrzewania podłogowego",
      "numberOfItems": 7,
      "itemListOrder": "https://schema.org/ItemListOrderAscending",
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Przygotowanie i kontrola podłoża" },
        { "@type": "ListItem", "position": 2, "name": "Izolacja, taśmy i warstwy systemowe" },
        { "@type": "ListItem", "position": 3, "name": "Montaż rozdzielaczy i pętli" },
        { "@type": "ListItem", "position": 4, "name": "Napełnienie, odpowietrzenie i próba" },
        { "@type": "ListItem", "position": 5, "name": "Wykonanie jastrychu lub zamknięcie systemu suchego" },
        { "@type": "ListItem", "position": 6, "name": "Czas technologiczny i program grzewczy" },
        { "@type": "ListItem", "position": 7, "name": "Kontrola podłoża przed okładziną" }
      ]
    },
    {
      "@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 instalacji ogrzewania podłogowego",
      "description": "Projekt obejmujący rozmieszczenie i rozstaw rur, podział na pętle, długości, przepływy, nastawy oraz zestawienie materiałów."
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/#faq-schema",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Ile dni trwa montaż podłogówki w domu 100 m²?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie można podać jednej wartości bez zakresu. Przy przygotowanym podłożu, kompletnym projekcie i materiale samo ułożenie oraz podłączenie pętli może zająć ekipie kilka dni. Do pełnego harmonogramu trzeba doliczyć przygotowanie, próbę, zakrycie instalacji i technologię podłogi." }
        },
        {
          "@type": "Question",
          "name": "Czy powierzchnia domu wystarcza do oszacowania czasu?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie. Potrzebne są co najmniej liczba kondygnacji, pętli i rozdzielaczy, stan podłoża, zakres izolacji, geometria pomieszczeń, sposób mocowania, liczebność ekipy i jej deklarowana wydajność." }
        },
        {
          "@type": "Question",
          "name": "Czy dwa dni układania rur oznaczają dwa dni do wylewki?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie zawsze. Po ułożeniu rur trzeba zakończyć podłączenia, oznaczyć obwody, napełnić i odpowietrzyć instalację, przeprowadzić przyjętą procedurę próby oraz udokumentować wynik przed zakryciem." }
        },
        {
          "@type": "Question",
          "name": "Ile trwa próba ogrzewania podłogowego?",
          "acceptedAnswer": { "@type": "Answer", "text": "Czas i parametry powinny wynikać z projektu, dokumentacji systemu oraz ustalonej procedury odbiorowej. Nie należy przenosić jednej wartości ciśnienia i czasu na wszystkie instalacje. Kalkulator pozwala wpisać własny czas procedury." }
        },
        {
          "@type": "Question",
          "name": "Czy próbę można zrobić w dniu wylewania jastrychu?",
          "acceptedAnswer": { "@type": "Answer", "text": "Harmonogram powinien pozostawić czas na wykonanie, obserwację i udokumentowanie próby przed zakryciem instalacji. Łączenie etapów nie może uniemożliwiać kontroli ani wymuszać skrócenia przyjętej procedury." }
        },
        {
          "@type": "Question",
          "name": "Jak długo schnie wylewka na ogrzewaniu podłogowym?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie istnieje jedna liczba właściwa dla każdego jastrychu. Znaczenie mają rodzaj materiału, grubość, warunki otoczenia, pielęgnacja, instrukcja produktu, program grzewczy i wymagania okładziny. Upływ czasu nie zastępuje kontroli podłoża." }
        },
        {
          "@type": "Question",
          "name": "Kiedy można rozpocząć wygrzewanie podłogówki?",
          "acceptedAnswer": { "@type": "Answer", "text": "Termin powinien wynikać z dokumentacji zastosowanego jastrychu oraz przyjętej procedury. W kalkulatorze pole jest edytowalne, ponieważ przykładowej wartości nie wolno traktować jako uniwersalnego terminu." }
        },
        {
          "@type": "Question",
          "name": "Czy zakończenie wygrzewania oznacza gotowość pod panele lub drewno?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie automatycznie. Wykonawca okładziny powinien sprawdzić wymagania swojego systemu i stan podłoża, w tym wymagane parametry oraz metodę kontroli. Program grzewczy i odbiór podłoża są odrębnymi etapami." }
        },
        {
          "@type": "Question",
          "name": "Czy system suchy zawsze montuje się szybciej?",
          "acceptedAnswer": { "@type": "Answer", "text": "Zwykle pozwala ominąć mokry jastrych i związany z nim czas technologiczny. Nadal trzeba jednak przygotować podłoże, zamontować wszystkie warstwy kompletnego systemu, wykonać próbę oraz spełnić wymagania okładziny." }
        },
        {
          "@type": "Question",
          "name": "Co najbardziej wydłuża montaż w remontowanym domu?",
          "acceptedAnswer": { "@type": "Answer", "text": "Najczęściej rozbiórki, nieznany stan podłoża, kolizje z istniejącymi instalacjami, naprawy, ograniczona wysokość warstw i konieczność utrzymania części pomieszczeń w użytkowaniu." }
        },
        {
          "@type": "Question",
          "name": "Czy większa ekipa skróci czas proporcjonalnie?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie zawsze. Część prac można podzielić, ale przy rozdzielaczu, w małych pomieszczeniach i podczas kontroli liczba stanowisk jest ograniczona. Kalkulator korzysta z wydajności całej ekipy wpisanej przez użytkownika, a nie z prostego mnożenia przez liczbę osób." }
        },
        {
          "@type": "Question",
          "name": "Czy projekt naprawdę skraca montaż?",
          "acceptedAnswer": { "@type": "Answer", "text": "Projekt nie zmienia czasu technologicznego jastrychu i nie gwarantuje konkretnej liczby dni. Ogranicza jednak decyzje podejmowane na budowie, porządkuje podział pętli, rozstawy, rozdzielacze i ilości materiałów, co zmniejsza ryzyko przestojów oraz poprawek." }
        },
        {
          "@type": "Question",
          "name": "Ile rezerwy czasowej przyjąć?",
          "acceptedAnswer": { "@type": "Answer", "text": "Rezerwa powinna wynikać z rozpoznanych ryzyk. Przy kompletnym projekcie, gotowym podłożu i materiale może być mniejsza niż w remoncie bez odkrywek. Kalkulator pozwala wybrać rezerwę i dodatkowo dolicza ryzyko braków organizacyjnych." }
        },
        {
          "@type": "Question",
          "name": "Czy można zacząć montaż bez wszystkich materiałów?",
          "acceptedAnswer": { "@type": "Answer", "text": "Technicznie niektóre prace mogą ruszyć, ale brak rozdzielacza, złączek, taśm albo elementów przejść utrudnia zakończenie i kontrolę instalacji. Pełny zestaw warto sprawdzić przed rozpoczęciem." }
        },
        {
          "@type": "Question",
          "name": "Co oznacza montaż zakończony w umowie?",
          "acceptedAnswer": { "@type": "Answer", "text": "To sformułowanie powinno zostać doprecyzowane. Może oznaczać ułożone pętle, instalację po próbie, wykonany jastrych albo układ przygotowany do uruchomienia. Umowa powinna wskazać konkretny kamień milowy i dokumenty odbiorowe." }
        },
        {
          "@type": "Question",
          "name": "Czy kalkulator zastępuje harmonogram wykonawcy?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie. Narzędzie porządkuje założenia i pomaga porównać zakresy. Termin wykonawczy musi uwzględniać rzeczywistą ekipę, dostawy, kolejność branż, dokumentację materiałów, warunki budowy oraz zobowiązania umowne." }
        }
      ]
    }
  ]
}
</script>

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

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

  var defaults = {
    scope: "wet",
    area: 120,
    floors: "1",
    loops: 12,
    manifolds: "1",
    geometry: "normal",
    crew: "2",
    productivity: 50,
    substrate: "bare",
    testDays: 1,
    reserve: "10",
    screedType: "cement",
    heatWait: 21,
    protocolDays: 7,
    floorReady: 35
  };

  var screedPresets = {
    cement: { heatWait: 21, protocolDays: 7, floorReady: 35 },
    calcium: { heatWait: 7, protocolDays: 7, floorReady: 21 }
  };

  var readiness = [
    { id: "rk-time-project-ready", warning: "Brak gotowego projektu i podziału pętli zwiększa ryzyko decyzji podejmowanych podczas montażu.", action: "Zatwierdź rozstawy, przebieg, długości i podział pętli przed wejściem ekipy." },
    { id: "rk-time-materials-ready", warning: "Niepotwierdzony komplet materiałów może przerwać ciągłość robót.", action: "Sprawdź dostawę rur, izolacji, taśm, mocowań, rozdzielaczy i elementów przyłączeniowych." },
    { id: "rk-time-manifold-ready", warning: "Nieustalone miejsca rozdzielaczy mogą zmienić dobiegi i organizację pętli.", action: "Potwierdź lokalizacje, wysokości i sposób podłączenia rozdzielaczy." },
    { id: "rk-time-site-clear", warning: "Brak pełnego dostępu do podłóg obniża realną wydajność ekipy.", action: "Opróżnij pomieszczenia i wyznacz bezpieczne miejsce składowania materiałów." },
    { id: "rk-time-temperature-ready", warning: "Niepotwierdzone warunki otoczenia mogą uniemożliwić użycie części materiałów zgodnie z dokumentacją.", action: "Sprawdź wymagane temperatury i warunki aplikacji wszystkich warstw systemu." },
    { id: "rk-time-coordination-ready", warning: "Brak koordynacji dylatacji i innych instalacji grozi kolizjami oraz poprawkami.", action: "Uzgodnij przejścia, dylatacje, strefy wyłączone i trasy pozostałych branż." }
  ];

  function element(id) {
    return document.getElementById(id);
  }

  function numberValue(id, fallback) {
    var control = element(id);
    var parsed = parseFloat(control.value);
    if (!isFinite(parsed)) {
      return fallback;
    }
    return parsed;
  }

  function clamp(value, minimum, maximum) {
    return Math.min(Math.max(value, minimum), maximum);
  }

  function rounded(value) {
    return Math.round(value * 10) / 10;
  }

  function polishNumber(value) {
    return rounded(value).toLocaleString("pl-PL", {
      minimumFractionDigits: Number.isInteger(rounded(value)) ? 0 : 1,
      maximumFractionDigits: 1
    });
  }

  function daysLabel(value) {
    var result = rounded(value);
    if (result === 1) {
      return "1 dzień";
    }
    if (!Number.isInteger(result)) {
      return polishNumber(result) + " dnia";
    }
    return polishNumber(result) + " dni";
  }

  function rangeLabel(lower, upper) {
    var from = rounded(lower);
    var to = rounded(upper);
    if (Math.abs(from - to) < 0.05) {
      return daysLabel(to);
    }
    return polishNumber(from) + "–" + polishNumber(to) + " dni";
  }

  function renderList(id, items, emptyText) {
    var list = element(id);
    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 addTimelineRow(container, stage, start, total) {
    if (stage.duration <= 0) {
      return;
    }

    var row = document.createElement("div");
    row.className = "rk-time-timeline-row";

    var label = document.createElement("div");
    label.className = "rk-time-timeline-label";
    var title = document.createElement("strong");
    title.textContent = stage.label;
    var meta = document.createElement("span");
    meta.textContent = stage.meta;
    label.appendChild(title);
    label.appendChild(meta);

    var track = document.createElement("div");
    track.className = "rk-time-timeline-track";
    var bar = document.createElement("div");
    bar.className = "rk-time-timeline-bar";
    if (stage.type) {
      bar.classList.add(stage.type);
    }
    var left = total > 0 ? start / total * 100 : 0;
    var width = total > 0 ? stage.duration / total * 100 : 100;
    bar.style.left = left.toFixed(2) + "%";
    bar.style.width = Math.max(width, 1.5).toFixed(2) + "%";
    bar.textContent = daysLabel(stage.duration);
    bar.title = stage.label + ": " + daysLabel(stage.duration);
    track.appendChild(bar);

    row.appendChild(label);
    row.appendChild(track);
    container.appendChild(row);
  }

  function updateWetVisibility() {
    var scope = element("rk-time-scope").value;
    var wetFields = element("rk-time-wet-fields");
    wetFields.hidden = true;
    if (scope === "wet") {
      wetFields.hidden = false;
    }
    if (scope === "fullwet") {
      wetFields.hidden = false;
    }
  }

  function applyScreedPreset() {
    var selected = element("rk-time-screed-type").value;
    var preset = screedPresets[selected];
    if (!preset) {
      return;
    }
    element("rk-time-heat-wait").value = preset.heatWait;
    element("rk-time-protocol-days").value = preset.protocolDays;
    element("rk-time-floor-ready").value = preset.floorReady;
  }

  function calculate() {
    var warnings = [];
    var actions = [];
    var invalid = false;
    var scope = element("rk-time-scope").value;
    var rawArea = numberValue("rk-time-area", defaults.area);
    var rawLoops = numberValue("rk-time-loops", defaults.loops);
    var rawProductivity = numberValue("rk-time-productivity", defaults.productivity);
    var rawTestDays = numberValue("rk-time-test-days", defaults.testDays);
    var area = clamp(rawArea, 10, 3000);
    var floors = clamp(numberValue("rk-time-floors", 1), 1, 4);
    var loops = clamp(rawLoops, 1, 300);
    var manifolds = clamp(numberValue("rk-time-manifolds", 1), 1, 4);
    var crew = clamp(numberValue("rk-time-crew", 2), 1, 5);
    var productivity = clamp(rawProductivity, 10, 200);
    var testDays = clamp(rawTestDays, 0.25, 14);
    var reserveRate = clamp(numberValue("rk-time-reserve", 10), 0, 30) / 100;
    var substrate = element("rk-time-substrate").value;
    var geometry = element("rk-time-geometry").value;
    var geometryFactor = 1;
    var heatWait = clamp(numberValue("rk-time-heat-wait", defaults.heatWait), 0, 180);
    var protocolDays = clamp(numberValue("rk-time-protocol-days", defaults.protocolDays), 0, 60);
    var floorReady = clamp(numberValue("rk-time-floor-ready", defaults.floorReady), 0, 365);

    if (geometry === "simple") {
      geometryFactor = 0.9;
    }
    if (geometry === "complex") {
      geometryFactor = 1.25;
    }

    if (rawArea < 10 || rawArea > 3000) {
      invalid = true;
      warnings.push("Powierzchnia wykracza poza zakres kalkulatora 10–3000 m²; do obliczenia użyto najbliższej wartości granicznej.");
    }
    if (rawLoops < 1 || rawLoops > 300) {
      invalid = true;
      warnings.push("Liczba pętli wykracza poza zakres kalkulatora; sprawdź dane z projektu.");
    }
    if (rawProductivity < 10 || rawProductivity > 200) {
      invalid = true;
      warnings.push("Wydajność wykracza poza zakres 10–200 m² na dzień; wynik wykorzystuje wartość graniczną.");
    }
    if (rawTestDays < 0.25 || rawTestDays > 14) {
      invalid = true;
      warnings.push("Czas procedury próby wykracza poza zakres narzędzia i wymaga ręcznej weryfikacji.");
    }

    if (productivity < 20) {
      warnings.push("Wpisana wydajność jest niska; może obejmować trudny zakres albo przestoje. Potwierdź, co zawiera dzień pracy ekipy.");
    }
    if (productivity > 100) {
      warnings.push("Wpisana wydajność jest wysoka. Zweryfikuj, czy obejmuje także podłączenia, oznaczenia, kontrolę i dokumentację.");
    }

    var areaPerLoop = area / loops;
    if (areaPerLoop > 25 || areaPerLoop < 5) {
      warnings.push("Relacja powierzchni do liczby pętli jest nietypowa. Sprawdź, czy wpisano liczbę wszystkich obwodów z projektu.");
    }

    var missing = 0;
    readiness.forEach(function (item) {
      var control = element(item.id);
      if (!control.checked) {
        missing += 1;
        warnings.push(item.warning);
        actions.push(item.action);
      }
    });

    var riskDays = missing * 0.5;
    var minimalCheck = Math.max(0.25, area / 600);
    var preparation = 0;
    if (substrate === "ready") {
      preparation = Math.max(0.25, area / 300);
    }
    if (substrate === "bare") {
      preparation = area / 75 * geometryFactor;
    }
    if (substrate === "repair") {
      preparation = area / 45 * geometryFactor + 0.75;
      warnings.push("Scenariusz obejmuje poprawki podłoża. Bez odkrywek ich rzeczywisty zakres może być większy niż rezerwa kalkulatora.");
      actions.push("Odbierz równość, nośność, poziomy i przebieg istniejących instalacji przed potwierdzeniem terminu.");
    }

    var includedPreparation = scope === "pipes" ? minimalCheck : preparation;
    if (scope === "pipes") {
      if (substrate !== "ready") {
        warnings.push("Wybrany zakres zaczyna się od gotowej bazy pod pętle, dlatego kalkulator ujmuje tylko kontrolę wejściową, a nie pełne wykonanie izolacji.");
      }
    }

    var installation = area / productivity * geometryFactor;
    installation += manifolds * 0.18;
    installation += Math.max(0, floors - 1) * 0.25;
    installation += Math.max(0, loops - 12) * 0.015;

    var testActive = Math.max(0.35, loops * 0.025 + manifolds * 0.12);
    var testWindow = Math.max(testActive, testDays);
    var screedPlacement = Math.max(0.5, area / 170);
    var dryClosure = Math.max(0.5, area / 65 * geometryFactor);
    var activeBase = includedPreparation + installation + testActive;

    if (scope === "wet" || scope === "fullwet") {
      activeBase += screedPlacement;
    }
    if (scope === "dry") {
      activeBase += dryClosure;
    }

    var toTestBase = includedPreparation + installation + testWindow;
    var scopeBase = toTestBase;
    var floorWindow = Math.max(floorReady, heatWait + protocolDays);

    if (scope === "wet") {
      scopeBase += screedPlacement;
    }
    if (scope === "fullwet") {
      scopeBase += screedPlacement + floorWindow;
    }
    if (scope === "dry") {
      scopeBase += dryClosure;
    }

    var activeReserve = activeBase * reserveRate;
    var totalBuffer = activeReserve + riskDays;
    var activeUpper = activeBase + activeReserve;
    var testUpper = toTestBase + (includedPreparation + installation + testActive) * reserveRate + riskDays;
    var scopeUpper = scopeBase + totalBuffer;

    var scopeNames = {
      pipes: "pętli, rozdzielaczy i zakończenia próby",
      insulation: "izolacji, instalacji i zakończenia próby",
      wet: "wykonania jastrychu",
      fullwet: "terminu kontrolnego przed okładziną",
      dry: "zamknięcia kompletnego systemu suchego"
    };

    var result = element("rk-time-result");
    var status = element("rk-time-result-status");
    var intro = element("rk-time-result-intro");
    var confidence = element("rk-time-confidence");
    result.classList.remove("is-good");
    result.classList.remove("is-stop");
    confidence.classList.remove("is-high");
    confidence.classList.remove("is-medium");
    confidence.classList.remove("is-low");

    if (invalid) {
      result.classList.add("is-stop");
      confidence.classList.add("is-low");
      confidence.textContent = "Pewność scenariusza: niska";
      status.textContent = "Sprawdź dane spoza zakresu kalkulatora";
      intro.textContent = "Wynik został policzony z wartościami granicznymi i nie powinien być podstawą ustalenia terminu.";
    } else {
      if (missing === 0) {
        result.classList.add("is-good");
        confidence.classList.add("is-high");
        confidence.textContent = "Pewność scenariusza: wysoka";
        status.textContent = "Harmonogram oparty na kompletnym scenariuszu wejściowym";
      } else {
        if (missing <= 2) {
          confidence.classList.add("is-medium");
          confidence.textContent = "Pewność scenariusza: średnia";
          status.textContent = "Harmonogram wymaga potwierdzenia części warunków";
        } else {
          result.classList.add("is-stop");
          confidence.classList.add("is-low");
          confidence.textContent = "Pewność scenariusza: niska";
          status.textContent = "Najpierw usuń braki organizacyjne";
        }
      }
      intro.textContent = "Orientacyjny czas do " + scopeNames[scope] + " wynosi " + rangeLabel(scopeBase, scopeUpper) + ".";
    }

    element("rk-time-active-result").textContent = rangeLabel(activeBase, activeUpper);
    element("rk-time-test-result").textContent = rangeLabel(toTestBase, testUpper);
    element("rk-time-scope-result").textContent = rangeLabel(scopeBase, scopeUpper);
    element("rk-time-risk-result").textContent = totalBuffer > 0 ? "0–" + daysLabel(totalBuffer) : "0 dni";

    actions.push("Potwierdź z wykonawcą wydajność całej " + crew + "-osobowej ekipy oraz dokładny zakres jej dnia roboczego.");
    actions.push("Ustal procedurę próby, osoby odpowiedzialne za odbiór i wymagane wpisy w protokole.");

    if (scope === "wet" || scope === "fullwet") {
      var screedType = element("rk-time-screed-type").value;
      if (screedType !== "custom") {
        warnings.push("Wartości czasu dla jastrychu są przykładem scenariusza. Zastąp je danymi dokumentacji zastosowanego materiału i warunkami budowy.");
      }
      actions.push("Uzgodnij dostawę jastrychu, ochronę instalacji, warunki wykonania i odpowiedzialność za program grzewczy.");
    }

    if (scope === "wet") {
      warnings.push("Wybrany zakres kończy się na wykonaniu jastrychu. Nie oznacza gotowości do uruchomienia ani układania okładziny.");
    }
    if (scope === "fullwet") {
      warnings.push("Termin kontrolny nie potwierdza gotowości jastrychu. Przed okładziną wymagane są właściwe kontrole i spełnienie wymagań kompletnego systemu podłogi.");
      actions.push("Zaplanuj odbiór podłoża przez wykonawcę okładziny zamiast opierać decyzję wyłącznie na liczbie dni.");
    }
    if (scope === "dry") {
      warnings.push("System suchy omija mokry jastrych, ale czas zależy od kompletności warstw, geometrii płyt i wymagań wybranej okładziny.");
      actions.push("Potwierdź pełny układ płyt, profili, warstw rozdzielających i wymagania pod okładzinę.");
    }

    if (warnings.length === 0) {
      warnings.push("Nie wykryto braku w zadeklarowanych danych. Nadal potwierdź termin z wykonawcami i dokumentacją materiałów.");
    }

    renderList("rk-time-warning-list", warnings, "Brak dodatkowych ostrzeżeń.");
    renderList("rk-time-action-list", actions, "Potwierdź zakres i dokumenty odbiorowe.");

    var stages = [];
    stages.push({
      label: scope === "pipes" ? "Kontrola gotowego podłoża" : "Przygotowanie warstw bazowych",
      meta: scope === "pipes" ? "kontrola wejściowa" : "podłoże, izolacja i taśmy",
      duration: includedPreparation,
      type: "is-building"
    });
    stages.push({ label: "Rozdzielacze i pętle", meta: "montaż, podłączenie i oznaczenie", duration: installation, type: "" });
    stages.push({ label: "Próba i obserwacja", meta: "według wpisanej procedury", duration: testWindow, type: "is-check" });

    if (scope === "wet" || scope === "fullwet") {
      stages.push({ label: "Wykonanie jastrychu", meta: "osobna ekipa budowlana", duration: screedPlacement, type: "is-building" });
    }
    if (scope === "fullwet") {
      stages.push({ label: "Czas przed programem grzewczym", meta: "wartość z założeń użytkownika", duration: heatWait, type: "is-wait" });
      stages.push({ label: "Program grzewczy", meta: "czas wpisany w kalkulatorze", duration: protocolDays, type: "is-check" });
      var remaining = Math.max(0, floorWindow - heatWait - protocolDays);
      if (remaining > 0) {
        stages.push({ label: "Do terminu kontroli podłoża", meta: "czas nie jest wynikiem odbioru", duration: remaining, type: "is-wait" });
      }
    }
    if (scope === "dry") {
      stages.push({ label: "Zamknięcie systemu suchego", meta: "pełny układ warstw przed okładziną", duration: dryClosure, type: "is-building" });
    }
    if (totalBuffer > 0) {
      stages.push({ label: "Bufor planistyczny", meta: "rezerwa i niepotwierdzone warunki", duration: totalBuffer, type: "is-wait" });
    }

    var timeline = element("rk-time-timeline-rows");
    timeline.textContent = "";
    var totalTimeline = 0;
    stages.forEach(function (stage) {
      totalTimeline += stage.duration;
    });
    var start = 0;
    stages.forEach(function (stage) {
      addTimelineRow(timeline, stage, start, totalTimeline);
      start += stage.duration;
    });
  }

  function resetCalculator() {
    element("rk-time-scope").value = defaults.scope;
    element("rk-time-area").value = defaults.area;
    element("rk-time-floors").value = defaults.floors;
    element("rk-time-loops").value = defaults.loops;
    element("rk-time-manifolds").value = defaults.manifolds;
    element("rk-time-geometry").value = defaults.geometry;
    element("rk-time-crew").value = defaults.crew;
    element("rk-time-productivity").value = defaults.productivity;
    element("rk-time-substrate").value = defaults.substrate;
    element("rk-time-test-days").value = defaults.testDays;
    element("rk-time-reserve").value = defaults.reserve;
    element("rk-time-screed-type").value = defaults.screedType;
    element("rk-time-heat-wait").value = defaults.heatWait;
    element("rk-time-protocol-days").value = defaults.protocolDays;
    element("rk-time-floor-ready").value = defaults.floorReady;
    readiness.forEach(function (item) {
      element(item.id).checked = true;
    });
    updateWetVisibility();
    calculate();
  }

  element("rk-time-run").addEventListener("click", calculate);
  element("rk-time-reset").addEventListener("click", resetCalculator);
  element("rk-time-scope").addEventListener("change", function () {
    updateWetVisibility();
    calculate();
  });
  element("rk-time-screed-type").addEventListener("change", function () {
    applyScreedPreset();
    calculate();
  });

  var liveControls = guide.querySelectorAll("#rk-time-calculator input, #rk-time-calculator select");
  liveControls.forEach(function (control) {
    control.addEventListener("change", calculate);
    if (control.tagName === "INPUT") {
      if (control.type === "number") {
        control.addEventListener("input", calculate);
      }
    }
  });

  updateWetVisibility();
  calculate();
}());
</script>



<p class="wp-block-paragraph"></p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/">Ile trwa montaż ogrzewania podłogowego? Kalkulator harmonogramu.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Układ ślimakowy ogrzewania podłogowego – schemat i montaż krok po kroku.</title>
		<link>https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/</link>
					<comments>https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Fri, 21 Feb 2025 10:53:02 +0000</pubDate>
				<category><![CDATA[Domowe systemy grzewcze]]></category>
		<category><![CDATA[Instalacja ogrzewania podłogowego]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Montaż instalacji grzewczych]]></category>
		<category><![CDATA[Niskotemperaturowe systemy grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Porady budowlane]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Systemy grzewcze]]></category>
		<category><![CDATA[Układ ślimakowy]]></category>
		<category><![CDATA[Układanie rur grzewczych]]></category>
		<category><![CDATA[energia w domu]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[montaż ogrzewania]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[poradnik DIY]]></category>
		<category><![CDATA[projektowanie ogrzewania]]></category>
		<category><![CDATA[remont domu]]></category>
		<category><![CDATA[równomierne ciepło]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<category><![CDATA[układ ślimakowy]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2270</guid>

					<description><![CDATA[<p>Planujesz montaż ogrzewania podłogowego i zastanawiasz się, jaki układ rur wybrać? Ogrzewanie podłogowe w układzie ślimakowym to sprawdzony sposób na równomierne rozprowadzenie ciepła w całym pomieszczeniu. W artykule krok po kroku wyjaśniamy, jak zaplanować i zamontować ten system, aby uniknąć błędów i cieszyć się komfortem cieplnym przez lata. Dowiesz się, jak obliczyć moc grzewczą, dobrać rozstaw rur i przeprowadzić test ciśnieniowy. Sprawdź, dlaczego układ spiralny jest tak popularny!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/">Układ ślimakowy ogrzewania podłogowego – schemat i montaż krok po kroku.</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-snail-step-grid,
  #rk-pipe-guide .rk-snail-results,
  #rk-pipe-guide .rk-snail-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-snail-step-grid,
  #rk-pipe-guide .rk-snail-check-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-pipe-guide .rk-pipe-grid-4,
  #rk-pipe-guide .rk-snail-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-snail-visual {
    background: #102f42;
    border: 1px solid #315a70;
    border-radius: 22px;
    margin-top: 32px;
    padding: 28px;
  }

  #rk-pipe-guide .rk-snail-visual-head {
    border-bottom: 1px solid #315a70;
    margin-bottom: 25px;
    padding-bottom: 20px;
  }

  #rk-pipe-guide .rk-snail-visual-head h3 {
    color: #ffffff;
    font-size: clamp(1.55rem, 3vw, 2.3rem);
    line-height: 1.2;
    margin: 0;
  }

  #rk-pipe-guide .rk-snail-visual-head p {
    color: #bad3dc;
    margin: 9px 0 0;
  }

  #rk-pipe-guide .rk-snail-visual-layout {
    display: grid;
    gap: 22px;
    grid-template-columns: minmax(0, 1.25fr) minmax(300px, 0.75fr);
  }

  #rk-pipe-guide .rk-snail-board {
    background: #f8fcfd;
    border: 1px solid #4d7183;
    border-radius: 18px;
    min-height: 420px;
    overflow: hidden;
    padding: 15px;
  }

  #rk-pipe-guide .rk-snail-board svg {
    display: block;
    height: auto;
    width: 100%;
  }

  #rk-pipe-guide .rk-snail-room {
    fill: #eaf3f6;
    stroke: #8ca9b6;
    stroke-width: 2;
  }

  #rk-pipe-guide .rk-snail-door {
    fill: #ffffff;
    stroke: #8ca9b6;
    stroke-width: 2;
  }

  #rk-pipe-guide .rk-snail-window {
    stroke: #29c4d7;
    stroke-linecap: round;
    stroke-width: 8;
  }

  #rk-pipe-guide .rk-snail-route {
    fill: none;
    opacity: 0.11;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 8;
    transition: opacity 180ms ease, stroke-width 180ms ease;
  }

  #rk-pipe-guide .rk-snail-route.is-supply {
    stroke: var(--rk-orange);
  }

  #rk-pipe-guide .rk-snail-route.is-return {
    stroke: #168cb7;
  }

  #rk-pipe-guide .rk-snail-route.is-done {
    opacity: 0.72;
  }

  #rk-pipe-guide .rk-snail-route.is-active {
    opacity: 1;
    stroke-width: 11;
  }

  #rk-pipe-guide .rk-snail-board-label {
    fill: var(--rk-ink);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 13px;
    font-weight: 800;
  }

  #rk-pipe-guide .rk-snail-board-small {
    fill: #547080;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 11px;
    font-weight: 700;
  }

  #rk-pipe-guide .rk-snail-stage-panel {
    background: #17394b;
    border: 1px solid #376177;
    border-radius: 18px;
    display: flex;
    flex-direction: column;
    padding: 24px;
  }

  #rk-pipe-guide .rk-snail-stage-kicker {
    color: #70e5ef;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  #rk-pipe-guide .rk-snail-stage-panel h3 {
    color: #ffffff;
    font-size: 1.55rem;
    line-height: 1.25;
    margin: 9px 0 10px;
  }

  #rk-pipe-guide .rk-snail-stage-panel > p {
    color: #c8dce3;
    margin: 0;
  }

  #rk-pipe-guide .rk-snail-stage-facts {
    display: grid;
    gap: 10px;
    margin-top: 21px;
  }

  #rk-pipe-guide .rk-snail-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-snail-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-snail-stage-fact span {
    color: #ffffff;
    font-size: 0.9rem;
  }

  #rk-pipe-guide .rk-snail-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-snail-step-button[aria-pressed="true"] {
    background: var(--rk-cyan);
    border-color: var(--rk-cyan);
    color: #072838;
  }

  #rk-pipe-guide .rk-snail-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-snail-step-button[aria-pressed="true"] .rk-snail-step-number {
    background: rgba(7, 40, 56, 0.13);
  }

  #rk-pipe-guide .rk-snail-step-button strong {
    display: block;
    font-size: 0.94rem;
    line-height: 1.3;
  }

  #rk-pipe-guide .rk-snail-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 20px;
    margin-top: 18px;
  }

  #rk-pipe-guide .rk-snail-legend span {
    align-items: center;
    color: #c8dce3;
    display: inline-flex;
    font-size: 0.82rem;
    font-weight: 800;
    gap: 8px;
  }

  #rk-pipe-guide .rk-snail-legend i {
    border-radius: 999px;
    display: inline-block;
    height: 7px;
    width: 32px;
  }

  #rk-pipe-guide .rk-snail-legend .is-hot {
    background: var(--rk-orange);
  }

  #rk-pipe-guide .rk-snail-legend .is-cool {
    background: #168cb7;
  }

  #rk-pipe-guide .rk-snail-calculator {
    background: #102f42;
    border: 1px solid #315a70;
    border-radius: 22px;
    margin-top: 32px;
    padding: 28px;
  }

  #rk-pipe-guide .rk-snail-calculator-head {
    border-bottom: 1px solid #315a70;
    margin-bottom: 24px;
    padding-bottom: 19px;
  }

  #rk-pipe-guide .rk-snail-calculator-head h3 {
    color: #ffffff;
    font-size: clamp(1.55rem, 3vw, 2.3rem);
    line-height: 1.2;
    margin: 0;
  }

  #rk-pipe-guide .rk-snail-calculator-head p {
    color: #bad3dc;
    margin: 9px 0 0;
  }

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

  #rk-pipe-guide .rk-snail-field {
    display: block;
  }

  #rk-pipe-guide .rk-snail-field span {
    color: #eaf6f8;
    display: block;
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1.35;
    margin-bottom: 7px;
  }

  #rk-pipe-guide .rk-snail-field input,
  #rk-pipe-guide .rk-snail-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-snail-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    margin-top: 20px;
  }

  #rk-pipe-guide .rk-snail-calculate,
  #rk-pipe-guide .rk-snail-reset {
    border-radius: 11px;
    cursor: pointer;
    font-weight: 900;
    min-height: 48px;
    padding: 11px 18px;
  }

  #rk-pipe-guide .rk-snail-calculate {
    background: var(--rk-orange);
    border: 1px solid var(--rk-orange);
    color: #ffffff;
  }

  #rk-pipe-guide .rk-snail-calculate:hover {
    background: var(--rk-orange-dark);
  }

  #rk-pipe-guide .rk-snail-reset {
    background: transparent;
    border: 1px solid #5d7c8d;
    color: #ffffff;
  }

  #rk-pipe-guide .rk-snail-calculator-result {
    background: #ffffff;
    border-left: 7px solid var(--rk-yellow);
    border-radius: 17px;
    margin-top: 22px;
    padding: 24px;
  }

  #rk-pipe-guide .rk-snail-calculator-result.is-good {
    border-left-color: var(--rk-green);
  }

  #rk-pipe-guide .rk-snail-calculator-result.is-stop {
    border-left-color: var(--rk-orange);
  }

  #rk-pipe-guide .rk-snail-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-snail-result-intro {
    color: var(--rk-copy);
    margin: 8px 0 0;
  }

  #rk-pipe-guide .rk-snail-result-card {
    background: #f4f9fa;
    border: 1px solid var(--rk-line);
    border-radius: 13px;
    padding: 16px;
  }

  #rk-pipe-guide .rk-snail-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-snail-result-card span {
    color: var(--rk-ink);
    display: block;
    font-size: 1.35rem;
    font-weight: 900;
    line-height: 1.2;
  }

  #rk-pipe-guide .rk-snail-result-card small {
    color: var(--rk-muted);
    display: block;
    font-size: 0.75rem;
    margin-top: 5px;
  }

  #rk-pipe-guide .rk-snail-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-snail-results {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

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

    #rk-pipe-guide .rk-snail-visual-layout {
      grid-template-columns: minmax(0, 1fr);
    }

    #rk-pipe-guide .rk-snail-board {
      min-height: 0;
    }
  }

  @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-snail-step-grid,
    #rk-pipe-guide .rk-snail-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-snail-step-grid,
    #rk-pipe-guide .rk-snail-results,
    #rk-pipe-guide .rk-snail-check-grid,
    #rk-pipe-guide .rk-snail-fields {
      grid-template-columns: minmax(0, 1fr);
    }

    #rk-pipe-guide .rk-snail-visual,
    #rk-pipe-guide .rk-snail-calculator,
    #rk-pipe-guide .rk-pipe-cta {
      border-radius: 17px;
      padding: 20px;
    }

    #rk-pipe-guide .rk-snail-stage-panel,
    #rk-pipe-guide .rk-snail-calculator-result {
      padding: 18px;
    }

    #rk-pipe-guide .rk-snail-actions {
      display: grid;
      grid-template-columns: minmax(0, 1fr);
    }

    #rk-pipe-guide .rk-snail-calculate,
    #rk-pipe-guide .rk-snail-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;
    }
  }
</style>

<article id="rk-pipe-guide" aria-labelledby="rk-snail-visual-title">
  <div class="rk-pipe-shell">
    <header class="rk-pipe-hero">
      <span class="rk-pipe-kicker">Od obciążenia pomieszczenia do poprawnie zamkniętej pętli</span>
      <div class="rk-pipe-hero-title" id="rk-snail-visual-title">Układ ślimakowy podłogówki: <span>geometria bez zgadywania</span></div>
      <p class="rk-pipe-hero-lead">Ślimak prowadzi cieplejszy przewód zasilający obok chłodniejszego przewodu powrotnego, dzięki czemu ułatwia uzyskanie równomiernego rozkładu temperatury podłogi. Sam kształt nie dobiera jednak mocy, rozstawu, przepływu ani długości pętli — te parametry muszą wynikać z obliczeń.</p>
      <div class="rk-pipe-hero-tags" aria-label="Zakres poradnika">
        <span>schemat krok po kroku</span>
        <span>zasada podwójnego rozstawu</span>
        <span>kalkulator pętli</span>
        <span>dobiegi i dylatacje</span>
        <span>błędy wykonawcze</span>
      </div>
      <div class="rk-pipe-meta">
        <span>Autor: <strong>Robert Kucharski</strong></span>
        <span>Czas czytania: <strong>około 24 minuty</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-snail-answer">Szybka odpowiedź</a>
      <a href="#rk-snail-operation">Jak działa</a>
      <a href="#rk-snail-inputs">Dane wejściowe</a>
      <a href="#rk-snail-visual">Schemat interaktywny</a>
      <a href="#rk-snail-calculator-section">Kalkulator pętli</a>
      <a href="#rk-snail-spacing">Rozstaw i nawrót</a>
      <a href="#rk-snail-edge">Strefy brzegowe</a>
      <a href="#rk-snail-obstacles">Przeszkody</a>
      <a href="#rk-snail-hydraulics">Hydraulika</a>
      <a href="#rk-snail-manifold">Rozdzielacz</a>
      <a href="#rk-snail-dilatation">Dylatacje</a>
      <a href="#rk-snail-test">Próba i odbiór</a>
      <a href="#rk-snail-comparison">Ślimak czy meander</a>
      <a href="#rk-snail-errors">Błędy</a>
      <a href="#rk-snail-checklist">Checklista</a>
      <a href="#rk-snail-final">Podsumowanie</a>
      <a href="#rk-snail-sources">Źródła</a>
      <a href="#rk-snail-faq">FAQ</a>
      <a href="#rk-snail-author">Autor</a>
    </nav>

    <section class="rk-pipe-section" id="rk-snail-answer">
      <span class="rk-pipe-eyebrow">Odpowiedź w 60 sekund</span>
      <h2 class="rk-pipe-section-title">Na czym polega układ ślimakowy ogrzewania podłogowego?</h2>
      <p class="rk-pipe-lead"><strong>Układ ślimakowy, nazywany też spiralnym, jest sposobem prowadzenia jednej ciągłej rury od rozdzielacza, przez pole grzewcze i z powrotem do rozdzielacza.</strong> Pierwsza część obwodu biegnie do wnętrza pola z pozostawieniem miejsca, które podczas powrotu wypełnia druga część tej samej rury.</p>
      <div class="rk-pipe-answer">
        <strong>Jeżeli docelowy rozstaw wynosi 10 cm, podczas prowadzenia zasilania pozostawia się zwykle wolne międzyrzędzia tak, aby powrót uzupełnił trasę do rozstawu 10 cm.</strong>
        <p>Cieplejsze i chłodniejsze odcinki sąsiadują ze sobą, co sprzyja wyrównaniu temperatury powierzchni. Nie oznacza to jednak identycznej temperatury w każdym punkcie ani automatycznie mniejszych oporów całej instalacji.</p>
      </div>
      <div class="rk-pipe-grid-3">
        <article class="rk-pipe-card"><span class="rk-pipe-icon">1</span><h3>Jedna nieprzerwana rura</h3><p>Pętla rozpoczyna się i kończy na rozdzielaczu. W polu grzewczym nie planuje się przypadkowych, ukrytych połączeń.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-icon">2</span><h3>Zasilanie obok powrotu</h3><p>Sąsiadujące odcinki mają różne temperatury, dlatego ich naprzemienne położenie pomaga ograniczyć pasowy rozkład ciepła.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-icon">3</span><h3>Geometria po obliczeniach</h3><p>Najpierw ustala się obciążenie pomieszczenia, powierzchnię czynną, moc podłogi i rozstaw, a dopiero potem rysuje trasę.</p></article>
      </div>
      <p class="rk-pipe-copy">Jeżeli chcesz najpierw uporządkować zasadę działania całego systemu, zobacz poradnik <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/">jak działa ogrzewanie podłogowe</a>. Ten artykuł skupia się wyłącznie na wykonaniu pojedynczego układu ślimakowego.</p>
    </section>

    <section class="rk-pipe-section rk-pipe-section-soft" id="rk-snail-operation">
      <span class="rk-pipe-eyebrow">Co wynika z geometrii, a co z projektu</span>
      <h2 class="rk-pipe-section-title">Co ślimak poprawia, a czego nie gwarantuje?</h2>
      <p class="rk-pipe-lead">Ślimak jest sposobem rozmieszczenia rury. Nie jest osobnym źródłem ciepła, parametrem hydraulicznym ani receptą na stałą temperaturę zasilania.</p>
      <div class="rk-pipe-table-wrap">
        <table>
          <thead><tr><th>Zagadnienie</th><th>Co może dać układ ślimakowy</th><th>Czego nie można obiecać bez obliczeń</th></tr></thead>
          <tbody>
            <tr><td data-label="Zagadnienie"><strong>Temperatura powierzchni</strong></td><td data-label="Co może dać ślimak">Naprzemienne sąsiedztwo zasilania i powrotu sprzyja bardziej równomiernemu profilowi.</td><td data-label="Czego nie można obiecać">Jednej temperatury w całym pomieszczeniu ani konkretnej różnicy wyrażonej w kelwinach.</td></tr>
            <tr><td data-label="Zagadnienie"><strong>Moc cieplna</strong></td><td data-label="Co może dać ślimak">Pozwala rozmieścić powierzchnię grzejną zgodnie z ustalonym rozstawem.</td><td data-label="Czego nie można obiecać">Pokrycia strat ciepła bez sprawdzenia konstrukcji podłogi, temperatur i powierzchni czynnej.</td></tr>
            <tr><td data-label="Zagadnienie"><strong>Hydraulika</strong></td><td data-label="Co może dać ślimak">Umożliwia wykonanie łagodnych zmian kierunku i czytelny podział pola.</td><td data-label="Czego nie można obiecać">Stałego procentowego spadku oporów względem meandra. Decydują też długość, światło rury i przepływ.</td></tr>
            <tr><td data-label="Zagadnienie"><strong>Pompa ciepła</strong></td><td data-label="Co może dać ślimak">Może pomóc wykorzystać dużą powierzchnię przy niskiej temperaturze, jeśli system ma wymaganą moc.</td><td data-label="Czego nie można obiecać">Określonego wzrostu COP lub oszczędności wynikających wyłącznie z kształtu pętli.</td></tr>
          </tbody>
        </table>
      </div>
      <div class="rk-pipe-note"><p><strong>Najważniejsze rozróżnienie:</strong> układ rury wpływa na przestrzenne oddawanie ciepła, natomiast moc, przepływ i strata ciśnienia są wynikami obliczeniowymi.</p></div>
    </section>

    <section class="rk-pipe-section" id="rk-snail-inputs">
      <span class="rk-pipe-eyebrow">Zanim rozwiniesz pierwszy metr rury</span>
      <h2 class="rk-pipe-section-title">Jakie dane są potrzebne przed rozrysowaniem ślimaka?</h2>
      <p class="rk-pipe-lead">Rysowanie trasy rozpoczyna się dopiero wtedy, gdy wiadomo, ile ciepła ma oddać podłoga oraz jaka część pomieszczenia może być aktywnie ogrzewana.</p>
      <div class="rk-pipe-grid-4">
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">01</span><h3>Obciążenie pomieszczenia</h3><p>Wartość w watach wynikająca z obliczeń dla warunków projektowych, a nie ze średniego wskaźnika całego domu.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">02</span><h3>Powierzchnia czynna</h3><p>Pole po odjęciu trwałej zabudowy, wyłączeń i miejsc, w których rury nie powinny być prowadzone.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">03</span><h3>Warstwy podłogi</h3><p>Rodzaj jastrychu, przykrycie rury, okładzina i jej rzeczywisty opór cieplny wraz z podkładem.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">04</span><h3>Parametry wody</h3><p>Temperatura zasilania i powrotu przyjęta dla całego systemu oraz wymagana moc jednostkowa.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">05</span><h3>Rozstaw</h3><p>Dobierany z charakterystyki systemu do potrzebnej mocy i ograniczeń temperatury powierzchni.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">06</span><h3>Położenie rozdzielacza</h3><p>Wpływa na długość dobiegów, liczbę przejść przez progi oraz rzeczywistą długość każdej pętli.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">07</span><h3>Pola dylatacyjne</h3><p>Trasa musi uwzględniać układ jastrychu, przejścia i wymagane odcinki ochronne.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">08</span><h3>Hydraulika</h3><p>Planowane długości, przepływy i opory muszą mieścić się w możliwościach rozdzielacza oraz pompy.</p></article>
      </div>
      <p class="rk-pipe-copy">Początkiem jest <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne pomieszczeń</a>. Następnie wyznacza się miejsca, <a href="https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/">w których nie układać ogrzewania podłogowego</a>, i dopiero wtedy planuje <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">rozmieszczenie pętli grzewczych</a>.</p>
    </section>

    <section class="rk-pipe-section rk-pipe-section-dark" id="rk-snail-visual">
      <span class="rk-pipe-eyebrow">Moduł edukacyjny</span>
      <h2 class="rk-pipe-section-title">Interaktywny schemat układu ślimakowego krok po kroku</h2>
      <p class="rk-pipe-lead">Klikaj kolejne etapy. Schemat pokazuje zasadę podwójnego rozstawu na prostokątnym polu. W prawdziwym pomieszczeniu przebieg trzeba dostosować do rzutu, powierzchni czynnej, dylatacji i dopuszczalnego promienia gięcia rury.</p>
      <div class="rk-snail-visual" id="rk-snail-visual-tool">
        <div class="rk-snail-visual-head">
          <h3>Jak zasilanie zmienia się w powrót?</h3>
          <p>Kolor pomarańczowy oznacza pierwszą część obwodu, a niebieski powrót prowadzony pomiędzy pozostawionymi odcinkami.</p>
        </div>
        <div class="rk-snail-visual-layout">
          <div>
            <div class="rk-snail-board">
              <svg viewBox="0 0 640 420" role="img" aria-labelledby="rk-snail-svg-title rk-snail-svg-desc">
                <title id="rk-snail-svg-title">Schemat wykonywania pętli ogrzewania podłogowego w układzie ślimakowym</title>
                <desc id="rk-snail-svg-desc">Sześć etapów prowadzenia rury od rozdzielacza, do środka pola grzewczego i z powrotem.</desc>
                <rect class="rk-snail-room" x="48" y="38" width="552" height="342" rx="10"></rect>
                <line class="rk-snail-window" x1="190" y1="38" x2="450" y2="38"></line>
                <rect class="rk-snail-door" x="48" y="328" width="22" height="52"></rect>
                <rect x="4" y="330" width="38" height="72" rx="8" fill="#d9e7ec" stroke="#7595a4" stroke-width="2"></rect>
                <text class="rk-snail-board-small" x="3" y="322">rozdzielacz</text>
                <text class="rk-snail-board-label" x="15" y="355">Z</text>
                <text class="rk-snail-board-label" x="15" y="390">P</text>
                <text class="rk-snail-board-small" x="273" y="27">przeszklenie</text>
                <path class="rk-snail-route is-supply" data-rk-stage="1" d="M 22 354 L 60 354 L 60 52"></path>
                <path class="rk-snail-route is-supply" data-rk-stage="2" d="M 60 52 L 586 52 L 586 366 L 92 366 L 92 82 L 556 82 L 556 336"></path>
                <path class="rk-snail-route is-supply" data-rk-stage="3" d="M 556 336 L 122 336 L 122 112 L 526 112 L 526 306 L 152 306 L 152 142 L 496 142 L 496 276 L 182 276 L 182 172 L 466 172 L 466 246 L 212 246 L 212 202 L 436 202"></path>
                <path class="rk-snail-route is-supply" data-rk-stage="4" d="M 436 202 Q 451 202 451 217 Q 451 232 436 232 L 227 232"></path>
                <path class="rk-snail-route is-return" data-rk-stage="5" d="M 227 232 L 227 261 L 481 261 L 481 157 L 167 157 L 167 291 L 511 291 L 511 127 L 137 127 L 137 321 L 541 321 L 541 97 L 107 97 L 107 351 L 571 351 L 571 67 L 77 67 L 77 380"></path>
                <path class="rk-snail-route is-return" data-rk-stage="6" d="M 77 380 L 22 380"></path>
                <circle cx="22" cy="354" r="5" fill="#ff6846"></circle>
                <circle cx="22" cy="380" r="5" fill="#168cb7"></circle>
              </svg>
            </div>
            <div class="rk-snail-legend" aria-hidden="true">
              <span><i class="is-hot"></i>zasilanie — pierwsza część pętli</span>
              <span><i class="is-cool"></i>powrót — druga część pętli</span>
            </div>
          </div>
          <div class="rk-snail-stage-panel" aria-live="polite">
            <span class="rk-snail-stage-kicker" id="rk-snail-stage-kicker">Etap 1 z 6</span>
            <h3 id="rk-snail-stage-title">Wyjdź z rozdzielacza</h3>
            <p id="rk-snail-stage-copy">Poprowadź jeden ciągły odcinek do początku powierzchni czynnej. Dobieg jest częścią całkowitej długości oraz straty ciśnienia pętli.</p>
            <div class="rk-snail-stage-facts">
              <div class="rk-snail-stage-fact"><strong>Cel etapu</strong><span id="rk-snail-stage-purpose">Dojść do pola możliwie czytelną, chronioną trasą.</span></div>
              <div class="rk-snail-stage-fact"><strong>Sprawdź</strong><span id="rk-snail-stage-check">Przejścia przez progi, dylatacje oraz kolizje z innymi instalacjami.</span></div>
              <div class="rk-snail-stage-fact"><strong>Typowy błąd</strong><span id="rk-snail-stage-error">Pomijanie dobiegu podczas obliczania długości obwodu.</span></div>
            </div>
          </div>
        </div>
        <div class="rk-snail-step-grid" aria-label="Etapy wykonania układu ślimakowego">
          <button class="rk-snail-step-button" type="button" aria-pressed="true" data-rk-snail-step="1"><span class="rk-snail-step-number">1</span><strong>Wyjście z rozdzielacza</strong></button>
          <button class="rk-snail-step-button" type="button" aria-pressed="false" data-rk-snail-step="2"><span class="rk-snail-step-number">2</span><strong>Zewnętrzna część zasilania</strong></button>
          <button class="rk-snail-step-button" type="button" aria-pressed="false" data-rk-snail-step="3"><span class="rk-snail-step-number">3</span><strong>Spirala do środka</strong></button>
          <button class="rk-snail-step-button" type="button" aria-pressed="false" data-rk-snail-step="4"><span class="rk-snail-step-number">4</span><strong>Łagodny nawrót</strong></button>
          <button class="rk-snail-step-button" type="button" aria-pressed="false" data-rk-snail-step="5"><span class="rk-snail-step-number">5</span><strong>Powrót między rurami</strong></button>
          <button class="rk-snail-step-button" type="button" aria-pressed="false" data-rk-snail-step="6"><span class="rk-snail-step-number">6</span><strong>Zamknięcie pętli</strong></button>
        </div>
      </div>
      <div class="rk-pipe-note"><p><strong>To schemat zasady, nie rysunek wykonawczy.</strong> Nie pokazuje rzeczywistej liczby zwojów, skali, stref wyłączonych, przepływu ani oporów konkretnej pętli.</p></div>
    </section>

    <section class="rk-pipe-section rk-pipe-section-soft" id="rk-snail-calculator-section">
      <span class="rk-pipe-eyebrow">Kalkulator geometrii — bez udawania OZC</span>
      <h2 class="rk-pipe-section-title">Ile rury i ile pętli może wymagać układ ślimakowy?</h2>
      <p class="rk-pipe-lead">Kalkulator pokazuje wpływ powierzchni czynnej, rozstawu, długości dobiegu i planowanej liczby pętli. Nie wyznacza wymaganej mocy, przepływu ani spadku ciśnienia.</p>
      <div class="rk-snail-calculator" id="rk-snail-calculator">
        <div class="rk-snail-calculator-head">
          <h3>Sprawdź wariant podziału powierzchni</h3>
          <p>Zmieniaj liczbę pętli i obserwuj, jak do całkowitego metrażu dochodzą osobne podejścia każdego obwodu.</p>
        </div>
        <div class="rk-snail-fields">
          <label class="rk-snail-field"><span>Powierzchnia czynna [m²]</span><input id="rk-snail-area" type="number" min="1" max="500" step="0.1" value="20" inputmode="decimal"></label>
          <label class="rk-snail-field"><span>Docelowy rozstaw rur</span><select id="rk-snail-spacing-input"><option value="0.05">5 cm</option><option value="0.075">7,5 cm</option><option value="0.10">10 cm</option><option value="0.15" selected="">15 cm</option><option value="0.20">20 cm</option></select></label>
          <label class="rk-snail-field"><span>Dobieg w jedną stronę [m]</span><input id="rk-snail-approach" type="number" min="0" max="50" step="0.1" value="5" inputmode="decimal"></label>
          <label class="rk-snail-field"><span>Planowana liczba pętli</span><select id="rk-snail-loop-count"><option value="1">1 pętla</option><option value="2" selected="">2 pętle</option><option value="3">3 pętle</option><option value="4">4 pętle</option><option value="5">5 pętli</option><option value="6">6 pętli</option><option value="7">7 pętli</option><option value="8">8 pętli</option><option value="9">9 pętli</option><option value="10">10 pętli</option></select></label>
        </div>
        <div class="rk-snail-actions">
          <button class="rk-snail-calculate" id="rk-snail-calculate" type="button">Oblicz wariant</button>
          <button class="rk-snail-reset" id="rk-snail-reset" type="button">Przywróć przykład</button>
        </div>
        <div class="rk-snail-calculator-result" id="rk-snail-calculator-result" aria-live="polite">
          <p class="rk-snail-result-status" id="rk-snail-result-status">Wynik geometryczny — hydraulika pozostaje do sprawdzenia</p>
          <p class="rk-snail-result-intro" id="rk-snail-result-intro">Dwie pętle dzielą pole po 10,0 m². Średnia długość uwzględnia dwa osobne dobiegi.</p>
          <div class="rk-snail-results">
            <div class="rk-snail-result-card"><strong>Rura w polu</strong><span id="rk-snail-field-length">133,3 m</span><small>powierzchnia ÷ rozstaw</small></div>
            <div class="rk-snail-result-card"><strong>Łączne dobiegi</strong><span id="rk-snail-approach-length">20,0 m</span><small>tam i z powrotem dla każdej pętli</small></div>
            <div class="rk-snail-result-card"><strong>Łączna długość</strong><span id="rk-snail-total-length">153,3 m</span><small>wartość orientacyjna</small></div>
            <div class="rk-snail-result-card"><strong>Średnio na pętlę</strong><span id="rk-snail-average-length">76,7 m</span><small>rzeczywiste obwody mogą się różnić</small></div>
          </div>
          <p class="rk-snail-disclaimer">Wzór upraszcza geometrię. Nie uwzględnia rzeczywistych łuków, kształtu pola, lokalnych zagęszczeń, omijania przeszkód ani zapasu zakupowego. Wynik nie potwierdza średnicy rury, przepływu, oporu ani nastaw rozdzielacza.</p>
        </div>
      </div>
      <div class="rk-pipe-formula">L<sub>pola</sub> ≈ A ÷ s &nbsp; | &nbsp; L<sub>dobiegów</sub> = 2 × d × n &nbsp; | &nbsp; L<sub>średnia pętli</sub> ≈ (L<sub>pola</sub> + L<sub>dobiegów</sub>) ÷ n</div>
      <p class="rk-pipe-copy">Do samego szacowania materiału możesz wykorzystać również <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>. Wyjaśnienie zależności między rozstawem a zużyciem materiału znajdziesz w poradniku <a href="https://projekt-ogrzewania.pl/ile-rury-na-m%c2%b2-ogrzewania-podlogowego/">ile rury przypada na m² podłogówki</a>.</p>
      <aside class="rk-pipe-cta" aria-label="Indywidualny projekt ogrzewania podłogowego">
        <div class="rk-pipe-cta-title">Masz już geometrię i orientacyjną długość. Teraz trzeba sprawdzić, czy każda pętla dostarczy wymaganą moc</div>
        <p>Schemat i kalkulator nie wyznaczają obciążenia cieplnego pomieszczenia, temperatury zasilania, przepływów, oporów ani nastaw rozdzielacza. W projekcie łączymy te dane z rzeczywistym rzutem i dopiero wtedy rozrysowujemy obwody.</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-snail-spacing">
      <span class="rk-pipe-eyebrow">Najważniejsza zasada wykonawcza</span>
      <h2 class="rk-pipe-section-title">Podwójny rozstaw i nawrót w środku ślimaka</h2>
      <p class="rk-pipe-lead">Podczas pierwszego przejścia trzeba pozostawić miejsce na odcinek powrotny. To dlatego rozstaw widoczny przed wykonaniem powrotu jest większy od docelowego rozstawu gotowej pętli.</p>
      <div class="rk-pipe-table-wrap">
        <table>
          <thead><tr><th>Docelowy rozstaw</th><th>Odstęp podczas pierwszego przejścia</th><th>Po ułożeniu powrotu</th><th>Ważne zastrzeżenie</th></tr></thead>
          <tbody>
            <tr><td data-label="Docelowy rozstaw"><strong>5 cm</strong></td><td data-label="Pierwsze przejście">około 10 cm</td><td data-label="Gotowa pętla">odcinki co 5 cm</td><td data-label="Zastrzeżenie">Bardzo gęsty układ wymaga sprawdzenia wykonalności, promieni gięcia i sensu cieplnego.</td></tr>
            <tr><td data-label="Docelowy rozstaw"><strong>10 cm</strong></td><td data-label="Pierwsze przejście">około 20 cm</td><td data-label="Gotowa pętla">odcinki co 10 cm</td><td data-label="Zastrzeżenie">Nie jest to automatyczny standard dla każdego pomieszczenia.</td></tr>
            <tr><td data-label="Docelowy rozstaw"><strong>15 cm</strong></td><td data-label="Pierwsze przejście">około 30 cm</td><td data-label="Gotowa pętla">odcinki co 15 cm</td><td data-label="Zastrzeżenie">Musi pokryć obciążenie przy przyjętej temperaturze i okładzinie.</td></tr>
            <tr><td data-label="Docelowy rozstaw"><strong>20 cm</strong></td><td data-label="Pierwsze przejście">około 40 cm</td><td data-label="Gotowa pętla">odcinki co 20 cm</td><td data-label="Zastrzeżenie">Może zwiększać nierównomierność temperatury; wymaga weryfikacji systemowej.</td></tr>
          </tbody>
        </table>
      </div>
      <div class="rk-pipe-grid-3">
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">A</span><h3>Zostaw miejsce na powrót</h3><p>Odstęp musi być kontrolowany od początku. Błędu popełnionego na zewnętrznych zwojach nie da się wygodnie naprawić w środku.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">B</span><h3>Zaplanuj centrum</h3><p>Nie zwężaj spirali do punktu. Pozostaw pole na nawrót zgodny z minimalnym promieniem gięcia konkretnej rury.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">C</span><h3>Nie prostuj załamania na siłę</h3><p>Postępowanie z uszkodzonym odcinkiem powinno wynikać z instrukcji systemowej. Widoczne przewężenie wymaga oceny przed zakryciem.</p></article>
      </div>
      <p class="rk-pipe-copy">Rozstaw 10, 15 albo 20 cm nie wynika z samej nazwy źródła ciepła. Szczegółową procedurę opisuje poradnik <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstaw rur 10 czy 15 cm</a>. Trzeba również uwzględnić <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">opór cieplny warstw nad rurą</a>.</p>
    </section>

    <section class="rk-pipe-section rk-pipe-section-soft" id="rk-snail-edge">
      <span class="rk-pipe-eyebrow">Więcej strat nie zawsze oznacza więcej rury</span>
      <h2 class="rk-pipe-section-title">Układ ślimakowy przy dużych oknach i w strefie brzegowej</h2>
      <p class="rk-pipe-lead">Przy przeszkleniu można skierować cieplejszą część pętli w stronę większego obciążenia albo zastosować lokalnie mniejszy rozstaw. Taka decyzja powinna wynikać z obliczeń, a nie z automatycznej zasady „zawsze 5 cm przy oknie”.</p>
      <div class="rk-pipe-grid-3">
        <article class="rk-pipe-card"><span class="rk-pipe-icon">1</span><h3>Najpierw policz obciążenie</h3><p>Nowoczesne przeszklenie nie musi wymagać osobnej strefy. Znaczenie mają parametry okna, wymiar, orientacja i temperatura projektowa.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-icon">2</span><h3>Sprawdź moc podłogi</h3><p>Zagęszczenie ma sens tylko wtedy, gdy zwiększenie mocy jest potrzebne i nie przekracza ograniczeń temperatury powierzchni.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-icon">3</span><h3>Dopiero zmień trasę</h3><p>Można prowadzić zasilanie wzdłuż fasady, stopniować rozstaw albo wydzielić obwód — po sprawdzeniu hydrauliki.</p></article>
      </div>
      <div class="rk-pipe-note"><p><strong>Nie myl odczucia chłodu przy szybie z automatycznym błędem podłogówki.</strong> Na komfort wpływają również temperatura powierzchni przeszklenia i asymetria promieniowania.</p></div>
      <p class="rk-pipe-copy">Techniczne warianty pokazują poradniki o <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/">strefie brzegowej ogrzewania podłogowego</a> oraz <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/">projektowaniu podłogówki przy dużych przeszkleniach</a>.</p>
    </section>

    <section class="rk-pipe-section" id="rk-snail-obstacles">
      <span class="rk-pipe-eyebrow">Prawdziwy rzut rzadko jest prostokątem</span>
      <h2 class="rk-pipe-section-title">Wyspa kuchenna, zabudowa i nieregularne pomieszczenie</h2>
      <p class="rk-pipe-lead">Ślimak nie musi tworzyć idealnego kwadratu. Może zmieniać proporcje, omijać wyłączenia i obsługiwać kilka połączonych pól, pod warunkiem zachowania rozstawu, promieni gięcia oraz czytelnej drogi powrotnej.</p>
      <div class="rk-pipe-grid-2">
        <article class="rk-pipe-card">
          <span class="rk-pipe-card-number">PLANUJ</span>
          <h3>Obrysuj rzeczywistą powierzchnię czynną</h3>
          <ul class="rk-pipe-bullets">
            <li>zaznacz stałą zabudowę i urządzenia wymagające wyłączenia,</li>
            <li>wyznacz dojście od rozdzielacza,</li>
            <li>sprawdź możliwość powrotu pomiędzy zwojami,</li>
            <li>pozostaw miejsce na łagodne nawroty,</li>
            <li>nie twórz wąskich kieszeni z przypadkowym zagęszczeniem.</li>
          </ul>
        </article>
        <article class="rk-pipe-card">
          <span class="rk-pipe-card-number">DZIEL</span>
          <h3>Duże pole podziel na obliczone obwody</h3>
          <p>Jeden ogromny ślimak nie jest celem. Jeżeli długość lub wymagana moc prowadzą do zbyt dużego przepływu i oporu, powierzchnię dzieli się na dwa albo więcej pól o logicznych granicach.</p>
        </article>
      </div>
      <p class="rk-pipe-copy">W pomieszczeniach z trwałą zabudową pomocny jest poradnik <a href="https://projekt-ogrzewania.pl/wodne-ogrzewanie-podlogowe-a-meble-jak-polaczyc-komfort-i-aranzacje/">ogrzewanie podłogowe a meble</a>. Przykład podziału większej strefy znajdziesz w odpowiedzi na pytanie, <a href="https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/">ile pętli podłogówki potrzeba w salonie</a>.</p>
    </section>

    <section class="rk-pipe-section rk-pipe-section-soft" id="rk-snail-hydraulics">
      <span class="rk-pipe-eyebrow">Kształt to nie charakterystyka przepływu</span>
      <h2 class="rk-pipe-section-title">Długość pętli, przepływ i strata ciśnienia</h2>
      <p class="rk-pipe-lead">Dwie pętle o podobnym kształcie mogą mieć różne opory, jeżeli różnią się światłem rury, długością, przepływem, temperaturą albo medium. Z kolei meander i ślimak wykonane z tej samej rury przy podobnej długości nie mają z definicji stałej procentowej różnicy oporu.</p>
      <div class="rk-pipe-grid-4">
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">Q</span><h3>Moc pętli</h3><p>Wraz z projektową różnicą temperatur określa potrzebny przepływ wody.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">V̇</span><h3>Przepływ</h3><p>Wpływa na prędkość w rurze oraz jednostkową stratę ciśnienia.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">L</span><h3>Długość</h3><p>Obejmuje pole grzewcze, oba dobiegi i wszystkie odcinki obwodu.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">dᵢ</span><h3>Światło rury</h3><p>Rzeczywista średnica wewnętrzna ma bezpośrednie znaczenie dla oporu.</p></article>
      </div>
      <p class="rk-pipe-copy">Pułap około 100 m dla rury 16 × 2 mm jest często stosowaną granicą roboczą, ale nie zastępuje obliczeń. Pętla krótsza może mieć za duży opór przy wysokim przepływie, a ocena dłuższej wymaga danych konkretnego układu. Zobacz osobne opracowania o <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">maksymalnej długości pętli ogrzewania podłogowego</a> oraz skutkach, jakie może powodować <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/">za długa pętla podłogówki</a>.</p>
      <div class="rk-pipe-note rk-pipe-note-bad"><p><strong>Nie zwiększaj temperatury zasilania po to, aby ukryć problem przepływu.</strong> Niedogrzana pętla wymaga diagnostyki przyczyny: nastawy, zapowietrzenia, oporu, pompy, zabrudzenia albo błędu projektowego.</p></div>
    </section>

    <section class="rk-pipe-section" id="rk-snail-manifold">
      <span class="rk-pipe-eyebrow">Każda pętla pracuje w układzie równoległym</span>
      <h2 class="rk-pipe-section-title">Rozdzielacz, dobiegi i równoważenie pętli ślimakowych</h2>
      <p class="rk-pipe-lead">Pętle nie muszą mieć identycznej długości ani różnić się o mniej niż arbitralne 10%. Muszą natomiast otrzymać obliczone przepływy przy stratach ciśnienia możliwych do zrównoważenia na rozdzielaczu.</p>
      <div class="rk-pipe-grid-3">
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">01</span><h3>Lokalizacja rozdzielacza</h3><p>Powinna ograniczać niepotrzebne dobiegi, liczbę skrzyżowań i koncentrację rur w korytarzach.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">02</span><h3>Opis obwodów</h3><p>Każda para zasilanie–powrót powinna być jednoznacznie opisana nazwą pomieszczenia lub numerem projektu.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">03</span><h3>Nastawy projektowe</h3><p>Rotametr służy do ustawienia wymaganego przepływu, a nie do wyrównania wszystkich wskazań do jednej liczby.</p></article>
      </div>
      <p class="rk-pipe-copy">Budowę i funkcje urządzenia opisuje poradnik <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielacz do ogrzewania podłogowego</a>. Przy uruchomieniu potrzebna jest również znajomość zasady działania <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametru i wskaźnika przepływu</a>.</p>
    </section>

    <section class="rk-pipe-section rk-pipe-section-soft" id="rk-snail-dilatation">
      <span class="rk-pipe-eyebrow">Trasa musi współpracować z konstrukcją podłogi</span>
      <h2 class="rk-pipe-section-title">Dylatacje, mocowanie rur i wykonanie jastrychu</h2>
      <p class="rk-pipe-lead">Układ pętli trzeba skoordynować z polami jastrychu. Odcinki przechodzące przez zaplanowane szczeliny wymagają ochrony zgodnej z projektem podłogi i dokumentacją systemu.</p>
      <div class="rk-pipe-grid-3">
        <article class="rk-pipe-card"><span class="rk-pipe-icon">D</span><h3>Dylatacje</h3><p>Nie prowadź aktywnej części ślimaka bez kontroli przez szczeliny. Przejścia dobiegów wykonuj w przewidzianych osłonach i lokalizacjach.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-icon">M</span><h3>Mocowanie</h3><p>Rozstaw mocowań musi utrzymać trasę i promienie podczas chodzenia po instalacji oraz wykonywania jastrychu.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-icon">J</span><h3>Jastrych</h3><p>Rodzaj, grubość, pola, wygrzewanie i warunki wykonania wynikają z projektu oraz dokumentacji zastosowanej mieszanki.</p></article>
      </div>
      <ul class="rk-pipe-bullets">
        <li>taśmę brzegową prowadź ciągle przy elementach pionowych,</li>
        <li>nie przypisuj folii pod rurą funkcji „odbicia ciepła” bez szczeliny powietrznej,</li>
        <li>rur nie mocuj w sposób powodujący ich uszkodzenie lub trwałe spłaszczenie,</li>
        <li>przed zakryciem sprawdź rozstaw, promienie, przejścia i zgodność z rysunkiem,</li>
        <li>utrzymuj warunki podczas wykonywania jastrychu zgodnie z procedurą systemową.</li>
      </ul>
      <p class="rk-pipe-copy">Więcej informacji zawierają poradniki o <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacji brzegowej i dylatacjach</a> oraz o prawidłowej <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewce na ogrzewanie podłogowe</a>.</p>
    </section>

    <section class="rk-pipe-section" id="rk-snail-test">
      <span class="rk-pipe-eyebrow">Zanim trasa zniknie pod posadzką</span>
      <h2 class="rk-pipe-section-title">Próba szczelności, zdjęcia i odbiór wykonania</h2>
      <p class="rk-pipe-lead">Jedna liczba dotycząca ciśnienia i czasu nie opisuje każdej procedury. Próbę wykonuje się według projektu, wymagań systemu i właściwej procedury, z uwzględnieniem zmian temperatury wpływających na odczyt.</p>
      <div class="rk-pipe-grid-4">
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">1</span><h3>Napełnij i odpowietrz</h3><p>Pracuj kolejno z obwodami, aby powietrze nie pozostało w przypadkowo zamkniętej pętli.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">2</span><h3>Wykonaj próbę</h3><p>Zapisz medium, ciśnienie, czas, temperaturę i wynik zgodnie z przyjętą procedurą.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">3</span><h3>Sfotografuj trasę</h3><p>Zdjęcia wykonaj z punktami odniesienia, aby później odtworzyć położenie rur.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">4</span><h3>Podpisz protokół</h3><p>Powiąż numery pętli, długości, pomieszczenia i wynik próby z dokumentacją powykonawczą.</p></article>
      </div>
      <div class="rk-pipe-note rk-pipe-note-good"><p><strong>Ciśnienie podczas wykonywania jastrychu służy także kontroli ewentualnego uszkodzenia.</strong> Nie traktuj go jednak jako uniwersalnej ochrony mechanicznej ani powodu do pomijania ostrożności.</p></div>
      <p class="rk-pipe-copy">Pełną procedurę omawia artykuł o <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próbie szczelności ogrzewania podłogowego</a>. Jeżeli problem pojawia się podczas napełniania lub eksploatacji, sprawdź również <a href="https://projekt-ogrzewania.pl/objawy-zapowietrzenia-ogrzewania-podlogowego/">objawy zapowietrzenia podłogówki</a>.</p>
    </section>

    <section class="rk-pipe-section rk-pipe-section-soft" id="rk-snail-comparison">
      <span class="rk-pipe-eyebrow">Krótko, bez tworzenia rankingu</span>
      <h2 class="rk-pipe-section-title">Ślimak, meander czy układ mieszany?</h2>
      <p class="rk-pipe-lead">Ślimak jest częstym wyborem w regularnych pokojach i dużych strefach. Nie oznacza to, że meander jest rozwiązaniem przestarzałym albo zawsze hydraulicznym błędem.</p>
      <div class="rk-pipe-table-wrap">
        <table>
          <thead><tr><th>Układ</th><th>Najważniejsza cecha</th><th>Kiedy bywa praktyczny</th><th>Ograniczenie</th></tr></thead>
          <tbody>
            <tr><td data-label="Układ"><strong>Ślimak</strong></td><td data-label="Cecha">Naprzemienne sąsiedztwo zasilania i powrotu.</td><td data-label="Zastosowanie">Regularne i większe pola, gdy celem jest równomierny rozkład.</td><td data-label="Ograniczenie">Potrzebuje miejsca na nawrót i zaplanowanej drogi powrotnej.</td></tr>
            <tr><td data-label="Układ"><strong>Meander</strong></td><td data-label="Cecha">Kolejne równoległe przejścia od początku do końca pola.</td><td data-label="Zastosowanie">Wąskie pasy, korytarze i pola, w których kontrolowany gradient jest użyteczny.</td><td data-label="Ograniczenie">Temperatura wzdłuż kierunku przepływu może zmieniać się wyraźniej.</td></tr>
            <tr><td data-label="Układ"><strong>Podwójny meander</strong></td><td data-label="Cecha">Przeplatanie odcinków o różnych temperaturach.</td><td data-label="Zastosowanie">Pola trudne dla klasycznego ślimaka, gdy trzeba ograniczyć pasowy rozkład.</td><td data-label="Ograniczenie">Wymaga starannego zaplanowania kolejności przejść.</td></tr>
            <tr><td data-label="Układ"><strong>Mieszany</strong></td><td data-label="Cecha">Różne sposoby prowadzenia w jednej instalacji.</td><td data-label="Zastosowanie">Nieregularne rzuty i strefy o odmiennych zadaniach.</td><td data-label="Ograniczenie">Każda pętla nadal wymaga własnego przepływu i obliczonego oporu.</td></tr>
          </tbody>
        </table>
      </div>
      <p class="rk-pipe-copy">Pełne porównanie znajduje się w poradniku <a href="https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/">ślimak, meander czy podwójny meander</a>. Sam sposób wykonania drugiego wariantu opisuje artykuł <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/">instalacja ogrzewania podłogowego w układzie meandrowym</a>.</p>
    </section>

    <section class="rk-pipe-section" id="rk-snail-errors">
      <span class="rk-pipe-eyebrow">Błędy widoczne przed wylewką</span>
      <h2 class="rk-pipe-section-title">Najczęstsze błędy przy układaniu podłogówki w ślimak</h2>
      <div class="rk-pipe-grid-3">
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">BŁĄD 1</span><h3>Rysowanie bez OZC</h3><p>Ładny i równy ślimak nie potwierdza, że podłoga pokryje straty pomieszczenia.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">BŁĄD 2</span><h3>Pomijanie powierzchni wyłączonych</h3><p>Metraż brutto prowadzi do błędnej długości, liczby pętli i rozmieszczenia aktywnego pola.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">BŁĄD 3</span><h3>Brak podwójnego rozstawu</h3><p>Zbyt gęste pierwsze przejście nie pozostawia miejsca na równomierne ułożenie powrotu.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">BŁĄD 4</span><h3>Zbyt ciasny środek</h3><p>Próba domknięcia spirali w punkcie może zakończyć się załamaniem i przewężeniem rury.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">BŁĄD 5</span><h3>Stałe 100 m bez hydrauliki</h3><p>Okrągła granica nie sprawdza przepływu, oporu ani możliwości pompy i rozdzielacza.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">BŁĄD 6</span><h3>Równe rotametry dla wszystkich</h3><p>Każde pomieszczenie i pętla mogą potrzebować innego projektowego przepływu.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">BŁĄD 7</span><h3>Zawsze 5 cm przy oknie</h3><p>Strefa brzegowa jest decyzją cieplną, a nie obowiązkowym elementem każdego przeszklenia.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">BŁĄD 8</span><h3>Niechronione przejścia</h3><p>Dobiegi przecinające szczeliny konstrukcyjne bez właściwego rozwiązania są narażone na uszkodzenie.</p></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">BŁĄD 9</span><h3>Brak zdjęć i protokołu</h3><p>Po wykonaniu posadzki nie da się wiarygodnie odtworzyć tras bez dokumentacji.</p></article>
      </div>
      <p class="rk-pipe-copy">Szersze zestawienie znajdziesz w poradniku 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>. Przed rozpoczęciem prac warto też przygotować pełną listę <a href="https://projekt-ogrzewania.pl/jakie-materialy-sa-potrzebne-do-instalacji-ogrzewania-podlogowego/">materiałów potrzebnych do instalacji</a>.</p>
    </section>

    <section class="rk-pipe-section rk-pipe-section-soft" id="rk-snail-checklist">
      <span class="rk-pipe-eyebrow">Odbiór przed zakryciem rur</span>
      <h2 class="rk-pipe-section-title">Checklista poprawnie wykonanej pętli ślimakowej</h2>
      <p class="rk-pipe-lead">Lista nie zastępuje projektu ani protokołu, ale pomaga wychwycić widoczne odstępstwa w momencie, gdy można je jeszcze poprawić bez kucia posadzki.</p>
      <div class="rk-snail-check-grid">
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">PROJEKT</span><h3>Zgodność z rysunkiem</h3><ul class="rk-pipe-bullets"><li>właściwe pomieszczenie i numer pętli,</li><li>rozstaw i powierzchnia czynna,</li><li>planowana długość obwodu,</li><li>strefy brzegowe tylko tam, gdzie wskazano,</li><li>dobiegi zgodne z trasą.</li></ul></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">MONTAŻ</span><h3>Stan rury i mocowań</h3><ul class="rk-pipe-bullets"><li>brak załamań i spłaszczeń,</li><li>zachowane promienie gięcia,</li><li>stabilne mocowanie,</li><li>brak przypadkowych połączeń,</li><li>ochrona w przejściach.</li></ul></article>
        <article class="rk-pipe-card"><span class="rk-pipe-card-number">ODBIÓR</span><h3>Dokumenty i nastawy</h3><ul class="rk-pipe-bullets"><li>opisane zasilanie i powrót,</li><li>zapisana długość pętli,</li><li>protokół próby,</li><li>zdjęcia z punktami odniesienia,</li><li>przepływ projektowy do uruchomienia.</li></ul></article>
      </div>
      <div class="rk-pipe-note rk-pipe-note-good"><p><strong>Po wykonaniu zdjęć zapisz je razem z projektem.</strong> Sama galeria w telefonie bez nazwy pomieszczenia i punktu odniesienia szybko traci wartość dokumentacyjną.</p></div>
      <p class="rk-pipe-copy">Dobra dokumentacja pokazuje znacznie więcej niż sam wzór rury. Zobacz, <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">jak powinien wyglądać profesjonalny projekt ogrzewania podłogowego</a>, oraz jakie znaczenie ma właściwy dobór <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rur do ogrzewania podłogowego</a>.</p>
    </section>

    <section class="rk-pipe-section rk-pipe-final" id="rk-snail-final">
      <span class="rk-pipe-eyebrow">Wniosek techniczny</span>
      <h2 class="rk-pipe-section-title">Dobry ślimak zaczyna się przed rozwinięciem rury</h2>
      <p class="rk-pipe-lead">Kolejność jest prosta: obciążenie pomieszczenia, powierzchnia czynna, warstwy podłogi, temperatura wody, rozstaw, podział na pętle, hydraulika i dopiero na końcu trasa. Odwrócenie tej kolejności tworzy równy rysunek bez pewności, że instalacja zadziała.</p>
      <div class="rk-pipe-cta">
        <div class="rk-pipe-cta-title">Otrzymaj ślimaki rozrysowane dla rzeczywistego rzutu i policzonych obciążeń</div>
        <p>Projekt obejmuje podział na obwody, rozstawy, długości, przepływy, nastawy rozdzielacza i dane potrzebne do sprawdzenia hydrauliki. Wykonawca otrzymuje trasę, a inwestor podstawę do kontroli prac przed wylewką.</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-snail-sources">
      <span class="rk-pipe-eyebrow">Podstawa techniczna</span>
      <h2 class="rk-pipe-section-title">Źródła oficjalne i zakres odpowiedzialności</h2>
      <p class="rk-pipe-lead">Poniższe oficjalne karty dokumentów porządkują kryteria komfortu, określanie wydajności, projektowanie oraz instalowanie wbudowanych wodnych systemów ogrzewania płaszczyznowego.</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 dotyczącej definicji, symboli oraz kryteriów komfortu systemów płaszczyznowych.</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</a><p>Oficjalna karta metod wyznaczania strumienia ciepła, temperatury i równomierności powierzchni na podstawie modelu systemu.</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 służącej zapewnieniu wymaganej mocy ogrzewania lub chłodzenia 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 — instalowanie systemów</a><p>Oficjalna karta wymagań instalacyjnych dla wbudowanych wodnych systemów ogrzewania i chłodzenia płaszczyznowego.</p></article>
      </div>
      <div class="rk-pipe-responsibility"><p><strong>Zakres poradnika:</strong> schemat i kalkulator wyjaśniają geometrię oraz wstępny podział pola. Nie są projektem, obliczeniem mocy, doborem rozstawu, obliczeniem hydraulicznym, instrukcją konkretnego systemu ani protokołem odbioru. Ostateczne rozwiązanie musi uwzględniać dokumentację wybranych materiałów, projekt budynku i warunki rzeczywistego montażu.</p></div>
    </section>

    <section class="rk-pipe-section rk-pipe-section-soft" id="rk-snail-faq">
      <span class="rk-pipe-eyebrow">Pytania inwestorów i wykonawców</span>
      <h2 class="rk-pipe-section-title">FAQ — układ ślimakowy ogrzewania podłogowego</h2>
      <div class="rk-pipe-faq">
        <details><summary>Od której strony zaczyna się układanie podłogówki w ślimak?</summary><div class="rk-pipe-faq-answer"><p>Pętla fizycznie rozpoczyna się na belce zasilającej rozdzielacza. Po wykonaniu dobiegu rurę prowadzi się do miejsca wskazanego na projekcie, często w kierunku obwodu pola lub strefy o większym obciążeniu, a następnie do środka z pozostawieniem miejsca na powrót.</p></div></details>
        <details><summary>Czy zasilanie zawsze powinno przebiegać przy ścianie zewnętrznej?</summary><div class="rk-pipe-faq-answer"><p>Nie zawsze. Skierowanie cieplejszej części pętli przy fasadę bywa celowe, ale powinno wynikać z rozkładu obciążenia, parametrów przegród, powierzchni czynnej i projektu trasy.</p></div></details>
        <details><summary>Dlaczego przy układaniu ślimaka stosuje się podwójny rozstaw?</summary><div class="rk-pipe-faq-answer"><p>Pierwsze przejście pozostawia wolne międzyrzędzia. Po wykonaniu nawrotu odcinek powrotny wypełnia te miejsca, dzięki czemu gotowy układ uzyskuje docelowy rozstaw, na przykład 10 cm po prowadzeniu pierwszej części co około 20 cm.</p></div></details>
        <details><summary>Jak wykonać nawrót w środku ślimaka?</summary><div class="rk-pipe-faq-answer"><p>W centrum trzeba pozostawić dostateczne pole na łagodną zmianę kierunku. Minimalny promień i dopuszczony sposób gięcia należy odczytać z dokumentacji konkretnej rury oraz systemu montażowego.</p></div></details>
        <details><summary>Czy ślimak zawsze daje identyczną temperaturę całej podłogi?</summary><div class="rk-pipe-faq-answer"><p>Nie. Naprzemienne położenie zasilania i powrotu sprzyja równomierności, ale temperatura zależy również od rozstawu, głębokości rury, warstw podłogi, przepływu, temperatury wody oraz lokalnego obciążenia cieplnego.</p></div></details>
        <details><summary>Czy ślimak ma zawsze mniejszy opór niż meander?</summary><div class="rk-pipe-faq-answer"><p>Nie można przypisać jednego procentu różnicy wszystkim instalacjom. Opór pętli zależy przede wszystkim od długości, rzeczywistej średnicy wewnętrznej, przepływu, medium i geometrii zmian kierunku.</p></div></details>
        <details><summary>Ile metrów może mieć pętla ślimakowa z rury 16 × 2 mm?</summary><div class="rk-pipe-faq-answer"><p>Około 100 m bywa stosowanym pułapem roboczym, ale nie jest samodzielnym wynikiem projektu. Dopuszczalną długość sprawdza się dla obliczonego przepływu, charakterystyki konkretnej rury, straty ciśnienia i możliwości pompy.</p></div></details>
        <details><summary>Czy wszystkie pętle powinny mieć tę samą długość?</summary><div class="rk-pipe-faq-answer"><p>Nie muszą być identyczne. Powinny mieć obliczone przepływy i opory, które można poprawnie zrównoważyć. Sama procentowa różnica długości nie opisuje mocy ani hydrauliki.</p></div></details>
        <details><summary>Czy przy dużym oknie zawsze trzeba zastosować rozstaw 5 cm?</summary><div class="rk-pipe-faq-answer"><p>Nie. Zagęszczenie jest uzasadnione wtedy, gdy wynika z obciążenia i obliczeń mocy powierzchniowej. W dobrze izolowanym budynku nawet duże przeszklenie nie musi wymagać najgęstszego rozstawu.</p></div></details>
        <details><summary>Jak ominąć wyspę kuchenną w układzie ślimakowym?</summary><div class="rk-pipe-faq-answer"><p>Stałą zabudowę zaznacza się przed rysowaniem trasy. Pętlę prowadzi się po powierzchni czynnej z zachowaniem drogi powrotnej i promieni gięcia. Przy skomplikowanym obrysie korzystniejszy może być podział na kilka pól.</p></div></details>
        <details><summary>Czy można połączyć ślimak i meander na jednym rozdzielaczu?</summary><div class="rk-pipe-faq-answer"><p>Można stosować różne geometrie pętli w jednej instalacji, jeżeli każda ma policzony przepływ i opór oraz mieści się w zakresie regulacji rozdzielacza. Samo połączenie nazw układów nie tworzy błędu hydraulicznego.</p></div></details>
        <details><summary>Czy rura pętli może przechodzić przez dylatację?</summary><div class="rk-pipe-faq-answer"><p>Aktywną część pętli koordynuje się z polami jastrychu. Jeżeli dobieg musi przeciąć zaplanowaną szczelinę, przejście wykonuje się w lokalizacji i osłonie określonej w projekcie oraz dokumentacji systemu.</p></div></details>
        <details><summary>Co zrobić, gdy rura załamie się na nawrocie?</summary><div class="rk-pipe-faq-answer"><p>Nie należy prostować jej przypadkową metodą ani zakrywać widocznego przewężenia. Sposób naprawy lub wymiany odcinka musi wynikać z instrukcji systemowej, a miejsce trzeba ponownie sprawdzić i udokumentować.</p></div></details>
        <details><summary>Jak sprawdzić ślimaka przed wykonaniem wylewki?</summary><div class="rk-pipe-faq-answer"><p>Porównaj trasę, rozstaw, długości, promienie, przejścia i oznaczenia z projektem. Następnie wykonaj próbę według przyjętej procedury, sporządź protokół i zrób zdjęcia z trwałymi punktami odniesienia.</p></div></details>
      </div>
    </section>

    <section class="rk-pipe-author" id="rk-snail-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">Robert Kucharski</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ększym błędem przy układzie ślimakowym jest uznanie równego rysunku za gotowy projekt. Pętla może wyglądać idealnie, a jednocześnie mieć niewłaściwy rozstaw, zbyt duży opór albo za małą moc dla pomieszczenia.”</div>
          <p>Robert Kucharski opracowuje projekty ogrzewania podłogowego, obliczenia cieplne i hydrauliczne oraz materiały edukacyjne dla inwestorów i wykonawców. W poradnikach oddziela zasady możliwe do pokazania na schemacie od parametrów, które trzeba obliczyć dla konkretnego budynku.</p>
          <p>Przy projektowaniu pętli analizuje obciążenie każdego pomieszczenia, powierzchnię czynną, warstwy podłogi, rozstaw, temperaturę wody, długości, przepływy, opory, rozdzielacz i charakterystykę pompy. Treść zweryfikowano pod kątem spójności obliczeniowej, wykonalności montażowej oraz zakresu oficjalnych dokumentów wskazanych w sekcji źródeł.</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>obciążenie pomieszczeń, moc podłogi, trasy pętli i obliczone przepływy</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": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "knowsAbout": [
        "ogrzewanie podłogowe",
        "układ ślimakowy ogrzewania podłogowego",
        "projektowe obciążenie cieplne",
        "hydraulika pętli grzewczych",
        "równoważenie hydrauliczne",
        "instalacje niskotemperaturowe"
      ],
      "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/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/#primaryimage",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym.webp",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym.webp",
      "caption": "Schemat instalacji ogrzewania podłogowego w układzie ślimakowym"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/#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 ślimakowy ogrzewania podłogowego", "item": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/" }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/#webpage",
      "url": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/",
      "name": "Układ ślimakowy ogrzewania podłogowego – schemat i montaż krok po kroku",
      "description": "Jak prawidłowo ułożyć ogrzewanie podłogowe w ślimak: interaktywny schemat, kalkulator pętli, rozstaw, nawroty, dobiegi, dylatacje i błędy.",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
      "breadcrumb": { "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/#breadcrumb" },
      "primaryImageOfPage": { "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/#primaryimage" },
      "dateModified": "2026-09-15T09:00:00+02:00",
      "inLanguage": "pl-PL",
      "mainEntity": { "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/#article" }
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/#article",
      "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/#webpage" },
      "headline": "Układ ślimakowy ogrzewania podłogowego – schemat i montaż krok po kroku",
      "description": "Techniczny poradnik wykonywania układu ślimakowego z interaktywnym schematem, kalkulatorem geometrii, zasadami podwójnego rozstawu i kontrolą hydrauliki.",
      "image": { "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/#primaryimage" },
      "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "dateModified": "2026-09-15T09:00:00+02:00",
      "inLanguage": "pl-PL",
      "about": [
        "układ ślimakowy ogrzewania podłogowego",
        "schemat podłogówki",
        "rozstaw rur",
        "długość pętli",
        "hydraulika ogrzewania podłogowego",
        "montaż ogrzewania podłogowego"
      ],
      "keywords": "układ ślimakowy ogrzewania podłogowego, podłogówka w ślimak, schemat ślimaka, podwójny rozstaw rur, długość pętli, montaż podłogówki",
      "isAccessibleForFree": true,
      "hasPart": [
        { "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/#visual-app" },
        { "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/#calculator-app" },
        { "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/#howto" },
        { "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/#faq-schema" }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/#visual-app",
      "name": "Interaktywny schemat układu ślimakowego krok po kroku",
      "url": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/#rk-snail-visual",
      "applicationCategory": "EducationalApplication",
      "operatingSystem": "Dowolny system z nowoczesną przeglądarką internetową",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "description": "Moduł edukacyjny pokazujący sześć etapów prowadzenia zasilania i powrotu w pętli ślimakowej."
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/#calculator-app",
      "name": "Kalkulator podziału powierzchni na pętle ślimakowe",
      "url": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/#rk-snail-calculator-section",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Dowolny system z nowoczesną przeglądarką internetową",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "description": "Kalkulator orientacyjnej długości rury w polu, dobiegów i średniej długości pętli dla wybranej powierzchni, rozstawu i liczby obwodów."
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/#howto",
      "name": "Jak wykonać układ ślimakowy ogrzewania podłogowego",
      "description": "Sześć etapów prowadzenia pojedynczej pętli w układzie ślimakowym od rozdzielacza do powrotu.",
      "step": [
        { "@type": "HowToStep", "position": 1, "name": "Wykonaj dobieg od rozdzielacza", "text": "Poprowadź ciągły odcinek od belki zasilającej do początku powierzchni czynnej zgodnie z projektem." },
        { "@type": "HowToStep", "position": 2, "name": "Ułóż zewnętrzną część zasilania", "text": "Rozpocznij trasę od zaplanowanej strony pola, uwzględniając ewentualną strefę brzegową." },
        { "@type": "HowToStep", "position": 3, "name": "Prowadź spiralę do środka", "text": "Układaj rurę do wnętrza pola z odstępem pozostawiającym miejsce na odcinek powrotny." },
        { "@type": "HowToStep", "position": 4, "name": "Wykonaj łagodny nawrót", "text": "Pozostaw w środku pole umożliwiające zmianę kierunku z promieniem dopuszczonym dla konkretnej rury." },
        { "@type": "HowToStep", "position": 5, "name": "Ułóż powrót między odcinkami", "text": "Prowadź drugą część rury na zewnątrz w pozostawionych międzyrzędziach." },
        { "@type": "HowToStep", "position": 6, "name": "Zamknij i opisz pętlę", "text": "Wróć do belki powrotnej, opisz obwód, wykonaj próbę i udokumentuj trasę przed zakryciem." }
      ]
    },
    {
      "@type": "ItemList",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/#checklist",
      "name": "Checklista odbioru pętli ślimakowej",
      "numberOfItems": 3,
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Zgodność pętli z projektem" },
        { "@type": "ListItem", "position": 2, "name": "Kontrola stanu rury i mocowań" },
        { "@type": "ListItem", "position": 3, "name": "Dokumentacja próby i trasy" }
      ]
    },
    {
      "@type": "Service",
      "@id": "https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/#service",
      "name": "Indywidualny projekt 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 instalacji ogrzewania podłogowego"
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/#faq-schema",
      "mainEntity": [
        { "@type": "Question", "name": "Od której strony zaczyna się układanie podłogówki w ślimak?", "acceptedAnswer": { "@type": "Answer", "text": "Pętla fizycznie rozpoczyna się na belce zasilającej rozdzielacza. Po wykonaniu dobiegu rurę prowadzi się do miejsca wskazanego na projekcie, często w kierunku obwodu pola lub strefy o większym obciążeniu, a następnie do środka z pozostawieniem miejsca na powrót." } },
        { "@type": "Question", "name": "Czy zasilanie zawsze powinno przebiegać przy ścianie zewnętrznej?", "acceptedAnswer": { "@type": "Answer", "text": "Nie zawsze. Skierowanie cieplejszej części pętli przy fasadę bywa celowe, ale powinno wynikać z rozkładu obciążenia, parametrów przegród, powierzchni czynnej i projektu trasy." } },
        { "@type": "Question", "name": "Dlaczego przy układaniu ślimaka stosuje się podwójny rozstaw?", "acceptedAnswer": { "@type": "Answer", "text": "Pierwsze przejście pozostawia wolne międzyrzędzia. Po wykonaniu nawrotu odcinek powrotny wypełnia te miejsca, dzięki czemu gotowy układ uzyskuje docelowy rozstaw." } },
        { "@type": "Question", "name": "Jak wykonać nawrót w środku ślimaka?", "acceptedAnswer": { "@type": "Answer", "text": "W centrum trzeba pozostawić dostateczne pole na łagodną zmianę kierunku. Minimalny promień i dopuszczony sposób gięcia należy odczytać z dokumentacji konkretnej rury oraz systemu montażowego." } },
        { "@type": "Question", "name": "Czy ślimak zawsze daje identyczną temperaturę całej podłogi?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Naprzemienne położenie zasilania i powrotu sprzyja równomierności, ale temperatura zależy również od rozstawu, głębokości rury, warstw podłogi, przepływu, temperatury wody oraz lokalnego obciążenia cieplnego." } },
        { "@type": "Question", "name": "Czy ślimak ma zawsze mniejszy opór niż meander?", "acceptedAnswer": { "@type": "Answer", "text": "Nie można przypisać jednego procentu różnicy wszystkim instalacjom. Opór pętli zależy przede wszystkim od długości, rzeczywistej średnicy wewnętrznej, przepływu, medium i geometrii zmian kierunku." } },
        { "@type": "Question", "name": "Ile metrów może mieć pętla ślimakowa z rury 16 × 2 mm?", "acceptedAnswer": { "@type": "Answer", "text": "Około 100 m bywa stosowanym pułapem roboczym, ale nie jest samodzielnym wynikiem projektu. Dopuszczalną długość sprawdza się dla obliczonego przepływu, charakterystyki konkretnej rury, straty ciśnienia i możliwości pompy." } },
        { "@type": "Question", "name": "Czy wszystkie pętle powinny mieć tę samą długość?", "acceptedAnswer": { "@type": "Answer", "text": "Nie muszą być identyczne. Powinny mieć obliczone przepływy i opory, które można poprawnie zrównoważyć. Sama procentowa różnica długości nie opisuje mocy ani hydrauliki." } },
        { "@type": "Question", "name": "Czy przy dużym oknie zawsze trzeba zastosować rozstaw 5 cm?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Zagęszczenie jest uzasadnione wtedy, gdy wynika z obciążenia i obliczeń mocy powierzchniowej. W dobrze izolowanym budynku nawet duże przeszklenie nie musi wymagać najgęstszego rozstawu." } },
        { "@type": "Question", "name": "Jak ominąć wyspę kuchenną w układzie ślimakowym?", "acceptedAnswer": { "@type": "Answer", "text": "Stałą zabudowę zaznacza się przed rysowaniem trasy. Pętlę prowadzi się po powierzchni czynnej z zachowaniem drogi powrotnej i promieni gięcia. Przy skomplikowanym obrysie korzystniejszy może być podział na kilka pól." } },
        { "@type": "Question", "name": "Czy można połączyć ślimak i meander na jednym rozdzielaczu?", "acceptedAnswer": { "@type": "Answer", "text": "Można stosować różne geometrie pętli w jednej instalacji, jeżeli każda ma policzony przepływ i opór oraz mieści się w zakresie regulacji rozdzielacza." } },
        { "@type": "Question", "name": "Czy rura pętli może przechodzić przez dylatację?", "acceptedAnswer": { "@type": "Answer", "text": "Aktywną część pętli koordynuje się z polami jastrychu. Jeżeli dobieg musi przeciąć zaplanowaną szczelinę, przejście wykonuje się w lokalizacji i osłonie określonej w projekcie oraz dokumentacji systemu." } },
        { "@type": "Question", "name": "Co zrobić, gdy rura załamie się na nawrocie?", "acceptedAnswer": { "@type": "Answer", "text": "Nie należy prostować jej przypadkową metodą ani zakrywać widocznego przewężenia. Sposób naprawy lub wymiany odcinka musi wynikać z instrukcji systemowej, a miejsce trzeba ponownie sprawdzić i udokumentować." } },
        { "@type": "Question", "name": "Jak sprawdzić ślimaka przed wykonaniem wylewki?", "acceptedAnswer": { "@type": "Answer", "text": "Porównaj trasę, rozstaw, długości, promienie, przejścia i oznaczenia z projektem. Następnie wykonaj próbę według przyjętej procedury, sporządź protokół i zrób zdjęcia z trwałymi punktami odniesienia." } }
      ]
    }
  ]
}
</script>

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

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

  var stages = {
    "1": {
      title: "Wyjdź z rozdzielacza",
      copy: "Poprowadź jeden ciągły odcinek do początku powierzchni czynnej. Dobieg jest częścią całkowitej długości oraz straty ciśnienia pętli.",
      purpose: "Dojść do pola możliwie czytelną, chronioną trasą.",
      check: "Przejścia przez progi, dylatacje oraz kolizje z innymi instalacjami.",
      error: "Pomijanie dobiegu podczas obliczania długości obwodu."
    },
    "2": {
      title: "Ułóż zewnętrzną część zasilania",
      copy: "Rozpocznij prowadzenie rury od strony wskazanej w projekcie. Cieplejsza część może obsługiwać obwód pola albo strefę o większym obciążeniu.",
      purpose: "Doprowadzić zasilanie do obszaru, w którym jego wyższa temperatura jest najbardziej użyteczna.",
      check: "Rozstaw przy fasadzie, pola wyłączone i przebieg dylatacji.",
      error: "Automatyczne zagęszczanie przy każdym oknie bez sprawdzenia potrzebnej mocy."
    },
    "3": {
      title: "Prowadź spiralę do środka",
      copy: "Układaj kolejne zwoje do wnętrza, zachowując odstęp potrzebny na powrót. Dla docelowych 10 cm pierwsze przejście pozostawia zwykle miejsca co około 20 cm.",
      purpose: "Przygotować regularne międzyrzędzia dla drugiej części tej samej rury.",
      check: "Równoległość, mocowania, odległość od przegród i rzeczywisty obrys pola.",
      error: "Ułożenie pierwszego przejścia od razu w docelowym rozstawie."
    },
    "4": {
      title: "Wykonaj łagodny nawrót",
      copy: "W centrum zmień kierunek bez załamania rury. Wielkość pozostawionego pola musi umożliwić zachowanie promienia dopuszczonego dla konkretnego produktu.",
      purpose: "Przejść z części zasilającej do powrotnej bez przewężenia przekroju.",
      check: "Promień gięcia, temperaturę montażu i brak spłaszczenia rury.",
      error: "Próba domknięcia ślimaka w zbyt małym punkcie."
    },
    "5": {
      title: "Wprowadź powrót między odcinki",
      copy: "Prowadź rurę na zewnątrz w wolnych międzyrzędziach. W ten sposób cieplejsze i chłodniejsze fragmenty obwodu znajdują się obok siebie.",
      purpose: "Utworzyć docelowy rozstaw i ograniczyć pasowy rozkład temperatury powierzchni.",
      check: "Czy powrót zachowuje rozstaw i nie wypycha wcześniej zamocowanych odcinków.",
      error: "Korygowanie błędów zasilania przez lokalne, przypadkowe zagęszczenia powrotu."
    },
    "6": {
      title: "Zamknij, opisz i sprawdź pętlę",
      copy: "Wróć do belki powrotnej rozdzielacza, opisz obwód i porównaj jego wykonanie z projektem przed próbą oraz zakryciem instalacji.",
      purpose: "Zachować identyfikowalność pętli i przygotować ją do regulacji.",
      check: "Długość, oznaczenie, zdjęcia, protokół próby i docelowy przepływ.",
      error: "Pozostawienie nieopisanych końców i brak dokumentacji trasy."
    }
  };

  var stepButtons = guide.querySelectorAll("[data-rk-snail-step]");
  var routeParts = guide.querySelectorAll("[data-rk-stage]");
  var stageKicker = document.getElementById("rk-snail-stage-kicker");
  var stageTitle = document.getElementById("rk-snail-stage-title");
  var stageCopy = document.getElementById("rk-snail-stage-copy");
  var stagePurpose = document.getElementById("rk-snail-stage-purpose");
  var stageCheck = document.getElementById("rk-snail-stage-check");
  var stageError = document.getElementById("rk-snail-stage-error");

  function showStage(stageNumber) {
    var key = String(stageNumber);
    var stage = stages[key];
    if (!stage) {
      return;
    }

    stageKicker.textContent = "Etap " + key + " z 6";
    stageTitle.textContent = stage.title;
    stageCopy.textContent = stage.copy;
    stagePurpose.textContent = stage.purpose;
    stageCheck.textContent = stage.check;
    stageError.textContent = stage.error;

    stepButtons.forEach(function (button) {
      var active = button.getAttribute("data-rk-snail-step") === key;
      button.setAttribute("aria-pressed", active ? "true" : "false");
    });

    routeParts.forEach(function (part) {
      var partStage = Number(part.getAttribute("data-rk-stage"));
      part.classList.remove("is-active");
      part.classList.remove("is-done");
      if (partStage < stageNumber) {
        part.classList.add("is-done");
      } else {
        if (partStage === stageNumber) {
          part.classList.add("is-active");
        }
      }
    });
  }

  stepButtons.forEach(function (button) {
    button.addEventListener("click", function () {
      showStage(Number(button.getAttribute("data-rk-snail-step")));
    });
  });

  var areaInput = document.getElementById("rk-snail-area");
  var spacingInput = document.getElementById("rk-snail-spacing-input");
  var approachInput = document.getElementById("rk-snail-approach");
  var loopInput = document.getElementById("rk-snail-loop-count");
  var calculateButton = document.getElementById("rk-snail-calculate");
  var resetButton = document.getElementById("rk-snail-reset");
  var resultBox = document.getElementById("rk-snail-calculator-result");
  var statusText = document.getElementById("rk-snail-result-status");
  var introText = document.getElementById("rk-snail-result-intro");

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

  function setResult(fieldLength, approachLength, totalLength, averageLength) {
    document.getElementById("rk-snail-field-length").textContent = formatNumber(fieldLength, 1) + " m";
    document.getElementById("rk-snail-approach-length").textContent = formatNumber(approachLength, 1) + " m";
    document.getElementById("rk-snail-total-length").textContent = formatNumber(totalLength, 1) + " m";
    document.getElementById("rk-snail-average-length").textContent = formatNumber(averageLength, 1) + " m";
  }

  function calculateVariant() {
    var area = Number(areaInput.value);
    var spacing = Number(spacingInput.value);
    var approach = Number(approachInput.value);
    var loops = Number(loopInput.value);

    resultBox.classList.remove("is-good");
    resultBox.classList.remove("is-stop");

    if (!Number.isFinite(area)) {
      statusText.textContent = "Sprawdź powierzchnię czynną";
      introText.textContent = "Wprowadź dodatnią powierzchnię w metrach kwadratowych.";
      resultBox.classList.add("is-stop");
      return;
    }
    if (area <= 0) {
      statusText.textContent = "Sprawdź powierzchnię czynną";
      introText.textContent = "Wprowadź dodatnią powierzchnię w metrach kwadratowych.";
      resultBox.classList.add("is-stop");
      return;
    }
    if (!Number.isFinite(approach)) {
      statusText.textContent = "Sprawdź długość dobiegu";
      introText.textContent = "Dobieg nie może być wartością ujemną.";
      resultBox.classList.add("is-stop");
      return;
    }
    if (approach < 0) {
      statusText.textContent = "Sprawdź długość dobiegu";
      introText.textContent = "Dobieg nie może być wartością ujemną.";
      resultBox.classList.add("is-stop");
      return;
    }

    var fieldLength = area / spacing;
    var approachLength = 2 * approach * loops;
    var totalLength = fieldLength + approachLength;
    var averageLength = totalLength / loops;
    var areaPerLoop = area / loops;

    setResult(fieldLength, approachLength, totalLength, averageLength);

    if (averageLength > 100) {
      resultBox.classList.add("is-stop");
      statusText.textContent = "Zwiększ liczbę pętli i wykonaj obliczenia hydrauliczne";
      introText.textContent = "Średnia " + formatNumber(averageLength, 1) + " m przekracza często stosowany pułap roboczy 100 m dla rury 16 × 2 mm. Nie jest to limit normowy, lecz wyraźny sygnał do ponownego podziału i sprawdzenia oporu.";
    } else {
      if (averageLength > 80) {
        statusText.textContent = "Wariant wymaga uważnej kontroli hydraulicznej";
        introText.textContent = "Każda pętla obsługuje średnio " + formatNumber(areaPerLoop, 1) + " m², a jej orientacyjna długość wynosi " + formatNumber(averageLength, 1) + " m. Sprawdź wymagany przepływ, światło rury i stratę ciśnienia.";
      } else {
        resultBox.classList.add("is-good");
        statusText.textContent = "Geometria wygląda roboczo możliwa — potwierdź hydraulikę";
        introText.textContent = "Każda pętla obsługuje średnio " + formatNumber(areaPerLoop, 1) + " m², a jej orientacyjna długość wynosi " + formatNumber(averageLength, 1) + " m. To nadal nie potwierdza mocy, przepływu ani oporu.";
      }
    }
  }

  calculateButton.addEventListener("click", calculateVariant);

  resetButton.addEventListener("click", function () {
    areaInput.value = "20";
    spacingInput.value = "0.15";
    approachInput.value = "5";
    loopInput.value = "2";
    calculateVariant();
  });

  showStage(1);
  calculateVariant();
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/">Układ ślimakowy ogrzewania podłogowego – schemat i montaż 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/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</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>
