<?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 Poradniki budowlane - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/category/poradniki-budowlane/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/category/poradniki-budowlane/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Sat, 03 Oct 2026 11:25:15 +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 Poradniki budowlane - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/category/poradniki-budowlane/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Ile spinek do podłogówki na m²? Kalkulator spinek i klipsów.</title>
		<link>https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m%c2%b2/</link>
					<comments>https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m%c2%b2/#respond</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 03 Oct 2026 10:41:02 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Hydraulika]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Kalkulatory budowlane]]></category>
		<category><![CDATA[Materiały instalacyjne]]></category>
		<category><![CDATA[Montaż ogrzewania podłogowego]]></category>
		<category><![CDATA[Narzędzia i kalkulatory]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Rury do podłogówki]]></category>
		<category><![CDATA[ile spinek do podłogówki na m²]]></category>
		<category><![CDATA[ile spinek na 10 m²]]></category>
		<category><![CDATA[ile spinek na 100 m²]]></category>
		<category><![CDATA[ile spinek na metr rury]]></category>
		<category><![CDATA[kalkulator spinek]]></category>
		<category><![CDATA[klipsy do podłogówki]]></category>
		<category><![CDATA[mocowanie rur podłogówki]]></category>
		<category><![CDATA[montaż ogrzewania podłogowego]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[rozstaw rur ogrzewania podłogowego]]></category>
		<category><![CDATA[rury do podłogówki]]></category>
		<category><![CDATA[spinki do podłogówki]]></category>
		<category><![CDATA[spinki do styropianu]]></category>
		<category><![CDATA[spinki do takera]]></category>
		<category><![CDATA[taker do podłogówki]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=7795</guid>

					<description><![CDATA[<p>Planując montaż ogrzewania podłogowego, warto wcześniej policzyć nie tylko metry rury, ale również elementy potrzebne do jej prawidłowego zamocowania. Ile spinek do podłogówki na m² trzeba przygotować przy rozstawie rur 10, 15 lub 20 cm? W artykule pokazuję prosty sposób obliczeń, wyjaśniam wpływ odstępu pomiędzy mocowaniami, łuków i podejść do rozdzielacza oraz podpowiadam, jaki zapas materiału przyjąć. Do dyspozycji jest również praktyczny kalkulator, który przelicza zapotrzebowanie na spinki i pełne opakowania.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m%c2%b2/">Ile spinek do podłogówki na m²? Kalkulator spinek i klipsów.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-clips-guide {
    --rk-navy:#0b2536;--rk-navy2:#153d50;--rk-cyan:#28c3d3;--rk-cyan-dark:#087f9c;
    --rk-orange:#f76745;--rk-ink:#142d3d;--rk-copy:#3d5869;--rk-muted:#627d8d;
    --rk-line:#cfdfe6;--rk-bg:#f2f8fa;--rk-soft:#e8f8fa;--rk-white:#fff;
    color:var(--rk-ink);font:16px/1.62 Arial,Helvetica,sans-serif;max-width:1360px;
    width:100%;margin:0 auto;overflow-wrap:anywhere;
  }
  #rk-clips-guide,#rk-clips-guide *{box-sizing:border-box;min-width:0}
  #rk-clips-guide a{color:var(--rk-cyan-dark);text-underline-offset:3px}
  #rk-clips-guide a:hover{color:#ba452e}
  #rk-clips-guide button,#rk-clips-guide input,#rk-clips-guide select{font:inherit}
  #rk-clips-guide :is(a,button,input,select,summary):focus-visible{outline:3px solid var(--rk-cyan);outline-offset:3px}
  #rk-clips-guide img{display:block;max-width:100%;height:auto}
  #rk-clips-guide .rk-shell{background:var(--rk-white);border:1px solid var(--rk-line);box-shadow:0 18px 58px rgba(8,38,55,.12);overflow:hidden}
  #rk-clips-guide .rk-hero{background:radial-gradient(circle at 91% 108%,rgba(40,195,211,.24) 0 18%,transparent 18.2%),linear-gradient(125deg,#0b2536,#19465b 69%,#0b6271);padding:62px 58px 55px;color:#fff}
  #rk-clips-guide .rk-kicker,#rk-clips-guide .rk-eyebrow{display:block;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;font-weight:900}
  #rk-clips-guide .rk-kicker{color:#7de5ee;margin-bottom:15px}
  #rk-clips-guide .rk-hero-title{font-size:clamp(2.4rem,5.2vw,4.8rem);line-height:1.06;letter-spacing:-.04em;font-weight:900;margin:0;max-width:1150px;color:#fff}
  #rk-clips-guide .rk-hero-title span{color:#72e5ed}
  #rk-clips-guide .rk-hero-lead{font-size:clamp(1.08rem,1.85vw,1.35rem);color:#e1f0f3;max-width:1060px;margin:24px 0 0}
  #rk-clips-guide .rk-hero-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
  #rk-clips-guide .rk-hero-tags span{display:inline-flex;align-items:center;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.29);border-radius:999px;color:#fff;font-size:.81rem;font-weight:800;line-height:1.35;padding:8px 13px}
  #rk-clips-guide .rk-hero-meta{display:flex;flex-wrap:wrap;gap:9px 25px;font-size:.84rem;color:#c8dce3;margin-top:27px}
  #rk-clips-guide .rk-hero-meta strong{color:#fff}
  #rk-clips-guide .rk-nav{padding:19px 28px;display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid var(--rk-line);background:#fff;align-items:center}
  #rk-clips-guide .rk-nav strong{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;margin-right:6px}
  #rk-clips-guide .rk-nav a{background:#edf4f6;border-radius:999px;padding:7px 11px;font-size:.76rem;font-weight:800;text-decoration:none;color:var(--rk-ink)}
  #rk-clips-guide .rk-nav a:hover{background:#d9f6f8;color:#075b71}
  #rk-clips-guide .rk-section{padding:62px 58px}
  #rk-clips-guide .rk-section+.rk-section{border-top:1px solid var(--rk-line)}
  #rk-clips-guide .rk-soft{background:var(--rk-bg)}
  #rk-clips-guide .rk-dark{background:var(--rk-navy);color:#fff}
  #rk-clips-guide .rk-eyebrow{color:var(--rk-cyan-dark);margin-bottom:10px}
  #rk-clips-guide .rk-dark .rk-eyebrow{color:#80e6ef}
  #rk-clips-guide h2,#rk-clips-guide .rk-cta-title{font-size:clamp(1.95rem,3.8vw,3.55rem);line-height:1.1;letter-spacing:-.035em;font-weight:900;margin:0;color:var(--rk-ink)}
  #rk-clips-guide h3{font-size:1.19rem;line-height:1.3;color:var(--rk-ink);margin:0 0 9px}
  #rk-clips-guide h4{color:var(--rk-ink);font-size:1rem;line-height:1.35;margin:0 0 8px}
  #rk-clips-guide .rk-dark h2,#rk-clips-guide .rk-dark h3{color:#fff}
  #rk-clips-guide p{margin:15px 0 0;color:var(--rk-copy)}
  #rk-clips-guide .rk-dark p{color:#d0e1e7}
  #rk-clips-guide .rk-lead{font-size:clamp(1.03rem,1.6vw,1.23rem);line-height:1.69;max-width:1080px;margin-top:19px}
  #rk-clips-guide p strong,#rk-clips-guide li strong{color:var(--rk-ink)}
  #rk-clips-guide .rk-dark p strong{color:#fff}
  #rk-clips-guide .rk-answer{margin-top:27px;background:linear-gradient(120deg,#e2f8fa,#fafdfd);border:1px solid #a8dce4;border-left:7px solid var(--rk-cyan);border-radius:16px;padding:24px 26px}
  #rk-clips-guide .rk-answer strong{display:block;font-size:1.17rem;line-height:1.45;color:var(--rk-ink)}
  #rk-clips-guide .rk-answer p{margin-top:8px}
  #rk-clips-guide .rk-grid2,#rk-clips-guide .rk-grid3,#rk-clips-guide .rk-grid4{display:grid;gap:17px;margin-top:26px}
  #rk-clips-guide .rk-grid2{grid-template-columns:repeat(2,minmax(0,1fr))}
  #rk-clips-guide .rk-grid3{grid-template-columns:repeat(3,minmax(0,1fr))}
  #rk-clips-guide .rk-grid4{grid-template-columns:repeat(4,minmax(0,1fr))}
  #rk-clips-guide .rk-card{background:#fff;border:1px solid var(--rk-line);border-radius:16px;padding:21px}
  #rk-clips-guide .rk-card p{margin:0}
  #rk-clips-guide .rk-card-badge{display:inline-flex;align-items:center;justify-content:center;background:#dff7fa;color:#07657c;font-weight:900;border-radius:9px;padding:5px 10px;min-height:35px;margin-bottom:12px;font-size:.78rem}
  #rk-clips-guide .rk-note{background:#fff4df;color:#594319;border-left:6px solid #efb432;border-radius:13px;padding:17px 20px;margin-top:24px}
  #rk-clips-guide .rk-note p{color:inherit;margin:0}
  #rk-clips-guide .rk-note-ok{background:#e9f9f3;color:#1b5b4a;border-color:#2ac99c}
  #rk-clips-guide .rk-note-alert{background:#fff0eb;color:#713b2b;border-color:var(--rk-orange)}
  #rk-clips-guide ul,#rk-clips-guide ol{padding-left:23px;color:var(--rk-copy)}
  #rk-clips-guide li+li{margin-top:8px}
  #rk-clips-guide .rk-table-wrap{overflow-x:auto;margin-top:26px}
  #rk-clips-guide table{border-collapse:separate;border-spacing:0;min-width:720px;width:100%}
  #rk-clips-guide th{background:var(--rk-navy);color:#fff;text-align:left;font-size:.77rem;text-transform:uppercase;letter-spacing:.04em;padding:13px 15px}
  #rk-clips-guide th:first-child{border-radius:12px 0 0 0}
  #rk-clips-guide th:last-child{border-radius:0 12px 0 0}
  #rk-clips-guide td{background:#fff;border-bottom:1px solid var(--rk-line);padding:13px 15px;color:var(--rk-copy);vertical-align:top}
  #rk-clips-guide tr td:first-child{border-left:1px solid var(--rk-line)}
  #rk-clips-guide tr td:last-child{border-right:1px solid var(--rk-line)}
  #rk-clips-guide td strong{color:var(--rk-ink)}
  #rk-clips-guide .rk-table-caption{font-size:.83rem;color:var(--rk-muted)}
  #rk-clips-guide .rk-formula{margin:13px 0 0;background:#e8f6f8;border:1px solid #b5dce3;color:#085b74;border-radius:12px;padding:12px 15px;font-family:Consolas,Monaco,monospace;font-weight:800;overflow-wrap:anywhere}
  #rk-clips-guide .rk-calculator{background:#15394c;border:1px solid #4e7181;border-radius:21px;margin-top:27px;padding:26px}
  #rk-clips-guide .rk-calculator h3{font-size:1.55rem;margin:0;color:#fff}
  #rk-clips-guide .rk-calculator p{color:#d5e8ed}
  #rk-clips-guide .rk-choose{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
  #rk-clips-guide .rk-radio{display:flex;align-items:center;gap:8px;background:#22546a;border:1px solid #66899a;border-radius:11px;color:#fff;padding:10px 13px;cursor:pointer;font-weight:800}
  #rk-clips-guide .rk-radio input{accent-color:var(--rk-cyan);width:18px;height:18px}
  #rk-clips-guide .rk-input-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-top:20px}
  #rk-clips-guide .rk-field{display:block;color:#e9f5f8;font-size:.86rem;font-weight:800}
  #rk-clips-guide .rk-field small{display:block;font-size:.75rem;font-weight:400;color:#bad3dd;margin-top:3px;line-height:1.4}
  #rk-clips-guide .rk-field input,#rk-clips-guide .rk-field select{display:block;width:100%;min-height:48px;background:#fff;color:var(--rk-ink);border:1px solid #bed0d9;border-radius:9px;padding:9px 11px;margin-top:7px}
  #rk-clips-guide .rk-fields-group{margin-top:18px;background:#1b465a;border:1px solid #577a8d;border-radius:13px;padding:17px}
  #rk-clips-guide .rk-fields-group h4{color:#fff;margin-bottom:0}
  #rk-clips-guide [hidden]{display:none!important}
  #rk-clips-guide .rk-btn-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:21px}
  #rk-clips-guide .rk-btn{cursor:pointer;border-radius:10px;padding:12px 19px;min-height:48px;font-weight:900;border:1px solid transparent}
  #rk-clips-guide .rk-btn-primary{background:var(--rk-orange);color:#fff;border-color:var(--rk-orange)}
  #rk-clips-guide .rk-btn-primary:hover{background:#d94e31}
  #rk-clips-guide .rk-btn-secondary{background:transparent;color:#fff;border-color:#7c9aa9}
  #rk-clips-guide .rk-btn-secondary:hover{background:#21556a}
  #rk-clips-guide .rk-error{background:#fff1ec;border-left:5px solid var(--rk-orange);color:#773426;border-radius:9px;padding:11px 15px;margin-top:15px}
  #rk-clips-guide .rk-result{background:#fff;border-left:7px solid var(--rk-cyan);border-radius:16px;padding:24px;margin-top:22px;color:var(--rk-ink)}
  #rk-clips-guide .rk-result-head{font-size:.78rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase;color:#08738d}
  #rk-clips-guide .rk-big{font-size:clamp(2.3rem,5vw,3.55rem);font-weight:900;letter-spacing:-.045em;line-height:1.13;color:var(--rk-ink);margin-top:5px}
  #rk-clips-guide .rk-result p{color:var(--rk-copy);margin-top:5px}
  #rk-clips-guide .rk-result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:21px}
  #rk-clips-guide .rk-stat{background:#edf5f7;border:1px solid #cfe0e5;border-radius:11px;padding:13px}
  #rk-clips-guide .rk-stat span{display:block;color:#527184;text-transform:uppercase;letter-spacing:.05em;font-size:.7rem;font-weight:900;line-height:1.35}
  #rk-clips-guide .rk-stat strong{display:block;color:var(--rk-ink);font-size:1.23rem;margin-top:5px;line-height:1.35}
  #rk-clips-guide .rk-breakdown{padding-top:16px;margin-top:18px;border-top:1px solid var(--rk-line)}
  #rk-clips-guide .rk-breakdown strong{color:var(--rk-ink)}
  #rk-clips-guide .rk-breakdown p{font-size:.87rem}
  #rk-clips-guide .rk-cta{margin-top:32px;padding:30px;background:radial-gradient(circle at 100% 110%,rgba(40,195,211,.22) 0 19%,transparent 19.3%),linear-gradient(125deg,#0b2536,#17516a);border-radius:19px;color:#fff}
  #rk-clips-guide .rk-cta .rk-cta-title{color:#fff;font-size:clamp(1.55rem,3vw,2.35rem)}
  #rk-clips-guide .rk-cta p{color:#d6e8ed;max-width:920px}
  #rk-clips-guide .rk-cta a.rk-cta-link{display:inline-block;margin-top:20px;padding:13px 19px;border-radius:11px;background:var(--rk-orange);color:#fff;text-decoration:none;font-weight:900}
  #rk-clips-guide .rk-cta a.rk-cta-link:hover{background:#fff;color:#bb4229}
  #rk-clips-guide .rk-cta small{display:block;color:#bdd5de;margin-top:11px}
  #rk-clips-guide .rk-steps{display:grid;gap:14px;margin-top:26px}
  #rk-clips-guide .rk-step{display:grid;grid-template-columns:43px minmax(0,1fr);gap:12px;background:#fff;border:1px solid var(--rk-line);border-radius:14px;padding:17px}
  #rk-clips-guide .rk-step-num{display:flex;align-items:center;justify-content:center;background:#dcf6f9;border-radius:9px;color:#086b85;font-weight:900;height:39px}
  #rk-clips-guide .rk-step p{margin:3px 0 0}
  #rk-clips-guide .rk-faq{display:grid;gap:11px;margin-top:27px}
  #rk-clips-guide .rk-faq details{border:1px solid var(--rk-line);background:#fff;border-radius:13px;overflow:hidden}
  #rk-clips-guide .rk-faq summary{cursor:pointer;list-style:none;color:var(--rk-ink);font-weight:900;padding:17px 45px 17px 18px;position:relative}
  #rk-clips-guide .rk-faq summary::-webkit-details-marker{display:none}
  #rk-clips-guide .rk-faq summary:after{content:'+';position:absolute;right:17px;top:9px;font-size:1.55rem;color:var(--rk-cyan-dark)}
  #rk-clips-guide .rk-faq details[open] summary:after{content:'−'}
  #rk-clips-guide .rk-faq .rk-faq-text{padding:0 18px 18px;border-top:1px solid var(--rk-line)}
  #rk-clips-guide .rk-faq .rk-faq-text p{margin-top:13px}
  #rk-clips-guide .rk-sources{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-top:25px}
  #rk-clips-guide .rk-source{background:#f0f7f9;border:1px solid #cbdfe6;border-radius:13px;padding:18px}
  #rk-clips-guide .rk-source a{font-weight:900}
  #rk-clips-guide .rk-source p{font-size:.89rem;margin-top:7px}
  #rk-clips-guide .rk-author{background:#eef6f8;padding:62px 58px;border-top:1px solid var(--rk-line)}
  #rk-clips-guide .rk-author-grid{display:grid;grid-template-columns:275px minmax(0,1fr);background:#fff;border:1px solid #c9dfe7;border-radius:20px;overflow:hidden;margin-top:25px}
  #rk-clips-guide .rk-author-side{background:var(--rk-navy);padding:32px 23px;color:#fff;text-align:center;display:flex;align-items:center;flex-direction:column}
  #rk-clips-guide .rk-author-side img{width:150px;height:150px;object-fit:cover;border-radius:50%;border:5px solid rgba(255,255,255,.24)}
  #rk-clips-guide .rk-author-side strong{font-size:1.2rem;margin-top:17px}
  #rk-clips-guide .rk-author-side p{color:#c0d6de;font-size:.84rem;margin-top:7px}
  #rk-clips-guide .rk-social{display:flex;gap:9px;margin-top:18px}
  #rk-clips-guide .rk-social a{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid #5f8293;border-radius:50%;color:#fff;text-decoration:none;font-weight:900}
  #rk-clips-guide .rk-social a:hover{background:var(--rk-cyan);color:var(--rk-navy)}
  #rk-clips-guide .rk-author-body{padding:33px}
  #rk-clips-guide .rk-author-body h3{font-size:1.7rem}
  #rk-clips-guide .rk-author-quote{border-left:5px solid var(--rk-cyan);background:#f1fafb;border-radius:11px;padding:16px 20px;font-weight:800;color:var(--rk-ink);margin-top:19px}
  #rk-clips-guide .rk-author-links a{font-weight:800}
  #rk-clips-guide .rk-sr{position:absolute;clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;width:1px;overflow:hidden;white-space:nowrap}
  @media(max-width:1000px){#rk-clips-guide .rk-grid4{grid-template-columns:repeat(2,minmax(0,1fr))}}
  @media(max-width:820px){#rk-clips-guide .rk-hero,#rk-clips-guide .rk-section,#rk-clips-guide .rk-author{padding-left:28px;padding-right:28px}#rk-clips-guide .rk-grid3{grid-template-columns:repeat(2,minmax(0,1fr))}#rk-clips-guide .rk-author-grid{grid-template-columns:minmax(0,1fr)}}
  @media(max-width:650px){
    #rk-clips-guide .rk-hero{padding-top:43px;padding-bottom:39px}
    #rk-clips-guide .rk-section,#rk-clips-guide .rk-author{padding-top:43px;padding-bottom:43px}
    #rk-clips-guide .rk-grid2,#rk-clips-guide .rk-grid3,#rk-clips-guide .rk-grid4,#rk-clips-guide .rk-input-grid,#rk-clips-guide .rk-result-grid,#rk-clips-guide .rk-sources{grid-template-columns:minmax(0,1fr)}
    #rk-clips-guide .rk-calculator,#rk-clips-guide .rk-cta{padding:18px}
    #rk-clips-guide .rk-btn-row{display:grid}
    #rk-clips-guide .rk-btn{width:100%}
    #rk-clips-guide .rk-table-wrap{overflow:visible}
    #rk-clips-guide table,#rk-clips-guide thead,#rk-clips-guide tbody,#rk-clips-guide tr,#rk-clips-guide td{display:block;min-width:0;width:100%}
    #rk-clips-guide thead{position:absolute;clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;white-space:nowrap;width:1px}
    #rk-clips-guide tbody{display:grid;gap:14px}
    #rk-clips-guide tbody tr{border:1px solid var(--rk-line);border-radius:12px;overflow:hidden}
    #rk-clips-guide td,#rk-clips-guide tr td:first-child,#rk-clips-guide tr td:last-child{border:0;border-bottom:1px solid #e2ebef;padding:12px 14px}
    #rk-clips-guide tr td:last-child{border-bottom:0}
    #rk-clips-guide td:before{content:attr(data-label);display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.07em;color:var(--rk-cyan-dark);font-weight:900;margin-bottom:3px}
    #rk-clips-guide .rk-author-body{padding:24px 20px}
  }
  @media(max-width:430px){#rk-clips-guide .rk-hero,#rk-clips-guide .rk-section,#rk-clips-guide .rk-author{padding-left:18px;padding-right:18px}#rk-clips-guide .rk-nav{padding:14px}#rk-clips-guide .rk-nav a{flex:1 1 calc(50% - 8px);text-align:center}#rk-clips-guide .rk-nav strong{flex:1 1 100%}#rk-clips-guide .rk-hero-title{font-size:2.19rem}}
  @media(prefers-reduced-motion:reduce){#rk-clips-guide *,#rk-clips-guide *:before,#rk-clips-guide *:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
</style>

<article id="rk-clips-guide" aria-labelledby="rk-clips-visual-title">
  <div class="rk-shell">
    <header class="rk-hero">
      <span class="rk-kicker">Materiały do podłogówki · poradnik i kalkulator</span>
      <div class="rk-hero-title" id="rk-clips-visual-title">Ile spinek do podłogówki na m²? <span>Kalkulator spinek i klipsów</span></div>
      <p class="rk-hero-lead">Policz zapotrzebowanie na mocowania na podstawie powierzchni i rozstawu rur albo gotowego metrażu z projektu. Zobacz osobno wynik bazowy, poprawkę na trudne miejsca, zapas i liczbę opakowań.</p>
      <div class="rk-hero-tags" aria-label="Zakres poradnika">
        <span>spinki na 1 m²</span>
        <span>spinki na metr rury</span>
        <span>rozstaw rur 10, 15 i 20 cm</span>
        <span>mocowanie co 40–50 cm</span>
        <span>łuki, zapas i opakowania</span>
      </div>
      <div class="rk-hero-meta"><span>Autor: <strong>Robert Kucharski</strong></span><span>Zakres: <strong>spinki do takera i szacunek materiałowy</strong></span><span>Data publikacji: <strong>3 października 2026 r.</strong></span></div>
    </header>

    <nav class="rk-nav" aria-label="Na skróty po artykule"><strong>Na skróty</strong><a href="#rk-clips-answer">Odpowiedź</a><a href="#rk-clips-calculator-section">Kalkulator</a><a href="#rk-clips-method">Wzór</a><a href="#rk-clips-table">Tabela</a><a href="#rk-clips-turns">Łuki i podejścia</a><a href="#rk-clips-systems">Systemy</a><a href="#rk-clips-fit">Dobór</a><a href="#rk-clips-packs">Opakowania</a><a href="#rk-clips-errors">Błędy</a><a href="#rk-clips-faq">FAQ</a><a href="#rk-clips-sources">Źródła</a><a href="#rk-clips-author">Autor</a></nav>

    <section class="rk-section" id="rk-clips-answer">
      <span class="rk-eyebrow">Odpowiedź od razu</span>
      <h2>Ile spinek do podłogówki przypada na 1 m²?</h2>
      <p class="rk-lead">Zużycie spinek zależy przede wszystkim od <strong>metrów rury na danym polu</strong> i od odstępu między jej punktami mocowania. Ta sama powierzchnia przy rozstawie rur 10 cm potrzebuje więcej spinek niż przy 20 cm. Mocowanie łuków i odcinków przy rozdzielaczu może zwiększyć wynik.</p>
      <div class="rk-answer"><strong>Orientacyjny punkt wyjścia dla systemu takerowego: około 13–17 spinek na 1 m² przy rozstawie rur 15 cm i mocowaniu prostych odcinków co 40–50 cm.</strong><p>To obliczenie bazowe, bez osobno doliczonej korekty na łuki, podejścia i zapasu. Podany odstęp mocowania jest przykładem spotykanym w dokumentacjach technicznych. Pierwszeństwo ma instrukcja konkretnej rury, spinki, izolacji i narzędzia.</p></div>
      <div class="rk-grid3">
        <div class="rk-card"><span class="rk-card-badge">KROK 1</span><h3>Rura</h3><p>Przybliżenie dla regularnego pola to powierzchnia czynna podzielona przez rozstaw rur w metrach.</p></div>
        <div class="rk-card"><span class="rk-card-badge">KROK 2</span><h3>Mocowanie</h3><p>Metraż rury dzielisz przez odstęp mocowań przyjęty dla używanego systemu.</p></div>
        <div class="rk-card"><span class="rk-card-badge">KROK 3</span><h3>Zakup</h3><p>Doliczasz potrzebne mocowania na łukach, zapas i zaokrąglasz wynik do pełnych opakowań.</p></div>
      </div>
    </section>

    <section class="rk-section rk-dark" id="rk-clips-calculator-section">
      <span class="rk-eyebrow">Narzędzie materiałowe</span>
      <h2>Kalkulator spinek i klipsów do podłogówki</h2>
      <p class="rk-lead">Wybierz dane, które masz. Jeżeli projekt podaje rzeczywisty metraż rur, użyj drugiego trybu. Kalkulator liczy spinki dla mocowania do izolacji; nie dobiera rozstawu rur ani nie sprawdza hydrauliki pętli.</p>
      <div class="rk-calculator" id="rk-clips-calculator">
        <h3>Policz spinki i pełne opakowania</h3>
        <p>Wszystkie założenia są widoczne. Wartości 40 i 50 cm to przykłady; sprawdź zalecenia systemu, który montujesz.</p>
        <div class="rk-choose" role="radiogroup" aria-label="Rodzaj danych do obliczenia">
          <label class="rk-radio"><input type="radio" name="rk-clips-mode" value="area" checked> Znam powierzchnię i rozstaw</label>
          <label class="rk-radio"><input type="radio" name="rk-clips-mode" value="length"> Znam metraż rury z projektu</label>
        </div>
        <div id="rk-clips-area-fields" class="rk-fields-group">
          <h4>Powierzchnia czynna i rozstaw</h4>
          <div class="rk-input-grid">
            <label class="rk-field">Czynna powierzchnia podłogi [m²]<input id="rk-clips-area" type="number" min="0.1" max="10000" step="0.1" value="30" inputmode="decimal"><small>Nie wpisuj całego budynku, jeśli część pól jest wyłączona z układania rur.</small></label>
            <label class="rk-field">Rozstaw rur [cm]<select id="rk-clips-spacing"><option value="10">10 cm</option><option value="12.5">12,5 cm</option><option value="15" selected>15 cm</option><option value="20">20 cm</option><option value="25">25 cm</option></select><small>Podaj rozstaw wynikający z projektu lub przyjętego założenia.</small></label>
          </div>
        </div>
        <div id="rk-clips-length-fields" class="rk-fields-group" hidden>
          <h4>Znany metraż rury</h4>
          <div class="rk-input-grid"><label class="rk-field">Metry rur objęte obliczeniem [m]<input id="rk-clips-length" type="number" min="0.1" max="100000" step="0.1" value="200" inputmode="decimal"><small>Wpisz sumę długości z projektu. Jeśli zawiera podejścia, zostaw pole poniżej na zero.</small></label></div>
        </div>
        <div class="rk-input-grid">
          <label class="rk-field">Dodatkowe podejścia nieuwzględnione powyżej [m]<input id="rk-clips-approaches" type="number" min="0" max="10000" step="0.1" value="0" inputmode="decimal"><small>Łączna długość obu kierunków. Nie doliczaj po raz drugi odcinków już zawartych w metrażu z projektu.</small></label>
          <label class="rk-field">Odstęp mocowań na odcinkach prostych [cm]<select id="rk-clips-pitch"><option value="35">35 cm</option><option value="40">40 cm</option><option value="50" selected>50 cm</option><option value="60">60 cm</option></select><small>Wybierz wartość zgodną z dokumentacją stosowanego systemu.</small></label>
          <label class="rk-field">Korekta na łuki i trudne miejsca [%]<input id="rk-clips-bends" type="number" min="0" max="100" step="1" value="10" inputmode="numeric"><small>10% to jawny przykład zakupowy, nie norma. W projekcie można policzyć te mocowania dokładniej.</small></label>
          <label class="rk-field">Dodatkowy zapas zakupowy [%]<input id="rk-clips-reserve" type="number" min="0" max="50" step="1" value="5" inputmode="numeric"><small>Obejmuje straty montażowe i zaokrąglenia zamówienia, a nie długość projektową rur.</small></label>
          <label class="rk-field">Sztuk w jednym opakowaniu<input id="rk-clips-pack" type="number" min="1" max="100000" step="1" value="270" inputmode="numeric"><small>Zmień, jeśli wybrany produkt ma inną wielkość opakowania.</small></label>
        </div>
        <div class="rk-btn-row"><button type="button" class="rk-btn rk-btn-primary" id="rk-clips-run">Oblicz liczbę spinek</button><button type="button" class="rk-btn rk-btn-secondary" id="rk-clips-reset">Przywróć przykład</button></div>
        <div id="rk-clips-error" class="rk-error" role="alert" hidden></div>
        <div id="rk-clips-result" class="rk-result" aria-live="polite" aria-atomic="true">
          <div class="rk-result-head">Wynik dla wprowadzonych danych</div>
          <div class="rk-big" id="rk-clips-total">—</div>
          <p id="rk-clips-summary">Uzupełnij założenia i oblicz wynik.</p>
          <div class="rk-result-grid">
            <div class="rk-stat"><span>Rura do mocowania</span><strong id="rk-clips-result-length">—</strong></div>
            <div class="rk-stat"><span>Spinki na prostych odcinkach</span><strong id="rk-clips-result-base">—</strong></div>
            <div class="rk-stat"><span>Korekta na łuki</span><strong id="rk-clips-result-bends">—</strong></div>
            <div class="rk-stat"><span>Zapas zakupowy</span><strong id="rk-clips-result-reserve">—</strong></div>
            <div class="rk-stat"><span>Pełne opakowania</span><strong id="rk-clips-result-packs">—</strong></div>
            <div class="rk-stat"><span>Na 1 m² pola</span><strong id="rk-clips-result-density">—</strong></div>
          </div>
          <div class="rk-breakdown"><strong>Jak powstał wynik</strong><p id="rk-clips-equation">Pokażemy metry rury, odstęp mocowań, obie korekty i zaokrąglenie do opakowań.</p><p id="rk-clips-limit">Wynik jest szacunkiem materiałowym. Rozkład faktycznych punktów mocowania sprawdź na rysunku pętli i w instrukcji systemu.</p></div>
        </div>
      </div>
      <div class="rk-cta" aria-label="Sprawdź produkt po obliczeniu materiałów">
        <div class="rk-cta-title">Policzyłeś spinki? Sprawdź jeszcze ich zgodność z rurą i takerem</div>
        <p>Przed zakupem porównaj wymiar spinki, średnicę rury, grubość izolacji, narzędzie oraz liczbę sztuk w opakowaniu. Wynik kalkulatora jest punktem wyjścia do zamówienia odpowiedniego mocowania.</p>
        <a class="rk-cta-link" href="https://projekt-ogrzewania.pl/produkt/spinka-do-styropianu-do-takera/">Sprawdź spinki do takera</a>
        <small>Odnośnik prowadzi do produktu w sklepie autora poradnika.</small>
      </div>
    </section>

    <section class="rk-section" id="rk-clips-method">
      <span class="rk-eyebrow">Jawny rachunek</span>
      <h2>Jak obliczyć liczbę spinek krok po kroku?</h2>
      <p class="rk-lead">Kalkulator rozdziela geometrię pola, częstotliwość mocowania i rezerwę materiałową. Dzięki temu nie ukrywa łuków pod jedną rzekomo uniwersalną liczbą spinek na metr kwadratowy.</p>
      <div class="rk-steps">
        <div class="rk-step"><span class="rk-step-num">1</span><div><h3>Ustal metry rury na aktywnej powierzchni</h3><p>Dla regularnego pola długość rury można oszacować, dzieląc czynną powierzchnię przez rozstaw w metrach. Przy 30 m² i rozstawie 15 cm otrzymasz około 200 m. Jeżeli masz metraż z projektu, wykorzystaj go bez ponownego wyliczania z powierzchni.</p><div class="rk-formula">L pola ≈ A czynna ÷ (s / 100)</div></div></div>
        <div class="rk-step"><span class="rk-step-num">2</span><div><h3>Dolicz podejścia, których nie ma w metrażu</h3><p>Odcinki do rozdzielacza i z powrotem bywają pominięte przy szacowaniu rury wyłącznie na polu. Wpisz ich sumę tylko raz. Jeżeli projektowa suma pętli już je uwzględnia, dodatkiem jest zero.</p><div class="rk-formula">L mocowania ≈ L pola albo L projektu + L brakujących podejść</div></div></div>
        <div class="rk-step"><span class="rk-step-num">3</span><div><h3>Policz spinki bazowe</h3><p>Podziel długość mocowanej rury przez przyjęty odstęp między punktami mocowania. Wynik zaokrąglij do pełnej sztuki. Odcinki przy końcach i załamaniach mogą wymagać mocowania niezależnie od tego przybliżenia.</p><div class="rk-formula">N baza = zaokrąglij w górę (L mocowania ÷ odstęp mocowań)</div></div></div>
        <div class="rk-step"><span class="rk-step-num">4</span><div><h3>Dodaj korektę i zapas, następnie pełne opakowania</h3><p>Poprawka procentowa na trudne miejsca służy wyłącznie do orientacyjnego zakupu. Osobno dodaj rezerwę, a dopiero potem przelicz liczbę pełnych opakowań.</p><div class="rk-formula">N zakup = zaokrąglij w górę [(N baza + N łuki) × (1 + zapas / 100)]</div><div class="rk-formula">Opakowania = zaokrąglij w górę (N zakup ÷ sztuki w opakowaniu)</div></div></div>
      </div>
      <div class="rk-note"><p><strong>Uwaga o zaokrągleniu:</strong> dla małego pomieszczenia ostatnie mocowanie przy końcu odcinka może wymagać dodatkowej sztuki. Kalkulator służy do planowania całego zamówienia, a miejsca wbijania spinek określa wykonawca na rzeczywistej trasie rury.</p></div>
    </section>

    <section class="rk-section rk-soft" id="rk-clips-table">
      <span class="rk-eyebrow">Szybka tabela</span>
      <h2>Ile spinek na 10, 50 i 100 m² przy rozstawie 10, 15 lub 20 cm?</h2>
      <p class="rk-lead">Poniższe wartości dotyczą prostych odcinków w systemie takerowym, przy dwóch przykładach odstępu mocowań. W tabeli nie ma dodatkowych spinek na łuki, nieujętych podejść ani zapasu.</p>
      <div class="rk-table-wrap"><table><thead><tr><th>Powierzchnia czynna</th><th>Rozstaw rur</th><th>Rura na polu</th><th>Spinki co 50 cm</th><th>Spinki co 40 cm</th></tr></thead><tbody>
        <tr><td data-label="Powierzchnia"><strong>10 m²</strong></td><td data-label="Rozstaw">10 cm</td><td data-label="Rura">100 m</td><td data-label="Co 50 cm">200 szt.</td><td data-label="Co 40 cm">250 szt.</td></tr>
        <tr><td data-label="Powierzchnia"><strong>10 m²</strong></td><td data-label="Rozstaw">15 cm</td><td data-label="Rura">około 66,7 m</td><td data-label="Co 50 cm">około 134 szt.</td><td data-label="Co 40 cm">około 167 szt.</td></tr>
        <tr><td data-label="Powierzchnia"><strong>10 m²</strong></td><td data-label="Rozstaw">20 cm</td><td data-label="Rura">50 m</td><td data-label="Co 50 cm">100 szt.</td><td data-label="Co 40 cm">125 szt.</td></tr>
        <tr><td data-label="Powierzchnia"><strong>50 m²</strong></td><td data-label="Rozstaw">15 cm</td><td data-label="Rura">około 333,3 m</td><td data-label="Co 50 cm">około 667 szt.</td><td data-label="Co 40 cm">około 834 szt.</td></tr>
        <tr><td data-label="Powierzchnia"><strong>100 m²</strong></td><td data-label="Rozstaw">15 cm</td><td data-label="Rura">około 666,7 m</td><td data-label="Co 50 cm">około 1334 szt.</td><td data-label="Co 40 cm">około 1667 szt.</td></tr>
      </tbody></table></div>
      <p class="rk-table-caption">Rachunek geometryczny: A ÷ s, następnie podział długości przez 0,5 m albo 0,4 m. Każdy wynik w sztukach zaokrąglono w górę. Rzeczywista geometria pętli zmienia zużycie.</p>
      <div class="rk-note rk-note-ok"><p><strong>Przykład do zamówienia:</strong> dla 30 m², 15 cm rozstawu i mocowania co 50 cm bazą jest 400 spinek. Przy przykładowych 10% na trudne miejsca i 5% zapasu otrzymujesz 462 spinki, czyli dwa opakowania po 270 sztuk. To wariant kalkulatorowy, a nie obowiązkowa liczba na taką powierzchnię.</p></div>
    </section>

    <section class="rk-section" id="rk-clips-turns">
      <span class="rk-eyebrow">Miejsca, w których średnia myli</span>
      <h2>Łuki, nawroty i podejścia: gdzie potrzeba więcej mocowań?</h2>
      <p class="rk-lead">Mocowanie rury co jednakową odległość na całej trasie jest uproszczeniem. Nawroty, przejścia przez drzwi i odcinki wychodzące z rozdzielacza mogą wymagać dodatkowych punktów stabilizacji zgodnie z instrukcją systemu i geometrią pętli.</p>
      <div class="rk-grid3">
        <div class="rk-card"><span class="rk-card-badge">NAWRÓT</span><h3>Rura zmienia kierunek</h3><p>Sprawdź, czy łuk trzyma zadany promień i nie unosi się z izolacji. Sama gęstość spinek na prostych odcinkach nie opisuje tego miejsca.</p></div>
        <div class="rk-card"><span class="rk-card-badge">ROZDZIELACZ</span><h3>Wiele rur w jednym miejscu</h3><p>Każda pętla ma własne podejście. Jeżeli długości projektu obejmują te odcinki, uwzględnij je raz w całkowitym metrażu mocowanej rury.</p></div>
        <div class="rk-card"><span class="rk-card-badge">PRZEJŚCIA</span><h3>Dylatacja i próg</h3><p>Przejścia trzeba wykonać zgodnie z projektem i ochronić rurę. O dodatkowym mocowaniu decyduje sposób prowadzenia oraz osłony.</p></div>
      </div>
      <p>Przy własnym projekcie odczytaj rzeczywistą długość każdej <a href="https://projekt-ogrzewania.pl/petla-grzewcza/">pętli grzewczej</a>. Jeżeli liczysz rurę z metrażu powierzchni, pomocny będzie osobny <a href="https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/">kalkulator ilości rury</a>. Żadnego z tych narzędzi nie należy używać do automatycznego dobierania rozstawu.</p>
    </section>

    <section class="rk-section rk-soft" id="rk-clips-systems">
      <span class="rk-eyebrow">Technologia mocowania</span>
      <h2>Spinki do takera, klipsy, szyny i płyty z wypustkami</h2>
      <p class="rk-lead">Słowo „klips” bywa używane wobec różnych elementów. Przed użyciem kalkulatora ustal, co dokładnie trzyma rurę w wybranej konstrukcji podłogi.</p>
      <div class="rk-table-wrap"><table><thead><tr><th>Sposób mocowania</th><th>Co trzyma rurę?</th><th>Czy kalkulator spinek do izolacji ma zastosowanie?</th></tr></thead><tbody>
        <tr><td data-label="System"><strong>Taker na izolacji</strong></td><td data-label="Mocowanie">Osobne spinki wbijane nad rurą do odpowiedniej warstwy izolacji.</td><td data-label="Zastosowanie">Tak, po ustaleniu rozstawu mocowań z dokumentacji wybranego systemu.</td></tr>
        <tr><td data-label="System"><strong>Szyna montażowa</strong></td><td data-label="Mocowanie">Rurę utrzymuje listwa, a szynę mocuje się do podłoża osobno.</td><td data-label="Zastosowanie">Nie do obliczania elementów szyny. Potrzebny jest rozstaw szyn i liczba ich punktów kotwienia.</td></tr>
        <tr><td data-label="System"><strong>Płyta z wypustkami</strong></td><td data-label="Mocowanie">Rurę ustalają wypustki płyty, bez spinki do takera na każdym odcinku.</td><td data-label="Zastosowanie">Nie. Zamówienie dotyczy powierzchni płyt i elementów systemowych.</td></tr>
        <tr><td data-label="System"><strong>Siatka i opaski</strong></td><td data-label="Mocowanie">Rurę podtrzymują odpowiednie opaski lub klipsy mocowane do siatki.</td><td data-label="Zastosowanie">Nie wprost. Instrukcja tego rozwiązania może przewidywać inną liczbę mocowań.</td></tr>
      </tbody></table></div>
      <div class="rk-note"><p><strong>Nie myl dwóch rozstawów:</strong> „rury co 15 cm” oznacza odległość między sąsiednimi przebiegami rury, a „spinki co 50 cm” oznaczają odległość między punktami mocowania wzdłuż rury. To dwie różne wielkości.</p></div>
    </section>

    <section class="rk-section" id="rk-clips-fit">
      <span class="rk-eyebrow">Kontrola przed zakupem</span>
      <h2>Jak dobrać spinkę do rury, izolacji i takera?</h2>
      <p class="rk-lead">Poprawna liczba spinek nie wystarczy, jeżeli mocowanie nie jest zgodne z pozostałymi elementami. Sprawdź kartę konkretnego produktu oraz instrukcję kompletnego systemu.</p>
      <div class="rk-grid4">
        <div class="rk-card"><span class="rk-card-badge">01</span><h3>Średnica rury</h3><p>Sprawdź zakres średnic dopuszczony dla spinki. Nie zakładaj, że każda pasuje jednakowo do 16, 17 i 20 mm.</p></div>
        <div class="rk-card"><span class="rk-card-badge">02</span><h3>Izolacja i folia</h3><p>Znaczenie mają grubość i typ warstwy, w której kotwi się spinka, oraz sposób zabezpieczenia podłoża.</p></div>
        <div class="rk-card"><span class="rk-card-badge">03</span><h3>Narzędzie</h3><p>Porównaj geometrię i sposób podawania spinek z takerem. Zgodna wysokość nie przesądza o zgodności magazynka.</p></div>
        <div class="rk-card"><span class="rk-card-badge">04</span><h3>Warunki montażu</h3><p>Sprawdź sposób mocowania na łukach, ochronę rury przy dylatacjach i stabilność przed układaniem jastrychu.</p></div>
      </div>
      <p>Jeżeli dopiero wybierasz całą konstrukcję posadzki, najpierw ustal warstwę izolacji w poradniku <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">ile styropianu pod ogrzewanie podłogowe</a> i rozstrzygnij <a href="https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/">system mokry czy suchy</a>. Dopiero wtedy porównuj sposoby mocowania rur.</p>
    </section>

    <section class="rk-section rk-soft" id="rk-clips-packs">
      <span class="rk-eyebrow">Zamówienie materiału</span>
      <h2>Ile opakowań spinek kupić na całą instalację?</h2>
      <p class="rk-lead">Wynik w sztukach zawsze zaokrąglij do pełnych opakowań wybranego produktu. Przy dużym domu policz wszystkie pola o różnych rozstawach osobno, dodaj rzeczywiste podejścia i dopiero podsumuj zamówienie.</p>
      <ol><li>Spisz aktywną powierzchnię lub metraż rur dla każdego pomieszczenia.</li><li>Jeżeli rozstawy są różne, oszacuj długość rury dla każdego pola oddzielnie.</li><li>Dodaj podejścia, jeżeli nie ma ich w projekcie lub zestawieniu pętli.</li><li>Zastosuj odstęp mocowania dopuszczony dla wybranego produktu.</li><li>Ujmij dodatkowe mocowania oraz zapas zakupowy.</li><li>Sprawdź liczbę sztuk w opakowaniu i zaokrąglij liczbę opakowań w górę.</li></ol>
      <div class="rk-note rk-note-ok"><p><strong>Przykład:</strong> potrzebujesz 462 spinek, a wybrana paczka zawiera 270 sztuk. Do zamówienia wychodzą 2 paczki, czyli 540 sztuk. Po odliczeniu oszacowanego zużycia pozostaje 78 sztuk. Wielkość opakowania wpisujesz w kalkulatorze samodzielnie.</p></div>
      <p>Rozstaw rury musi wynikać z zapotrzebowania na ciepło i konstrukcji podłogi; osobno omawia to artykuł <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstaw rur co 10 czy 15 cm</a>. Liczba spinek jest konsekwencją tego wyboru, nie kryterium jego podejmowania.</p>
    </section>

    <section class="rk-section" id="rk-clips-errors">
      <span class="rk-eyebrow">Szybka kontrola wykonawcza</span>
      <h2>Najczęstsze błędy przy liczeniu i mocowaniu spinek</h2>
      <div class="rk-grid3">
        <div class="rk-card"><span class="rk-card-badge">BŁĄD 1</span><h3>Jedna liczba na każdy m²</h3><p>Nie bierze pod uwagę, czy rury są co 10, 15 czy 20 cm.</p></div>
        <div class="rk-card"><span class="rk-card-badge">BŁĄD 2</span><h3>Pomijanie podejść</h3><p>Powierzchnia pomieszczenia nie opisuje dodatkowych odcinków do rozdzielacza.</p></div>
        <div class="rk-card"><span class="rk-card-badge">BŁĄD 3</span><h3>Podwójne doliczanie rur</h3><p>Gdy wpisano pełny metraż pętli z projektu, podejść zawartych w tej sumie nie dodaje się ponownie.</p></div>
        <div class="rk-card"><span class="rk-card-badge">BŁĄD 4</span><h3>Ten sam odstęp wszędzie</h3><p>Na łukach i przy zmianach kierunku punkty stabilizacji trzeba ocenić na rzeczywistym ułożeniu.</p></div>
        <div class="rk-card"><span class="rk-card-badge">BŁĄD 5</span><h3>Niezgodny system</h3><p>Spinka, tacker, rura i izolacja muszą tworzyć odpowiedni układ mocowania.</p></div>
        <div class="rk-card"><span class="rk-card-badge">BŁĄD 6</span><h3>Przelicznik do każdej technologii</h3><p>Płyty z wypustkami, szyny i opaski na siatce nie są obliczane jak spinki do takera.</p></div>
      </div>
      <p>Szerszą kontrolę prac przed zalaniem podłogi zawiera poradnik o <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">błędach montażu ogrzewania podłogowego</a>. Zapis przebiegu pętli i próba przed zakryciem są ważniejsze niż samo zamówienie poprawnej liczby klipsów.</p>
    </section>

    <section class="rk-section rk-soft" id="rk-clips-faq">
      <span class="rk-eyebrow">Pytania przed zamówieniem</span>
      <h2>FAQ — ile spinek i klipsów do podłogówki?</h2>
      <div class="rk-faq">
        <details><summary>Ile spinek do podłogówki na 1 m² przy rozstawie 15 cm?</summary><div class="rk-faq-text"><p>Na regularnym polu wypada około 6,67 m rury na 1 m². Przy mocowaniu co 50 cm daje to około 13–14 spinek bazowych, a co 40 cm około 16–17. Osobno uwzględnij łuki, podejścia i zapas.</p></div></details>
        <details><summary>Ile spinek na 10 m² podłogówki?</summary><div class="rk-faq-text"><p>Przy rozstawie rur 15 cm powstaje orientacyjnie 66,7 m rury na polu. Mocowanie co 50 cm oznacza około 134 spinki bazowe, a co 40 cm około 167. Inny rozstaw rur zmieni wynik.</p></div></details>
        <details><summary>Ile spinek na 100 m² ogrzewania podłogowego?</summary><div class="rk-faq-text"><p>Dla jednego regularnego pola 100 m² i rozstawu 15 cm można oszacować około 667 m rury. Podział przez 0,5 m daje około 1334 spinki bazowe, a przez 0,4 m około 1667. Cały dom zwykle ma różne rozstawy i podejścia, dlatego te liczby są jedynie przykładem.</p></div></details>
        <details><summary>Ile spinek przypada na metr rury?</summary><div class="rk-faq-text"><p>Przy odstępie mocowań 50 cm wypada orientacyjnie 2 spinki na metr rury; przy 40 cm około 2,5. Sprawdź instrukcję konkretnego systemu, szczególnie zalecenia dotyczące łuków.</p></div></details>
        <details><summary>Czy odstęp między spinkami to to samo co rozstaw rur?</summary><div class="rk-faq-text"><p>Nie. Rozstaw rur opisuje odległość między sąsiednimi przebiegami przewodu w podłodze. Odstęp między spinkami mierzy się wzdłuż jednej rury.</p></div></details>
        <details><summary>Czy kalkulator dolicza łuki?</summary><div class="rk-faq-text"><p>Tak, jako jawnie ustawianą korektę procentową do liczby spinek bazowych. Domyślne 10% jest przykładem do wstępnego zamówienia, a nie liczbą wymaganą dla każdej instalacji.</p></div></details>
        <details><summary>Czy trzeba doliczyć rury od rozdzielacza?</summary><div class="rk-faq-text"><p>Tak, jeżeli nie zostały ujęte w długości rury wpisanej do kalkulatora. Jeśli znasz pełny metraż pętli z projektu wraz z podejściami, wpisz dodatkową długość równą zero.</p></div></details>
        <details><summary>Czy na łuku można wbijać spinki tak samo jak na prostej?</summary><div class="rk-faq-text"><p>Łuk musi zachować promień gięcia i stabilnie przylegać do podłoża. Liczbę i położenie punktów mocowania trzeba ocenić na rzeczywistej trasie zgodnie z instrukcją systemu.</p></div></details>
        <details><summary>Czy spinki 40 mm i 50 mm są zamienne?</summary><div class="rk-faq-text"><p>Sama długość ramion nie wystarcza do stwierdzenia zamienności. Sprawdź średnicę rury, rodzaj i grubość izolacji, narzędzie oraz dopuszczenie danego systemu.</p></div></details>
        <details><summary>Czy spinki do rury 16 mm pasują również do rury 20 mm?</summary><div class="rk-faq-text"><p>Nie wynika to automatycznie z nazwy spinki. O zgodności decyduje zakres wymiarów deklarowany dla konkretnego produktu i używanego narzędzia.</p></div></details>
        <details><summary>Czy kalkulator policzy klipsy do szyny albo siatki?</summary><div class="rk-faq-text"><p>Nie. Narzędzie jest przeznaczone do wstępnego liczenia osobnych spinek mocujących rurę do izolacji. Szyny, płyty z wypustkami i siatki wymagają własnych zasad obmiaru.</p></div></details>
        <details><summary>Dlaczego wynik w opakowaniach jest wyższy od wyniku w sztukach?</summary><div class="rk-faq-text"><p>Opakowania kupuje się zwykle w całości. Kalkulator dzieli zapotrzebowanie w sztukach przez wielkość paczki i zaokrągla liczbę paczek w górę. Pokazuje także liczbę sztuk, które pozostaną po takim zakupie.</p></div></details>
        <details><summary>Czy liczba spinek określa poprawność projektu ogrzewania?</summary><div class="rk-faq-text"><p>Nie. Wynik dotyczy materiału montażowego. Rozstaw rur, podział na pętle, przepływy, opory i temperatury pracy wynikają z obliczeń projektu instalacji.</p></div></details>
        <details><summary>Co zrobić, jeśli spinka nie trzyma się izolacji?</summary><div class="rk-faq-text"><p>Nie próbuj kompensować problemu wyłącznie większą liczbą spinek. Sprawdź zgodność mocowania z izolacją, jej grubość i stan, poprawność użycia narzędzia oraz instrukcję systemu.</p></div></details>
      </div>
    </section>

    <section class="rk-section" id="rk-clips-project">
      <span class="rk-eyebrow">Gdy brakuje danych do kalkulatora</span>
      <h2>Nie znasz jeszcze rozstawów ani długości pętli?</h2>
      <p class="rk-lead">Dokładniejsze zamówienie materiału zaczyna się od ustalenia aktywnych powierzchni, przebiegu obwodów i położenia rozdzielacza. Te dane wynikają z projektu całej instalacji, a nie z uśrednionej liczby spinek na metr kwadratowy domu.</p>
      <div class="rk-cta"><div class="rk-cta-title">Zamów projekt podłogówki z rozstawami i podziałem na pętle</div><p>Projekt określa obciążenia cieplne, rozstaw rur w poszczególnych polach, długości pętli, podejścia, przepływy i nastawy. Na tej podstawie wykonawca może przygotować rzeczywiste zestawienie rury i materiałów do jej montażu.</p><a class="rk-cta-link" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Sprawdź projekt ogrzewania podłogowego</a><small>Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small></div>
    </section>

    <section class="rk-section rk-soft" id="rk-clips-sources">
      <span class="rk-eyebrow">Podstawa techniczna</span>
      <h2>Źródła i granice szacunku</h2>
      <p class="rk-lead">Odstępy mocowania 40 i 50 cm są jawnymi założeniami scenariuszy zakupowych, a nie uniwersalną liczbą spinek wynikającą z poniższych norm. Geometria pola to autorskie przybliżenie materiałowe; projektowanie cieplne i instalowanie systemów płaszczyznowych mają odrębne wymagania. Właściwy sposób mocowania ustal dla wybranego systemu.</p>
      <div class="rk-sources">
        <div class="rk-source"><a href="https://knowledge.bsigroup.com/products/water-based-surface-embedded-heating-and-cooling-systems-installation-1" target="_blank" rel="nofollow noopener noreferrer">EN 1264-4:2021 — instalowanie wodnych systemów płaszczyznowych</a><p>Oficjalna karta normy dotyczącej projektowania i wykonania konstrukcji ogrzewania oraz chłodzenia powierzchniowego.</p></div>
        <div class="rk-source"><a href="https://www.iso.org/standard/74684.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-3:2021 — projektowanie i wymiarowanie systemu</a><p>Oficjalna karta normy o doborze i wymiarowaniu instalacji w celu zapewnienia wymaganej mocy grzewczej lub chłodniczej.</p></div>
        <div class="rk-source"><a href="https://www.iso.org/standard/74685.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-5:2021 — instalowanie wbudowanych systemów wodnych</a><p>Oficjalna karta normy opisującej montaż wodnych systemów ogrzewania i chłodzenia płaszczyznowego.</p></div>
        <div class="rk-source"><a href="https://www.iso.org/standard/74683.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-2:2021 — ustalanie zdolności grzewczej i chłodniczej</a><p>Oficjalna karta obliczeń cieplnych, z których wynika projektowy rozstaw rury.</p></div>
      </div>
      <div class="rk-note rk-note-alert"><p><strong>Zakres narzędzia:</strong> liczy orientacyjne zapotrzebowanie na spinki do mocowania rury do izolacji. Nie wyznacza lokalizacji pojedynczych punktów mocowania, wymaganego rozstawu rur, nośności podłoża, wydajności ogrzewania ani dopuszczalnych długości pętli. Przy sprzeczności z kartą produktu stosuj aktualną instrukcję wybranego systemu.</p></div>
    </section>

    <section class="rk-author" id="rk-clips-author">
      <span class="rk-eyebrow">Autor i weryfikacja</span>
      <h2>O autorze</h2>
      <div class="rk-author-grid">
        <aside class="rk-author-side"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski, projektant instalacji sanitarnych i ogrzewania podłogowego" width="400" height="400" loading="lazy" decoding="async"><strong>Robert Kucharski</strong><p>Projektant instalacji sanitarnych<br>specjalista HVAC i ogrzewania podłogowego</p><div class="rk-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 X">X</a></div></aside>
        <div class="rk-author-body"><h3>Projektowanie i obmiar jednej instalacji</h3><div class="rk-author-quote">„Metry rury wynikają z rozrysowanych pól i podejść. Liczbę spinek można policzyć dopiero po ustaleniu tych metrów oraz sposobu mocowania.”</div><p>Robert Kucharski przygotowuje projekty wodnego ogrzewania podłogowego, obliczenia cieplne i hydrauliczne oraz materiały edukacyjne dla inwestorów i wykonawców. W tym poradniku oddziela obliczenie zakupowe spinek od doboru rozstawu rur i parametrów pracy instalacji.</p><p>Weryfikacja obejmuje jawność wzorów, zgodność przykładów liczbowych, rozróżnienie technologii mocowania i wskazanie granic wyniku. Zastosowanie konkretnej spinki trzeba potwierdzić w dokumentacji wyrobu oraz instrukcji używanego systemu.</p><p class="rk-author-links">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</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/",
      "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", "dobór materiałów montażowych", "hydraulika pętli grzewczych"],
      "worksFor": [
        { "@id": "https://projekt-ogrzewania.pl/#organization" },
        { "@id": "https://remont.biz.pl/#organization" },
        { "@id": "https://sobir.pl/#organization" }
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m2/#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 spinek do podłogówki na m²? Kalkulator spinek i klipsów", "item": "https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m2/" }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m2/#webpage",
      "url": "https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m2/",
      "name": "Ile spinek do podłogówki na m²? Kalkulator spinek i klipsów",
      "description": "Ile spinek do podłogówki na m²? Oblicz zapotrzebowanie z rozstawu rur i odstępu mocowań. Kalkulator pokaże liczbę spinek, zapas i opakowania.",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
      "breadcrumb": { "@id": "https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m2/#breadcrumb" },
      "datePublished": "2026-10-03",
      "dateModified": "2026-10-03",
      "inLanguage": "pl-PL",
      "mainEntity": { "@id": "https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m2/#article" }
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m2/#article",
      "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m2/#webpage" },
      "headline": "Ile spinek do podłogówki na m²? Kalkulator spinek i klipsów",
      "description": "Przewodnik szacowania liczby spinek do rur ogrzewania podłogowego z tabelą, metodą obliczeń i kalkulatorem opakowań.",
      "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "datePublished": "2026-10-03",
      "dateModified": "2026-10-03",
      "inLanguage": "pl-PL",
      "keywords": "ile spinek do podłogówki na m², kalkulator spinek, ile klipsów na metr rury, spinki do takera, ile opakowań spinek",
      "about": ["spinki do ogrzewania podłogowego", "mocowanie rur do izolacji", "obmiar materiałów instalacyjnych"],
      "isAccessibleForFree": true,
      "hasPart": [
        { "@id": "https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m2/#calculator" },
        { "@id": "https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m2/#howto" },
        { "@id": "https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m2/#faq-schema" }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m2/#calculator",
      "name": "Kalkulator spinek i klipsów do podłogówki",
      "url": "https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m2/#rk-clips-calculator-section",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Dowolny system z nowoczesną przeglądarką internetową",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "description": "Orientacyjnie oblicza liczbę spinek z powierzchni i rozstawu rur albo ze znanego metrażu, a następnie dolicza jawne poprawki i pełne opakowania."
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m2/#howto",
      "name": "Jak obliczyć liczbę spinek do ogrzewania podłogowego",
      "description": "Cztery etapy obmiaru rury, mocowań, dodatków i opakowań w systemie takerowym.",
      "step": [
        { "@type": "HowToStep", "position": 1, "name": "Ustal długość rury", "text": "Odczytaj metraż z projektu albo podziel powierzchnię czynną przez rozstaw rur wyrażony w metrach." },
        { "@type": "HowToStep", "position": 2, "name": "Uwzględnij brakujące podejścia", "text": "Dolicz tylko odcinki od rozdzielacza, których nie ma w podanym metrażu rury." },
        { "@type": "HowToStep", "position": 3, "name": "Oblicz spinki bazowe", "text": "Podziel metraż mocowanej rury przez odstęp między punktami mocowania wymagany dla danego systemu i zaokrąglij do pełnych sztuk." },
        { "@type": "HowToStep", "position": 4, "name": "Dodaj łuki, zapas i opakowania", "text": "Dolicz punkty mocowania wymagane w trudnych miejscach, zapas zakupowy i zaokrąglij wynik do pełnych opakowań." }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m2/#faq-schema",
      "mainEntity": [
        { "@type": "Question", "name": "Ile spinek do podłogówki na 1 m² przy rozstawie 15 cm?", "acceptedAnswer": { "@type": "Answer", "text": "Na regularnym polu wypada około 6,67 m rury na 1 m². Przy mocowaniu co 50 cm daje to około 13–14 spinek bazowych, a co 40 cm około 16–17. Osobno uwzględnij łuki, podejścia i zapas." } },
        { "@type": "Question", "name": "Ile spinek na 10 m² podłogówki?", "acceptedAnswer": { "@type": "Answer", "text": "Przy rozstawie rur 15 cm powstaje orientacyjnie 66,7 m rury na polu. Mocowanie co 50 cm oznacza około 134 spinki bazowe, a co 40 cm około 167. Inny rozstaw rur zmieni wynik." } },
        { "@type": "Question", "name": "Ile spinek na 100 m² ogrzewania podłogowego?", "acceptedAnswer": { "@type": "Answer", "text": "Dla regularnego pola 100 m² i rozstawu 15 cm można oszacować około 667 m rury. Podział przez 0,5 m daje około 1334 spinki bazowe, a przez 0,4 m około 1667. Cały dom zwykle ma różne rozstawy i podejścia." } },
        { "@type": "Question", "name": "Ile spinek przypada na metr rury?", "acceptedAnswer": { "@type": "Answer", "text": "Przy odstępie mocowań 50 cm wypada orientacyjnie 2 spinki na metr rury; przy 40 cm około 2,5. Sprawdź instrukcję konkretnego systemu, szczególnie zalecenia dotyczące łuków." } },
        { "@type": "Question", "name": "Czy odstęp między spinkami to to samo co rozstaw rur?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Rozstaw rur opisuje odległość między sąsiednimi przebiegami przewodu w podłodze. Odstęp między spinkami mierzy się wzdłuż jednej rury." } },
        { "@type": "Question", "name": "Czy kalkulator dolicza łuki?", "acceptedAnswer": { "@type": "Answer", "text": "Tak, jako jawnie ustawianą korektę procentową do liczby spinek bazowych. Domyślne 10% jest przykładem do wstępnego zamówienia, a nie liczbą wymaganą dla każdej instalacji." } },
        { "@type": "Question", "name": "Czy trzeba doliczyć rury od rozdzielacza?", "acceptedAnswer": { "@type": "Answer", "text": "Tak, jeżeli nie zostały ujęte w długości rury wpisanej do kalkulatora. Jeśli znasz pełny metraż pętli z projektu wraz z podejściami, wpisz dodatkową długość równą zero." } },
        { "@type": "Question", "name": "Czy na łuku można wbijać spinki tak samo jak na prostej?", "acceptedAnswer": { "@type": "Answer", "text": "Łuk musi zachować promień gięcia i stabilnie przylegać do podłoża. Liczbę i położenie punktów mocowania trzeba ocenić na rzeczywistej trasie zgodnie z instrukcją systemu." } },
        { "@type": "Question", "name": "Czy spinki 40 mm i 50 mm są zamienne?", "acceptedAnswer": { "@type": "Answer", "text": "Sama długość ramion nie wystarcza do stwierdzenia zamienności. Sprawdź średnicę rury, rodzaj i grubość izolacji, narzędzie oraz dopuszczenie danego systemu." } },
        { "@type": "Question", "name": "Czy spinki do rury 16 mm pasują również do rury 20 mm?", "acceptedAnswer": { "@type": "Answer", "text": "Nie wynika to automatycznie z nazwy spinki. O zgodności decyduje zakres wymiarów deklarowany dla konkretnego produktu i używanego narzędzia." } },
        { "@type": "Question", "name": "Czy kalkulator policzy klipsy do szyny albo siatki?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Narzędzie jest przeznaczone do wstępnego liczenia osobnych spinek mocujących rurę do izolacji. Szyny, płyty z wypustkami i siatki wymagają własnych zasad obmiaru." } },
        { "@type": "Question", "name": "Dlaczego wynik w opakowaniach jest wyższy od wyniku w sztukach?", "acceptedAnswer": { "@type": "Answer", "text": "Opakowania kupuje się zwykle w całości. Kalkulator dzieli zapotrzebowanie w sztukach przez wielkość paczki i zaokrągla liczbę paczek w górę. Pokazuje także liczbę sztuk, które pozostaną po takim zakupie." } },
        { "@type": "Question", "name": "Czy liczba spinek określa poprawność projektu ogrzewania?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Wynik dotyczy materiału montażowego. Rozstaw rur, podział na pętle, przepływy, opory i temperatury pracy wynikają z obliczeń projektu instalacji." } },
        { "@type": "Question", "name": "Co zrobić, jeśli spinka nie trzyma się izolacji?", "acceptedAnswer": { "@type": "Answer", "text": "Sprawdź zgodność mocowania z izolacją, jej grubość i stan, poprawność użycia narzędzia oraz instrukcję systemu. Samo zwiększenie liczby spinek może nie rozwiązać problemu." } }
      ]
    }
  ]
}
</script>

<script>
(function () {
  "use strict";
  var root = document.getElementById("rk-clips-guide");
  if (!root) { return; }
  var byId = function (id) { return root.querySelector("#" + id); };
  var areaFields = byId("rk-clips-area-fields");
  var lengthFields = byId("rk-clips-length-fields");
  var result = byId("rk-clips-result");
  var error = byId("rk-clips-error");
  var numberFormat = new Intl.NumberFormat("pl-PL", { maximumFractionDigits: 1 });
  var integerFormat = new Intl.NumberFormat("pl-PL", { maximumFractionDigits: 0 });

  function mode() {
    var selected = root.querySelector('input[name="rk-clips-mode"]:checked');
    return selected ? selected.value : "area";
  }
  function parseField(id) {
    var field = byId(id);
    return Number(String(field.value).trim().replace(",", "."));
  }
  function write(id, value) { byId(id).textContent = value; }
  function validRange(n, minimum, maximum) {
    return Number.isFinite(n) ? n >= minimum && n <= maximum : false;
  }
  function changeMode() {
    var isArea = mode() === "area";
    areaFields.hidden = !isArea;
    lengthFields.hidden = isArea;
    calculate(false);
  }
  function showError(message, announce) {
    result.hidden = true;
    error.textContent = message;
    error.hidden = !announce;
  }
  function calculate(announce) {
    var isArea = mode() === "area";
    var area = parseField("rk-clips-area");
    var projectLength = parseField("rk-clips-length");
    var spacing = parseField("rk-clips-spacing");
    var approaches = parseField("rk-clips-approaches");
    var pitch = parseField("rk-clips-pitch");
    var bends = parseField("rk-clips-bends");
    var reserve = parseField("rk-clips-reserve");
    var packageSize = parseField("rk-clips-pack");
    if (isArea) {
      if (!validRange(area, 0.1, 10000)) {
        showError("Wpisz czynną powierzchnię od 0,1 do 10 000 m².", announce);
        return;
      }
    } else {
      if (!validRange(projectLength, 0.1, 100000)) {
        showError("Wpisz metraż rury z projektu od 0,1 do 100 000 m.", announce);
        return;
      }
    }
    if (!validRange(spacing, 5, 50)) {
      showError("Wybierz poprawny rozstaw rur.", announce);
      return;
    }
    if (!validRange(approaches, 0, 10000)) {
      showError("Dodatkowe podejścia muszą mieć długość od 0 do 10 000 m.", announce);
      return;
    }
    if (!validRange(pitch, 20, 100)) {
      showError("Wybierz poprawny odstęp między spinkami.", announce);
      return;
    }
    if (!validRange(bends, 0, 100)) {
      showError("Korekta na łuki musi wynosić od 0 do 100%.", announce);
      return;
    }
    if (!validRange(reserve, 0, 50)) {
      showError("Zapas zakupowy musi wynosić od 0 do 50%.", announce);
      return;
    }
    if (!validRange(packageSize, 1, 100000) || Math.floor(packageSize) !== packageSize) {
      showError("Podaj pełną liczbę spinek w opakowaniu od 1 do 100 000.", announce);
      return;
    }
    var fieldLength = isArea ? area / (spacing / 100) : projectLength;
    var totalLength = fieldLength + approaches;
    if (totalLength > 100000) {
      showError("Łączny metraż przekracza zakres kalkulatora (100 000 m).", announce);
      return;
    }
    var base = Math.ceil(totalLength / (pitch / 100) - 0.000000001);
    var bendsPieces = Math.ceil(base * bends / 100 - 0.000000001);
    var beforeReserve = base + bendsPieces;
    var withReserve = Math.ceil(beforeReserve * (1 + reserve / 100) - 0.000000001);
    var reservePieces = withReserve - beforeReserve;
    var packages = Math.ceil(withReserve / packageSize);
    var remainder = packages * packageSize - withReserve;
    error.hidden = true;
    result.hidden = false;
    write("rk-clips-total", integerFormat.format(withReserve) + " spinek do zakupu");
    write("rk-clips-summary", "Zamów " + integerFormat.format(packages) + " pełne opakowania po " + integerFormat.format(packageSize) + " szt. Po odjęciu obliczonego zapotrzebowania zostanie " + integerFormat.format(remainder) + " szt.");
    write("rk-clips-result-length", numberFormat.format(totalLength) + " m");
    write("rk-clips-result-base", integerFormat.format(base) + " szt.");
    write("rk-clips-result-bends", "+" + integerFormat.format(bendsPieces) + " szt.");
    write("rk-clips-result-reserve", "+" + integerFormat.format(reservePieces) + " szt.");
    write("rk-clips-result-packs", integerFormat.format(packages) + " × " + integerFormat.format(packageSize));
    write("rk-clips-result-density", isArea ? numberFormat.format(withReserve / area) + " szt./m²" : "brak powierzchni");
    var firstPart = isArea ? numberFormat.format(area) + " m² ÷ " + numberFormat.format(spacing / 100) + " m = około " + numberFormat.format(fieldLength) + " m rury na polu" : numberFormat.format(projectLength) + " m rury z projektu";
    var equation = firstPart + "; dodatkowe podejścia " + numberFormat.format(approaches) + " m; " + numberFormat.format(totalLength) + " m ÷ " + numberFormat.format(pitch / 100) + " m = " + integerFormat.format(base) + " spinek bazowych. Korekta na łuki: " + integerFormat.format(bendsPieces) + "; zapas zakupowy: " + integerFormat.format(reservePieces) + ". Razem " + integerFormat.format(withReserve) + " szt., czyli " + integerFormat.format(packages) + " opakowania/ń.";
    write("rk-clips-equation", equation);
    write("rk-clips-limit", isArea ? "Szacunek powierzchniowy nie zna faktycznej liczby nawrotów ani przebiegu pętli. Korektę na łuki przyjęto jako " + numberFormat.format(bends) + "%; sprawdź ją na rzucie oraz w instrukcji systemu." : "Wynik bazuje na metrażu wpisanym z projektu. Sprawdź, czy uwzględnia on podejścia i czy korekta na łuki (" + numberFormat.format(bends) + "%) odpowiada rzeczywistym trasom.");
  }
  root.querySelectorAll('input[name="rk-clips-mode"]').forEach(function (field) {
    field.addEventListener("change", changeMode);
  });
  root.querySelectorAll("#rk-clips-calculator input, #rk-clips-calculator select").forEach(function (field) {
    if (field.type !== "radio") {
      field.addEventListener("input", function () { calculate(false); });
      field.addEventListener("change", function () { calculate(false); });
    }
  });
  byId("rk-clips-run").addEventListener("click", function () { calculate(true); });
  byId("rk-clips-reset").addEventListener("click", function () {
    root.querySelector('input[name="rk-clips-mode"][value="area"]').checked = true;
    byId("rk-clips-area").value = "30";
    byId("rk-clips-spacing").value = "15";
    byId("rk-clips-length").value = "200";
    byId("rk-clips-approaches").value = "0";
    byId("rk-clips-pitch").value = "50";
    byId("rk-clips-bends").value = "10";
    byId("rk-clips-reserve").value = "5";
    byId("rk-clips-pack").value = "270";
    changeMode();
  });
  changeMode();
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m%c2%b2/">Ile spinek do podłogówki na m²? Kalkulator spinek i klipsów.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m%c2%b2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Wygrzewanie wylewki pod ogrzewanie podłogowe – terminy, przebieg i protokół.</title>
		<link>https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/</link>
					<comments>https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#respond</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 03 Oct 2026 06:59:32 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Eksploatacja ogrzewania]]></category>
		<category><![CDATA[Hydraulika]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Montaż ogrzewania podłogowego]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Podłogówka]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Wylewka na ogrzewanie podłogowe]]></category>
		<category><![CDATA[ile trwa wygrzewanie wylewki]]></category>
		<category><![CDATA[jastrych anhydrytowy]]></category>
		<category><![CDATA[jastrych cementowy]]></category>
		<category><![CDATA[jastrych grzewczy]]></category>
		<category><![CDATA[kiedy wygrzewać wylewkę]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pierwsze uruchomienie podłogówki]]></category>
		<category><![CDATA[pomiar wilgotności wylewki]]></category>
		<category><![CDATA[program wygrzewania wylewki]]></category>
		<category><![CDATA[protokół podłogówki]]></category>
		<category><![CDATA[protokół wygrzewania wylewki]]></category>
		<category><![CDATA[temperatura wygrzewania wylewki]]></category>
		<category><![CDATA[wilgotność wylewki]]></category>
		<category><![CDATA[wygrzewanie jastrychu]]></category>
		<category><![CDATA[wygrzewanie podłogówki]]></category>
		<category><![CDATA[wygrzewanie posadzki]]></category>
		<category><![CDATA[wygrzewanie wylewki]]></category>
		<category><![CDATA[wygrzewanie wylewki pod ogrzewanie podłogowe]]></category>
		<category><![CDATA[wylewka anhydrytowa]]></category>
		<category><![CDATA[wylewka cementowa]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=7788</guid>

					<description><![CDATA[<p>Prawidłowe uruchomienie instalacji po wykonaniu jastrychu ma ogromne znaczenie dla trwałości późniejszej posadzki. Wygrzewanie wylewki pod ogrzewanie podłogowe powinno rozpocząć się dopiero po odpowiednim okresie dojrzewania materiału i przebiegać zgodnie z wymaganiami konkretnego jastrychu oraz parametrami instalacji. W poradniku wyjaśniamy, kiedy można rozpocząć pierwszy cykl grzewczy, czym różni się postępowanie z jastrychem cementowym i anhydrytowym, jak kontrolować temperaturę zasilania oraz dlaczego samo zakończenie programu wygrzewania nie oznacza jeszcze, że podłoże jest gotowe pod płytki, panele lub drewno. Pokazujemy również, jak prowadzić dziennik wygrzewania, przygotować protokół i uniknąć błędów podczas pierwszego uruchomienia podłogówki.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/">Wygrzewanie wylewki pod ogrzewanie podłogowe – terminy, przebieg i protokół.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-heat-guide {
    --rh-navy:#0b2536;--rh-mid:#143c50;--rh-cyan:#27c5d5;--rh-cyan-deep:#077a93;
    --rh-orange:#ff6846;--rh-ink:#102c3e;--rh-copy:#3b5869;--rh-muted:#667f8e;
    --rh-line:#d1e2e9;--rh-bg:#f2f8fa;--rh-white:#fff;
    color:var(--rh-ink);font:16px/1.65 Arial,Helvetica,sans-serif;
    margin:0 auto;max-width:1360px;overflow-wrap:anywhere;width:100%;
  }
  #rk-heat-guide,#rk-heat-guide *{box-sizing:border-box;min-width:0}
  #rk-heat-guide a{color:var(--rh-cyan-deep);text-decoration-thickness:1px;text-underline-offset:3px}
  #rk-heat-guide a:hover{color:#cf492d}
  #rk-heat-guide img{display:block;height:auto;max-width:100%}
  #rk-heat-guide button,#rk-heat-guide input,#rk-heat-guide select,#rk-heat-guide textarea{font:inherit}
  #rk-heat-guide :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--rh-cyan);outline-offset:3px}
  #rk-heat-guide .rh-shell{background:#fff;border:1px solid var(--rh-line);box-shadow:0 18px 60px rgba(10,38,54,.11);overflow:hidden}
  #rk-heat-guide .rh-hero{background:radial-gradient(circle at 94% 115%,rgba(39,197,213,.22) 0 19%,transparent 19.2%),linear-gradient(120deg,#0b2536,#17455a 68%,#0c6676);color:#fff;padding:64px 58px 57px}
  #rk-heat-guide .rh-kicker,#rk-heat-guide .rh-eyebrow{color:#70e5ed;display:block;font-size:.77rem;font-weight:900;letter-spacing:.12em;margin:0 0 16px;text-transform:uppercase}
  #rk-heat-guide .rh-hero-title,#rk-heat-guide .rh-section h2,#rk-heat-guide .rh-author h2{font-family:Arial,Helvetica,sans-serif;font-weight:900;letter-spacing:-.035em;line-height:1.09;margin:0}
  #rk-heat-guide .rh-hero-title{font-size:clamp(2.4rem,5.8vw,5.2rem);max-width:1160px}
  #rk-heat-guide .rh-hero-title span{color:#72e7ef}
  #rk-heat-guide .rh-hero-lead{color:#e0eff4;font-size:clamp(1.04rem,1.9vw,1.38rem);line-height:1.58;margin:25px 0 0;max-width:1080px}
  #rk-heat-guide .rh-tags,#rk-heat-guide .rh-meta,#rk-heat-guide .rh-nav{display:flex;flex-wrap:wrap}
  #rk-heat-guide .rh-tags{gap:9px;margin-top:28px}
  #rk-heat-guide .rh-tags span{border:1px solid rgba(255,255,255,.28);border-radius:99px;color:#fff;font-size:.81rem;font-weight:800;padding:7px 12px}
  #rk-heat-guide .rh-meta{color:#ccdde4;font-size:.83rem;gap:10px 23px;margin-top:31px}
  #rk-heat-guide .rh-meta strong{color:#fff}
  #rk-heat-guide .rh-nav{align-items:center;border-bottom:1px solid var(--rh-line);gap:8px;padding:19px 29px;position:static}
  #rk-heat-guide .rh-nav-label{font-size:.73rem;font-weight:900;letter-spacing:.08em;margin-right:5px;text-transform:uppercase}
  #rk-heat-guide .rh-nav a{background:#edf5f7;border-radius:30px;color:var(--rh-ink);font-size:.78rem;font-weight:800;line-height:1.3;padding:8px 12px;text-decoration:none}
  #rk-heat-guide .rh-nav a:hover{background:#d9f5f8;color:#075e73}
  #rk-heat-guide .rh-section,#rk-heat-guide .rh-author{padding:62px 58px}
  #rk-heat-guide .rh-section+.rh-section,#rk-heat-guide .rh-author{border-top:1px solid var(--rh-line)}
  #rk-heat-guide .rh-soft{background:var(--rh-bg)}
  #rk-heat-guide .rh-eyebrow{color:var(--rh-cyan-deep);margin-bottom:11px}
  #rk-heat-guide .rh-section h2,#rk-heat-guide .rh-author h2{font-size:clamp(2rem,3.9vw,3.55rem);max-width:1110px}
  #rk-heat-guide .rh-lead{color:var(--rh-copy);font-size:clamp(1.04rem,1.6vw,1.23rem);line-height:1.7;margin:20px 0 0;max-width:1100px}
  #rk-heat-guide .rh-copy{color:var(--rh-copy);margin:19px 0 0}
  #rk-heat-guide .rh-section h3{color:var(--rh-ink);font-size:1.3rem;line-height:1.3;margin:29px 0 12px}
  #rk-heat-guide .rh-section h4{color:var(--rh-ink);font-size:1.07rem;line-height:1.35;margin:0 0 9px}
  #rk-heat-guide .rh-grid{display:grid;gap:17px;margin-top:27px}
  #rk-heat-guide .rh-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  #rk-heat-guide .rh-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
  #rk-heat-guide .rh-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
  #rk-heat-guide .rh-card{background:#fff;border:1px solid var(--rh-line);border-radius:16px;padding:22px}
  #rk-heat-guide .rh-card h3{font-size:1.14rem;margin:0 0 9px}
  #rk-heat-guide .rh-card p{color:var(--rh-copy);margin:0}
  #rk-heat-guide .rh-num{align-items:center;background:#dff7f9;border-radius:10px;color:#086d83;display:inline-flex;font-size:.8rem;font-weight:900;justify-content:center;min-height:36px;min-width:36px;padding:6px 10px;margin-bottom:13px}
  #rk-heat-guide .rh-answer{background:linear-gradient(125deg,#e6f9fb,#f8fcfd);border:1px solid #a7dfe7;border-left:7px solid var(--rh-cyan);border-radius:16px;margin-top:26px;padding:24px 27px}
  #rk-heat-guide .rh-answer strong{display:block;font-size:1.19rem;line-height:1.42}
  #rk-heat-guide .rh-answer p{color:var(--rh-copy);margin:10px 0 0}
  #rk-heat-guide .rh-note{background:#fff5e4;border-left:5px solid #efb336;border-radius:12px;color:#604b20;margin-top:23px;padding:17px 20px}
  #rk-heat-guide .rh-note p{margin:0}
  #rk-heat-guide .rh-note-good{background:#e9faf4;border-color:#2fcda1;color:#155f4a}
  #rk-heat-guide .rh-note-alert{background:#fff0eb;border-color:var(--rh-orange);color:#6a3729}
  #rk-heat-guide .rh-list{color:var(--rh-copy);margin:18px 0 0;padding-left:22px}
  #rk-heat-guide .rh-list li+li{margin-top:9px}
  #rk-heat-guide .rh-table-wrap{margin-top:26px;overflow-x:auto}
  #rk-heat-guide table{border-collapse:collapse;min-width:740px;width:100%}
  #rk-heat-guide th{background:var(--rh-navy);color:#fff;font-size:.78rem;letter-spacing:.04em;padding:15px;text-align:left;text-transform:uppercase}
  #rk-heat-guide td{background:#fff;border:1px solid var(--rh-line);color:var(--rh-copy);padding:15px;vertical-align:top}
  #rk-heat-guide td strong{color:var(--rh-ink)}
  #rk-heat-guide .rh-flow{display:grid;gap:11px;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:27px}
  #rk-heat-guide .rh-flow-item{background:#fff;border:1px solid var(--rh-line);border-radius:14px;padding:18px}
  #rk-heat-guide .rh-flow-item strong{color:var(--rh-ink);display:block;line-height:1.35}
  #rk-heat-guide .rh-flow-item span{color:var(--rh-copy);display:block;font-size:.86rem;margin-top:7px}
  #rk-heat-guide .rh-flow-item b{color:var(--rh-cyan-deep);display:block;font-size:.72rem;letter-spacing:.08em;margin-bottom:8px;text-transform:uppercase}
  #rk-heat-guide .rh-tool{background:var(--rh-navy);border-radius:21px;color:#fff;margin-top:29px;padding:28px}
  #rk-heat-guide .rh-tool h3{color:#fff;font-size:clamp(1.45rem,2.8vw,2.17rem);margin:0}
  #rk-heat-guide .rh-tool>p{color:#cbe0e7;margin:10px 0 0}
  #rk-heat-guide .rh-fields{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:20px}
  #rk-heat-guide .rh-field{display:block}
  #rk-heat-guide .rh-field>span{color:#eaf5f7;display:block;font-size:.83rem;font-weight:800;line-height:1.35;margin-bottom:7px}
  #rk-heat-guide .rh-field :is(input,select,textarea){background:#fff;border:1px solid #a8c1cd;border-radius:9px;color:var(--rh-ink);min-height:47px;padding:10px 12px;width:100%}
  #rk-heat-guide .rh-field textarea{min-height:90px;resize:vertical}
  #rk-heat-guide .rh-tool .rh-check{align-items:flex-start;background:#19445a;border:1px solid #3e6d80;border-radius:11px;color:#f0f9fa;display:flex;font-size:.9rem;gap:11px;line-height:1.45;margin-top:13px;padding:13px}
  #rk-heat-guide .rh-tool .rh-check input{accent-color:var(--rh-cyan);flex:0 0 auto;height:18px;margin:3px 0 0;width:18px}
  #rk-heat-guide .rh-tool .rh-small{color:#bdd5df;font-size:.8rem;margin:14px 0 0}
  #rk-heat-guide .rh-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:19px}
  #rk-heat-guide .rh-button{background:var(--rh-orange);border:1px solid var(--rh-orange);border-radius:10px;color:#fff;cursor:pointer;font-weight:900;min-height:48px;padding:10px 17px}
  #rk-heat-guide .rh-button:hover{background:#e34f31}
  #rk-heat-guide .rh-button-outline{background:transparent;border-color:#789aa9;color:#fff}
  #rk-heat-guide .rh-button-outline:hover{background:#24536a;border-color:#abc9d4}
  #rk-heat-guide .rh-result{background:#fff;border-left:6px solid #f0b338;border-radius:14px;color:var(--rh-ink);margin-top:19px;padding:21px}
  #rk-heat-guide .rh-result.is-ready{border-left-color:#2fcda1}
  #rk-heat-guide .rh-result.is-stop{border-left-color:var(--rh-orange)}
  #rk-heat-guide .rh-result h4{color:var(--rh-ink);font-size:1.28rem;margin:0 0 8px}
  #rk-heat-guide .rh-result p{color:var(--rh-copy);margin:8px 0 0}
  #rk-heat-guide .rh-result ul{color:var(--rh-copy);margin:11px 0 0;padding-left:20px}
  #rk-heat-guide .rh-result li+li{margin-top:6px}
  #rk-heat-guide .rh-stage-grid{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:16px}
  #rk-heat-guide [hidden]{display:none!important}
  #rk-heat-guide .rh-stage{background:#f1f7f9;border:1px solid var(--rh-line);border-radius:11px;padding:14px}
  #rk-heat-guide .rh-stage strong{color:#086f83;display:block;font-size:.77rem;letter-spacing:.05em;text-transform:uppercase}
  #rk-heat-guide .rh-stage span{color:var(--rh-ink);display:block;font-size:1.05rem;font-weight:900;line-height:1.35;margin-top:6px}
  #rk-heat-guide .rh-stage small{color:var(--rh-copy);display:block;line-height:1.4;margin-top:6px}
  #rk-heat-guide .rh-diary-form{background:#143a4d;border:1px solid #37657a;border-radius:14px;margin-top:17px;padding:18px}
  #rk-heat-guide .rh-diary-form h4{color:#fff;margin:0 0 12px}
  #rk-heat-guide .rh-tool .rh-table-wrap{margin-top:18px}
  #rk-heat-guide .rh-tool td{font-size:.86rem;line-height:1.45}
  #rk-heat-guide .rh-tool th{background:#215369;border-color:#37677b}
  #rk-heat-guide .rh-remove{background:#fff0eb;border:1px solid #efad9b;border-radius:7px;color:#8e3a28;cursor:pointer;font-size:.8rem;font-weight:800;padding:6px 9px}
  #rk-heat-guide .rh-diary-status{color:#c8ecea;font-size:.84rem;margin:12px 0 0;min-height:1.4em}
  #rk-heat-guide .rh-cta{background:radial-gradient(circle at 97% 130%,rgba(39,197,213,.22) 0 22%,transparent 22.2%),linear-gradient(126deg,#0b2536,#17465b 70%,#0d6978);border-radius:20px;color:#fff;margin-top:29px;padding:32px}
  #rk-heat-guide .rh-cta h3{color:#fff;font-size:clamp(1.5rem,2.9vw,2.5rem);margin:0;max-width:1000px}
  #rk-heat-guide .rh-cta p{color:#d8e9ef;margin:13px 0 0;max-width:1000px}
  #rk-heat-guide .rh-cta a.rh-cta-link{background:var(--rh-orange);border-radius:10px;color:#fff;display:inline-block;font-weight:900;margin-top:21px;padding:13px 18px;text-decoration:none}
  #rk-heat-guide .rh-cta a.rh-cta-link:hover{background:#fff;color:#d64e30}
  #rk-heat-guide .rh-cta small{color:#bdd5df;display:block;font-size:.75rem;margin-top:11px}
  #rk-heat-guide .rh-faq{display:grid;gap:11px;margin-top:26px}
  #rk-heat-guide .rh-faq details{background:#fff;border:1px solid var(--rh-line);border-radius:13px;overflow:hidden}
  #rk-heat-guide .rh-faq summary{color:var(--rh-ink);cursor:pointer;font-weight:900;list-style:none;padding:17px 49px 17px 19px;position:relative}
  #rk-heat-guide .rh-faq summary::-webkit-details-marker{display:none}
  #rk-heat-guide .rh-faq summary::after{color:var(--rh-cyan-deep);content:"+";font-size:1.55rem;position:absolute;right:18px;top:9px}
  #rk-heat-guide .rh-faq details[open] summary::after{content:"−"}
  #rk-heat-guide .rh-faq-answer{border-top:1px solid var(--rh-line);color:var(--rh-copy);padding:17px 19px}
  #rk-heat-guide .rh-faq-answer p{margin:0}
  #rk-heat-guide .rh-sources{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:23px}
  #rk-heat-guide .rh-source{background:#f5f9fa;border:1px solid var(--rh-line);border-radius:13px;padding:18px}
  #rk-heat-guide .rh-source a{font-weight:900}
  #rk-heat-guide .rh-source p{color:var(--rh-copy);margin:7px 0 0}
  #rk-heat-guide .rh-author{background:#ebf5f8}
  #rk-heat-guide .rh-author-layout{background:#fff;border:1px solid var(--rh-line);border-radius:20px;display:grid;grid-template-columns:275px minmax(0,1fr);margin-top:26px;overflow:hidden}
  #rk-heat-guide .rh-author-side{align-items:center;background:var(--rh-navy);color:#fff;display:flex;flex-direction:column;padding:34px 22px;text-align:center}
  #rk-heat-guide .rh-author-side img{border:5px solid rgba(255,255,255,.23);border-radius:50%;height:150px;object-fit:cover;width:150px}
  #rk-heat-guide .rh-author-side strong{font-size:1.2rem;margin-top:18px}
  #rk-heat-guide .rh-author-side p{color:#c3d8e0;font-size:.82rem;margin:7px 0 0}
  #rk-heat-guide .rh-social{display:flex;gap:9px;margin-top:20px}
  #rk-heat-guide .rh-social a{align-items:center;border:1px solid #618299;border-radius:50%;color:#fff;display:inline-flex;font-size:.85rem;font-weight:900;height:40px;justify-content:center;text-decoration:none;width:40px}
  #rk-heat-guide .rh-author-body{padding:34px}
  #rk-heat-guide .rh-author-body blockquote{background:#f0f9fa;border-left:5px solid var(--rh-cyan);border-radius:11px;color:var(--rh-ink);font-size:1.05rem;font-style:italic;font-weight:700;line-height:1.65;margin:0 0 20px;padding:18px}
  #rk-heat-guide .rh-author-body p{color:var(--rh-copy);margin:0 0 16px}
  @media(max-width:1000px){#rk-heat-guide .rh-grid-4,#rk-heat-guide .rh-flow,#rk-heat-guide .rh-stage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
  @media(max-width:760px){#rk-heat-guide .rh-hero,#rk-heat-guide .rh-section,#rk-heat-guide .rh-author{padding-left:27px;padding-right:27px}#rk-heat-guide .rh-grid-3,#rk-heat-guide .rh-author-layout{grid-template-columns:1fr}}
  @media(max-width:580px){
    #rk-heat-guide .rh-hero,#rk-heat-guide .rh-section,#rk-heat-guide .rh-author{padding:45px 18px}
    #rk-heat-guide .rh-nav{padding:16px}
    #rk-heat-guide .rh-grid-2,#rk-heat-guide .rh-grid-3,#rk-heat-guide .rh-grid-4,#rk-heat-guide .rh-fields,#rk-heat-guide .rh-flow,#rk-heat-guide .rh-stage-grid,#rk-heat-guide .rh-sources{grid-template-columns:1fr}
    #rk-heat-guide .rh-tool,#rk-heat-guide .rh-cta{padding:19px}
    #rk-heat-guide .rh-actions{display:grid;grid-template-columns:1fr}
    #rk-heat-guide .rh-button,#rk-heat-guide .rh-cta a.rh-cta-link{text-align:center;width:100%}
    #rk-heat-guide .rh-table-wrap{overflow:visible}
    #rk-heat-guide table,#rk-heat-guide thead,#rk-heat-guide tbody,#rk-heat-guide tr,#rk-heat-guide td{display:block;min-width:0;width:100%}
    #rk-heat-guide thead{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;width:1px}
    #rk-heat-guide tbody{display:grid;gap:13px}
    #rk-heat-guide tr{background:#fff;border:1px solid var(--rh-line);border-radius:12px;overflow:hidden}
    #rk-heat-guide td{border:0;border-bottom:1px solid var(--rh-line)}
    #rk-heat-guide td:last-child{border-bottom:0}
    #rk-heat-guide td::before{color:var(--rh-cyan-deep);content:attr(data-label);display:block;font-size:.7rem;font-weight:900;letter-spacing:.05em;margin-bottom:3px;text-transform:uppercase}
    #rk-heat-guide .rh-author-body{padding:23px}
  }
  @media(prefers-reduced-motion:reduce){#rk-heat-guide *,#rk-heat-guide *::before,#rk-heat-guide *::after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
  @media print{
    body.rh-print-diary *{visibility:hidden!important}
    body.rh-print-diary #rk-heat-diary,body.rh-print-diary #rk-heat-diary *{visibility:visible!important}
    body.rh-print-diary #rk-heat-diary{background:#fff!important;color:#102c3e!important;left:0;position:absolute;top:0;width:100%}
    body.rh-print-diary #rk-heat-diary .rh-diary-form,body.rh-print-diary #rk-heat-diary .rh-actions,body.rh-print-diary #rk-heat-diary .rh-remove,body.rh-print-diary #rk-heat-diary .rh-diary-status{display:none!important}
    body.rh-print-diary #rk-heat-diary table{min-width:0}
    body.rh-print-diary #rk-heat-diary th{background:#e7eff2!important;color:#102c3e!important}
  }
</style>

<article id="rk-heat-guide" lang="pl" aria-labelledby="rh-hero-title">
  <div class="rh-shell">
    <header class="rh-hero">
      <span class="rh-kicker">Jastrych grzewczy · praktyczna procedura</span>
      <div class="rh-hero-title" id="rh-hero-title">Wygrzewanie wylewki pod podłogówkę: <span>termin to dopiero początek.</span></div>
      <p class="rh-hero-lead">Kiedy można rozpocząć, jak prowadzić pierwszy cykl ogrzewania i po czym poznać, że podłoże nadaje się pod okładzinę? Oddzielamy wymagania jastrychu od ustawień źródła ciepła i pokazujemy, co trzeba zapisać w protokole.</p>
      <div class="rh-tags" aria-label="Zakres poradnika"><span>cementowy CT i siarczanowo-wapniowy CA</span><span>pierwsze nagrzewanie</span><span>planer etapów</span><span>dziennik wygrzewania</span><span>pomiar wilgotności</span></div>
      <div class="rh-meta"><span>Autor: <strong>Robert Kucharski</strong></span><span>Data publikacji: <strong>3 października 2026 r.</strong></span><span>Zakres: <strong>wodne ogrzewanie podłogowe w jastrychu</strong></span></div>
    </header>

    <nav class="rh-nav" aria-label="Na skróty — sekcje artykułu">
      <span class="rh-nav-label">Na skróty</span>
      <a href="#rh-odpowiedz">Szybka odpowiedź</a><a href="#rh-etapy">Trzy procesy</a><a href="#rh-termin">Kiedy zacząć</a>
      <a href="#rh-przed">Przed startem</a><a href="#rh-planer">Planer</a><a href="#rh-program">Przebieg</a>
      <a href="#rh-materialy">CT i CA</a><a href="#rh-zrodlo">Pompa i kocioł</a><a href="#rk-heat-diary">Dziennik</a>
      <a href="#rh-wilgotnosc">Pomiar CM</a><a href="#rh-awarie">Przerwy i rysy</a><a href="#rh-bledy">Błędy</a>
      <a href="#rh-checklista">Checklista</a><a href="#rh-faq">FAQ</a><a href="#rh-final">Projekt</a>
      <a href="#rh-zrodla">Źródła</a><a href="#rh-autor">Autor</a>
    </nav>

    <section class="rh-section" id="rh-odpowiedz">
      <span class="rh-eyebrow">Odpowiedź w 60 sekund</span>
      <h2>Jak prawidłowo wygrzać wylewkę na ogrzewaniu podłogowym?</h2>
      <p class="rh-lead">Rozpocznij dopiero po okresie dojrzewania przewidzianym dla zastosowanego jastrychu. Pierwszy cykl prowadź według instrukcji materiału, procedury instalacji i maksymalnej <strong>projektowej</strong> temperatury zasilania. Zapisz rzeczywiste odczyty i wszelkie przerwy. Przed ułożeniem okładziny osobno potwierdź stan oraz wilgotność podłoża.</p>
      <div class="rh-answer"><strong>Orientacyjny punkt odniesienia dla zwykłych jastrychów: CT najwcześniej po 21 dniach, CA najwcześniej po 7 dniach. To nie jest zgoda na uruchomienie każdej konkretnej wylewki.</strong><p>Produkty szybkowiążące i systemy specjalne mogą mieć własny termin i odmienną procedurę. Bez dokładnej identyfikacji materiału nie ustawiaj programu na podstawie internetowej tabeli.</p></div>
      <div class="rh-grid rh-grid-3">
        <div class="rh-card"><span class="rh-num">01</span><h3>Najpierw dokument</h3><p>Karta zastosowanego jastrychu, data wykonania, projekt instalacji i instrukcja źródła ciepła określają warunki startu.</p></div>
        <div class="rh-card"><span class="rh-num">02</span><h3>Potem zapis cyklu</h3><p>Notuj daty, temperatury zasilania, czas pracy i wszelkie odstępstwa, zamiast opierać odbiór na pamięci.</p></div>
        <div class="rh-card"><span class="rh-num">03</span><h3>Na końcu odbiór</h3><p>Wygrzewanie funkcjonalne nie zastępuje pomiaru wilgotności, kontroli rys i wymagań kleju lub okładziny.</p></div>
      </div>
      <p class="rh-copy">Jeżeli jesteś dopiero na etapie wyboru materiału i grubości, zacznij od <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">przewodnika po wylewce na podłogówkę</a>. Ten tekst dotyczy późniejszego uruchomienia i dokumentowania prac.</p>
    </section>

    <section class="rh-section rh-soft" id="rh-etapy">
      <span class="rh-eyebrow">Porządek technologiczny</span>
      <h2>Dojrzewanie, wygrzewanie i gotowość pod okładzinę to różne rzeczy</h2>
      <p class="rh-lead">Słowo „wygrzewanie” bywa używane jednocześnie dla pierwszego testu pracy ogrzewanej konstrukcji i dla późniejszego osuszania. W dokumentacji odbiorowej warto te etapy nazywać osobno.</p>
      <div class="rh-flow" aria-label="Kolejność czterech etapów">
        <div class="rh-flow-item"><b>Etap 1</b><strong>Dojrzewanie i pielęgnacja</strong><span>Jastrych wiąże według warunków wyrobu. Ogrzewania nie używa się do przyspieszania pierwszej fazy.</span></div>
        <div class="rh-flow-item"><b>Etap 2</b><strong>Wygrzewanie funkcjonalne</strong><span>Sprawdza pracę ogrzewanej podłogi przy zaplanowanym cyklu temperatur.</span></div>
        <div class="rh-flow-item"><b>Etap 3</b><strong>Dalsze wysychanie</strong><span>Wymaga warunków oddawania wilgoci, kontroli i czasu zależnego od budynku.</span></div>
        <div class="rh-flow-item"><b>Etap 4</b><strong>Odbiór pod okładzinę</strong><span>Pomiar wilgotności oraz ocena powierzchni według wymagań konkretnej posadzki.</span></div>
      </div>
      <div class="rh-note"><p><strong>Praktyczny skutek:</strong> ukończenie etapu 2 nie pozwala wpisać w protokole „podłoże suche”. Taki wniosek wymaga odrębnej oceny i pomiaru.</p></div>
    </section>

    <section class="rh-section" id="rh-termin">
      <span class="rh-eyebrow">Termin rozpoczęcia</span>
      <h2>Po ilu dniach można zacząć wygrzewanie wylewki?</h2>
      <p class="rh-lead">Dla standardowego cementowego jastrychu CT orientacyjny minimalny odstęp to 21 dni po wykonaniu, a dla standardowego jastrychu na bazie siarczanu wapnia CA — 7 dni. Decyzję dla budowy podejmuje się po identyfikacji produktu, sprawdzeniu instrukcji i stanu instalacji.</p>
      <div class="rh-table-wrap"><table><thead><tr><th>Rodzaj</th><th>Typowy punkt odniesienia</th><th>Co sprawdzić przed startem</th></tr></thead><tbody>
        <tr><td data-label="Rodzaj"><strong>CT — cementowy</strong></td><td data-label="Punkt odniesienia">Zwykle nie wcześniej niż po 21 dniach dla zwykłej mieszanki.</td><td data-label="Przed startem">Data wykonania, pielęgnacja, karta produktu i brak zakazu wcześniejszego uruchomienia.</td></tr>
        <tr><td data-label="Rodzaj"><strong>CA — siarczanowo-wapniowy</strong></td><td data-label="Punkt odniesienia">Zwykle nie wcześniej niż po 7 dniach dla zwykłej mieszanki.</td><td data-label="Przed startem">Instrukcja dokładnego wyrobu, warunki wilgotnościowe i procedura wykonawcy.</td></tr>
        <tr><td data-label="Rodzaj"><strong>Materiał specjalny</strong></td><td data-label="Punkt odniesienia">Nie przyjmuj automatycznie terminu CT lub CA.</td><td data-label="Przed startem">Pisemna procedura produktu określająca początek, przebieg i dopuszczalne temperatury.</td></tr>
      </tbody></table></div>
      <p class="rh-copy">Możliwość chodzenia po podłodze nie jest równoznaczna z gotowością do grzania. Podobnie 28 dni nie oznacza automatycznie wilgotności właściwej pod parkiet lub panele. Szerzej o właściwościach konstrukcji CT piszę w poradniku <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewka betonowa na ogrzewanie podłogowe</a>.</p>
    </section>

    <section class="rh-section rh-soft" id="rh-przed">
      <span class="rh-eyebrow">Przygotowanie przed pierwszym uruchomieniem</span>
      <h2>Co musi być ustalone, zanim uruchomisz źródło ciepła?</h2>
      <p class="rh-lead">Osoba uruchamiająca potrzebuje więcej niż daty wylania jastrychu. Przygotuj poniższy komplet informacji, zanim wybierzesz program w sterowniku.</p>
      <div class="rh-grid rh-grid-3">
        <div class="rh-card"><span class="rh-num">A</span><h3>Jastrych</h3><p>Nazwa wyrobu, spoiwo, data wykonania, grubość, sposób pielęgnacji i wymagany program wygrzewania.</p></div>
        <div class="rh-card"><span class="rh-num">B</span><h3>Instalacja</h3><p>Protokół <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próby szczelności</a>, drożne pętle, odpowietrzenie i dostępny przepływ przez każdy wymagany obwód.</p></div>
        <div class="rh-card"><span class="rh-num">C</span><h3>Parametry</h3><p>Projektowa temperatura zasilania, ograniczenia jastrychu i zakres regulacji pompy ciepła albo kotła.</p></div>
        <div class="rh-card"><span class="rh-num">D</span><h3>Podział podłogi</h3><p>Pola, szczeliny i przejścia rur zgodne z projektem. Zobacz poradnik o <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacji brzegowej i dylatacjach</a>.</p></div>
        <div class="rh-card"><span class="rh-num">E</span><h3>Organizacja</h3><p>Możliwość utrzymania wymaganych etapów, kontrola nastaw i zapis awarii, przerw w zasilaniu oraz temperatur.</p></div>
        <div class="rh-card"><span class="rh-num">F</span><h3>Wykończenie</h3><p>Planowane płytki, drewno lub panele, miejsca pomiaru wilgotności i wymagania systemu posadzkowego.</p></div>
      </div>
      <div class="rh-cta" aria-label="Projekt ogrzewania podłogowego przed wylewką">
        <h3>Projekt ogrzewania podłogowego przed wykonaniem wylewki: co powinno być ustalone?</h3>
        <p>Jeszcze przed zakryciem rur warto mieć policzone rozstawy, długości pętli, przepływy i projektowe temperatury oraz uzgodnione przejścia przez pola jastrychu. Wykonawca wylewki dobiera następnie procedurę wygrzewania do zastosowanego materiału — projekt instalacji nie zastępuje jego instrukcji.</p>
        <a class="rh-cta-link" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt podłogówki przed wylewką</a>
        <small>Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </div>
    </section>

    <section class="rh-section" id="rh-planer">
      <span class="rh-eyebrow">Narzędzie 1 · plan organizacyjny</span>
      <h2>Interaktywny planer etapów wygrzewania</h2>
      <p class="rh-lead">Wpisz datę wykonania i dane z dokumentacji jastrychu. Narzędzie pokaże orientacyjną kolejność oraz terminy dla modelowego cyklu, ale nie potwierdza gotowości do uruchomienia ani do ułożenia okładziny.</p>
      <div class="rh-tool" id="rh-planner-tool">
        <h3>Ułóż plan kontroli, zanim włączysz ogrzewanie</h3>
        <p>W modelowym przykładzie pierwsza temperatura zasilania to około 25°C przez co najmniej 3 dni, a następnie maksymalna projektowa temperatura zasilania przez co najmniej 4 dni. Zastosuj przebieg z instrukcji konkretnego jastrychu, gdy się różni.</p>
        <div class="rh-fields">
          <label class="rh-field"><span>Rodzaj jastrychu</span><select id="rh-type"><option value="">Wybierz rodzaj</option><option value="ct">Zwykły cementowy CT</option><option value="ca">Zwykły siarczanowo-wapniowy CA</option><option value="special">Produkt o własnej procedurze</option></select></label>
          <label class="rh-field"><span>Data wykonania jastrychu</span><input type="date" id="rh-pour"></label>
          <label class="rh-field"><span>Minimalny odstęp według dokumentacji [dni]</span><input type="number" id="rh-wait" min="0" max="180" step="1" inputmode="numeric" placeholder="CT zwykle 21, CA zwykle 7"></label>
          <label class="rh-field"><span>Maksymalna projektowa temperatura zasilania [°C]</span><input type="number" id="rh-max" min="20" max="60" step="0.5" inputmode="decimal" placeholder="Wpisz wartość z projektu"></label>
        </div>
        <label class="rh-check"><input type="checkbox" id="rh-doc"><span>Znam dokładny produkt i sprawdziłem jego instrukcję dotyczącą pierwszego nagrzewania.</span></label>
        <label class="rh-check"><input type="checkbox" id="rh-test"><span>Próba instalacji została zakończona, a pętle mogą pracować z wymaganym przepływem.</span></label>
        <div class="rh-actions"><button class="rh-button" type="button" id="rh-calc">Pokaż plan etapów</button><button class="rh-button rh-button-outline" type="button" id="rh-clear">Wyczyść dane</button></div>
        <div class="rh-result" id="rh-plan-result" role="status" aria-live="polite"><h4 id="rh-plan-title">Uzupełnij dane z dokumentacji</h4><p id="rh-plan-text">Planer wskaże braki, orientacyjny dzień rozpoczęcia i dalsze etapy. Nie ustali daty ułożenia podłogi bez pomiaru podłoża.</p><ul id="rh-plan-warnings"></ul><div class="rh-stage-grid" id="rh-plan-stages" hidden=""></div></div>
        <p class="rh-small">Dla materiałów szybkowiążących planer nie podpowiada automatycznie 7 ani 21 dni. Nie tworzy też programu podnoszenia o 5°C na dobę.</p>
      </div>
    </section>

    <section class="rh-section rh-soft" id="rh-program">
      <span class="rh-eyebrow">Przebieg krok po kroku</span>
      <h2>Jak wygląda pierwszy cykl ogrzewania jastrychu?</h2>
      <p class="rh-lead">Poniższa sekwencja jest schematem kontrolnym dla standardowego wygrzewania funkcjonalnego. Uzgodniona instrukcja konkretnej wylewki i ograniczenia instalacji są podstawą rzeczywistych nastaw.</p>
      <div class="rh-grid rh-grid-4">
        <div class="rh-card"><span class="rh-num">1</span><h3>Start po dojrzewaniu</h3><p>Zapisz datę i godzinę startu, oznacz pola podłogi oraz warunki początkowe budynku i obiegów.</p></div>
        <div class="rh-card"><span class="rh-num">2</span><h3>Temperatura początkowa</h3><p>W modelu referencyjnym około 25°C zasilania utrzymuje się przez co najmniej 3 dni. Sprawdź przebieg właściwy dla wyrobu.</p></div>
        <div class="rh-card"><span class="rh-num">3</span><h3>Etap maksymalny</h3><p>Stosuje się maksymalną temperaturę zasilania wynikającą z projektu i dopuszczeń systemu przez wymagany czas; w modelu co najmniej 4 dni.</p></div>
        <div class="rh-card"><span class="rh-num">4</span><h3>Dokumentacja i odbiór</h3><p>Zapisz realne temperatury i czas. Dalsze schładzanie, dosuszanie i pomiar wilgotności są odrębnymi działaniami.</p></div>
      </div>
      <div class="rh-note rh-note-alert"><p><strong>Nie wpisuj na ślepo 45°C lub 55°C.</strong> Maksimum dla programu jest związane z projektową temperaturą zasilania i wymaganiami materiału. Próg codziennej pracy opisuję osobno w artykule <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalna temperatura zasilania podłogówki</a>.</p></div>
      <h3>Dlaczego nie podajemy uniwersalnego „+5°C każdego dnia”?</h3>
      <p class="rh-copy">Takie tempo pojawia się w części instrukcji, ale nie stanowi programu dla każdego jastrychu. Inny może być materiał, czas od wykonania, temperatura projektowa, sterownik i sposób wysychania. Kopiowanie tabeli z innej budowy mogłoby dać fałszywe poczucie bezpieczeństwa.</p>
    </section>

    <section class="rh-section" id="rh-materialy">
      <span class="rh-eyebrow">Rodzaj podkładu ma znaczenie</span>
      <h2>Czy cementowy i anhydrytowy jastrych wygrzewa się tak samo?</h2>
      <p class="rh-lead">Cel wygrzewania funkcjonalnego jest podobny, ale rodzaj spoiwa i instrukcja produktu wpływają na termin rozpoczęcia, pielęgnację, dalsze wysychanie oraz kryterium odbioru przed okładziną.</p>
      <div class="rh-table-wrap"><table><thead><tr><th>Pytanie</th><th>CT — cementowy</th><th>CA — siarczanowo-wapniowy</th></tr></thead><tbody>
        <tr><td data-label="Pytanie"><strong>Najwcześniejszy typowy start</strong></td><td data-label="CT">Po 21 dniach dla standardowego jastrychu; wyjątki tylko według dokumentacji produktu.</td><td data-label="CA">Po 7 dniach dla standardowego jastrychu; produkt może wymagać szczególnej procedury.</td></tr>
        <tr><td data-label="Pytanie"><strong>Pielęgnacja</strong></td><td data-label="CT">Istotne są warunki dojrzewania, ograniczenie zbyt szybkiej utraty wody i wymagania mieszanki.</td><td data-label="CA">Ważne są warunki wentylacji, wilgotności i ewentualna obróbka powierzchni określona przez system.</td></tr>
        <tr><td data-label="Pytanie"><strong>Po wygrzewaniu</strong></td><td data-label="CT">Zakończony cykl nie potwierdza wilgotności ani stanu powierzchni.</td><td data-label="CA">Zakończony cykl nie potwierdza wilgotności ani stanu powierzchni.</td></tr>
        <tr><td data-label="Pytanie"><strong>Specjalna mieszanka</strong></td><td data-label="CT">O terminie i kolejności przesądza instrukcja konkretnego wyrobu.</td><td data-label="CA">O terminie i kolejności przesądza instrukcja konkretnego wyrobu.</td></tr>
      </tbody></table></div>
      <p class="rh-copy">Szczegółowe omówienie wymagań instalacyjnych normy znajdziesz w artykule o <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">PN-EN 1264 w ogrzewaniu podłogowym</a>; tutaj skupiamy się na praktycznym przygotowaniu, wykonaniu i odbiorze wygrzewania.</p>
    </section>

    <section class="rh-section rh-soft" id="rh-zrodlo">
      <span class="rh-eyebrow">Sterowanie bez zgadywania</span>
      <h2>Wygrzewanie pompą ciepła lub kotłem: co sprawdzić w sterowniku?</h2>
      <p class="rh-lead">Nazwa programu „suszenie jastrychu” na ekranie urządzenia nie dowodzi zgodności jego fabrycznej sekwencji z zastosowaną wylewką. Przed włączeniem porównaj oba dokumenty i ustal, kto nadzoruje proces.</p>
      <div class="rh-grid rh-grid-3">
        <div class="rh-card"><span class="rh-num">T</span><h3>Temperatura rzeczywista</h3><p>Sprawdź temperaturę zasilania mierzoną na instalacji, nie tylko zadaną na wyświetlaczu. Zawór mieszający może ją zmieniać.</p></div>
        <div class="rh-card"><span class="rh-num">Q</span><h3>Przepływ przez pętle</h3><p>Siłowniki i termostaty nie mogą nieświadomie zamykać obwodów, które mają brać udział w cyklu. Zweryfikuj pracę pompy.</p></div>
        <div class="rh-card"><span class="rh-num">24</span><h3>Ciągłość programu</h3><p>Ustal, czy sterownik realizuje etapy bez nieplanowanych przerw oraz jak dokumentuje alarmy i zaniki zasilania.</p></div>
      </div>
      <p class="rh-copy">Pompa ciepła może mieć ograniczoną moc w rzeczywistych warunkach, a kocioł może modulować lub współpracować z mieszaczem. Same nastawy ekranowe nie dowodzą osiągnięcia temperatury na podłodze. Przy normalnej eksploatacji znaczenie ma też <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-nie-grzeje/">diagnostyka niedogrzewającej podłogówki</a>, lecz wygrzewanie świeżego jastrychu rządzi się odrębną procedurą.</p>
    </section>

    <section class="rh-section" id="rk-heat-diary">
      <span class="rh-eyebrow">Narzędzie 2 · dokumentacja rzeczywistego przebiegu</span>
      <h2>Dziennik wygrzewania wylewki i protokół kontroli</h2>
      <p class="rh-lead">Zapisz odczyty z kolejnych dni, czas utrzymania nastaw i przerwy. Dane pozostają w tej karcie przeglądarki; możesz pobrać CSV lub wydrukować wpisy. Jeśli dostawca jastrychu udostępnił obowiązujący formularz, wypełnij także jego protokół.</p>
      <div class="rh-tool" id="rh-diary-tool">
        <h3>Dodaj rzeczywisty wpis z budowy</h3>
        <p>Podawaj temperaturę zasilania, którą odczytano, a nie tylko wartość zadaną. Uwagi pomogą odtworzyć przerwę w dostawie energii lub alarm urządzenia.</p>
        <div class="rh-diary-form">
          <h4>Dane wpisu</h4>
          <div class="rh-fields">
            <label class="rh-field"><span>Data</span><input type="date" id="rh-log-date"></label>
            <label class="rh-field"><span>Etap</span><select id="rh-log-phase"><option value="">Wybierz etap</option><option value="Start / temperatura początkowa">Start / temperatura początkowa</option><option value="Etap temperatury maksymalnej">Etap temperatury maksymalnej</option><option value="Schładzanie / dalsze wysychanie">Schładzanie / dalsze wysychanie</option><option value="Przerwa lub zdarzenie">Przerwa lub zdarzenie</option><option value="Pomiar i odbiór">Pomiar i odbiór</option></select></label>
            <label class="rh-field"><span>Zmierzona temperatura zasilania [°C]</span><input type="number" id="rh-log-temp" min="0" max="65" step="0.1" inputmode="decimal" placeholder="Opcjonalnie przy przerwie"></label>
            <label class="rh-field"><span>Czas utrzymania / okres obserwacji</span><input type="text" id="rh-log-time" maxlength="60" placeholder="Np. 24 h, 08:00–18:00"></label>
            <label class="rh-field" style="grid-column:1/-1"><span>Uwagi: miejsce, pole, alarm, przerwa, stan powierzchni</span><textarea id="rh-log-note" maxlength="350" placeholder="Zapisz tylko własne, rzeczywiste obserwacje"></textarea></label>
          </div>
          <div class="rh-actions"><button class="rh-button" type="button" id="rh-log-add">Dodaj wpis</button><button class="rh-button rh-button-outline" type="button" id="rh-log-csv">Pobierz CSV</button><button class="rh-button rh-button-outline" type="button" id="rh-log-print">Drukuj dziennik</button></div>
          <p class="rh-diary-status" id="rh-log-status" role="status" aria-live="polite">Wpisy nie są wysyłane na serwer. Pobierz je przed opuszczeniem strony.</p>
        </div>
        <div class="rh-table-wrap"><table><thead><tr><th>Data</th><th>Etap</th><th>Zasilanie</th><th>Czas</th><th>Uwagi</th><th>Usuń</th></tr></thead><tbody id="rh-log-rows"><tr id="rh-log-empty"><td colspan="6">Brak wpisów. Dodaj pierwszy odczyt z budowy.</td></tr></tbody></table></div>
        <p class="rh-small">Dziennik pomaga zebrać dane; nie poświadcza poprawności procedury. Zapisz także nazwę produktu, pola jastrychu, dokumentację pomiarową i podpisy wymagane przy odbiorze.</p>
      </div>
    </section>

    <section class="rh-section rh-soft" id="rh-wilgotnosc">
      <span class="rh-eyebrow">Po zakończeniu cyklu</span>
      <h2>Czy po wygrzewaniu można od razu ułożyć płytki, panele lub drewno?</h2>
      <p class="rh-lead">Nie można tego wywnioskować z samego protokołu ogrzewania. Przed montażem wykonawca posadzki powinien otrzymać wynik właściwego pomiaru wilgotności, ocenę podłoża i wymagania wybranego systemu materiałów.</p>
      <div class="rh-grid rh-grid-3">
        <div class="rh-card"><span class="rh-num">CM</span><h3>Pomiar w oznaczonym miejscu</h3><p>Punkt pobrania próbki trzeba ustalić bezpiecznie względem rur. Wynik zapisuje się wraz z metodą i lokalizacją.</p></div>
        <div class="rh-card"><span class="rh-num">R</span><h3>Stan powierzchni</h3><p>Sprawdź rysy, oddzielenia, zabrudzenie, równość oraz wymagania dotyczące przygotowania podłoża.</p></div>
        <div class="rh-card"><span class="rh-num">OK</span><h3>Kryterium systemu</h3><p>Jastrych, klej, podkład, okładzina i ewentualna hydroizolacja mogą stawiać odrębne wymagania.</p></div>
      </div>
      <div class="rh-note"><p><strong>Bez uniwersalnego progu z internetu:</strong> wymagany wynik wilgotności zależy od materiału, metody badania i planowanej okładziny. Brak skroplin pod folią może być sygnałem do wykonania pomiaru, ale sam nie zastępuje badania.</p></div>
      <p class="rh-copy">Wpływ paneli, płytek i innych warstw na późniejsze działanie instalacji omawiam w artykule <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">jak okładzina podłogowa wpływa na wydajność ogrzewania podłogowego</a>.</p>
    </section>

    <section class="rh-section" id="rh-awarie">
      <span class="rh-eyebrow">Przerwy i nieprawidłowości</span>
      <h2>Co zrobić, gdy program został przerwany albo pojawiły się rysy?</h2>
      <p class="rh-lead">Nie zaznaczaj w protokole nieodbytego etapu jako ukończonego. Najpierw ustal przyczynę przerwy lub uszkodzenia, zapisz stan rzeczywisty, a dalszy tok uzgodnij z wykonawcą jastrychu i instalacji.</p>
      <div class="rh-grid rh-grid-2">
        <div class="rh-card"><span class="rh-num">!</span><h3>Awaria źródła lub zanik prądu</h3><p>Zapisz czas, osiągnięte temperatury, warunki zewnętrzne i stan obiegów. Nie przeskakuj automatycznie do kolejnego dnia programu po naprawie.</p></div>
        <div class="rh-card"><span class="rh-num">!</span><h3>Spadek ciśnienia albo brak przepływu</h3><p>Sprawdź instalację i ogranicz dalsze grzanie zgodnie z oceną osoby odpowiedzialnej. Protokół pierwszej próby nie wyklucza późniejszej usterki.</p></div>
        <div class="rh-card"><span class="rh-num">!</span><h3>Widoczne rysy lub wykruszenia</h3><p>Sfotografuj i oznacz lokalizację względem pola oraz szczeliny. Nie zakrywaj zarysowania okładziną przed oceną jego charakteru.</p></div>
        <div class="rh-card"><span class="rh-num">!</span><h3>Brak wymaganej temperatury</h3><p>Sprawdź pomiar, ograniczenie źródła, mieszacz, zamknięte pętle i rzeczywisty przepływ. Odczyt zadanej temperatury nie zastępuje odczytu zasilania.</p></div>
      </div>
      <div class="rh-note rh-note-alert"><p><strong>Wstrzymaj pochopną decyzję o okładzinie:</strong> rysa, mokre pole albo nieukończony etap wymagają wyjaśnienia przed zakryciem podłogi.</p></div>
    </section>

    <section class="rh-section rh-soft" id="rh-bledy">
      <span class="rh-eyebrow">Błędy, które psują odbiór</span>
      <h2>Sześć najczęstszych pomyłek przy wygrzewaniu wylewki</h2>
      <div class="rh-grid rh-grid-3">
        <div class="rh-card"><span class="rh-num">01</span><h3>Start na podstawie daty z forum</h3><p>Termin z innej budowy nie identyfikuje mieszanki, dodatków i jej instrukcji.</p></div>
        <div class="rh-card"><span class="rh-num">02</span><h3>Grzanie przed pielęgnacją</h3><p>Zbyt wczesne ogrzewanie nie jest sposobem na skrócenie etapu dojrzewania jastrychu.</p></div>
        <div class="rh-card"><span class="rh-num">03</span><h3>Jedna nastawa dla całego domu</h3><p>Różne pomieszczenia i pola mogą mieć odmienny materiał lub stan wykonania.</p></div>
        <div class="rh-card"><span class="rh-num">04</span><h3>Wpisywanie temperatury zadanej</h3><p>To, co pokazuje menu sterownika, nie musi być faktycznym zasilaniem rozdzielacza.</p></div>
        <div class="rh-card"><span class="rh-num">05</span><h3>Brak zapisu przerw</h3><p>Bez dziennika nie wiadomo, przez jaki czas utrzymano wymagane warunki.</p></div>
        <div class="rh-card"><span class="rh-num">06</span><h3>„Wygrzane” znaczy „suche”</h3><p>Gotowość pod posadzkę wymaga odrębnej oceny i pomiaru wilgotności.</p></div>
      </div>
    </section>

    <section class="rh-section" id="rh-checklista">
      <span class="rh-eyebrow">Przed przekazaniem podłogi</span>
      <h2>Checklista wygrzewania i odbioru jastrychu grzewczego</h2>
      <div class="rh-grid rh-grid-3">
        <div class="rh-card"><span class="rh-num">PRZED</span><h3>Warunki wejściowe</h3><ul class="rh-list"><li>Identyfikacja CT, CA lub produktu specjalnego.</li><li>Data wykonania i instrukcja wyrobu.</li><li>Protokół próby instalacji.</li><li>Projektowe temperatury i przepływy.</li><li>Oznaczone pola oraz miejsca pomiarów.</li></ul></div>
        <div class="rh-card"><span class="rh-num">W TRAKCIE</span><h3>Przebieg cyklu</h3><ul class="rh-list"><li>Rzeczywiste daty i odczyty zasilania.</li><li>Praca wszystkich wymaganych pętli.</li><li>Czas utrzymania etapów.</li><li>Zapis alarmów i przerw.</li><li>Oględziny stanu powierzchni.</li></ul></div>
        <div class="rh-card"><span class="rh-num">PO</span><h3>Odbiór pod okładzinę</h3><ul class="rh-list"><li>Ukończony i podpisany protokół.</li><li>Wynik pomiaru wilgotności.</li><li>Ocena rys i powierzchni.</li><li>Wymagania kleju, podkładu i okładziny.</li><li>Warunki późniejszego uruchomienia.</li></ul></div>
      </div>
    </section>

    <section class="rh-section rh-soft" id="rh-faq">
      <span class="rh-eyebrow">Pytania inwestorów i wykonawców</span>
      <h2>FAQ — wygrzewanie wylewki na ogrzewaniu podłogowym</h2>
      <div class="rh-faq">
        <details><summary>Kiedy można zacząć wygrzewanie cementowej wylewki?</summary><div class="rh-faq-answer"><p>Dla standardowego jastrychu CT orientacyjnie nie wcześniej niż po 21 dniach od wykonania. Ostateczny termin wynika z instrukcji zastosowanego materiału i potwierdzenia stanu instalacji; wyroby specjalne mogą mieć inną procedurę.</p></div></details>
        <details><summary>Po ilu dniach wygrzewa się jastrych anhydrytowy?</summary><div class="rh-faq-answer"><p>Dla standardowego jastrychu CA zwykle po co najmniej 7 dniach. Sprawdź dokumentację konkretnego produktu i przebieg wymagany przez jego wykonawcę.</p></div></details>
        <details><summary>Czy trzeba podnosić temperaturę o 5°C dziennie?</summary><div class="rh-faq-answer"><p>Nie jest to jedna uniwersalna reguła. Przebieg temperatur powinien odpowiadać procedurze zastosowanego jastrychu, projektowi instalacji i ograniczeniom źródła ciepła.</p></div></details>
        <details><summary>Jaką temperaturę ustawić na początku wygrzewania?</summary><div class="rh-faq-answer"><p>W modelowym programie funkcjonalnym przyjmuje się około 25°C temperatury zasilania na początkowy etap. Przed ustawieniem sprawdź instrukcję wyrobu; temperatury pomieszczenia ani powierzchni nie należy mylić z temperaturą zasilania.</p></div></details>
        <details><summary>Do jakiej maksymalnej temperatury grzać?</summary><div class="rh-faq-answer"><p>Do maksymalnej temperatury zasilania wynikającej z projektu i dopuszczeń zastosowanego systemu, przez czas wymagany w procedurze. Nie ustawiaj arbitralnie 45°C lub 55°C.</p></div></details>
        <details><summary>Ile trwa wygrzewanie wylewki?</summary><div class="rh-faq-answer"><p>Modelowy etap funkcjonalny obejmuje co najmniej 3 dni temperatury początkowej i co najmniej 4 dni temperatury maksymalnej projektowej. Wraz z wcześniejszym dojrzewaniem i późniejszym suszeniem cały harmonogram jest dłuższy oraz zależny od produktu.</p></div></details>
        <details><summary>Czy po wygrzewaniu można od razu układać płytki?</summary><div class="rh-faq-answer"><p>Nie zakładaj tego bez oceny podłoża. Wymagania jastrychu, kleju, hydroizolacji i okładziny trzeba powiązać z wynikiem właściwego pomiaru wilgotności.</p></div></details>
        <details><summary>Czy panele i drewno wymagają pomiaru wilgotności?</summary><div class="rh-faq-answer"><p>Tak, odbiór podłoża trzeba przeprowadzić zgodnie z wymaganiami konkretnego systemu wykończenia. Sam zakończony program wygrzewania nie jest wynikiem badania wilgotności.</p></div></details>
        <details><summary>Czy można wygrzewać wylewkę pompą ciepła?</summary><div class="rh-faq-answer"><p>Można, jeśli urządzenie oraz instalacja potrafią bezpiecznie wykonać uzgodniony program. Sprawdź rzeczywiste temperatury, przepływy, działanie automatyki i instrukcję urządzenia.</p></div></details>
        <details><summary>Czy program „suszenie jastrychu” w sterowniku wystarczy?</summary><div class="rh-faq-answer"><p>Nie zawsze. Fabryczna sekwencja sterownika musi zostać porównana z wymaganiami konkretnego jastrychu i maksymalnymi parametrami zaprojektowanej instalacji.</p></div></details>
        <details><summary>Co zrobić po przerwaniu wygrzewania?</summary><div class="rh-faq-answer"><p>Zapisz moment, czas przerwy oraz osiągnięte temperatury. Przed wznowieniem uzgodnij dalszą procedurę z osobami odpowiedzialnymi za jastrych i instalację, zamiast dopisywać nieodbyte dni.</p></div></details>
        <details><summary>Czy latem również trzeba wykonać wygrzewanie?</summary><div class="rh-faq-answer"><p>Jeśli procedura systemu wymaga wygrzewania funkcjonalnego, ciepłe powietrze w budynku samo nie zastępuje kontrolowanego cyklu zasilania ogrzewanej podłogi.</p></div></details>
        <details><summary>Czy brak rys po wygrzewaniu oznacza poprawny odbiór?</summary><div class="rh-faq-answer"><p>Nie. Trzeba jeszcze potwierdzić przebieg programu, ocenić podłoże i wykonać pomiar wilgotności przed okładziną zgodnie z jej wymaganiami.</p></div></details>
        <details><summary>Kto powinien podpisać protokół wygrzewania?</summary><div class="rh-faq-answer"><p>Zakres odpowiedzialności i podpisów należy ustalić w dokumentacji inwestycji. Zwykle potrzebne są dane wykonawcy ogrzewania, wykonawcy jastrychu, osoby nadzorującej oraz inwestora lub odbierającego prace.</p></div></details>
      </div>
    </section>

    <section class="rh-section" id="rh-final">
      <span class="rh-eyebrow">Zanim rury znikną pod jastrychem</span>
      <h2>Wygrzewanie jest ostatnim sprawdzianem decyzji podjętych wcześniej</h2>
      <p class="rh-lead">Kiedy wylewka jest już gotowa, nie da się łatwo skorygować przebiegu pętli, ich długości ani miejsc przejścia przez pola jastrychu. Jeśli jesteś przed montażem, projekt pozwoli przekazać wykonawcy konkretne dane do ułożenia i późniejszego uruchomienia instalacji.</p>
      <div class="rh-cta">
        <h3>Zaplanuj podłogówkę przed wykonaniem wylewki</h3>
        <p>Projekt oparty na obciążeniu pomieszczeń i hydraulice wskazuje rozstawy, długości pętli, przepływy oraz parametry źródła ciepła. Procedurę pielęgnacji i wygrzewania wybranego jastrychu ustal następnie z jego wykonawcą na podstawie dokumentacji materiału.</p>
        <a class="rh-cta-link" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
        <small>Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </div>
    </section>

    <section class="rh-section rh-soft" id="rh-zrodla">
      <span class="rh-eyebrow">Podstawa techniczna</span>
      <h2>Oficjalne źródła i granice poradnika</h2>
      <p class="rh-lead">Dokumenty branżowe określają ramy instalacji i wygrzewania funkcjonalnego. Dla konkretnej budowy sprawdź również kartę jastrychu, instrukcję źródła ciepła, projekt i wymagania materiałów posadzkowych.</p>
      <div class="rh-sources">
        <div class="rh-source"><a href="https://sklep.pkn.pl/pn-en-1264-4-2021-10e.html" target="_blank" rel="nofollow noopener noreferrer">PKN — PN-EN 1264-4:2021-10</a><p>Oficjalna karta polskiego wydania normy dotyczącej instalowania wodnych systemów ogrzewania i chłodzenia płaszczyznowego.</p></div>
        <div class="rh-source"><a href="https://www.dinmedia.de/en/standard/din-en-1264-4/332536919" target="_blank" rel="nofollow noopener noreferrer">DIN Media — EN 1264-4:2021</a><p>Oficjalna karta aktualnej wersji normy europejskiej, część 4: instalacja.</p></div>
        <div class="rh-source"><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 dotyczącej wykonania wbudowanych wodnych systemów ogrzewania i chłodzenia płaszczyznowego.</p></div>
        <div class="rh-source"><a href="https://www.vdpm.info/moertel/estrich" target="_blank" rel="nofollow noopener noreferrer">VDPM — materiały o jastrychach</a><p>Materiały organizacji branżowej rozróżniające funkcję pierwszego wygrzewania i osiąganie gotowości do okładzinowania.</p></div>
      </div>
      <div class="rh-note"><p><strong>Zakres odpowiedzialności:</strong> artykuł oraz narzędzia pomagają uporządkować proces i zapisy. Nie potwierdzają stanu konkretnego jastrychu, poprawności pomiarów, bezpieczeństwa uruchomienia ani gotowości pod okładzinę. Decyzje wykonawcze podejmuje się według dokumentów zastosowanych wyrobów, projektu i rzeczywistych warunków na budowie.</p></div>
    </section>

    <section class="rh-author" id="rh-autor">
      <span class="rh-eyebrow">Opracowanie eksperckie</span>
      <h2>Autor i weryfikacja merytoryczna</h2>
      <div class="rh-author-layout">
        <aside class="rh-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>Projektant instalacji sanitarnych<br>specjalista HVAC i ogrzewania podłogowego</p>
          <div class="rh-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="rh-author-body">
          <blockquote>„Protokół wygrzewania mówi, jak pracowała ogrzewana podłoga. O tym, czy można ją zakryć okładziną, decyduje jeszcze stan i wilgotność konkretnego jastrychu.”</blockquote>
          <p>Robert Kucharski przygotowuje projekty ogrzewania podłogowego oraz obliczenia cieplne i hydrauliczne. W poradnikach łączy parametry instalacji z kolejnością prac wykonawczych, dokumentacją materiałów i rzeczywistym odbiorem na budowie.</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</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",
        "wygrzewanie jastrychu grzewczego",
        "projektowanie instalacji grzewczych",
        "hydraulika pętli ogrzewania podłogowego"
      ],
      "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/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#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": "Wygrzewanie wylewki pod ogrzewanie podłogowe",
          "item": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#webpage",
      "url": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/",
      "name": "Wygrzewanie wylewki pod ogrzewanie podłogowe – terminy, przebieg i protokół",
      "description": "Kiedy rozpocząć wygrzewanie jastrychu CT i CA, jak prowadzić pierwszy cykl i sprawdzić wilgotność przed okładziną.",
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/#website"
      },
      "breadcrumb": {
        "@id": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#breadcrumb"
      },
      "mainEntity": {
        "@id": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#article"
      },
      "datePublished": "2026-10-03",
      "inLanguage": "pl-PL"
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#article",
      "mainEntityOfPage": {
        "@id": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#webpage"
      },
      "headline": "Wygrzewanie wylewki pod ogrzewanie podłogowe – terminy, przebieg i protokół",
      "description": "Praktyczna procedura pierwszego nagrzewania jastrychu grzewczego, z planerem etapów, dziennikiem, porównaniem CT i CA oraz odbiorem pod okładzinę.",
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "datePublished": "2026-10-03",
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "about": [
        "wygrzewanie wylewki pod ogrzewanie podłogowe",
        "jastrych cementowy CT",
        "jastrych siarczanowo-wapniowy CA",
        "protokół wygrzewania",
        "pomiar wilgotności pod okładzinę"
      ],
      "hasPart": [
        {
          "@id": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#planner"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#diary"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#howto"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#faq-schema"
        }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#planner",
      "name": "Planer etapów wygrzewania wylewki",
      "url": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#rh-planer",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Przeglądarka internetowa z obsługą JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "description": "Orientacyjny planer etapów pierwszego nagrzewania na podstawie rodzaju jastrychu, daty wykonania i potwierdzonych danych produktu."
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#diary",
      "name": "Dziennik wygrzewania jastrychu grzewczego",
      "url": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#rk-heat-diary",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Przeglądarka internetowa z obsługą JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "description": "Formularz zapisu rzeczywistych etapów, odczytów temperatur i przerw z możliwością pobrania danych CSV lub wydrukowania."
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#howto",
      "name": "Jak przygotować, przeprowadzić i udokumentować wygrzewanie wylewki",
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Zidentyfikuj jastrych i instrukcję",
          "text": "Odczytaj nazwę materiału, datę wykonania i procedurę pierwszego nagrzewania."
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Potwierdź warunki instalacji",
          "text": "Sprawdź próbę szczelności, drożność obwodów, przepływy i projektową temperaturę zasilania."
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Zaplanuj termin rozpoczęcia",
          "text": "Porównaj upływ czasu od wykonania z minimalnym terminem dopuszczonym w dokumentacji produktu."
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Przeprowadź wymagany program",
          "text": "Utrzymuj etapy i temperatury zgodne z procedurą zastosowanego jastrychu oraz instalacji."
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Zapisz rzeczywisty przebieg",
          "text": "Notuj daty, odczyty temperatur, czas, przerwy i stan powierzchni."
        },
        {
          "@type": "HowToStep",
          "position": 6,
          "name": "Sprawdź gotowość pod okładzinę",
          "text": "Po programie oceń podłoże i wilgotność według wymagań docelowego systemu posadzkowego."
        }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#faq-schema",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Kiedy można zacząć wygrzewanie cementowej wylewki?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Dla standardowego jastrychu CT orientacyjnie nie wcześniej niż po 21 dniach od wykonania. Ostateczny termin wynika z instrukcji zastosowanego materiału i potwierdzenia stanu instalacji; wyroby specjalne mogą mieć inną procedurę."
          }
        },
        {
          "@type": "Question",
          "name": "Po ilu dniach wygrzewa się jastrych anhydrytowy?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Dla standardowego jastrychu CA zwykle po co najmniej 7 dniach. Sprawdź dokumentację konkretnego produktu i przebieg wymagany przez jego wykonawcę."
          }
        },
        {
          "@type": "Question",
          "name": "Czy trzeba podnosić temperaturę o 5°C dziennie?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie jest to jedna uniwersalna reguła. Przebieg temperatur powinien odpowiadać procedurze zastosowanego jastrychu, projektowi instalacji i ograniczeniom źródła ciepła."
          }
        },
        {
          "@type": "Question",
          "name": "Jaką temperaturę ustawić na początku wygrzewania?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "W modelowym programie funkcjonalnym przyjmuje się około 25°C temperatury zasilania na początkowy etap. Przed ustawieniem sprawdź instrukcję wyrobu; temperatury pomieszczenia ani powierzchni nie należy mylić z temperaturą zasilania."
          }
        },
        {
          "@type": "Question",
          "name": "Do jakiej maksymalnej temperatury grzać?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Do maksymalnej temperatury zasilania wynikającej z projektu i dopuszczeń zastosowanego systemu, przez czas wymagany w procedurze. Nie ustawiaj arbitralnie 45°C lub 55°C."
          }
        },
        {
          "@type": "Question",
          "name": "Ile trwa wygrzewanie wylewki?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Modelowy etap funkcjonalny obejmuje co najmniej 3 dni temperatury początkowej i co najmniej 4 dni temperatury maksymalnej projektowej. Wraz z wcześniejszym dojrzewaniem i późniejszym suszeniem cały harmonogram jest dłuższy oraz zależny od produktu."
          }
        },
        {
          "@type": "Question",
          "name": "Czy po wygrzewaniu można od razu układać płytki?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie zakładaj tego bez oceny podłoża. Wymagania jastrychu, kleju, hydroizolacji i okładziny trzeba powiązać z wynikiem właściwego pomiaru wilgotności."
          }
        },
        {
          "@type": "Question",
          "name": "Czy panele i drewno wymagają pomiaru wilgotności?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Tak, odbiór podłoża trzeba przeprowadzić zgodnie z wymaganiami konkretnego systemu wykończenia. Sam zakończony program wygrzewania nie jest wynikiem badania wilgotności."
          }
        },
        {
          "@type": "Question",
          "name": "Czy można wygrzewać wylewkę pompą ciepła?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Można, jeśli urządzenie oraz instalacja potrafią bezpiecznie wykonać uzgodniony program. Sprawdź rzeczywiste temperatury, przepływy, działanie automatyki i instrukcję urządzenia."
          }
        },
        {
          "@type": "Question",
          "name": "Czy program „suszenie jastrychu” w sterowniku wystarczy?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie zawsze. Fabryczna sekwencja sterownika musi zostać porównana z wymaganiami konkretnego jastrychu i maksymalnymi parametrami zaprojektowanej instalacji."
          }
        },
        {
          "@type": "Question",
          "name": "Co zrobić po przerwaniu wygrzewania?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Zapisz moment, czas przerwy oraz osiągnięte temperatury. Przed wznowieniem uzgodnij dalszą procedurę z osobami odpowiedzialnymi za jastrych i instalację, zamiast dopisywać nieodbyte dni."
          }
        },
        {
          "@type": "Question",
          "name": "Czy latem również trzeba wykonać wygrzewanie?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Jeśli procedura systemu wymaga wygrzewania funkcjonalnego, ciepłe powietrze w budynku samo nie zastępuje kontrolowanego cyklu zasilania ogrzewanej podłogi."
          }
        },
        {
          "@type": "Question",
          "name": "Czy brak rys po wygrzewaniu oznacza poprawny odbiór?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie. Trzeba jeszcze potwierdzić przebieg programu, ocenić podłoże i wykonać pomiar wilgotności przed okładziną zgodnie z jej wymaganiami."
          }
        },
        {
          "@type": "Question",
          "name": "Kto powinien podpisać protokół wygrzewania?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Zakres odpowiedzialności i podpisów należy ustalić w dokumentacji inwestycji. Zwykle potrzebne są dane wykonawcy ogrzewania, wykonawcy jastrychu, osoby nadzorującej oraz inwestora lub odbierającego prace."
          }
        }
      ]
    }
  ]
}
</script>
<script>
(function () {
  "use strict";
  var root = document.getElementById("rk-heat-guide");
  if (!root) { return; }
  if (root.getAttribute("data-rh-ready") === "true") { return; }
  root.setAttribute("data-rh-ready", "true");

  function el(id) { return root.querySelector("#" + id); }
  function textNode(tag, value, className) {
    var node = document.createElement(tag);
    node.textContent = value;
    if (className) { node.className = className; }
    return node;
  }
  function dateFromInput(value) {
    if (!/^\d{4}-\d{2}-\d{2}$/.test(value)) { return null; }
    var bits = value.split("-");
    var date = new Date(Number(bits[0]), Number(bits[1]) - 1, Number(bits[2]), 12, 0, 0);
    if (date.getFullYear() !== Number(bits[0])) { return null; }
    if (date.getMonth() !== Number(bits[1]) - 1) { return null; }
    if (date.getDate() !== Number(bits[2])) { return null; }
    return date;
  }
  function addDays(date, days) {
    var copy = new Date(date.getTime());
    copy.setDate(copy.getDate() + days);
    return copy;
  }
  function polishDate(date) { return new Intl.DateTimeFormat("pl-PL", {day:"numeric",month:"long",year:"numeric"}).format(date); }
  function clearStages() {
    el("rh-plan-stages").textContent = "";
    el("rh-plan-stages").hidden = true;
  }
  function writeWarnings(list) {
    var box = el("rh-plan-warnings");
    box.textContent = "";
    list.forEach(function (entry) { box.appendChild(textNode("li", entry)); });
  }
  function addStage(label, date, desc) {
    var stage = textNode("div", "", "rh-stage");
    stage.appendChild(textNode("strong", label));
    stage.appendChild(textNode("span", date));
    stage.appendChild(textNode("small", desc));
    el("rh-plan-stages").appendChild(stage);
  }
  function showPlan() {
    var result = el("rh-plan-result");
    result.classList.remove("is-ready");
    result.classList.remove("is-stop");
    clearStages();
    var type = el("rh-type").value;
    var poured = dateFromInput(el("rh-pour").value);
    var rawWait = el("rh-wait").value.trim();
    var rawMax = el("rh-max").value.trim().replace(",", ".");
    var wait = Number(rawWait);
    var max = Number(rawMax);
    var missing = [];
    var cautions = [];
    if (type === "") { missing.push("Wybierz zidentyfikowany rodzaj jastrychu."); }
    if (!poured) { missing.push("Wpisz prawidłową datę wykonania jastrychu."); }
    if (rawWait === "") { missing.push("Podaj minimalny odstęp z dokumentacji zastosowanego wyrobu."); }
    if (rawWait !== "") {
      if (!Number.isInteger(wait)) { missing.push("Odstęp powinien być liczbą całych dni."); }
      if (wait < 0) { missing.push("Odstęp nie może być ujemny."); }
      if (wait > 180) { missing.push("Sprawdź podany odstęp; narzędzie przyjmuje maksymalnie 180 dni."); }
    }
    if (rawMax === "") { missing.push("Podaj maksymalną projektową temperaturę zasilania."); }
    if (rawMax !== "") {
      if (!Number.isFinite(max)) { missing.push("Wpisz prawidłową temperaturę zasilania."); }
      if (max < 20) { missing.push("Sprawdź temperaturę: wpisano mniej niż 20°C."); }
      if (max > 60) { missing.push("Sprawdź temperaturę: wpisano więcej niż 60°C."); }
    }
    if (!el("rh-doc").checked) { missing.push("Potwierdź sprawdzenie instrukcji dokładnego produktu."); }
    if (!el("rh-test").checked) { missing.push("Potwierdź próbę i przepływ przez pętle."); }
    if (poured) {
      var today = new Date();
      today.setHours(12, 0, 0, 0);
      if (poured.getTime() > today.getTime()) { cautions.push("Data wykonania jest w przyszłości. Pokazane terminy służą wyłącznie planowaniu."); }
    }
    if (type === "ct") {
      if (rawWait !== "") {
        if (wait < 21) { cautions.push("Dla zwykłego CT punktem odniesienia jest 21 dni. Krótszy odstęp wymaga wyraźnej procedury konkretnego wyrobu."); }
      }
    }
    if (type === "ca") {
      if (rawWait !== "") {
        if (wait < 7) { cautions.push("Dla zwykłego CA punktem odniesienia jest 7 dni. Krótszy odstęp wymaga wyraźnej procedury konkretnego wyrobu."); }
      }
    }
    if (type === "special") { cautions.push("Dla produktu specjalnego terminy i temperatury wynikają tylko z jego dokumentacji; model 3 + 4 dni może do niego nie pasować."); }
    if (missing.length > 0) {
      result.classList.add("is-stop");
      el("rh-plan-title").textContent = "Plan wymaga jeszcze danych";
      el("rh-plan-text").textContent = "Uzupełnij warunki wejściowe przed planowaniem pierwszego nagrzewania.";
      writeWarnings(missing.concat(cautions));
      return;
    }
    var start = addDays(poured, wait);
    var warmEnd = addDays(start, 3);
    var maxEnd = addDays(start, 7);
    el("rh-plan-stages").hidden = false;
    addStage("Najwcześniejszy orientacyjny start", polishDate(start), "Po " + wait + " dniach od wykonania; termin potwierdza instrukcja produktu.");
    if (type === "special") {
      addStage("Program produktu", "Według instrukcji", "Nie zastępuj wymaganej procedury przykładowym przebiegiem.");
      addStage("Kontrola przebiegu", "Zapisuj odczyty", "Temperatury oraz czas wprowadź do dziennika.");
    } else {
      addStage("Modelowy etap początkowy", polishDate(start) + " – " + polishDate(warmEnd), "Około 25°C zasilania przez co najmniej 3 pełne doby, o ile dokument produktu potwierdza taki przebieg.");
      addStage("Modelowy etap maksymalny", polishDate(warmEnd) + " – " + polishDate(maxEnd), "Projektowe maksimum " + String(max).replace(".", ",") + "°C przez co najmniej 4 pełne doby, w granicach instrukcji.");
    }
    addStage("Okładzina", "Bez daty", "Najpierw dalsze wysychanie, pomiar wilgotności i odbiór podłoża.");
    if (cautions.length > 0) {
      el("rh-plan-title").textContent = "Wstępny plan z warunkami do wyjaśnienia";
    } else {
      result.classList.add("is-ready");
      el("rh-plan-title").textContent = "Orientacyjny plan jest gotowy";
    }
    el("rh-plan-text").textContent = "Daty porządkują harmonogram, ale nie stanowią protokołu, zgody na włączenie ani potwierdzenia suchej wylewki.";
    writeWarnings(cautions);
  }
  el("rh-type").addEventListener("change", function () {
    var choice = el("rh-type").value;
    if (choice === "ct") { el("rh-wait").value = "21"; }
    if (choice === "ca") { el("rh-wait").value = "7"; }
    if (choice === "special") { el("rh-wait").value = ""; }
  });
  el("rh-calc").addEventListener("click", showPlan);
  el("rh-clear").addEventListener("click", function () {
    ["rh-type","rh-pour","rh-wait","rh-max"].forEach(function (id) { el(id).value = ""; });
    el("rh-doc").checked = false;
    el("rh-test").checked = false;
    el("rh-plan-result").classList.remove("is-ready");
    el("rh-plan-result").classList.remove("is-stop");
    el("rh-plan-title").textContent = "Uzupełnij dane z dokumentacji";
    el("rh-plan-text").textContent = "Planer wskaże braki, orientacyjny dzień rozpoczęcia i dalsze etapy. Nie ustali daty ułożenia podłogi bez pomiaru podłoża.";
    writeWarnings([]);
    clearStages();
  });

  var entries = [];
  function diaryMessage(value) { el("rh-log-status").textContent = value; }
  function renderDiary() {
    var body = el("rh-log-rows");
    body.textContent = "";
    if (entries.length === 0) {
      var empty = document.createElement("tr");
      var cell = textNode("td", "Brak wpisów. Dodaj pierwszy odczyt z budowy.");
      cell.colSpan = 6;
      empty.appendChild(cell);
      body.appendChild(empty);
      return;
    }
    entries.forEach(function (entry, index) {
      var row = document.createElement("tr");
      var values = [entry.date,entry.phase,entry.temp,entry.time,entry.note];
      var labels = ["Data","Etap","Zasilanie","Czas","Uwagi"];
      values.forEach(function (value, cellIndex) {
        var td = textNode("td", value);
        td.setAttribute("data-label", labels[cellIndex]);
        row.appendChild(td);
      });
      var actionCell = document.createElement("td");
      actionCell.setAttribute("data-label", "Usuń");
      var button = textNode("button", "Usuń", "rh-remove");
      button.type = "button";
      button.setAttribute("aria-label", "Usuń wpis z dnia " + entry.date);
      button.addEventListener("click", function () {
        entries.splice(index, 1);
        renderDiary();
        diaryMessage("Wpis usunięty. Pobierz aktualny dziennik przed opuszczeniem strony.");
      });
      actionCell.appendChild(button);
      row.appendChild(actionCell);
      body.appendChild(row);
    });
  }
  el("rh-log-add").addEventListener("click", function () {
    var dateString = el("rh-log-date").value;
    var phase = el("rh-log-phase").value;
    var tempText = el("rh-log-temp").value.trim().replace(",", ".");
    var duration = el("rh-log-time").value.trim();
    var note = el("rh-log-note").value.trim();
    if (!dateFromInput(dateString)) { diaryMessage("Wpisz prawidłową datę odczytu."); return; }
    if (phase === "") { diaryMessage("Wybierz etap albo zdarzenie."); return; }
    if (tempText !== "") {
      var temp = Number(tempText);
      if (!Number.isFinite(temp)) { diaryMessage("Wpisz prawidłowy odczyt temperatury."); return; }
      if (temp < 0) { diaryMessage("Sprawdź odczyt temperatury."); return; }
      if (temp > 65) { diaryMessage("Sprawdź odczyt temperatury."); return; }
    }
    if (duration === "") { diaryMessage("Wpisz czas utrzymania lub okres obserwacji."); return; }
    entries.push({date:dateString,phase:phase,temp:tempText === "" ? "—" : tempText.replace(".", ",") + "°C",time:duration,note:note === "" ? "—" : note});
    renderDiary();
    el("rh-log-temp").value = "";
    el("rh-log-time").value = "";
    el("rh-log-note").value = "";
    diaryMessage("Dodano wpis. Dane pozostają tylko w tej karcie do czasu pobrania lub wydruku.");
  });
  function csvCell(value) { return '"' + String(value).replace(/"/g, '""') + '"'; }
  el("rh-log-csv").addEventListener("click", function () {
    if (entries.length === 0) { diaryMessage("Dodaj przynajmniej jeden wpis przed pobraniem dziennika."); return; }
    var rows = [["Data","Etap","Temperatura zasilania","Czas","Uwagi"]];
    entries.forEach(function (entry) { rows.push([entry.date,entry.phase,entry.temp,entry.time,entry.note]); });
    var csv = "\ufeff" + rows.map(function (row) { return row.map(csvCell).join(";"); }).join("\r\n");
    var blob = new Blob([csv], {type:"text/csv;charset=utf-8"});
    var url = URL.createObjectURL(blob);
    var link = document.createElement("a");
    link.href = url;
    link.download = "dziennik-wygrzewania-wylewki.csv";
    document.body.appendChild(link);
    link.click();
    link.remove();
    setTimeout(function () { URL.revokeObjectURL(url); }, 1000);
    diaryMessage("Pobrano plik CSV. Zachowaj też dokumenty produktu i podpisany protokół wykonawczy.");
  });
  function clearPrintMode() { document.body.classList.remove("rh-print-diary"); }
  el("rh-log-print").addEventListener("click", function () {
    if (entries.length === 0) { diaryMessage("Dodaj wpisy przed wydrukiem dziennika."); return; }
    document.body.classList.add("rh-print-diary");
    window.print();
    setTimeout(clearPrintMode, 1000);
  });
  window.addEventListener("afterprint", clearPrintMode);
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/">Wygrzewanie wylewki pod ogrzewanie podłogowe – terminy, przebieg i protokół.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<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>Ogrzewanie podłogowe w płycie fundamentowej – projekt i montaż.</title>
		<link>https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 28 Jun 2026 16:13:31 +0000</pubDate>
				<category><![CDATA[Budowa stanu zero]]></category>
		<category><![CDATA[HVAC]]></category>
		<category><![CDATA[Ogrzewanie płaszczyznowe]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Płyta fundamentowa]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[budowa domu]]></category>
		<category><![CDATA[budownictwo energooszczędne]]></category>
		<category><![CDATA[energooszczędny dom]]></category>
		<category><![CDATA[fundament grzewczy]]></category>
		<category><![CDATA[instalacja grzewcza]]></category>
		<category><![CDATA[nowoczesne fundamenty]]></category>
		<category><![CDATA[ogrzewanie płaszczyznowe]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[ogrzewanie podłogowe w płycie fundamentowej]]></category>
		<category><![CDATA[ogrzewanie podłogowe z pompą ciepła]]></category>
		<category><![CDATA[płyta fundamentowa]]></category>
		<category><![CDATA[płyta fundamentowa z ogrzewaniem]]></category>
		<category><![CDATA[płyta grzewcza]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[termiczna płyta fundamentowa]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=6375</guid>

					<description><![CDATA[<p>Planowanie posadowienia budynku na etapie stanu zero to moment, w którym podejmujesz decyzje rzutujące na koszty eksploatacji domu przez najbliższe kilkadziesiąt lat. Tradycyjne ławy i ściany fundamentowe powoli ustępują miejsca nowoczesnym rozwiązaniom monolitycznym. Inwestorzy coraz częściej dostrzegają, że ogrzewanie podłogowe w płycie fundamentowej gwarantuje niespotykaną stabilność termiczną i eliminuje liniowe mostki termiczne przy gruncie. W tym artykule brutalnie rozprawiamy się z mitami wykonawczymi, analizujemy realne koszty inwestycji na bazie autentycznego Case Study z Pomorza oraz udostępniamy interaktywne kalkulatory, które pozwolą Ci samodzielnie obliczyć opłacalność oraz parametry hydrauliczne całego systemu pod Twoją pompę ciepła.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/">Ogrzewanie podłogowe w płycie fundamentowej – projekt i montaż.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-slab-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-slab-guide,
  #rk-slab-guide * {
    box-sizing: border-box;
    min-width: 0;
  }

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

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

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

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

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

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

  #rk-slab-guide .rk-slab-hero-title {
    font-size: clamp(2.35rem, 5.7vw, 5.15rem);
    margin: 0;
    max-width: 1180px;
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  #rk-slab-guide .rk-slab-section-dark .rk-slab-section-title,
  #rk-slab-guide .rk-slab-author-head .rk-slab-author-title {
    color: #ffffff;
  }

  #rk-slab-guide .rk-slab-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-slab-guide .rk-slab-section-dark .rk-slab-lead,
  #rk-slab-guide .rk-slab-section-dark .rk-slab-copy {
    color: #c8dbe2;
  }

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

  #rk-slab-guide .rk-slab-copy strong,
  #rk-slab-guide .rk-slab-lead strong {
    color: var(--rk-ink);
  }

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

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

  #rk-slab-guide .rk-slab-answer p {
    color: var(--rk-copy);
    margin: 10px 0 0;
  }

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

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

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

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

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

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

  #rk-slab-guide .rk-slab-section-dark .rk-slab-card {
    background: #17394b;
    border-color: #376177;
  }

  #rk-slab-guide .rk-slab-card-number,
  #rk-slab-guide .rk-slab-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-slab-guide .rk-slab-section-dark .rk-slab-card-number,
  #rk-slab-guide .rk-slab-section-dark .rk-slab-icon {
    background: var(--rk-cyan);
    color: #082c3c;
  }

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

  #rk-slab-guide .rk-slab-section-dark .rk-slab-card h3,
  #rk-slab-guide .rk-slab-section-dark .rk-slab-card h4 {
    color: #ffffff;
  }

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

  #rk-slab-guide .rk-slab-section-dark .rk-slab-card p,
  #rk-slab-guide .rk-slab-section-dark .rk-slab-card li {
    color: #c8dce3;
  }

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

  #rk-slab-guide .rk-slab-note p {
    margin: 0;
  }

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

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

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

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

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

  #rk-slab-guide th:last-child {
    border-radius: 0 14px 0 0;
  }

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

  #rk-slab-guide tbody tr td:first-child {
    border-left: 1px solid var(--rk-line);
  }

  #rk-slab-guide tbody tr td:last-child {
    border-right: 1px solid var(--rk-line);
  }

  #rk-slab-guide tbody tr:last-child td:first-child {
    border-radius: 0 0 0 14px;
  }

  #rk-slab-guide tbody tr:last-child td:last-child {
    border-radius: 0 0 14px;
  }

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

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

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

  #rk-slab-guide .rk-slab-flow {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 30px;
  }

  #rk-slab-guide .rk-slab-flow-step {
    background: #ffffff;
    border: 1px solid var(--rk-line);
    border-top: 5px solid var(--rk-cyan);
    border-radius: 14px;
    padding: 19px;
    position: relative;
  }

  #rk-slab-guide .rk-slab-flow-step strong {
    color: var(--rk-ink);
    display: block;
    margin-bottom: 6px;
  }

  #rk-slab-guide .rk-slab-flow-step span {
    color: var(--rk-copy);
    display: block;
    font-size: 0.88rem;
  }

  #rk-slab-guide .rk-slab-modules {
    background: var(--rk-navy);
    border-radius: 22px;
    margin-top: 32px;
    padding: 28px;
  }

  #rk-slab-guide .rk-slab-module-intro {
    color: #c8dce3;
    margin: 0 0 20px;
  }

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

  #rk-slab-guide .rk-slab-module-button {
    background: #173e51;
    border: 1px solid #356178;
    border-radius: 14px;
    color: #ffffff;
    cursor: pointer;
    font-weight: 900;
    line-height: 1.35;
    min-height: 92px;
    padding: 15px;
    text-align: left;
  }

  #rk-slab-guide .rk-slab-module-button span {
    color: #71e6ef;
    display: block;
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    margin-bottom: 5px;
    text-transform: uppercase;
  }

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

  #rk-slab-guide .rk-slab-module-button[aria-selected="true"] span {
    color: #094f62;
  }

  #rk-slab-guide .rk-slab-module-panel {
    background: #ffffff;
    border-radius: 17px;
    margin-top: 18px;
    padding: 26px;
  }

  #rk-slab-guide .rk-slab-module-panel h3 {
    color: var(--rk-ink);
    font-size: clamp(1.35rem, 2.8vw, 2rem);
    line-height: 1.25;
    margin: 0;
  }

  #rk-slab-guide .rk-slab-module-panel > p {
    color: var(--rk-copy);
    margin: 10px 0 0;
  }

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

  #rk-slab-guide .rk-slab-module-fact {
    background: #f3f8fa;
    border: 1px solid var(--rk-line);
    border-radius: 13px;
    padding: 16px;
  }

  #rk-slab-guide .rk-slab-module-fact strong {
    color: var(--rk-cyan-dark);
    display: block;
    font-size: 0.73rem;
    letter-spacing: 0.07em;
    margin-bottom: 6px;
    text-transform: uppercase;
  }

  #rk-slab-guide .rk-slab-module-fact span {
    color: var(--rk-copy);
  }

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

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

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

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

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

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

  #rk-slab-guide .rk-slab-stage-number {
    align-items: center;
    background: var(--rk-cyan);
    border-radius: 10px;
    color: #082c3c;
    display: inline-flex;
    flex: 0 0 38px;
    font-weight: 900;
    height: 38px;
    justify-content: center;
  }

  #rk-slab-guide .rk-slab-stage-head h4 {
    color: #ffffff;
    font-size: 1.15rem;
    line-height: 1.3;
    margin: 0;
  }

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

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

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

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

  #rk-slab-guide .rk-slab-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-slab-guide .rk-slab-analyzer-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    margin-top: 20px;
  }

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

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

  #rk-slab-guide .rk-slab-analyze-button:hover {
    background: var(--rk-orange-dark);
  }

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

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

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

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

  #rk-slab-guide .rk-slab-result-status {
    color: var(--rk-ink);
    font-size: clamp(1.35rem, 2.6vw, 2rem);
    font-weight: 900;
    line-height: 1.25;
    margin: 0;
  }

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

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

  #rk-slab-guide .rk-slab-result-count {
    background: #f3f8fa;
    border: 1px solid var(--rk-line);
    border-radius: 12px;
    padding: 13px;
    text-align: center;
  }

  #rk-slab-guide .rk-slab-result-count strong {
    color: var(--rk-ink);
    display: block;
    font-size: 1.45rem;
  }

  #rk-slab-guide .rk-slab-result-count span {
    color: var(--rk-muted);
    display: block;
    font-size: 0.74rem;
    font-weight: 800;
    text-transform: uppercase;
  }

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

  #rk-slab-guide .rk-slab-result-column {
    background: #f5f9fa;
    border: 1px solid var(--rk-line);
    border-radius: 13px;
    padding: 16px;
  }

  #rk-slab-guide .rk-slab-result-column h4 {
    color: var(--rk-ink);
    font-size: 0.88rem;
    letter-spacing: 0.05em;
    margin: 0 0 10px;
    text-transform: uppercase;
  }

  #rk-slab-guide .rk-slab-result-column.is-ok h4 {
    color: var(--rk-green-dark);
  }

  #rk-slab-guide .rk-slab-result-column.is-check h4 {
    color: #88600e;
  }

  #rk-slab-guide .rk-slab-result-column.is-stop h4 {
    color: #a83d2d;
  }

  #rk-slab-guide .rk-slab-result-column ul {
    color: var(--rk-copy);
    font-size: 0.88rem;
    margin: 0;
    padding-left: 18px;
  }

  #rk-slab-guide .rk-slab-result-column li + li {
    margin-top: 7px;
  }

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

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

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

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

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

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

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

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

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

  #rk-slab-guide .rk-slab-source-card p {
    color: var(--rk-copy);
    margin: 8px 0 0;
  }

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

  #rk-slab-guide .rk-slab-responsibility p {
    margin: 0;
  }

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

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

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

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

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

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

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

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

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

  #rk-slab-guide .rk-slab-author-card {
    border-radius: 24px;
    box-shadow: 0 18px 45px rgba(11, 37, 54, 0.12);
    overflow: hidden;
  }

  #rk-slab-guide .rk-slab-author-head {
    align-items: end;
    background: linear-gradient(125deg, #0b2536 0%, #153e51 62%, #164e61 100%);
    color: #ffffff;
    display: grid;
    gap: 24px;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 38px 46px;
  }

  #rk-slab-guide .rk-slab-author-head p {
    color: #d4e5ea;
    font-size: 1.08rem;
    margin: 15px 0 0;
    max-width: 900px;
  }

  #rk-slab-guide .rk-slab-author-update {
    border: 1px solid #487286;
    border-radius: 999px;
    color: #ffffff;
    font-size: 0.78rem;
    font-weight: 900;
    padding: 11px 16px;
    white-space: nowrap;
  }

  #rk-slab-guide .rk-slab-author-layout {
    background: #ffffff;
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
  }

  #rk-slab-guide .rk-slab-author-side {
    align-items: center;
    background: #12384b;
    color: #ffffff;
    display: flex;
    flex-direction: column;
    padding: 43px 28px;
    text-align: center;
  }

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

  #rk-slab-guide .rk-slab-author-name {
    font-size: 1.32rem;
    font-weight: 900;
    margin-top: 20px;
  }

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

  #rk-slab-guide .rk-slab-author-social-label {
    color: #6de5ef;
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    margin-top: 22px;
    text-transform: uppercase;
  }

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

  #rk-slab-guide .rk-slab-author-social a {
    align-items: center;
    background: #234d61;
    border-radius: 50%;
    color: #ffffff;
    display: inline-flex;
    font-weight: 900;
    height: 44px;
    justify-content: center;
    text-decoration: none;
    width: 44px;
  }

  #rk-slab-guide .rk-slab-author-social a:hover {
    background: var(--rk-cyan);
    color: var(--rk-navy);
  }

  #rk-slab-guide .rk-slab-author-main {
    padding: 40px;
  }

  #rk-slab-guide .rk-slab-author-quote {
    color: var(--rk-ink);
    font-size: 1.08rem;
    font-style: italic;
    font-weight: 800;
    line-height: 1.72;
    margin: 0;
    padding-left: 58px;
    position: relative;
  }

  #rk-slab-guide .rk-slab-author-quote::before {
    color: var(--rk-cyan);
    content: "“";
    font-family: Georgia, serif;
    font-size: 4.8rem;
    left: 0;
    line-height: 1;
    position: absolute;
    top: -10px;
  }

  #rk-slab-guide .rk-slab-author-main > p {
    color: var(--rk-copy);
    margin: 20px 0 0;
  }

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

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

  #rk-slab-guide .rk-slab-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-slab-guide .rk-slab-author-portals {
    margin-top: 22px;
  }

  #rk-slab-guide .rk-slab-author-portals strong {
    color: var(--rk-cyan-dark);
    display: block;
    font-size: 0.72rem;
    letter-spacing: 0.07em;
    margin-bottom: 10px;
    text-transform: uppercase;
  }

  #rk-slab-guide .rk-slab-author-portals a {
    border: 1px solid var(--rk-line);
    border-radius: 999px;
    display: inline-block;
    font-size: 0.78rem;
    font-weight: 900;
    margin: 0 7px 7px 0;
    padding: 8px 12px;
    text-decoration: none;
  }

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

    #rk-slab-guide .rk-slab-result-grid,
    #rk-slab-guide .rk-slab-module-facts {
      grid-template-columns: minmax(0, 1fr);
    }
  }

  @media (max-width: 820px) {
    #rk-slab-guide .rk-slab-hero,
    #rk-slab-guide .rk-slab-section,
    #rk-slab-guide .rk-slab-author {
      padding-left: 28px;
      padding-right: 28px;
    }

    #rk-slab-guide .rk-slab-hero::before {
      left: 28px;
    }

    #rk-slab-guide .rk-slab-shortcuts {
      padding-left: 22px;
      padding-right: 22px;
    }

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

    #rk-slab-guide .rk-slab-author-head,
    #rk-slab-guide .rk-slab-author-layout {
      grid-template-columns: minmax(0, 1fr);
    }

    #rk-slab-guide .rk-slab-author-update {
      justify-self: start;
    }
  }

  @media (max-width: 660px) {
    #rk-slab-guide .rk-slab-hero {
      padding-bottom: 42px;
      padding-top: 52px;
    }

    #rk-slab-guide .rk-slab-section,
    #rk-slab-guide .rk-slab-author {
      padding-bottom: 46px;
      padding-top: 46px;
    }

    #rk-slab-guide .rk-slab-grid-2,
    #rk-slab-guide .rk-slab-grid-3,
    #rk-slab-guide .rk-slab-grid-4,
    #rk-slab-guide .rk-slab-fields,
    #rk-slab-guide .rk-slab-source-grid,
    #rk-slab-guide .rk-slab-author-facts,
    #rk-slab-guide .rk-slab-module-grid,
    #rk-slab-guide .rk-slab-result-counts,
    #rk-slab-guide .rk-slab-flow {
      grid-template-columns: minmax(0, 1fr);
    }

    #rk-slab-guide .rk-slab-modules,
    #rk-slab-guide .rk-slab-analyzer,
    #rk-slab-guide .rk-slab-cta {
      border-radius: 17px;
      padding: 20px;
    }

    #rk-slab-guide .rk-slab-module-panel,
    #rk-slab-guide .rk-slab-analyzer-stage,
    #rk-slab-guide .rk-slab-result {
      padding: 18px;
    }

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

    #rk-slab-guide .rk-slab-analyze-button,
    #rk-slab-guide .rk-slab-reset-button,
    #rk-slab-guide .rk-slab-cta-button {
      text-align: center;
      width: 100%;
    }

    #rk-slab-guide .rk-slab-table-wrap {
      overflow: visible;
    }

    #rk-slab-guide table,
    #rk-slab-guide thead,
    #rk-slab-guide tbody,
    #rk-slab-guide tr,
    #rk-slab-guide th,
    #rk-slab-guide td {
      display: block;
      min-width: 0;
      width: 100%;
    }

    #rk-slab-guide thead {
      clip: rect(0 0 0 0);
      clip-path: inset(50%);
      height: 1px;
      overflow: hidden;
      position: absolute;
      white-space: nowrap;
      width: 1px;
    }

    #rk-slab-guide tbody {
      display: grid;
      gap: 14px;
    }

    #rk-slab-guide tbody tr {
      background: #ffffff;
      border: 1px solid var(--rk-line);
      border-radius: 14px;
      overflow: hidden;
    }

    #rk-slab-guide td,
    #rk-slab-guide tbody tr td:first-child,
    #rk-slab-guide tbody tr td:last-child {
      border: 0;
      border-bottom: 1px solid #e1ebef;
      border-radius: 0;
      padding: 13px 15px;
    }

    #rk-slab-guide td:last-child {
      border-bottom: 0;
    }

    #rk-slab-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-slab-guide .rk-slab-author-head {
      padding: 29px 22px;
    }

    #rk-slab-guide .rk-slab-author-main {
      padding: 28px 21px;
    }

    #rk-slab-guide .rk-slab-author-quote {
      padding-left: 43px;
    }
  }

  @media (max-width: 430px) {
    #rk-slab-guide .rk-slab-hero,
    #rk-slab-guide .rk-slab-section,
    #rk-slab-guide .rk-slab-author {
      padding-left: 18px;
      padding-right: 18px;
    }

    #rk-slab-guide .rk-slab-hero::before {
      left: 18px;
    }

    #rk-slab-guide .rk-slab-shortcuts {
      padding-left: 14px;
      padding-right: 14px;
    }

    #rk-slab-guide .rk-slab-shortcuts a {
      flex: 1 1 calc(50% - 9px);
      text-align: center;
    }

    #rk-slab-guide .rk-slab-shortcuts-label {
      flex: 1 0 100%;
    }

    #rk-slab-guide .rk-slab-hero-title {
      font-size: 2.2rem;
    }

    #rk-slab-guide .rk-slab-section-title,
    #rk-slab-guide .rk-slab-author-title {
      font-size: 1.9rem;
    }
  }

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

<article id="rk-slab-guide" aria-labelledby="rk-slab-visual-title">
  <div class="rk-slab-shell">
    <header class="rk-slab-hero">
      <span class="rk-slab-kicker">Płyta grzewcza · projekt i odbiór 2026</span>
      <div class="rk-slab-hero-title" id="rk-slab-visual-title">Ogrzewanie podłogowe w płycie fundamentowej: <span>zabetonuj obliczenia, nie założenia</span></div>
      <p class="rk-slab-hero-lead">Rury umieszczone w nośnej płycie mogą stworzyć trwały, niskotemperaturowy system grzewczy. Warunkiem jest zamknięcie przed betonowaniem decyzji cieplnych, hydraulicznych, konstrukcyjnych i wykonawczych — bo późniejsza korekta rozstawu, pętli albo kolizji nie będzie już możliwa.</p>
      <div class="rk-slab-hero-tags" aria-label="Zakres poradnika">
        <span>OZC pomieszczeń</span>
        <span>koordynacja konstrukcji</span>
        <span>pętle i hydraulika</span>
        <span>izolacja od gruntu</span>
        <span>próba i betonowanie</span>
      </div>
      <div class="rk-slab-meta">
        <span>Autor: <strong>Robert Kucharski</strong></span>
        <span>Czas czytania: <strong>około 29 minut</strong></span>
        <span>Aktualizacja techniczna: <strong>16 września 2026 r.</strong></span>
      </div>
    </header>

    <nav class="rk-slab-shortcuts" aria-label="Na skróty — wszystkie sekcje artykułu">
      <span class="rk-slab-shortcuts-label">Na skróty</span>
      <a href="#rk-slab-answer">Szybka odpowiedź</a>
      <a href="#rk-slab-systems">Trzy rozwiązania</a>
      <a href="#rk-slab-tradeoffs">Zalety i ograniczenia</a>
      <a href="#rk-slab-responsibility">Odpowiedzialność</a>
      <a href="#rk-slab-input">Dane wejściowe</a>
      <a href="#rk-slab-analyzer-section">Analizator</a>
      <a href="#rk-slab-coordination">6 obszarów</a>
      <a href="#rk-slab-ground">Grunt i izolacja</a>
      <a href="#rk-slab-structure">Położenie rur</a>
      <a href="#rk-slab-layout">Aktywne pola</a>
      <a href="#rk-slab-hydraulics">Pętle i przepływy</a>
      <a href="#rk-slab-pipes">Rury i system</a>
      <a href="#rk-slab-pour">Próba i beton</a>
      <a href="#rk-slab-documentation">Dokumentacja</a>
      <a href="#rk-slab-control">Bezwładność</a>
      <a href="#rk-slab-coverings">Okładziny</a>
      <a href="#rk-slab-failure">Awaria</a>
      <a href="#rk-slab-errors">Błędy</a>
      <a href="#rk-slab-checklist">Checklista</a>
      <a href="#rk-slab-final">Projekt</a>
      <a href="#rk-slab-sources">Źródła</a>
      <a href="#rk-slab-faq">FAQ</a>
      <a href="#rk-slab-author">Autor</a>
    </nav>

    <section class="rk-slab-section" id="rk-slab-answer">
      <span class="rk-slab-eyebrow">Odpowiedź w 60 sekund</span>
      <h2 class="rk-slab-section-title">Czy warto umieścić ogrzewanie podłogowe w płycie fundamentowej?</h2>
      <p class="rk-slab-lead"><strong>Tak, jeżeli instalacja i płyta powstają jako jeden skoordynowany projekt.</strong> Nie jest to jednak zwykła podłogówka przeniesiona z jastrychu do grubszego betonu. Nośna płyta, izolacja od gruntu, położenie rur, hydraulika i technologia betonowania wzajemnie na siebie wpływają.</p>
      <div class="rk-slab-answer">
        <strong>Najważniejsze pytanie nie brzmi „czy zastosować rozstaw 10 czy 15 cm?”, lecz „czy przed betonowaniem zostały zamknięte wszystkie decyzje, których później nie da się bezpiecznie zmienić?”.</strong>
        <p>Rozstaw, temperatura zasilania i długość pętli nie są stałymi wartościami dla każdej płyty. Wynikają z obciążenia cieplnego pomieszczeń, aktywnej powierzchni, układu warstw, położenia rur, okładziny, przepływów i parametrów źródła ciepła.</p>
      </div>
      <div class="rk-slab-grid-3">
        <article class="rk-slab-card"><span class="rk-slab-icon">1</span><h3>Najpierw budynek</h3><p>OZC pomieszczenie po pomieszczeniu określa, ile mocy ma oddać konkretna część podłogi w warunkach projektowych.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-icon">2</span><h3>Potem koordynacja</h3><p>Trasy rur, zbrojenie, przepusty, odpływy, ściany i strefy późniejszego wiercenia muszą zostać uzgodnione przed montażem.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-icon">3</span><h3>Na końcu beton</h3><p>Betonowanie rozpoczyna się po sprawdzeniu dokumentów, próbie, opisaniu pętli i przygotowaniu planu kontroli podczas prac.</p></article>
      </div>
      <p class="rk-slab-copy">Jeżeli chcesz zacząć od podstaw, przeczytaj, czym jest <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne OZC</a> oraz jak działa <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/">wodne ogrzewanie podłogowe</a>. Ten poradnik skupia się wyłącznie na dodatkowych wymaganiach wynikających z umieszczenia rur w elemencie związanym z posadowieniem budynku.</p>
    </section>

    <section class="rk-slab-section rk-slab-section-soft" id="rk-slab-systems">
      <span class="rk-slab-eyebrow">Najpierw nazwij właściwy układ</span>
      <h2 class="rk-slab-section-title">Płyta grzewcza, jastrych nad płytą czy system producenta?</h2>
      <p class="rk-slab-lead">Pod wspólną nazwą „podłogówka w płycie” funkcjonują różne rozwiązania. Nie można bez sprawdzenia przenosić między nimi położenia rur, dylatacji, sposobu mocowania ani procedury rozruchu.</p>
      <div class="rk-slab-table-wrap">
        <table>
          <thead><tr><th>Rozwiązanie</th><th>Gdzie znajdują się rury?</th><th>Co jest kluczowe?</th><th>Czego nie zakładać?</th></tr></thead>
          <tbody>
            <tr><td data-label="Rozwiązanie"><strong>Rury w nośnej płycie</strong></td><td data-label="Położenie">W przekroju elementu konstrukcyjnego, na poziomie wskazanym w uzgodnionej dokumentacji.</td><td data-label="Kluczowe">Koordynacja z konstruktorem, zbrojeniem, otuliną, przepustami i technologią betonowania.</td><td data-label="Nie zakładaj">Że detal znany z jastrychu można skopiować bez zmian.</td></tr>
            <tr><td data-label="Rozwiązanie"><strong>Jastrych nad płytą</strong></td><td data-label="Położenie">W oddzielnej warstwie podłogowej wykonanej nad konstrukcją i jej izolacjami.</td><td data-label="Kluczowe">Układ podłogi, dylatacje jastrychu, izolacja, rozruch i okładzina.</td><td data-label="Nie zakładaj">Że płyta nośna automatycznie staje się powierzchnią grzewczą.</td></tr>
            <tr><td data-label="Rozwiązanie"><strong>Kompletny system płytowy</strong></td><td data-label="Położenie">Zgodnie z dokumentacją konkretnego systemu i projektem dla budynku.</td><td data-label="Kluczowe">Zakres odpowiedzialności dostawcy, dokumentacja, detale i ograniczenia rozwiązania.</td><td data-label="Nie zakładaj">Że każda „płyta termiczna” ma identyczny układ warstw.</td></tr>
          </tbody>
        </table>
      </div>
      <div class="rk-slab-note"><p><strong>Granica poradnika:</strong> omawiam projekt instalacji grzewczej i jej koordynację. Nie określam klasy betonu, zbrojenia, grubości płyty ani nośności — te parametry należą do projektu konstrukcyjnego i geotechnicznego.</p></div>
    </section>

    <section class="rk-slab-section" id="rk-slab-tradeoffs">
      <span class="rk-slab-eyebrow">Bez zachwytu i bez straszenia</span>
      <h2 class="rk-slab-section-title">Rzeczywiste zalety i ograniczenia ogrzewanej płyty</h2>
      <p class="rk-slab-lead">Masa betonu może stabilizować temperaturę i współpracować z niskotemperaturowym źródłem, ale nie gwarantuje automatycznie niskich rachunków. O wyniku decyduje cały budynek oraz sposób sterowania energią zgromadzoną w konstrukcji.</p>
      <div class="rk-slab-grid-2">
        <article class="rk-slab-card"><span class="rk-slab-card-number">KORZYŚCI</span><h3>Co może działać na plus</h3><ul class="rk-slab-bullets"><li>duża powierzchnia oddawania ciepła,</li><li>możliwość pracy przy niskiej temperaturze zasilania,</li><li>stabilna temperatura powierzchni i powietrza,</li><li>brak grzejników zajmujących ściany,</li><li>akumulacja ograniczająca krótkie wahania.</li></ul></article>
        <article class="rk-slab-card"><span class="rk-slab-card-number">OGRANICZENIA</span><h3>Co trzeba zaakceptować</h3><ul class="rk-slab-bullets"><li>bardzo małą możliwość korekty po betonowaniu,</li><li>dłuższą reakcję na zmianę nastawy i zyski słoneczne,</li><li>konieczność koordynacji wielu branż,</li><li>większą wagę dokumentacji powykonawczej,</li><li>naprawę zależną od zgody i oceny konstrukcyjnej.</li></ul></article>
      </div>
      <p class="rk-slab-copy">Opłacalność należy porównywać na podstawie dwóch kompletnych ofert o tym samym zakresie. Cena płyty z instalacją nie może być zestawiana wyłącznie z ceną samych ław, a następnie automatycznie uznawana za tańszą albo droższą.</p>
    </section>

    <section class="rk-slab-section rk-slab-section-soft" id="rk-slab-responsibility">
      <span class="rk-slab-eyebrow">Jedna płyta, kilka odpowiedzialności</span>
      <h2 class="rk-slab-section-title">Kto projektuje ogrzewanie, a kto zatwierdza jego miejsce w konstrukcji?</h2>
      <p class="rk-slab-lead">Instalator nie powinien samodzielnie wybierać położenia rur w nośnej płycie, a projektant instalacji nie zastępuje konstruktora. Bezpieczna realizacja wymaga jednoznacznego podziału zakresów.</p>
      <div class="rk-slab-grid-4">
        <article class="rk-slab-card"><span class="rk-slab-card-number">01</span><h3>Geotechnika i posadowienie</h3><p>Warunki gruntu, wody, przygotowania podłoża i założenia dotyczące fundamentu.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-card-number">02</span><h3>Konstruktor</h3><p>Geometria płyty, zbrojenie, otulina, nośność, przerwy robocze, przepusty i dopuszczone sposoby prowadzenia instalacji.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-card-number">03</span><h3>Projektant instalacji</h3><p>OZC, moc powierzchni, rozstawy, pętle, przepływy, opory, rozdzielacz, parametry wody i źródła.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-card-number">04</span><h3>Wykonawca i kierownik</h3><p>Zgodność wykonania, ochrona instalacji, próba, kontrola betonowania, protokoły i dokumentacja powykonawcza.</p></article>
      </div>
      <div class="rk-slab-note rk-slab-note-bad"><p><strong>Sygnał ostrzegawczy:</strong> jeżeli nikt nie potrafi wskazać dokumentu określającego położenie i mocowanie rur względem zbrojenia, instalacja nie jest gotowa do montażu w elemencie konstrukcyjnym.</p></div>
    </section>

    <section class="rk-slab-section" id="rk-slab-input">
      <span class="rk-slab-eyebrow">Dane przed pierwszym metrem rury</span>
      <h2 class="rk-slab-section-title">Co trzeba policzyć i uzgodnić przed rozpoczęciem montażu?</h2>
      <p class="rk-slab-lead">Powierzchnia domu nie wystarcza do rozmieszczenia pętli. Dwa pomieszczenia o identycznym metrażu mogą mieć inne straty, inne pola wyłączone i inną dostępną powierzchnię oddawania ciepła.</p>
      <div class="rk-slab-grid-3">
        <article class="rk-slab-card"><span class="rk-slab-icon">Q</span><h3>Obciążenie każdego pomieszczenia</h3><p>Obliczenia dla temperatury projektowej, przegród, wentylacji i rzeczywistej lokalizacji budynku.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-icon">A</span><h3>Powierzchnia aktywna</h3><p>Pola dostępne po odjęciu stałej zabudowy, przepustów, odpływów i stref wyłączonych przez projekt.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-icon">R</span><h3>Opór podłogi</h3><p>Warstwy nad rurami, planowana okładzina i podkład wpływają na potrzebną temperaturę czynnika.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-icon">T</span><h3>Temperatury pracy</h3><p>Zasilanie i powrót wynikają z wymaganej mocy oraz charakterystyki konkretnego układu.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-icon">V̇</span><h3>Przepływy i opory</h3><p>Każda pętla wymaga przepływu odpowiadającego mocy i sprawdzenia drogi hydraulicznej.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-icon">K</span><h3>Koordynacja konstrukcyjna</h3><p>Rury, mocowanie, przejścia i strefy bez instalacji muszą być zgodne z projektem płyty.</p></article>
      </div>
      <p class="rk-slab-copy">Punkt wyjścia stanowią <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">obliczenia strat cieplnych budynku</a>, poprawna <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/">temperatura projektowa dla lokalizacji</a> oraz rzut z kompletną konstrukcją i instalacjami.</p>
    </section>

    <section class="rk-slab-section rk-slab-section-dark" id="rk-slab-analyzer-section">
      <span class="rk-slab-eyebrow">Główne narzędzie artykułu</span>
      <h2 class="rk-slab-section-title">Analizator: czy instalacja jest gotowa do betonowania?</h2>
      <p class="rk-slab-lead">Odpowiedz na podstawie dokumentów i protokołów, a nie ustnych deklaracji. Wynik nie zatwierdza konstrukcji — pokazuje braki, które trzeba zamknąć przed rozpoczęciem nieodwracalnego etapu.</p>
      <div class="rk-slab-analyzer" id="rk-slab-analyzer">
        <div class="rk-slab-analyzer-head">
          <h3>Kontrola czterech obszarów przed zamówieniem betonu</h3>
          <p>Wybierz „potwierdzone” tylko wtedy, gdy możesz wskazać obliczenie, rysunek, uzgodnienie albo protokół.</p>
        </div>

        <div class="rk-slab-analyzer-stage">
          <div class="rk-slab-stage-head"><span class="rk-slab-stage-number">1</span><div><h4>Projekt cieplny i aktywna powierzchnia</h4><p>Czy wiadomo, ile ciepła ma oddać każde pomieszczenie i z jakiej powierzchni?</p></div></div>
          <div class="rk-slab-fields">
            <label class="rk-slab-field"><span>OZC wykonane osobno dla każdego pomieszczenia</span><select id="rk-slab-ozc"><option value="unknown">Brak danych / nie wiem</option><option value="yes">Potwierdzone w obliczeniach</option><option value="no">Nie wykonano</option></select></label>
            <label class="rk-slab-field"><span>Aktywne pola i wszystkie strefy wyłączone</span><select id="rk-slab-active"><option value="unknown">Nieustalone</option><option value="yes">Pokazane na skoordynowanym rzucie</option><option value="no">Rury mają być układane na budowie „na bieżąco”</option></select></label>
            <label class="rk-slab-field"><span>Moc powierzchni sprawdzona dla układu warstw</span><select id="rk-slab-output"><option value="unknown">Brak obliczenia</option><option value="yes">Sprawdzona dla konstrukcji i okładziny</option><option value="no">Przyjęto wyłącznie typową wartość W/m²</option></select></label>
            <label class="rk-slab-field"><span>Temperatura zasilania wynika z obliczeń</span><select id="rk-slab-temperature"><option value="unknown">Nieustalona</option><option value="yes">Powiązana z mocą i źródłem ciepła</option><option value="no">Przyjęta z góry bez sprawdzenia</option></select></label>
          </div>
        </div>

        <div class="rk-slab-analyzer-stage">
          <div class="rk-slab-stage-head"><span class="rk-slab-stage-number">2</span><div><h4>Konstrukcja i koordynacja międzybranżowa</h4><p>Projekt instalacji nie może samodzielnie rozstrzygać o zbrojeniu, otulinie i dopuszczonych przejściach.</p></div></div>
          <div class="rk-slab-fields">
            <label class="rk-slab-field"><span>Projekt konstrukcyjny płyty jest zakończony</span><select id="rk-slab-structural"><option value="unknown">Brak potwierdzenia</option><option value="yes">Dokumentacja jest dostępna</option><option value="no">Konstrukcja nadal jest zmieniana</option></select></label>
            <label class="rk-slab-field"><span>Położenie i mocowanie rur zaakceptowane konstrukcyjnie</span><select id="rk-slab-position"><option value="unknown">Nie ma pisemnego uzgodnienia</option><option value="yes">Pokazane lub zatwierdzone w dokumentacji</option><option value="no">Wybrał je samodzielnie wykonawca instalacji</option></select></label>
            <label class="rk-slab-field"><span>Przepusty, odpływy, kotwy, ściany i zbrojenie skoordynowane</span><select id="rk-slab-collisions"><option value="unknown">Koordynacja nie jest zakończona</option><option value="yes">Kolizje sprawdzono na wspólnym rzucie</option><option value="no">Branże korzystają z różnych, niespójnych rysunków</option></select></label>
            <label class="rk-slab-field"><span>Zakres odpowiedzialności uczestników jest ustalony</span><select id="rk-slab-roles"><option value="unknown">Nie jest jednoznaczny</option><option value="yes">Wiadomo, kto zatwierdza każdy etap</option><option value="no">Decyzje pozostawiono ekipom na dzień betonowania</option></select></label>
          </div>
        </div>

        <div class="rk-slab-analyzer-stage">
          <div class="rk-slab-stage-head"><span class="rk-slab-stage-number">3</span><div><h4>Hydraulika i konkretny system rur</h4><p>Długość pętli i przepływ muszą zostać ocenione razem, a nie przez jedną granicę metrażu.</p></div></div>
          <div class="rk-slab-fields">
            <label class="rk-slab-field"><span>Średnica, rozstaw i typ rury są określone</span><select id="rk-slab-pipe"><option value="unknown">Nieustalone</option><option value="yes">Wskazane w projekcie i dokumentacji systemu</option><option value="no">Produkt ma zostać wybrany po cenie na budowie</option></select></label>
            <label class="rk-slab-field"><span>Długości, przepływy i straty ciśnienia policzone dla pętli</span><select id="rk-slab-loops"><option value="unknown">Niepoliczone</option><option value="yes">Zestawione dla wszystkich obwodów</option><option value="no">Przyjęto tylko maksymalną długość w metrach</option></select></label>
            <label class="rk-slab-field"><span>Położenie rozdzielacza i dobiegi są na rzucie</span><select id="rk-slab-manifold"><option value="unknown">Nieustalone</option><option value="yes">Uwzględnione w długościach i koordynacji</option><option value="no">Miejsce zostanie wybrane po wykonaniu płyty</option></select></label>
            <label class="rk-slab-field"><span>Karta rury, złączki i wymagania montażowe są dostępne</span><select id="rk-slab-system"><option value="unknown">Brak dokumentów</option><option value="yes">Dokumentacja dotyczy konkretnego typu i wymiaru</option><option value="no">Jest tylko opis handlowy produktu</option></select></label>
          </div>
        </div>

        <div class="rk-slab-analyzer-stage">
          <div class="rk-slab-stage-head"><span class="rk-slab-stage-number">4</span><div><h4>Próba, betonowanie i zapis powykonawczy</h4><p>Kontrola nie kończy się w chwili zamocowania ostatniej pętli.</p></div></div>
          <div class="rk-slab-fields">
            <label class="rk-slab-field"><span>Procedura próby i kryteria odbioru są ustalone</span><select id="rk-slab-test-plan"><option value="unknown">Nieustalone</option><option value="yes">Opisane zgodnie z projektem i systemem</option><option value="no">Próba ma być wykonana bez przyjętej procedury</option></select></label>
            <label class="rk-slab-field"><span>Próba została wykonana i zaprotokołowana</span><select id="rk-slab-test"><option value="unknown">Jeszcze nie wykonano / brak protokołu</option><option value="yes">Wynik zaakceptowano przed betonowaniem</option><option value="no">Betonowanie planowane bez próby</option></select></label>
            <label class="rk-slab-field"><span>Ustalono kontrolę instalacji podczas betonowania</span><select id="rk-slab-monitor"><option value="unknown">Nie ma planu kontroli</option><option value="yes">Wyznaczono osoby, procedurę i reakcję na problem</option><option value="no">Instalacja nie będzie monitorowana</option></select></label>
            <label class="rk-slab-field"><span>Zdjęcia, oznaczenia pętli i rzut powykonawczy</span><select id="rk-slab-asbuilt"><option value="unknown">Nieprzygotowane</option><option value="yes">Zaplanowane lub wykonane przed zakryciem</option><option value="no">Nie będą sporządzane</option></select></label>
          </div>
        </div>

        <div class="rk-slab-analyzer-actions">
          <button class="rk-slab-analyze-button" id="rk-slab-run" type="button">Sprawdź gotowość do betonowania</button>
          <button class="rk-slab-reset-button" id="rk-slab-reset" type="button">Wyczyść odpowiedzi</button>
        </div>

        <div class="rk-slab-result" id="rk-slab-result" aria-live="polite">
          <p class="rk-slab-result-status" id="rk-slab-result-status">Uzupełnij cztery obszary kontroli</p>
          <p class="rk-slab-result-intro" id="rk-slab-result-intro">Wynik rozdzieli elementy potwierdzone, brakujące i krytyczne przed betonowaniem.</p>
          <div class="rk-slab-result-counts" aria-label="Podsumowanie liczby odpowiedzi">
            <div class="rk-slab-result-count"><strong id="rk-slab-ok-count">0</strong><span>potwierdzone</span></div>
            <div class="rk-slab-result-count"><strong id="rk-slab-check-count">0</strong><span>do uzupełnienia</span></div>
            <div class="rk-slab-result-count"><strong id="rk-slab-stop-count">0</strong><span>krytyczne</span></div>
          </div>
          <div class="rk-slab-result-grid">
            <div class="rk-slab-result-column is-ok"><h4>Potwierdzone</h4><ul id="rk-slab-ok-list"><li>Jeszcze brak ocenionych danych.</li></ul></div>
            <div class="rk-slab-result-column is-check"><h4>Do uzupełnienia</h4><ul id="rk-slab-check-list"><li>Uzupełnij formularz na podstawie dokumentów.</li></ul></div>
            <div class="rk-slab-result-column is-stop"><h4>Warunki krytyczne</h4><ul id="rk-slab-stop-list"><li>Brak oceny nie oznacza gotowości do betonowania.</li></ul></div>
          </div>
          <p class="rk-slab-disclaimer">Analizator nie ocenia nośności, zbrojenia, klasy betonu ani geotechniki. Nie zastępuje projektu konstrukcyjnego, projektu instalacji, instrukcji systemu, kierownika budowy ani odbioru robót.</p>
        </div>
      </div>

      <aside class="rk-slab-cta" aria-label="Projekt ogrzewania podłogowego w płycie fundamentowej">
        <div class="rk-slab-cta-title">Analizator może wykryć brakujące dane, ale nie policzy pętli dla konkretnej płyty</div>
        <p>Przed betonowaniem trzeba połączyć obciążenie cieplne każdego pomieszczenia z aktywną powierzchnią, rozstawem, długościami obwodów, przepływami, oporami i położeniem rozdzielacza. Następnie parametry instalacji muszą zostać skoordynowane z projektem konstrukcyjnym płyty.</p>
        <a class="rk-slab-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Sprawdź zakres projektu podłogówki do płyty</a>
        <small class="rk-slab-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora. Projekt instalacji nie zastępuje projektu konstrukcyjnego płyty fundamentowej.</small>
      </aside>
    </section>

    <section class="rk-slab-section" id="rk-slab-coordination">
      <span class="rk-slab-eyebrow">Modułowa grafika edukacyjna</span>
      <h2 class="rk-slab-section-title">Od gruntu do rozdzielacza — sześć obszarów jednej decyzji</h2>
      <p class="rk-slab-lead">Wybierz obszar, aby zobaczyć jego funkcję, osobę odpowiedzialną i błąd, którego nie wolno ukryć w betonie. Moduł celowo nie pokazuje jednej „wzorcowej” wysokości rury — prawidłowe położenie wynika z konkretnego projektu.</p>
      <div class="rk-slab-modules" aria-labelledby="rk-slab-module-title">
        <p class="rk-slab-module-intro" id="rk-slab-module-title"><strong>Sześć połączonych obszarów:</strong> żadnego nie można oceniać wyłącznie z perspektywy instalatora albo jednego rysunku.</p>
        <div class="rk-slab-module-grid" role="tablist" aria-label="Obszary koordynacji ogrzewanej płyty">
          <button class="rk-slab-module-button" type="button" role="tab" aria-selected="true" data-rk-slab-module="ground"><span>01 · Podłoże</span>Grunt i posadowienie</button>
          <button class="rk-slab-module-button" type="button" role="tab" aria-selected="false" data-rk-slab-module="insulation"><span>02 · Ochrona cieplna</span>Izolacja i krawędź płyty</button>
          <button class="rk-slab-module-button" type="button" role="tab" aria-selected="false" data-rk-slab-module="structure"><span>03 · Nośność</span>Konstrukcja i zbrojenie</button>
          <button class="rk-slab-module-button" type="button" role="tab" aria-selected="false" data-rk-slab-module="pipes"><span>04 · Emisja</span>Rury i aktywne pola</button>
          <button class="rk-slab-module-button" type="button" role="tab" aria-selected="false" data-rk-slab-module="hydraulics"><span>05 · Przepływ</span>Pętle i rozdzielacz</button>
          <button class="rk-slab-module-button" type="button" role="tab" aria-selected="false" data-rk-slab-module="pour"><span>06 · Zamknięcie</span>Próba i betonowanie</button>
        </div>
        <div class="rk-slab-module-panel" role="tabpanel" aria-live="polite">
          <h3 id="rk-slab-module-heading">Grunt i posadowienie</h3>
          <p id="rk-slab-module-summary">Warunki gruntu, wody i przygotowania podłoża wpływają na konstrukcję oraz sposób ograniczenia strat do gruntu.</p>
          <div class="rk-slab-module-facts">
            <div class="rk-slab-module-fact"><strong>Odpowiada</strong><span id="rk-slab-module-owner">projektant konstrukcji i geotechnik</span></div>
            <div class="rk-slab-module-fact"><strong>Dokument</strong><span id="rk-slab-module-document">opinia lub dokumentacja geotechniczna oraz projekt posadowienia</span></div>
            <div class="rk-slab-module-fact"><strong>Nie ukrywaj w betonie</strong><span id="rk-slab-module-risk">niezgodnego podłoża, zmian rzędnych i nieuzgodnionych przejść instalacyjnych</span></div>
          </div>
        </div>
      </div>
    </section>

    <section class="rk-slab-section rk-slab-section-soft" id="rk-slab-ground">
      <span class="rk-slab-eyebrow">Ciepło nie płynie tylko do pomieszczenia</span>
      <h2 class="rk-slab-section-title">Straty do gruntu, izolacja dolna i krawędź płyty</h2>
      <p class="rk-slab-lead">Podłoga stykająca się z gruntem nie zachowuje się jak ściana zewnętrzna poddana jednej, stałej różnicy temperatur. Znaczenie mają geometria, obwód, zagłębienie, właściwości gruntu, izolacja dolna i obwodowa oraz warunki okresowe.</p>
      <div class="rk-slab-grid-3">
        <article class="rk-slab-card"><span class="rk-slab-card-number">DÓŁ</span><h3>Izolacja pod płytą</h3><p>Jej grubość nie powinna wynikać z katalogowego „standardu systemu”, lecz z projektu cieplnego i konstrukcyjnego całej przegrody.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-card-number">BRZEG</span><h3>Połączenie ze ścianą</h3><p>Krawędź płyty wymaga ciągłości ochrony cieplnej i rozwiązania detalu zgodnego z konstrukcją, hydroizolacją oraz elewacją.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-card-number">GRUNT</span><h3>Model obliczeniowy</h3><p>Strat do gruntu nie określamy przez proste pomnożenie powierzchni, U i różnicy temperatur jak dla ściany.</p></article>
      </div>
      <p class="rk-slab-copy">Wymagania cieplne trzeba powiązać z rozwiązaniem opisanym w projekcie płyty. Uzupełniająco zobacz poradnik o <a href="https://projekt-ogrzewania.pl/jakie-sa-najlepsze-sposoby-izolacji-pod-ogrzewanie-podlogowe/">izolacji pod ogrzewanie podłogowe</a> oraz o <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacji brzegowej i dylatacjach</a>, pamiętając, że detale jastrychu nie są automatycznie detalami płyty nośnej.</p>
    </section>

    <section class="rk-slab-section" id="rk-slab-structure">
      <span class="rk-slab-eyebrow">Nie ma jednej bezpiecznej wysokości dla każdej płyty</span>
      <h2 class="rk-slab-section-title">Gdzie umieścić rury względem zbrojenia i powierzchni podłogi?</h2>
      <p class="rk-slab-lead">Głębokość rur wpływa na drogę przepływu ciepła, czas reakcji i temperaturę wody. Jednocześnie położenie instalacji nie może naruszać wymagań konstrukcyjnych, otuliny ani stref pracy zbrojenia.</p>
      <div class="rk-slab-grid-2">
        <article class="rk-slab-card"><span class="rk-slab-icon">↑</span><h3>Bliżej powierzchni</h3><p>Może skracać drogę przewodzenia do pomieszczenia, ale wymaga potwierdzenia otuliny, warstw wykończeniowych, ochrony rur i dopuszczalnego mocowania.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-icon">↓</span><h3>Głębiej w przekroju</h3><p>Zwiększa masę aktywowaną cieplnie i może zmieniać dynamikę oraz wymagane parametry wody. Nie jest automatycznie bezpieczniejsze ani lepsze.</p></article>
      </div>
      <div class="rk-slab-note rk-slab-note-bad"><p><strong>Nie kopiuj przekroju z internetu.</strong> Rysunek bez informacji o konkretnej konstrukcji, zbrojeniu, obciążeniach i technologii płyty jest ilustracją, a nie detalem wykonawczym.</p></div>
    </section>

    <section class="rk-slab-section rk-slab-section-soft" id="rk-slab-layout">
      <span class="rk-slab-eyebrow">Najpierw mapa wyłączeń, potem ślimak lub meander</span>
      <h2 class="rk-slab-section-title">Aktywne pola, rozstaw rur i kolizje instalacyjne</h2>
      <p class="rk-slab-lead">Rozstaw 10, 15 albo 20 cm jest wynikiem lokalnej wymaganej mocy i warunków przekazywania ciepła. Nie istnieje jeden „złoty standard” odpowiedni dla całej płyty i każdego pomieszczenia.</p>
      <div class="rk-slab-grid-3">
        <article class="rk-slab-card"><span class="rk-slab-card-number">MOC</span><h3>Obciążenie cieplne</h3><p>Im większa wymagana moc z dostępnego pola, tym dokładniej trzeba sprawdzić rozstaw, temperaturę powierzchni i zasilania.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-card-number">POLE</span><h3>Powierzchnia czynna</h3><p>Stałe zabudowy, kominy, przepusty, odpływy, strefy konstrukcyjne i późniejsze mocowania zmniejszają dostępne pole.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-card-number">TRASA</span><h3>Geometria pętli</h3><p>Dobiegi, nawroty i przejścia wpływają na długość, rozkład temperatury i możliwość zachowania promienia gięcia.</p></article>
      </div>
      <p class="rk-slab-copy">Szczegółowe kryteria opisują poradniki: <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstaw rur 10 czy 15 cm</a>, <a href="https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/">gdzie nie prowadzić ogrzewania podłogowego</a> oraz <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">jak zaplanować rozmieszczenie pętli</a>. W płycie fundamentowej wszystkie te decyzje muszą dodatkowo przejść koordynację konstrukcyjną.</p>
    </section>

    <section class="rk-slab-section" id="rk-slab-hydraulics">
      <span class="rk-slab-eyebrow">Metry nie są jedyną granicą</span>
      <h2 class="rk-slab-section-title">Długość pętli, przepływ i opór hydrauliczny</h2>
      <p class="rk-slab-lead">Nie można wyznaczyć bezpiecznej długości pętli z samej średnicy zewnętrznej rury. Potrzebne są także jej rzeczywiste światło, wymagany przepływ, temperatura i rodzaj medium, opory miejscowe oraz dostępny napór dla drogi krytycznej.</p>
      <div class="rk-slab-flow" aria-label="Kolejność obliczeń hydraulicznych">
        <div class="rk-slab-flow-step"><strong>1. Moc pomieszczenia</strong><span>Wynika z OZC i dostępnej powierzchni grzewczej.</span></div>
        <div class="rk-slab-flow-step"><strong>2. Przepływ</strong><span>Wynika z mocy i przyjętej różnicy temperatur wody.</span></div>
        <div class="rk-slab-flow-step"><strong>3. Podział pętli</strong><span>Uwzględnia geometrię, dobiegi, średnicę i równoważenie.</span></div>
        <div class="rk-slab-flow-step"><strong>4. Droga krytyczna</strong><span>Decyduje o wymaganym sprężu pompy i nastawach.</span></div>
      </div>
      <div class="rk-slab-note"><p><strong>100 m nie jest magiczną liczbą z normy.</strong> Dla rury 16 × 2 mm może być użytecznym ograniczeniem projektowym w określonych warunkach, ale konkretna pętla może wymagać krótszego odcinka albo pozwalać na inny wynik po sprawdzeniu hydrauliki.</p></div>
      <p class="rk-slab-copy">Rozwinięcie tematu znajdziesz w poradnikach o <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">maksymalnej długości pętli</a>, skutkach <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/">zbyt długiej pętli</a>, <a href="https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/">średnicach rur</a> oraz <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">doborze pompy obiegowej</a>.</p>
    </section>

    <section class="rk-slab-section rk-slab-section-soft" id="rk-slab-pipes">
      <span class="rk-slab-eyebrow">Produkt ma być możliwy do zidentyfikowania po latach</span>
      <h2 class="rk-slab-section-title">Jaka rura może zostać zabetonowana w płycie?</h2>
      <p class="rk-slab-lead">Nie wybieramy wyłącznie pomiędzy hasłami PE-X, PE-RT i rurą wielowarstwową. Liczy się konkretny wyrób, jego wymiar, klasa zastosowania, konstrukcja bariery tlenowej, promień gięcia, zgodny system połączeń i instrukcja montażu.</p>
      <div class="rk-slab-grid-3">
        <article class="rk-slab-card"><span class="rk-slab-card-number">DOKUMENT</span><h3>Karta dokładnego produktu</h3><p>Powinna identyfikować typ, wymiar, klasyfikację, warstwy, zakres pracy i zasady montażu.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-card-number">SYSTEM</span><h3>Zgodne elementy</h3><p>Rozdzielacz, przyłącza, ewentualne tuleje, narzędzia i procedury muszą pasować do wybranej konstrukcji rury.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-card-number">ŚLAD</span><h3>Partia i nadruk</h3><p>Przed zakryciem zapisz oznaczenia oraz partie kręgów przypisane do pętli i zachowaj zdjęcia etykiet.</p></article>
      </div>
      <ul class="rk-slab-bullets"><li>projektuj obwód z jednego odcinka bez planowanych połączeń w polu płyty,</li><li>chroń rurę przed zarysowaniem, załamaniem i kontaktem z ostrymi elementami,</li><li>nie naprawiaj załamania metodą spoza dokumentacji systemu,</li><li>nie zamieniaj produktu tylko dlatego, że ma taki sam zapis 16 × 2 mm.</li></ul>
      <p class="rk-slab-copy">Porównanie materiałów zawiera przewodnik <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rury do ogrzewania podłogowego</a>, a wymagania dotyczące ograniczania przenikania tlenu wyjaśnia artykuł o <a href="https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/">barierze antydyfuzyjnej EVOH</a>.</p>
    </section>

    <section class="rk-slab-section rk-slab-section-dark" id="rk-slab-pour">
      <span class="rk-slab-eyebrow">Ostatnia kontrola przed nieodwracalnym etapem</span>
      <h2 class="rk-slab-section-title">Próba, ochrona rur i betonowanie płyty</h2>
      <p class="rk-slab-lead">Nie wpisujemy jednego ciśnienia i czasu właściwego dla każdej budowy. Procedura powinna wskazywać medium, ciśnienie, etapy, stabilizację, czas obserwacji, kryteria akceptacji i sposób monitorowania podczas betonowania.</p>
      <div class="rk-slab-grid-4">
        <article class="rk-slab-card"><span class="rk-slab-card-number">1</span><h3>Oględziny</h3><p>Sprawdzenie mocowań, promieni, osłon, opisów, uszkodzeń, kolizji i zgodności tras z rysunkiem.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-card-number">2</span><h3>Próba</h3><p>Wykonanie zgodnie z przyjętą procedurą i dokumentacją systemu, z uwzględnieniem temperatury otoczenia.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-card-number">3</span><h3>Protokół</h3><p>Zapis medium, ciśnień, czasu, temperatur, przyrządu, wyniku, daty i osób uczestniczących w odbiorze.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-card-number">4</span><h3>Nadzór</h3><p>Ustalenie sposobu kontroli pętli podczas betonowania oraz procedury zatrzymania prac przy podejrzeniu uszkodzenia.</p></article>
      </div>
      <div class="rk-slab-note"><p><strong>Woda i sprężone powietrze nie są zamienne bezwarunkowo.</strong> Dobór medium badania musi uwzględniać dokumentację, temperaturę, ryzyko zamarznięcia, bezpieczeństwo pracy i przyjętą procedurę.</p></div>
      <p class="rk-slab-copy">Pełny temat odbioru instalacji przed zakryciem omawia poradnik o <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próbie szczelności ogrzewania podłogowego</a>.</p>
    </section>

    <section class="rk-slab-section" id="rk-slab-documentation">
      <span class="rk-slab-eyebrow">Po związaniu betonu najważniejszy jest zapis</span>
      <h2 class="rk-slab-section-title">Dokumentacja powykonawcza i bezpieczne wiercenie</h2>
      <p class="rk-slab-lead">Zdjęcie bez skali nie wystarcza. Dokumentacja powinna pozwalać odtworzyć trasę, przypisać ją do rozdzielacza, zidentyfikować produkt i ocenić bezpieczne miejsca przyszłych mocowań.</p>
      <div class="rk-slab-grid-3">
        <article class="rk-slab-card"><span class="rk-slab-icon">R</span><h3>Rzut powykonawczy</h3><p>Trasy pętli, osie odniesienia, dobiegi, strefy wyłączone, przepusty i oznaczenia obwodów.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-icon">F</span><h3>Fotografie z odniesieniem</h3><p>Zdjęcia pionowe i sytuacyjne wykonane przed betonowaniem, z rozpoznawalnymi punktami i skalą.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-icon">P</span><h3>Protokoły i identyfikacja</h3><p>Próba, partie rur, etykiety, odstępstwa, naprawy, odbiory i osoby odpowiedzialne.</p></article>
      </div>
      <div class="rk-slab-note rk-slab-note-good"><p><strong>Dobra dokumentacja pracuje przez cały okres życia budynku.</strong> Jest potrzebna nie tylko przy awarii, lecz także podczas montażu ścian, schodów, wyspy kuchennej, instalacji sanitarnych i innych elementów kotwionych do podłogi.</p></div>
    </section>

    <section class="rk-slab-section rk-slab-section-soft" id="rk-slab-control">
      <span class="rk-slab-eyebrow">Duża masa zmienia sposób sterowania</span>
      <h2 class="rk-slab-section-title">Bezwładność, automatyka i współpraca ze źródłem ciepła</h2>
      <p class="rk-slab-lead">Ogrzewana płyta zwykle reaguje wolniej niż lekki system podłogowy. Nie oznacza to, że termostaty są zawsze bezużyteczne, lecz że gwałtowne dobowe obniżenia i agresywne sterowanie włącz–wyłącz mogą być nieskuteczne.</p>
      <div class="rk-slab-grid-3">
        <article class="rk-slab-card"><span class="rk-slab-card-number">POGODA</span><h3>Wyprzedzająca regulacja</h3><p>Krzywa grzewcza dostosowuje temperaturę wody do warunków zewnętrznych zamiast czekać na duży błąd temperatury w pokoju.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-card-number">STREFY</span><h3>Ostrożne zamykanie pętli</h3><p>Automatyka musi być skoordynowana z minimalnym przepływem źródła i działaniem pompy, a nie dodana bez analizy.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-card-number">ZYSKI</span><h3>Słońce i użytkownicy</h3><p>Duża masa ogranicza szybkie wahania, ale nie usuwa ryzyka przegrzewania pomieszczeń z dużymi przeszkleniami.</p></article>
      </div>
      <p class="rk-slab-copy">Szerzej opisują to poradniki o <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładności cieplnej podłogówki</a>, <a href="https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/">sterowaniu pogodowym</a> i <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projekcie ogrzewania podłogowego z pompą ciepła</a>.</p>
    </section>

    <section class="rk-slab-section" id="rk-slab-coverings">
      <span class="rk-slab-eyebrow">Wykończenie jest częścią modelu cieplnego</span>
      <h2 class="rk-slab-section-title">Płytki, panele i drewno na ogrzewanej płycie</h2>
      <p class="rk-slab-lead">Ta sama instalacja oddaje inną moc pod gresem i inną pod podłogą drewnianą z podkładem. Okładzinę trzeba określić przed obliczeniem temperatur pracy, a nie dopiero po zabetonowaniu rur.</p>
      <div class="rk-slab-table-wrap">
        <table>
          <thead><tr><th>Wykończenie</th><th>Co sprawdzić?</th><th>Wpływ na projekt</th><th>Ryzyko uproszczenia</th></tr></thead>
          <tbody>
            <tr><td data-label="Wykończenie"><strong>Płytki lub gres</strong></td><td data-label="Sprawdź">Klej, warstwy, dylatacje i dopuszczenie do układu.</td><td data-label="Wpływ">Zwykle stosunkowo mały opór cieplny.</td><td data-label="Ryzyko">Nie rozwiązuje błędnej mocy lub hydrauliki.</td></tr>
            <tr><td data-label="Wykończenie"><strong>Panele</strong></td><td data-label="Sprawdź">Opór panelu i podkładu, limit temperatury oraz instrukcję montażu.</td><td data-label="Wpływ">Może podnieść wymaganą temperaturę wody.</td><td data-label="Ryzyko">Hasło „do podłogówki” bez liczbowych danych produktu.</td></tr>
            <tr><td data-label="Wykończenie"><strong>Drewno</strong></td><td data-label="Sprawdź">Gatunek, grubość, konstrukcję, wilgotność i sposób mocowania.</td><td data-label="Wpływ">Wymaga oceny mocy i warunków materiału.</td><td data-label="Ryzyko">Zmiana wykończenia po wykonaniu obliczeń bez ponownego sprawdzenia.</td></tr>
          </tbody>
        </table>
      </div>
      <p class="rk-slab-copy">Przed wyborem materiału zobacz, jak <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">okładzina wpływa na wydajność ogrzewania</a> oraz jak dobierać <a href="https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/">drewno do podłogówki</a>.</p>
    </section>

    <section class="rk-slab-section rk-slab-section-soft" id="rk-slab-failure">
      <span class="rk-slab-eyebrow">Ryzyko można ograniczyć, ale nie wyzerować</span>
      <h2 class="rk-slab-section-title">Co zrobić przy podejrzeniu uszkodzenia rury w płycie?</h2>
      <p class="rk-slab-lead">Spadek ciśnienia nie oznacza automatycznie konieczności rozbierania całej płyty, ale lokalizacja i naprawa w elemencie nośnym nie mogą być prowadzone jak zwykłe kucie jastrychu.</p>
      <div class="rk-slab-flow" aria-label="Postępowanie po wykryciu nieszczelności">
        <div class="rk-slab-flow-step"><strong>1. Zatrzymaj prace</strong><span>Nie zalewaj ani nie kontynuuj użytkowania do czasu ustalenia przyczyny.</span></div>
        <div class="rk-slab-flow-step"><strong>2. Potwierdź obwód</strong><span>Oddziel wpływ armatury, rozdzielacza, temperatury i przyrządu pomiarowego.</span></div>
        <div class="rk-slab-flow-step"><strong>3. Zlokalizuj</strong><span>Dobierz metodę diagnostyczną do stanu budynku i rodzaju wycieku.</span></div>
        <div class="rk-slab-flow-step"><strong>4. Uzgodnij naprawę</strong><span>Zakres odkrycia i przywrócenia konstrukcji zatwierdź przed ingerencją.</span></div>
      </div>
      <div class="rk-slab-note rk-slab-note-bad"><p><strong>Kamera termowizyjna nie daje bezbłędnej lokalizacji w każdych warunkach.</strong> Skuteczność zależy od temperatury, stanu pracy instalacji, głębokości rury, wilgoci, czasu i konstrukcji. Metodę trzeba dobrać do konkretnej sytuacji.</p></div>
    </section>

    <section class="rk-slab-section" id="rk-slab-errors">
      <span class="rk-slab-eyebrow">Błędy, których beton nie naprawi</span>
      <h2 class="rk-slab-section-title">Najczęstsze błędy projektowe i wykonawcze</h2>
      <div class="rk-slab-grid-3">
        <article class="rk-slab-card"><span class="rk-slab-card-number">BŁĄD 1</span><h3>Jedna wartość W/m² dla całego domu</h3><p>Pomija różne straty pomieszczeń, przeszklenia, wentylację i dostępną powierzchnię czynną.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-card-number">BŁĄD 2</span><h3>Rozstaw 15 cm wszędzie</h3><p>Może być odpowiedni w części stref, ale nie jest wynikiem bez obliczeń mocy i temperatur.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-card-number">BŁĄD 3</span><h3>100 m zamiast hydrauliki</h3><p>Limit długości nie zastępuje przepływu, średnicy wewnętrznej, medium i strat ciśnienia.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-card-number">BŁĄD 4</span><h3>Brak wspólnego rzutu branż</h3><p>Rury kolidują z odpływami, przepustami, kotwami, ścianami albo strefami zbrojenia.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-card-number">BŁĄD 5</span><h3>Nieuzgodnione mocowanie</h3><p>Sposób „wygodny dla instalatora” nie musi być zgodny z projektem konstrukcyjnym i technologią prac.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-card-number">BŁĄD 6</span><h3>Zakup rury bez dokumentacji</h3><p>Nazwa materiału i wymiar na etykiecie nie potwierdzają całego zakresu zastosowania.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-card-number">BŁĄD 7</span><h3>Próba bez procedury</h3><p>Sam odczyt manometru nie stanowi pełnego odbioru, jeżeli nie wiadomo, jak i w jakich warunkach wykonano badanie.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-card-number">BŁĄD 8</span><h3>Brak nadzoru podczas betonowania</h3><p>Odebrana wcześniej instalacja nadal może zostać uszkodzona przez kolejne prace.</p></article>
        <article class="rk-slab-card"><span class="rk-slab-card-number">BŁĄD 9</span><h3>Brak planu powykonawczego</h3><p>Po zakryciu nie wiadomo, gdzie można bezpiecznie wiercić i jak odtworzyć trasę obwodu.</p></article>
      </div>
    </section>

    <section class="rk-slab-section rk-slab-section-soft" id="rk-slab-checklist">
      <span class="rk-slab-eyebrow">Do podpisania przed przyjazdem gruszki</span>
      <h2 class="rk-slab-section-title">Checklista odbioru ogrzewania w płycie fundamentowej</h2>
      <p class="rk-slab-lead">Poniższa lista nie zastępuje dokumentacji budowy. Pomaga sprawdzić, czy kluczowe decyzje mają właściciela, dokument oraz potwierdzenie wykonania.</p>
      <div class="rk-slab-grid-3">
        <article class="rk-slab-card"><span class="rk-slab-card-number">PROJEKT</span><h3>Przed montażem</h3><ul class="rk-slab-bullets"><li>OZC każdego pomieszczenia,</li><li>aktywne pola i wyłączenia,</li><li>rozstawy oraz podział pętli,</li><li>przepływy i straty ciśnienia,</li><li>uzgodnione położenie rur.</li></ul></article>
        <article class="rk-slab-card"><span class="rk-slab-card-number">WYKONANIE</span><h3>Po ułożeniu rur</h3><ul class="rk-slab-bullets"><li>zgodność z rzutem,</li><li>promienie i mocowania,</li><li>osłony oraz przejścia,</li><li>opisy pętli i partie rur,</li><li>brak nieuzgodnionych połączeń.</li></ul></article>
        <article class="rk-slab-card"><span class="rk-slab-card-number">ODBIÓR</span><h3>Przed betonowaniem</h3><ul class="rk-slab-bullets"><li>próba i protokół,</li><li>zdjęcia oraz rzut powykonawczy,</li><li>plan nadzoru podczas prac,</li><li>ustalona reakcja na uszkodzenie,</li><li>akceptacja osób odpowiedzialnych.</li></ul></article>
      </div>
      <div class="rk-slab-note rk-slab-note-good"><p><strong>Praktyczna zasada:</strong> jeżeli odpowiedź na krytyczne pytanie brzmi „ustalimy podczas betonowania”, decyzja jest podejmowana o jeden etap za późno.</p></div>
    </section>

    <section class="rk-slab-section rk-slab-final" id="rk-slab-final">
      <span class="rk-slab-eyebrow">Końcowy krok przed realizacją</span>
      <h2 class="rk-slab-section-title">Projekt instalacji musi być gotowy przed płytą, nie po niej</h2>
      <p class="rk-slab-lead">Dobrze zaprojektowana instalacja określa moc pomieszczeń, aktywne pola, rozstawy, pętle, przepływy, opory i położenie rozdzielacza. Konstruktor może wtedy skoordynować rzeczywiste trasy z płytą, zamiast akceptować instalację rozłożoną intuicyjnie na gotowym zbrojeniu.</p>
      <div class="rk-slab-cta">
        <div class="rk-slab-cta-title">Zanim beton zamknie instalację, zamknij wszystkie decyzje na rysunku</div>
        <p>Indywidualny projekt podłogówki daje wykonawcy jednoznaczny podział pętli, rozstawy, długości, przepływy i nastawy. W przypadku płyty fundamentowej dokumentacja instalacyjna musi zostać przekazana konstruktorowi oraz skoordynowana z technologią wykonania.</p>
        <a class="rk-slab-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
        <small class="rk-slab-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika. Zakres konstrukcji płyty wymaga odrębnej dokumentacji branżowej.</small>
      </div>
    </section>

    <section class="rk-slab-section" id="rk-slab-sources">
      <span class="rk-slab-eyebrow">Podstawa techniczna</span>
      <h2 class="rk-slab-section-title">Źródła oficjalne i zakres odpowiedzialności</h2>
      <p class="rk-slab-lead">Seria ISO 11855 rozdziela określanie wydajności, projektowanie, analizę dynamiczną, montaż i sterowanie. Obliczenia wymiany ciepła z gruntem wymagają odrębnej metody, a wymagania budowlane należy zawsze sprawdzać w aktualnym oficjalnym tekście przepisów.</p>
      <div class="rk-slab-source-grid">
        <article class="rk-slab-source-card"><a href="https://www.iso.org/standard/74683.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-2:2021 — wydajność systemów płaszczyznowych</a><p>Oficjalna karta metod określania strumienia ciepła oraz temperatur powierzchni dla wodnych systemów wbudowanych.</p></article>
        <article class="rk-slab-source-card"><a href="https://www.iso.org/standard/74684.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-3:2021 — projektowanie i wymiarowanie</a><p>Oficjalna karta metody projektowania i wymiarowania systemów ogrzewania oraz chłodzenia płaszczyznowego.</p></article>
        <article class="rk-slab-source-card"><a href="https://www.iso.org/standard/74686.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-4:2021 — dynamiczna praca systemów TABS</a><p>Oficjalna karta obliczeń dynamicznej mocy systemów aktywujących cieplnie konstrukcję budynku.</p></article>
        <article class="rk-slab-source-card"><a href="https://www.iso.org/standard/74685.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-5:2021 — wymagania instalacyjne</a><p>Oficjalna karta wymagań dotyczących instalowania wodnych systemów ogrzewania i chłodzenia wbudowanych w przegrody.</p></article>
        <article class="rk-slab-source-card"><a href="https://www.iso.org/standard/64999.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-6:2018 — sterowanie</a><p>Oficjalna karta części dotyczącej kontroli i automatyki systemów ogrzewania oraz chłodzenia płaszczyznowego.</p></article>
        <article class="rk-slab-source-card"><a href="https://www.iso.org/standard/65716.html" target="_blank" rel="nofollow noopener noreferrer">ISO 13370:2017 — wymiana ciepła z gruntem</a><p>Oficjalna karta metod obliczania współczynników i strumieni ciepła dla przegród stykających się z gruntem.</p></article>
        <article class="rk-slab-source-card"><a href="https://eli.gov.pl/eli/DU/2022/1225/ogl" target="_blank" rel="nofollow noopener noreferrer">Warunki Techniczne — oficjalny tekst w ELI</a><p>Oficjalna karta tekstu jednolitego wraz z informacją o późniejszych aktach zmieniających.</p></article>
        <article class="rk-slab-source-card"><a href="https://www.iso.org/cms/live/live/en/sites/isoorg/contents/data/committee/05/47/54740/x/catalogue/" target="_blank" rel="nofollow noopener noreferrer">ISO/TC 205 — katalog aktualnych dokumentów</a><p>Oficjalny katalog serii ISO 11855 i dokumentów związanych z projektowaniem środowiska wewnętrznego budynków.</p></article>
      </div>
      <div class="rk-slab-responsibility"><p><strong>Zakres poradnika:</strong> treść pomaga inwestorowi rozpoznać dane, uzgodnienia i odbiory potrzebne przed betonowaniem. Nie jest projektem konstrukcji, opinią geotechniczną, projektem instalacji dla konkretnego budynku, instrukcją systemu, specyfikacją betonu ani zgodą na rozpoczęcie robót.</p></div>
    </section>

    <section class="rk-slab-section rk-slab-section-soft" id="rk-slab-faq">
      <span class="rk-slab-eyebrow">Pytania inwestorów, projektantów i wykonawców</span>
      <h2 class="rk-slab-section-title">FAQ — ogrzewanie podłogowe w płycie fundamentowej</h2>
      <div class="rk-slab-faq">
        <details><summary>Czym ogrzewanie w płycie fundamentowej różni się od podłogówki w jastrychu?</summary><div class="rk-slab-faq-answer"><p>W pierwszym rozwiązaniu rury współpracują z masą elementu konstrukcyjnego albo z układem bezpośrednio z nim związanym. W tradycyjnym systemie znajdują się w oddzielnej warstwie podłogowej nad konstrukcją. Zmienia to koordynację, dynamikę cieplną, naprawę i zakres odpowiedzialności.</p></div></details>
        <details><summary>Czy wolno umieścić rury grzewcze w nośnej płycie fundamentowej?</summary><div class="rk-slab-faq-answer"><p>Takie rozwiązanie jest możliwe, jeżeli zostało przewidziane i skoordynowane w dokumentacji. Projektant instalacji określa parametry cieplne i hydrauliczne, a konstruktor musi zaakceptować położenie, mocowanie, przejścia oraz wpływ instalacji na detal płyty.</p></div></details>
        <details><summary>Na jakiej głębokości powinny znajdować się rury?</summary><div class="rk-slab-faq-answer"><p>Nie ma jednej prawidłowej głębokości dla każdej płyty. Położenie wpływa na drogę przewodzenia ciepła i bezwładność, a równocześnie musi spełniać wymagania konstrukcyjne, otuliny i technologii wykonania. Powinno być pokazane lub zatwierdzone w dokumentacji konkretnego budynku.</p></div></details>
        <details><summary>Czy rury można mocować bezpośrednio do zbrojenia?</summary><div class="rk-slab-faq-answer"><p>Sposób mocowania musi być zaakceptowany dla konkretnej konstrukcji i systemu rury. Nie należy przyjmować, że rozwiązanie wygodne wykonawczo jest automatycznie dopuszczone przez projektanta konstrukcji.</p></div></details>
        <details><summary>Jaki rozstaw rur zastosować: 10, 15 czy 20 cm?</summary><div class="rk-slab-faq-answer"><p>Rozstaw wynika z wymaganej mocy pomieszczenia, aktywnej powierzchni, położenia rur, okładziny i temperatury wody. Żadna z tych wartości nie jest uniwersalnym standardem dla całego budynku.</p></div></details>
        <details><summary>Czy pętla rury 16 × 2 mm może mieć dokładnie 100 m?</summary><div class="rk-slab-faq-answer"><p>Około 100 m bywa przyjmowane jako ograniczenie robocze, ale nie zastępuje obliczenia. Dopuszczalna długość zależy od rzeczywistego światła rury, przepływu, medium, oporów miejscowych, różnicy temperatur i dostępnego naporu pompy.</p></div></details>
        <details><summary>Czy gęstszy rozstaw zawsze zwiększa opory hydrauliczne?</summary><div class="rk-slab-faq-answer"><p>Sam rozstaw nie jest oporem pętli. Gęstsze ułożenie zwiększa ilość rury potrzebnej na metr kwadratowy, lecz projektant może podzielić powierzchnię na większą liczbę krótszych obwodów. O wyniku decyduje kompletna geometria, przepływy i średnice.</p></div></details>
        <details><summary>Jaka rura jest najlepsza do płyty fundamentowej?</summary><div class="rk-slab-faq-answer"><p>Nie da się wskazać najlepszego materiału wyłącznie po nazwie PE-X, PE-RT lub rura wielowarstwowa. Trzeba zweryfikować konkretny wyrób: wymiar, klasę zastosowania, barierę tlenową, promień gięcia, dokumentację i zgodność z systemem połączeń.</p></div></details>
        <details><summary>Czy wszystkie pętle trzeba wykonać bez połączeń?</summary><div class="rk-slab-faq-answer"><p>Pętle należy projektować z jednego odcinka bez planowanych połączeń w polu płyty. Jeżeli dojdzie do uszkodzenia, sposób ewentualnej naprawy musi wynikać z dokumentacji systemu i zostać uzgodniony przed zakryciem.</p></div></details>
        <details><summary>Jakie ciśnienie zastosować podczas próby?</summary><div class="rk-slab-faq-answer"><p>Nie należy przyjmować jednej wartości dla każdej instalacji. Ciśnienie, medium, czas, stabilizacja i kryteria odbioru muszą wynikać z projektu, dokumentacji systemu, warunków budowy i przyjętej procedury.</p></div></details>
        <details><summary>Czy próbę wykonywać wodą czy sprężonym powietrzem?</summary><div class="rk-slab-faq-answer"><p>Wybór zależy od procedury, dokumentacji, temperatury i bezpieczeństwa. Próba gazem wymaga szczególnej ostrożności ze względu na energię zgromadzoną w sprężonym medium. Woda może być niewłaściwa, jeżeli instalacji grozi zamarznięcie przed uruchomieniem.</p></div></details>
        <details><summary>Czy rury powinny pozostawać pod ciśnieniem podczas betonowania?</summary><div class="rk-slab-faq-answer"><p>Sposób monitorowania podczas betonowania należy ustalić w procedurze wykonawczej i dokumentacji systemu. Istotne jest nie tylko ciśnienie, lecz także dostępny manometr, odpowiedzialna osoba i zdefiniowana reakcja na zmianę wskazania.</p></div></details>
        <details><summary>Ile czasu nagrzewa się ogrzewana płyta?</summary><div class="rk-slab-faq-answer"><p>Nie ma jednego czasu 24 lub 48 godzin dla każdej konstrukcji. Zależy on od masy aktywowanej cieplnie, położenia rur, mocy źródła, temperatury początkowej, izolacji i warstw wykończeniowych. Duża płyta reaguje wolniej niż lekki system, ale dokładny czas wymaga modelu lub pomiaru.</p></div></details>
        <details><summary>Czy przy tak dużej bezwładności termostaty są niepotrzebne?</summary><div class="rk-slab-faq-answer"><p>Nie można tego stwierdzić kategorycznie. Bezwładność ogranicza skuteczność szybkich zmian i głębokich obniżeń dobowych, lecz czujniki, ograniczenia temperatur, regulacja strefowa i sterowanie pogodowe nadal mogą pełnić określone funkcje.</p></div></details>
        <details><summary>Czy ogrzewana płyta dobrze współpracuje z pompą ciepła?</summary><div class="rk-slab-faq-answer"><p>Może tworzyć korzystny układ niskotemperaturowy, jeżeli powierzchnia pokrywa obciążenie budynku przy rozsądnej temperaturze wody, a przepływy i sterowanie są zgodne z wymaganiami pompy ciepła. Sama masa płyty nie gwarantuje wysokiego SCOP.</p></div></details>
        <details><summary>Czy na ogrzewanej płycie można ułożyć panele albo drewno?</summary><div class="rk-slab-faq-answer"><p>Tak, jeżeli konkretna okładzina i podkład są dopuszczone do ogrzewania podłogowego, a ich opór i ograniczenia temperaturowe zostały uwzględnione w obliczeniu mocy. Zmiana okładziny po wykonaniu projektu wymaga ponownego sprawdzenia.</p></div></details>
        <details><summary>Jak bezpiecznie wiercić w podłodze po zakończeniu budowy?</summary><div class="rk-slab-faq-answer"><p>Podstawą jest rzut powykonawczy uzupełniony zdjęciami z odniesieniem do trwałych punktów budynku. Przed ingerencją trzeba uwzględnić nie tylko rury grzewcze, ale także zbrojenie, inne instalacje i wymagania konstrukcyjne.</p></div></details>
        <details><summary>Czy uszkodzoną rurę w płycie można naprawić?</summary><div class="rk-slab-faq-answer"><p>Może być możliwa naprawa punktowa, ale jej zakres zależy od lokalizacji, systemu rury i konstrukcji. Przed kuciem należy potwierdzić miejsce uszkodzenia, uzgodnić dopuszczalną ingerencję z konstruktorem i zastosować rozwiązanie przewidziane przez dokumentację systemu.</p></div></details>
      </div>
    </section>

    <section class="rk-slab-author" id="rk-slab-author">
      <div class="rk-slab-author-card">
        <div class="rk-slab-author-head">
          <div>
            <span class="rk-slab-eyebrow">E-E-A-T i odpowiedzialność za treść</span>
            <h2 class="rk-slab-author-title">Autor i weryfikacja merytoryczna</h2>
            <p>Treść przygotowana z perspektywy obciążeń cieplnych, hydrauliki instalacji, parametrów źródła oraz ryzyka decyzji zamykanych w elemencie konstrukcyjnym.</p>
          </div>
          <div class="rk-slab-author-update">Aktualizacja: 16.09.2026</div>
        </div>
        <div class="rk-slab-author-layout">
          <aside class="rk-slab-author-side">
            <div class="rk-slab-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji sanitarnych i autor poradnika" width="400" height="400" loading="lazy" decoding="async"></div>
            <div class="rk-slab-author-name">Robert Kucharski</div>
            <p class="rk-slab-author-role">Projektant instalacji sanitarnych<br>specjalista HVAC i ogrzewania podłogowego</p>
            <span class="rk-slab-author-social-label">Profile branżowe</span>
            <div class="rk-slab-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-slab-author-main">
            <blockquote class="rk-slab-author-quote">Moim zdaniem ogrzewanie w płycie fundamentowej nie jest trudne dlatego, że wymaga innej rury. Jest trudne dlatego, że wszystkie decyzje cieplne, hydrauliczne i konstrukcyjne trzeba zamknąć przed pierwszym betonowaniem.</blockquote>
            <p>Robert Kucharski opracowuje projekty ogrzewania podłogowego, obliczenia cieplne i hydrauliczne oraz materiały edukacyjne dla inwestorów i wykonawców. W poradnikach rozdziela wartości orientacyjne od parametrów, które muszą zostać policzone dla konkretnego budynku.</p>
            <p>Przy aktualizacji materiału usunięto uniwersalne limity rozstawu, długości, temperatury, ciśnienia i zwrotu z inwestycji. Zastąpiono je procedurą kontroli dokumentacji, koordynacji branżowej i odbioru przed betonowaniem.</p>
            <p><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-slab-author-facts">
              <div class="rk-slab-author-fact"><strong>Praktyka projektowa</strong>OZC, podział pętli, przepływy, opory i współpraca podłogówki ze źródłem ciepła</div>
              <div class="rk-slab-author-fact"><strong>Metoda</strong>jawne założenia, dokumentacja wyrobu, koordynacja i kontrola przed zakryciem</div>
              <div class="rk-slab-author-fact"><strong>Zakres aktualizacji</strong>moc, hydraulika, instalacja w elemencie nośnym, odbiór i ograniczenia poradnika</div>
            </div>
            <div class="rk-slab-author-portals"><strong>Portale autora</strong><a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a><a href="https://remont.biz.pl/" target="_blank" rel="nofollow noopener noreferrer">Remont.biz.pl</a><a href="https://sobir.pl/" target="_blank" rel="nofollow noopener noreferrer">Sobir.pl</a></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", "płyty fundamentowe z ogrzewaniem", "projektowe obciążenie cieplne", "hydraulika instalacji grzewczych", "pompy ciepła", "równoważenie hydrauliczne"],
      "worksFor": [
        { "@id": "https://projekt-ogrzewania.pl/#organization" },
        { "@id": "https://remont.biz.pl/#organization" },
        { "@id": "https://sobir.pl/#organization" }
      ],
      "sameAs": ["https://www.linkedin.com/in/robert-kucharski-b8b906199/", "https://www.facebook.com/projektogrzewaniapl", "https://x.com/Projekt_HVAC"]
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/#primaryimage",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Ogrzewanie-podlogowe-w-plycie-fundamentowej.webp",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Ogrzewanie-podlogowe-w-plycie-fundamentowej.webp",
      "width": 1200,
      "height": 1200,
      "caption": "Ogrzewanie podłogowe w płycie fundamentowej"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/#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 w płycie fundamentowej", "item": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/" }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/#webpage",
      "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/",
      "name": "Ogrzewanie podłogowe w płycie fundamentowej – projekt i montaż",
      "description": "Techniczny poradnik projektowania ogrzewania w płycie fundamentowej: OZC, położenie rur, pętle, izolacja, próba i betonowanie.",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
      "breadcrumb": { "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/#breadcrumb" },
      "primaryImageOfPage": { "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/#primaryimage" },
      "datePublished": "2026-06-28T16:13:31+00:00",
      "dateModified": "2026-09-16T12:00:00+02:00",
      "inLanguage": "pl-PL",
      "mainEntity": { "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/#article" }
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/#article",
      "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/#webpage" },
      "headline": "Ogrzewanie podłogowe w płycie fundamentowej – projekt i montaż",
      "description": "Kompletny poradnik koordynacji cieplnej, hydraulicznej, konstrukcyjnej i wykonawczej ogrzewania podłogowego zatopionego w płycie fundamentowej.",
      "image": { "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/#primaryimage" },
      "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "datePublished": "2026-06-28T16:13:31+00:00",
      "dateModified": "2026-09-16T12:00:00+02:00",
      "inLanguage": "pl-PL",
      "about": ["ogrzewanie podłogowe w płycie fundamentowej", "płyta grzewcza", "OZC", "hydraulika pętli", "izolacja od gruntu", "próba ciśnieniowa", "betonowanie płyty"],
      "keywords": "ogrzewanie podłogowe w płycie fundamentowej, płyta fundamentowa z ogrzewaniem, rury w płycie, rozstaw rur, próba ciśnieniowa, projekt płyty grzewczej",
      "isAccessibleForFree": true,
      "hasPart": [
        { "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/#analyzer" },
        { "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/#coordination-list" },
        { "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/#howto" },
        { "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/#faq-schema" }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/#analyzer",
      "name": "Analizator gotowości ogrzewania w płycie do betonowania",
      "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/#rk-slab-analyzer-section",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Dowolny system z nowoczesną przeglądarką internetową",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "description": "Narzędzie edukacyjne sprawdzające kompletność danych cieplnych, konstrukcyjnych, hydraulicznych i odbiorowych przed betonowaniem płyty fundamentowej."
    },
    {
      "@type": "ItemList",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/#coordination-list",
      "name": "Sześć obszarów koordynacji ogrzewanej płyty fundamentowej",
      "numberOfItems": 6,
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Grunt i posadowienie" },
        { "@type": "ListItem", "position": 2, "name": "Izolacja i krawędź płyty" },
        { "@type": "ListItem", "position": 3, "name": "Konstrukcja i zbrojenie" },
        { "@type": "ListItem", "position": 4, "name": "Rury i aktywne pola" },
        { "@type": "ListItem", "position": 5, "name": "Pętle i rozdzielacz" },
        { "@type": "ListItem", "position": 6, "name": "Próba i betonowanie" }
      ]
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/#howto",
      "name": "Jak przygotować ogrzewanie w płycie fundamentowej do betonowania",
      "description": "Procedura kontroli projektu, wykonania, próby i dokumentacji przed zabetonowaniem pętli grzewczych.",
      "totalTime": "P30D",
      "step": [
        { "@type": "HowToStep", "position": 1, "name": "Oblicz obciążenie cieplne", "text": "Określ projektowe straty ciepła osobno dla każdego pomieszczenia." },
        { "@type": "HowToStep", "position": 2, "name": "Wyznacz aktywne pola", "text": "Ustal powierzchnie dostępne po uwzględnieniu kolizji i stref wyłączonych." },
        { "@type": "HowToStep", "position": 3, "name": "Dobierz parametry cieplne", "text": "Sprawdź rozstaw, moc powierzchni i temperatury dla konstrukcji oraz okładziny." },
        { "@type": "HowToStep", "position": 4, "name": "Policz hydraulikę", "text": "Wyznacz pętle, długości, przepływy, straty ciśnienia i drogę krytyczną." },
        { "@type": "HowToStep", "position": 5, "name": "Skoordynuj konstrukcję", "text": "Uzgodnij położenie rur, mocowanie, zbrojenie, przepusty i strefy kolizji." },
        { "@type": "HowToStep", "position": 6, "name": "Zweryfikuj system rury", "text": "Sprawdź kartę, wymiar, barierę, promień gięcia i zgodne elementy systemu." },
        { "@type": "HowToStep", "position": 7, "name": "Odbierz wykonanie", "text": "Porównaj trasy, mocowania, oznaczenia i ochronę rur z dokumentacją." },
        { "@type": "HowToStep", "position": 8, "name": "Wykonaj próbę", "text": "Przeprowadź badanie według ustalonej procedury i sporządź protokół." },
        { "@type": "HowToStep", "position": 9, "name": "Udokumentuj pętle", "text": "Wykonaj rzut powykonawczy, zdjęcia i zapisz partie materiału." },
        { "@type": "HowToStep", "position": 10, "name": "Kontroluj betonowanie", "text": "Monitoruj instalację i stosuj uzgodnioną procedurę reakcji na uszkodzenie." }
      ]
    },
    {
      "@type": "Service",
      "@id": "https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/#service",
      "name": "Indywidualny projekt instalacji ogrzewania podłogowego",
      "url": "https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/",
      "provider": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "areaServed": { "@type": "Country", "name": "Polska" },
      "serviceType": "Projekt ogrzewania podłogowego",
      "description": "Projekt instalacji obejmujący obciążenia cieplne, rozstawy, podział pętli, długości, przepływy, opory i nastawy."
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/#faq-schema",
      "mainEntity": [
        { "@type": "Question", "name": "Czym ogrzewanie w płycie fundamentowej różni się od podłogówki w jastrychu?", "acceptedAnswer": { "@type": "Answer", "text": "W pierwszym rozwiązaniu rury współpracują z masą elementu konstrukcyjnego albo z układem bezpośrednio z nim związanym. W tradycyjnym systemie znajdują się w oddzielnej warstwie podłogowej nad konstrukcją. Zmienia to koordynację, dynamikę cieplną, naprawę i zakres odpowiedzialności." } },
        { "@type": "Question", "name": "Czy wolno umieścić rury grzewcze w nośnej płycie fundamentowej?", "acceptedAnswer": { "@type": "Answer", "text": "Takie rozwiązanie jest możliwe, jeżeli zostało przewidziane i skoordynowane w dokumentacji. Konstruktor musi zaakceptować położenie, mocowanie i przejścia, a projektant instalacji określa parametry cieplne oraz hydrauliczne." } },
        { "@type": "Question", "name": "Na jakiej głębokości powinny znajdować się rury?", "acceptedAnswer": { "@type": "Answer", "text": "Nie ma jednej prawidłowej głębokości dla każdej płyty. Położenie wpływa na przewodzenie i bezwładność, a równocześnie musi spełniać wymagania konstrukcyjne, otuliny i technologii wykonania." } },
        { "@type": "Question", "name": "Czy rury można mocować bezpośrednio do zbrojenia?", "acceptedAnswer": { "@type": "Answer", "text": "Sposób mocowania musi być zaakceptowany dla konkretnej konstrukcji i systemu rury. Rozwiązanie wygodne wykonawczo nie jest automatycznie dopuszczone przez projektanta konstrukcji." } },
        { "@type": "Question", "name": "Jaki rozstaw rur zastosować: 10, 15 czy 20 cm?", "acceptedAnswer": { "@type": "Answer", "text": "Rozstaw wynika z wymaganej mocy pomieszczenia, aktywnej powierzchni, położenia rur, okładziny i temperatury wody. Żadna wartość nie jest uniwersalnym standardem dla całego budynku." } },
        { "@type": "Question", "name": "Czy pętla rury 16 × 2 mm może mieć dokładnie 100 m?", "acceptedAnswer": { "@type": "Answer", "text": "Około 100 m bywa ograniczeniem roboczym, ale nie zastępuje obliczenia. Dopuszczalna długość zależy od światła rury, przepływu, medium, oporów i dostępnego naporu pompy." } },
        { "@type": "Question", "name": "Czy gęstszy rozstaw zawsze zwiększa opory hydrauliczne?", "acceptedAnswer": { "@type": "Answer", "text": "Sam rozstaw nie jest oporem pętli. Gęstsze ułożenie zwiększa ilość rury na metr kwadratowy, ale powierzchnię można podzielić na większą liczbę krótszych obwodów. Decyduje kompletna geometria, przepływy i średnice." } },
        { "@type": "Question", "name": "Jaka rura jest najlepsza do płyty fundamentowej?", "acceptedAnswer": { "@type": "Answer", "text": "Nie da się wskazać najlepszego materiału wyłącznie po nazwie PE-X, PE-RT lub rura wielowarstwowa. Trzeba sprawdzić konkretny wyrób, wymiar, klasę, barierę tlenową, promień gięcia i dokumentację." } },
        { "@type": "Question", "name": "Czy wszystkie pętle trzeba wykonać bez połączeń?", "acceptedAnswer": { "@type": "Answer", "text": "Pętle należy projektować z jednego odcinka bez planowanych połączeń w polu płyty. Sposób ewentualnej naprawy musi wynikać z dokumentacji systemu i zostać uzgodniony przed zakryciem." } },
        { "@type": "Question", "name": "Jakie ciśnienie zastosować podczas próby?", "acceptedAnswer": { "@type": "Answer", "text": "Nie należy przyjmować jednej wartości dla każdej instalacji. Ciśnienie, medium, czas i kryteria odbioru muszą wynikać z projektu, dokumentacji systemu, warunków budowy i procedury." } },
        { "@type": "Question", "name": "Czy próbę wykonywać wodą czy sprężonym powietrzem?", "acceptedAnswer": { "@type": "Answer", "text": "Wybór zależy od procedury, dokumentacji, temperatury i bezpieczeństwa. Próba gazem wymaga szczególnej ostrożności, a woda może być niewłaściwa przy ryzyku zamarznięcia." } },
        { "@type": "Question", "name": "Czy rury powinny pozostawać pod ciśnieniem podczas betonowania?", "acceptedAnswer": { "@type": "Answer", "text": "Sposób monitorowania należy ustalić w procedurze wykonawczej i dokumentacji systemu. Potrzebne są przyrząd, osoba odpowiedzialna i zdefiniowana reakcja na zmianę wskazania." } },
        { "@type": "Question", "name": "Ile czasu nagrzewa się ogrzewana płyta?", "acceptedAnswer": { "@type": "Answer", "text": "Nie ma jednego czasu dla każdej konstrukcji. Zależy on od masy, położenia rur, mocy źródła, temperatury początkowej, izolacji i wykończenia." } },
        { "@type": "Question", "name": "Czy przy dużej bezwładności termostaty są niepotrzebne?", "acceptedAnswer": { "@type": "Answer", "text": "Nie można tego stwierdzić kategorycznie. Bezwładność ogranicza skuteczność szybkich zmian, ale czujniki, ograniczenia, regulacja strefowa i sterowanie pogodowe nadal mogą pełnić określone funkcje." } },
        { "@type": "Question", "name": "Czy ogrzewana płyta dobrze współpracuje z pompą ciepła?", "acceptedAnswer": { "@type": "Answer", "text": "Może tworzyć korzystny układ niskotemperaturowy, jeżeli powierzchnia pokrywa obciążenie przy rozsądnej temperaturze wody, a przepływy i sterowanie są zgodne z wymaganiami pompy." } },
        { "@type": "Question", "name": "Czy na ogrzewanej płycie można ułożyć panele albo drewno?", "acceptedAnswer": { "@type": "Answer", "text": "Tak, jeżeli okładzina i podkład są dopuszczone do ogrzewania podłogowego, a ich opór i ograniczenia temperaturowe uwzględniono w obliczeniu mocy." } },
        { "@type": "Question", "name": "Jak bezpiecznie wiercić w podłodze po zakończeniu budowy?", "acceptedAnswer": { "@type": "Answer", "text": "Podstawą jest rzut powykonawczy i zdjęcia odniesione do trwałych punktów. Przed ingerencją trzeba uwzględnić rury, zbrojenie, inne instalacje i wymagania konstrukcyjne." } },
        { "@type": "Question", "name": "Czy uszkodzoną rurę w płycie można naprawić?", "acceptedAnswer": { "@type": "Answer", "text": "Naprawa punktowa może być możliwa, ale zakres zależy od lokalizacji, systemu rury i konstrukcji. Przed kuciem trzeba zlokalizować uszkodzenie, uzgodnić ingerencję z konstruktorem i zastosować rozwiązanie systemowe." } }
      ]
    }
  ]
}
</script>

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

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

  var modules = {
    ground: {
      title: "Grunt i posadowienie",
      summary: "Warunki gruntu, wody i przygotowania podłoża wpływają na konstrukcję oraz sposób ograniczenia strat do gruntu.",
      owner: "projektant konstrukcji i geotechnik",
      document: "opinia lub dokumentacja geotechniczna oraz projekt posadowienia",
      risk: "niezgodnego podłoża, zmian rzędnych i nieuzgodnionych przejść instalacyjnych"
    },
    insulation: {
      title: "Izolacja i krawędź płyty",
      summary: "Ochrona dolna i obwodowa ogranicza straty, ale musi być spójna z geometrią, hydroizolacją oraz obciążeniami konstrukcji.",
      owner: "projektant konstrukcji i osoba wykonująca obliczenia cieplne",
      document: "detale warstw, krawędzi, ciągłości izolacji i przenikania ciepła do gruntu",
      risk: "przerw izolacji, przypadkowych zamian materiału i mostków na obwodzie płyty"
    },
    structure: {
      title: "Konstrukcja i zbrojenie",
      summary: "Położenie rur nie może kolidować ze zbrojeniem, otuliną, kotwami, strefami obciążeń ani technologią wykonywania płyty.",
      owner: "projektant konstrukcji oraz kierownik budowy",
      document: "projekt płyty i pisemne uzgodnienie sposobu prowadzenia oraz mocowania instalacji",
      risk: "samodzielnych zmian zbrojenia, otuliny, przejść i wysokości prowadzenia rur"
    },
    pipes: {
      title: "Rury i aktywne pola",
      summary: "Trasy wynikają z mocy pomieszczeń, powierzchni czynnej, kolizji i warunków montażu konkretnego systemu rury.",
      owner: "projektant instalacji, konstruktor i wykonawca",
      document: "rzut pętli, zestawienie rozstawów oraz karta techniczna wybranego wyrobu",
      risk: "układania na oko, zbyt małych promieni, uszkodzeń warstw i nieuzgodnionych połączeń"
    },
    hydraulics: {
      title: "Pętle i rozdzielacz",
      summary: "Każdy obwód potrzebuje obliczonego przepływu, straty ciśnienia i rzeczywistej długości razem z dobiegiem.",
      owner: "projektant instalacji grzewczej",
      document: "zestawienie pętli, przepływów, oporów, nastaw oraz punktu pracy pompy",
      risk: "jednego limitu metrów zamiast obliczeń i rozdzielacza wybieranego po wykonaniu płyty"
    },
    pour: {
      title: "Próba i betonowanie",
      summary: "Odbiór przed zakryciem oraz nadzór podczas prac ograniczają ryzyko pozostawienia niewykrytego uszkodzenia w gotowej płycie.",
      owner: "wykonawca, kierownik budowy i osoby wskazane w procedurze odbioru",
      document: "procedura próby, protokół, rzut powykonawczy, zdjęcia i plan kontroli betonowania",
      risk: "betonowania bez odbioru, bez obserwacji instalacji i bez reakcji na zmianę ciśnienia"
    }
  };

  var moduleButtons = guide.querySelectorAll("[data-rk-slab-module]");
  var moduleHeading = document.getElementById("rk-slab-module-heading");
  var moduleSummary = document.getElementById("rk-slab-module-summary");
  var moduleOwner = document.getElementById("rk-slab-module-owner");
  var moduleDocument = document.getElementById("rk-slab-module-document");
  var moduleRisk = document.getElementById("rk-slab-module-risk");

  function showModule(key) {
    var data = modules[key];
    if (!data) {
      return;
    }
    moduleHeading.textContent = data.title;
    moduleSummary.textContent = data.summary;
    moduleOwner.textContent = data.owner;
    moduleDocument.textContent = data.document;
    moduleRisk.textContent = data.risk;
    moduleButtons.forEach(function (button) {
      var active = button.getAttribute("data-rk-slab-module") === key;
      button.setAttribute("aria-selected", active ? "true" : "false");
    });
  }

  moduleButtons.forEach(function (button) {
    button.addEventListener("click", function () {
      showModule(button.getAttribute("data-rk-slab-module"));
    });
  });

  var checks = [
    { id: "rk-slab-ozc", yes: "OZC pomieszczeń jest udokumentowane.", unknown: "Uzupełnij obciążenie cieplne każdego pomieszczenia.", no: "Brak OZC — nie ma podstawy do doboru mocy i rozstawu.", critical: true },
    { id: "rk-slab-active", yes: "Aktywne pola i wyłączenia są pokazane na rzucie.", unknown: "Wyznacz aktywne pola i wszystkie strefy wyłączone.", no: "Trasy mają powstać bez skoordynowanego rzutu aktywnych pól.", critical: true },
    { id: "rk-slab-output", yes: "Moc powierzchni sprawdzono dla warstw podłogi.", unknown: "Sprawdź moc powierzchni dla konstrukcji i okładziny.", no: "Typowa wartość W/m² zastępuje obliczenie rzeczywistego układu.", critical: true },
    { id: "rk-slab-temperature", yes: "Temperatura zasilania jest powiązana z mocą i źródłem.", unknown: "Wyznacz temperatury pracy z obliczeń.", no: "Temperaturę zasilania przyjęto bez sprawdzenia wymaganej mocy.", critical: false },
    { id: "rk-slab-structural", yes: "Projekt konstrukcyjny płyty jest dostępny.", unknown: "Potwierdź zakończenie projektu konstrukcyjnego.", no: "Konstrukcja nadal się zmienia — instalacji nie należy zamykać w betonie.", critical: true },
    { id: "rk-slab-position", yes: "Położenie i mocowanie rur uzgodniono konstrukcyjnie.", unknown: "Uzyskaj jednoznaczne uzgodnienie położenia oraz mocowania rur.", no: "Położenie rur wybrano bez akceptacji konstrukcyjnej.", critical: true },
    { id: "rk-slab-collisions", yes: "Kolizje międzybranżowe zostały sprawdzone.", unknown: "Zakończ koordynację przepustów, odpływów, kotew, ścian i zbrojenia.", no: "Niespójne rysunki branż tworzą wysokie ryzyko kolizji w płycie.", critical: true },
    { id: "rk-slab-roles", yes: "Zakres odpowiedzialności jest jednoznaczny.", unknown: "Wskaż osoby zatwierdzające instalację, konstrukcję, próbę i betonowanie.", no: "Krytyczne decyzje pozostawiono ekipom na dzień betonowania.", critical: true },
    { id: "rk-slab-pipe", yes: "Rura, średnica i rozstaw są określone w dokumentacji.", unknown: "Wskaż konkretny typ, wymiar i rozstaw rur.", no: "Produkt ma być dobrany na budowie bez odniesienia do projektu.", critical: true },
    { id: "rk-slab-loops", yes: "Długości, przepływy i opory wszystkich pętli są policzone.", unknown: "Oblicz hydraulikę wszystkich obwodów.", no: "Sam limit długości zastępuje obliczenia przepływów i oporów.", critical: true },
    { id: "rk-slab-manifold", yes: "Rozdzielacz i dobiegi są uwzględnione na rzucie.", unknown: "Ustal rozdzielacz i rzeczywiste długości dobiegów.", no: "Miejsce rozdzielacza ma zostać wybrane po wykonaniu płyty.", critical: true },
    { id: "rk-slab-system", yes: "Dostępna jest dokumentacja konkretnej rury i systemu.", unknown: "Pozyskaj kartę, instrukcję i listę zgodnych elementów.", no: "Opis handlowy zastępuje dokumentację techniczną produktu.", critical: true },
    { id: "rk-slab-test-plan", yes: "Procedura próby i kryteria odbioru są określone.", unknown: "Ustal medium, ciśnienie, czas, temperaturę i kryteria próby.", no: "Próba ma być wykonana bez zdefiniowanej procedury.", critical: true },
    { id: "rk-slab-test", yes: "Próba została wykonana i zaprotokołowana.", unknown: "Wykonaj próbę i odbiór przed betonowaniem.", no: "Betonowanie bez próby jest warunkiem krytycznym.", critical: true },
    { id: "rk-slab-monitor", yes: "Kontrola instalacji podczas betonowania jest zaplanowana.", unknown: "Wyznacz kontrolę i reakcję na podejrzenie uszkodzenia.", no: "Instalacja ma zostać zabetonowana bez monitorowania.", critical: true },
    { id: "rk-slab-asbuilt", yes: "Dokumentacja powykonawcza jest przygotowana.", unknown: "Przygotuj zdjęcia, rzut, oznaczenia i zapis partii rur.", no: "Po zakryciu nie będzie wiarygodnego zapisu tras i materiałów.", critical: false }
  ];

  function valueOf(id) {
    var field = document.getElementById(id);
    if (!field) {
      return "unknown";
    }
    return field.value;
  }

  function renderList(id, items, emptyText) {
    var list = document.getElementById(id);
    list.textContent = "";
    if (items.length === 0) {
      var emptyItem = document.createElement("li");
      emptyItem.textContent = emptyText;
      list.appendChild(emptyItem);
      return;
    }
    items.forEach(function (textValue) {
      var item = document.createElement("li");
      item.textContent = textValue;
      list.appendChild(item);
    });
  }

  function analyzeReadiness() {
    var ok = [];
    var check = [];
    var stop = [];

    checks.forEach(function (item) {
      var value = valueOf(item.id);
      if (value === "yes") {
        ok.push(item.yes);
      } else {
        if (value === "no") {
          if (item.critical) {
            stop.push(item.no);
          } else {
            check.push(item.no);
          }
        } else {
          check.push(item.unknown);
        }
      }
    });

    var result = document.getElementById("rk-slab-result");
    var status = document.getElementById("rk-slab-result-status");
    var intro = document.getElementById("rk-slab-result-intro");
    result.classList.remove("is-good");
    result.classList.remove("is-stop");

    if (stop.length > 0) {
      result.classList.add("is-stop");
      status.textContent = "STOP — nie rozpoczynaj betonowania";
      intro.textContent = "Wykryto co najmniej jeden brak albo konflikt, którego nie należy zamykać w płycie.";
    } else {
      if (check.length > 0) {
        status.textContent = "Warunkowo gotowe — uzupełnij dokumenty i potwierdzenia";
        intro.textContent = "Nie wskazano jawnego konfliktu krytycznego, ale kontrola nie jest jeszcze kompletna.";
      } else {
        result.classList.add("is-good");
        status.textContent = "Dane przygotowane do formalnego odbioru";
        intro.textContent = "Formularz nie wykazał braków. Ostateczną zgodę wydają osoby odpowiedzialne za konstrukcję, instalację i prowadzenie robót.";
      }
    }

    document.getElementById("rk-slab-ok-count").textContent = String(ok.length);
    document.getElementById("rk-slab-check-count").textContent = String(check.length);
    document.getElementById("rk-slab-stop-count").textContent = String(stop.length);
    renderList("rk-slab-ok-list", ok, "Brak potwierdzonych elementów.");
    renderList("rk-slab-check-list", check, "Nie wskazano dodatkowych braków.");
    renderList("rk-slab-stop-list", stop, "Nie wykryto warunku krytycznego.");
  }

  var runButton = document.getElementById("rk-slab-run");
  var resetButton = document.getElementById("rk-slab-reset");

  runButton.addEventListener("click", analyzeReadiness);
  resetButton.addEventListener("click", function () {
    var fields = guide.querySelectorAll(".rk-slab-analyzer select");
    fields.forEach(function (field) {
      field.selectedIndex = 0;
    });
    var result = document.getElementById("rk-slab-result");
    result.classList.remove("is-good");
    result.classList.remove("is-stop");
    document.getElementById("rk-slab-result-status").textContent = "Uzupełnij cztery obszary kontroli";
    document.getElementById("rk-slab-result-intro").textContent = "Wynik rozdzieli elementy potwierdzone, brakujące i krytyczne przed betonowaniem.";
    document.getElementById("rk-slab-ok-count").textContent = "0";
    document.getElementById("rk-slab-check-count").textContent = "0";
    document.getElementById("rk-slab-stop-count").textContent = "0";
    renderList("rk-slab-ok-list", [], "Jeszcze brak ocenionych danych.");
    renderList("rk-slab-check-list", [], "Uzupełnij formularz na podstawie dokumentów.");
    renderList("rk-slab-stop-list", [], "Brak oceny nie oznacza gotowości do betonowania.");
  });

  showModule("ground");
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/">Ogrzewanie podłogowe w płycie fundamentowej – projekt i montaż.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Projekt ogrzewania podłogowego do domu z dużymi przeszkleniami  jak poradzić sobie ze strefą przy oknach?</title>
		<link>https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Fri, 03 Apr 2026 18:14:51 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Budowa i remont]]></category>
		<category><![CDATA[Instalacje budowlane]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Okna]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradnik inwestora]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[dom energooszczędny]]></category>
		<category><![CDATA[duże przeszklenia]]></category>
		<category><![CDATA[izolacja xps]]></category>
		<category><![CDATA[komfort termiczny]]></category>
		<category><![CDATA[konwektory kanałowe]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[okna panoramiczne]]></category>
		<category><![CDATA[projektowanie instalacji]]></category>
		<category><![CDATA[rozstaw rur]]></category>
		<category><![CDATA[strefa brzegowa]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=4070</guid>

					<description><![CDATA[<p>Współczesna architektura zachwyca ogromnymi przeszkleniami, które otwierają wnętrza na ogród i wpuszczają do środka mnóstwo naturalnego światła. Jednak to, co cieszy oko, bywa sporym wyzwaniem dla inżynierów sanitarnych. Zimne tafle szkła generują zjawisko spływu chłodnego powietrza, co może prowadzić do powstawania nieprzyjemnych przeciągów i dyskomfortu termicznego. Właściwie przygotowany projekt ogrzewania podłogowego do domu z dużymi przeszkleniami musi uwzględniać specyfikę strefy brzegowej, aby skutecznie zniwelować straty ciepła przy oknach tarasowych. W naszym poradniku szczegółowo analizujemy fizykę tego zjawiska, podpowiadamy, jak obliczyć zagęszczenie rur, jaką izolację zastosować oraz kiedy niezbędne okaże się wsparcie w postaci konwektorów kanałowych. Dowiedz się, jak zaprojektować system, który zagwarantuje ciepłe stopy nawet przy panoramicznych oknach w mroźne dni.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/">Projekt ogrzewania podłogowego do domu z dużymi przeszkleniami  jak poradzić sobie ze strefą przy oknach?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-glazing-guide {
    --rk-dark: #102536;
    --rk-navy: #14384d;
    --rk-blue: #078fbe;
    --rk-cyan: #25c7d8;
    --rk-cyan-soft: #e8fbff;
    --rk-orange: #ff6a3d;
    --rk-orange-soft: #fff0e9;
    --rk-green: #16836b;
    --rk-green-soft: #eaf8f3;
    --rk-yellow: #e8ad2c;
    --rk-yellow-soft: #fff8df;
    --rk-red: #c7443a;
    --rk-red-soft: #fff0ee;
    --rk-purple: #6659c7;
    --rk-purple-soft: #f1efff;
    --rk-ink: #1d2b36;
    --rk-text: #465b6b;
    --rk-muted: #667b8b;
    --rk-line: #d7e6ec;
    --rk-soft: #f4f9fb;
    --rk-white: #ffffff;
    color: var(--rk-ink);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    font-size: 18px;
    line-height: 1.72;
    margin: 0 auto;
    max-width: 1240px;
    overflow: hidden;
    width: 100%;
  }

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

  #rk-glazing-guide * {
    min-width: 0;
  }

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

  #rk-glazing-guide a {
    color: var(--rk-blue);
    font-weight: 760;
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
  }

  #rk-glazing-guide a:hover,
  #rk-glazing-guide a:focus-visible {
    color: #056f91;
  }

  #rk-glazing-guide button {
    font: inherit;
  }

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

  #rk-glazing-guide p,
  #rk-glazing-guide ul,
  #rk-glazing-guide ol {
    margin: 0 0 1.15em;
  }

  #rk-glazing-guide li + li {
    margin-top: 0.55em;
  }

  #rk-glazing-guide h2,
  #rk-glazing-guide h3,
  #rk-glazing-guide h4,
  #rk-glazing-guide .rk-glz-hero-title,
  #rk-glazing-guide .rk-glz-author-title,
  #rk-glazing-guide .rk-glz-cta-title {
    color: var(--rk-dark);
    font-weight: 900;
    letter-spacing: -0.025em;
    line-height: 1.12;
    overflow-wrap: break-word;
  }

  #rk-glazing-guide h2 {
    font-size: clamp(1.75rem, 4vw, 2.45rem);
    margin: 0 0 0.75em;
    scroll-margin-top: 18px;
  }

  #rk-glazing-guide h3 {
    font-size: clamp(1.25rem, 2.4vw, 1.55rem);
    margin: 0 0 0.55em;
  }

  #rk-glazing-guide h4 {
    font-size: 1.05rem;
    margin: 0 0 0.45em;
  }

  #rk-glazing-guide .rk-glz-hero {
    background:
      radial-gradient(circle at 92% 108%, rgba(37, 199, 216, 0.18) 0 150px, transparent 151px),
      radial-gradient(circle at 92% 108%, transparent 0 205px, rgba(37, 199, 216, 0.10) 206px 255px, transparent 256px),
      linear-gradient(125deg, var(--rk-dark) 0%, #12384c 55%, #146479 100%);
    color: #effcff;
    padding: clamp(38px, 7vw, 78px) clamp(24px, 7vw, 76px) clamp(34px, 6vw, 64px);
    position: relative;
  }

  #rk-glazing-guide .rk-glz-hero-inner {
    max-width: 1080px;
    position: relative;
    z-index: 1;
  }

  #rk-glazing-guide .rk-glz-eyebrow,
  #rk-glazing-guide .rk-glz-kicker {
    align-items: center;
    color: var(--rk-cyan);
    display: inline-flex;
    font-size: 0.78rem;
    font-weight: 900;
    gap: 9px;
    letter-spacing: 0.12em;
    margin-bottom: 14px;
    text-transform: uppercase;
  }

  #rk-glazing-guide .rk-glz-eyebrow b {
    background: var(--rk-orange);
    border: 7px solid rgba(255, 106, 61, 0.16);
    border-radius: 50%;
    box-sizing: content-box;
    height: 10px;
    width: 10px;
  }

  #rk-glazing-guide .rk-glz-hero-title {
    color: #ffffff;
    font-size: clamp(2.25rem, 6.8vw, 5rem);
    margin: 0;
    max-width: 1100px;
  }

  #rk-glazing-guide .rk-glz-hero-title span {
    color: #6cecff;
  }

  #rk-glazing-guide .rk-glz-hero-lead {
    color: #e4f5f8;
    font-size: clamp(1.05rem, 2.2vw, 1.4rem);
    line-height: 1.55;
    margin: 24px 0 22px;
    max-width: 1030px;
  }

  #rk-glazing-guide .rk-glz-hero-tags,
  #rk-glazing-guide .rk-glz-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }

  #rk-glazing-guide .rk-glz-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: 850;
    padding: 7px 14px;
  }

  #rk-glazing-guide .rk-glz-meta {
    border-top: 1px solid rgba(255, 255, 255, 0.18);
    color: #d6e8ee;
    font-size: 0.85rem;
    font-weight: 700;
    margin-top: 24px;
    padding-top: 18px;
  }

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

  #rk-glazing-guide .rk-glz-toc {
    align-items: flex-start;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-line);
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 22px clamp(20px, 5vw, 58px);
  }

  #rk-glazing-guide .rk-glz-toc-label {
    color: var(--rk-dark);
    flex: 0 0 100%;
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  #rk-glazing-guide .rk-glz-toc a {
    background: var(--rk-soft);
    border: 1px solid transparent;
    border-radius: 999px;
    color: var(--rk-dark);
    display: inline-flex;
    font-size: 0.78rem;
    font-weight: 850;
    line-height: 1.25;
    padding: 9px 14px;
    text-decoration: none;
    white-space: normal;
  }

  #rk-glazing-guide .rk-glz-toc a:hover,
  #rk-glazing-guide .rk-glz-toc a:focus-visible {
    background: var(--rk-cyan-soft);
    border-color: var(--rk-cyan);
    color: var(--rk-dark);
  }

  #rk-glazing-guide .rk-glz-section {
    border-bottom: 1px solid var(--rk-line);
    padding: clamp(42px, 7vw, 78px) clamp(22px, 7vw, 76px);
  }

  #rk-glazing-guide .rk-glz-section:last-child {
    border-bottom: 0;
  }

  #rk-glazing-guide .rk-glz-section-alt {
    background: var(--rk-soft);
  }

  #rk-glazing-guide .rk-glz-section-dark {
    background: var(--rk-dark);
    color: #eaf7fa;
  }

  #rk-glazing-guide .rk-glz-section-dark h2,
  #rk-glazing-guide .rk-glz-section-dark h3,
  #rk-glazing-guide .rk-glz-section-dark h4 {
    color: #ffffff;
  }

  #rk-glazing-guide .rk-glz-section-dark p,
  #rk-glazing-guide .rk-glz-section-dark li {
    color: #d3e7ed;
  }

  #rk-glazing-guide .rk-glz-copy {
    color: var(--rk-text);
    max-width: 920px;
  }

  #rk-glazing-guide .rk-glz-lead {
    color: var(--rk-text);
    font-size: 1.1rem;
    line-height: 1.65;
    max-width: 970px;
  }

  #rk-glazing-guide .rk-glz-answer {
    background: linear-gradient(135deg, var(--rk-cyan-soft), #ffffff);
    border-left: 6px solid var(--rk-cyan);
    border-radius: 0 18px 18px 0;
    color: var(--rk-dark);
    font-size: 1.08rem;
    margin: 28px 0 0;
    padding: 24px 26px;
  }

  #rk-glazing-guide .rk-glz-answer strong {
    color: var(--rk-dark);
  }

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

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

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

  #rk-glazing-guide .rk-glz-card-accent {
    background: var(--rk-cyan-soft);
    border-color: #b9e9f1;
  }

  #rk-glazing-guide .rk-glz-card-warn {
    background: var(--rk-yellow-soft);
    border-color: #f0d783;
  }

  #rk-glazing-guide .rk-glz-card-risk {
    background: var(--rk-red-soft);
    border-color: #efbbb5;
  }

  #rk-glazing-guide .rk-glz-card-good {
    background: var(--rk-green-soft);
    border-color: #bfe5d8;
  }

  #rk-glazing-guide .rk-glz-card p:last-child,
  #rk-glazing-guide .rk-glz-note p:last-child,
  #rk-glazing-guide .rk-glz-answer p:last-child {
    margin-bottom: 0;
  }

  #rk-glazing-guide .rk-glz-card-number {
    align-items: center;
    background: var(--rk-dark);
    border-radius: 12px;
    color: #ffffff;
    display: inline-flex;
    font-size: 0.85rem;
    font-weight: 900;
    height: 38px;
    justify-content: center;
    margin-bottom: 14px;
    width: 38px;
  }

  #rk-glazing-guide .rk-glz-note {
    background: #ffffff;
    border-left: 5px solid var(--rk-blue);
    border-radius: 0 14px 14px 0;
    color: var(--rk-text);
    margin: 28px 0;
    padding: 20px 22px;
  }

  #rk-glazing-guide .rk-glz-note-warn {
    background: var(--rk-yellow-soft);
    border-left-color: var(--rk-yellow);
    color: #4d431f;
  }

  #rk-glazing-guide .rk-glz-note-risk {
    background: var(--rk-red-soft);
    border-left-color: var(--rk-orange);
    color: #512e29;
  }

  #rk-glazing-guide .rk-glz-formula {
    background: var(--rk-dark);
    border-radius: 18px;
    color: #ffffff;
    margin: 22px 0;
    overflow: hidden;
    padding: 24px;
  }

  #rk-glazing-guide .rk-glz-formula code {
    color: #79effa;
    display: block;
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
    font-size: clamp(1rem, 2.7vw, 1.35rem);
    font-weight: 800;
    line-height: 1.5;
    overflow-wrap: anywhere;
    white-space: normal;
  }

  #rk-glazing-guide .rk-glz-formula span {
    color: #bfd9e2;
    display: block;
    font-size: 0.8rem;
    margin-top: 9px;
  }

  #rk-glazing-guide .rk-glz-checklist {
    display: grid;
    gap: 13px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    list-style: none;
    margin: 24px 0 0;
    padding: 0;
  }

  #rk-glazing-guide .rk-glz-checklist li {
    background: #ffffff;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    color: var(--rk-text);
    margin: 0;
    padding: 15px 16px 15px 48px;
    position: relative;
  }

  #rk-glazing-guide .rk-glz-checklist li::before {
    align-items: center;
    background: var(--rk-green-soft);
    border-radius: 50%;
    color: var(--rk-green);
    content: "✓";
    display: flex;
    font-weight: 900;
    height: 26px;
    justify-content: center;
    left: 14px;
    position: absolute;
    top: 15px;
    width: 26px;
  }

  #rk-glazing-guide .rk-glz-table-wrap {
    margin: 26px 0;
    overflow: visible;
  }

  #rk-glazing-guide table {
    border-collapse: separate;
    border-spacing: 0;
    font-size: 0.88rem;
    width: 100%;
  }

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

  #rk-glazing-guide th {
    background: var(--rk-dark);
    color: #ffffff;
    font-weight: 850;
  }

  #rk-glazing-guide th:first-child {
    border-radius: 14px 0 0 0;
  }

  #rk-glazing-guide th:last-child {
    border-radius: 0 14px 0 0;
  }

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

  #rk-glazing-guide .rk-glz-visual {
    background: linear-gradient(145deg, #102536, #173e53);
    border-radius: 24px;
    color: #ffffff;
    margin-top: 28px;
    overflow: hidden;
    padding: clamp(20px, 4vw, 34px);
  }

  #rk-glazing-guide .rk-glz-visual-head {
    margin-bottom: 20px;
  }

  #rk-glazing-guide .rk-glz-visual-head h3 {
    color: #ffffff;
  }

  #rk-glazing-guide .rk-glz-visual-head p {
    color: #cce2e9;
    margin-bottom: 0;
    max-width: 880px;
  }

  #rk-glazing-guide .rk-glz-scenarios {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 22px 0;
  }

  #rk-glazing-guide .rk-glz-mode {
    background: #1a4256;
    border: 1px solid #3a6678;
    border-radius: 14px;
    color: #eaf8fb;
    cursor: pointer;
    font-size: 0.83rem;
    font-weight: 850;
    line-height: 1.25;
    min-height: 58px;
    padding: 11px 13px;
  }

  #rk-glazing-guide .rk-glz-mode:hover,
  #rk-glazing-guide .rk-glz-mode:focus-visible {
    border-color: var(--rk-cyan);
    outline: 2px solid transparent;
  }

  #rk-glazing-guide .rk-glz-mode.is-active {
    background: var(--rk-cyan);
    border-color: var(--rk-cyan);
    color: #082535;
  }

  #rk-glazing-guide .rk-glz-indicators {
    background: #173449;
    border: 1px solid #31586a;
    border-radius: 17px;
    display: grid;
    gap: 22px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 20px;
    padding: 20px;
  }

  #rk-glazing-guide .rk-glz-indicator-head {
    align-items: center;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    margin-bottom: 10px;
  }

  #rk-glazing-guide .rk-glz-indicator-head span {
    color: #ffffff;
    font-size: 0.82rem;
    font-weight: 850;
  }

  #rk-glazing-guide .rk-glz-indicator-head output {
    background: #ffffff;
    border-radius: 999px;
    color: var(--rk-dark);
    flex: 0 0 auto;
    font-size: 0.76rem;
    font-weight: 900;
    padding: 5px 10px;
  }

  #rk-glazing-guide .rk-glz-indicator-track {
    background: #284d60;
    border-radius: 999px;
    height: 10px;
    overflow: hidden;
  }

  #rk-glazing-guide .rk-glz-indicator-fill {
    background: var(--rk-cyan);
    border-radius: inherit;
    display: block;
    height: 100%;
    transition: width 240ms ease, background-color 240ms ease;
  }

  #rk-glazing-guide .rk-glz-indicator-fill.is-alert {
    background: var(--rk-orange);
  }

  #rk-glazing-guide .rk-glz-indicator-fill.is-solar {
    background: var(--rk-yellow);
  }

  #rk-glazing-guide .rk-glz-indicator-scale {
    color: #a8cad3;
    display: flex;
    font-size: 0.68rem;
    justify-content: space-between;
    margin-top: 5px;
  }

  #rk-glazing-guide .rk-glz-viz-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, 1fr);
  }

  #rk-glazing-guide .rk-glz-viz-panel {
    background: #173449;
    border: 1px solid #31586a;
    border-radius: 18px;
    padding: 18px;
  }

  #rk-glazing-guide .rk-glz-viz-panel h4 {
    color: #ffffff;
  }

  #rk-glazing-guide .rk-glz-viz-panel > p {
    color: #aed0d9;
    font-size: 0.76rem;
  }

  #rk-glazing-guide .rk-glz-viz-canvas {
    background: #f7fbfc;
    border-radius: 14px;
    overflow: hidden;
  }

  #rk-glazing-guide .rk-glz-viz-canvas svg {
    display: block;
    height: auto;
    width: 100%;
  }

  #rk-glazing-guide .rk-glz-diagram-label,
  #rk-glazing-guide .rk-glz-diagram-small {
    fill: #17364a;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    font-weight: 900;
  }

  #rk-glazing-guide .rk-glz-diagram-label {
    font-size: 14px;
  }

  #rk-glazing-guide .rk-glz-diagram-small {
    font-size: 12px;
    letter-spacing: 0.03em;
  }

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

  #rk-glazing-guide .rk-glz-result {
    background: #173449;
    border: 1px solid #31586a;
    border-radius: 14px;
    padding: 14px;
  }

  #rk-glazing-guide .rk-glz-result span {
    color: #a9cad3;
    display: block;
    font-size: 0.67rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    margin-bottom: 4px;
    text-transform: uppercase;
  }

  #rk-glazing-guide .rk-glz-result strong {
    color: #ffffff;
    display: block;
    font-size: 1.02rem;
    line-height: 1.25;
  }

  #rk-glazing-guide .rk-glz-tool-status {
    background: rgba(37, 199, 216, 0.12);
    border-left: 5px solid var(--rk-cyan);
    border-radius: 13px;
    color: #eefcff;
    margin-top: 17px;
    padding: 16px 18px;
  }

  #rk-glazing-guide .rk-glz-tool-status.is-warning {
    background: rgba(255, 106, 61, 0.13);
    border-color: var(--rk-orange);
  }

  #rk-glazing-guide .rk-glz-tool-status.is-solar {
    background: rgba(232, 173, 44, 0.13);
    border-color: var(--rk-yellow);
  }

  #rk-glazing-guide .rk-glz-tool-status strong {
    color: #ffffff;
    display: block;
    margin-bottom: 4px;
  }

  #rk-glazing-guide .rk-glz-tool-note {
    color: #a9c7d0;
    font-size: 0.72rem;
    margin: 14px 2px 0;
  }

  #rk-glazing-guide .rk-glz-visual-caption {
    color: #accbd5;
    font-size: 0.76rem;
    margin: 16px 0 0;
  }

  #rk-glazing-guide .rk-glz-cta {
    background: linear-gradient(125deg, var(--rk-dark), #155d70);
    border-radius: 24px;
    color: #ffffff;
    margin: 34px 0 0;
    overflow: hidden;
    padding: clamp(28px, 5vw, 46px);
    position: relative;
  }

  #rk-glazing-guide .rk-glz-cta::after {
    border: 32px solid rgba(37, 199, 216, 0.12);
    border-radius: 50%;
    content: "";
    height: 180px;
    position: absolute;
    right: -70px;
    top: -76px;
    width: 180px;
  }

  #rk-glazing-guide .rk-glz-cta > * {
    position: relative;
    z-index: 1;
  }

  #rk-glazing-guide .rk-glz-cta-title {
    color: #ffffff;
    font-size: clamp(1.45rem, 3.4vw, 2.2rem);
    margin: 0 0 12px;
  }

  #rk-glazing-guide .rk-glz-cta p {
    color: #dceef2;
    max-width: 880px;
  }

  #rk-glazing-guide .rk-glz-cta-button {
    background: var(--rk-orange);
    border-radius: 14px;
    box-shadow: 0 12px 30px rgba(255, 106, 61, 0.24);
    color: #ffffff;
    display: inline-flex;
    font-weight: 900;
    justify-content: center;
    margin-top: 5px;
    padding: 14px 21px;
    text-decoration: none;
  }

  #rk-glazing-guide .rk-glz-cta-button:hover,
  #rk-glazing-guide .rk-glz-cta-button:focus-visible {
    background: #eb542b;
    color: #ffffff;
  }

  #rk-glazing-guide .rk-glz-steps {
    counter-reset: rk-glz-step;
    display: grid;
    gap: 16px;
    margin-top: 24px;
  }

  #rk-glazing-guide .rk-glz-step {
    background: #ffffff;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    counter-increment: rk-glz-step;
    padding: 22px 22px 22px 74px;
    position: relative;
  }

  #rk-glazing-guide .rk-glz-step::before {
    align-items: center;
    background: var(--rk-cyan);
    border-radius: 12px;
    color: var(--rk-dark);
    content: counter(rk-glz-step);
    display: flex;
    font-weight: 900;
    height: 42px;
    justify-content: center;
    left: 18px;
    position: absolute;
    top: 20px;
    width: 42px;
  }

  #rk-glazing-guide .rk-glz-faq {
    display: grid;
    gap: 12px;
    margin-top: 24px;
  }

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

  #rk-glazing-guide .rk-glz-faq summary {
    color: var(--rk-dark);
    cursor: pointer;
    font-weight: 850;
    list-style: none;
    padding: 19px 56px 19px 20px;
    position: relative;
  }

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

  #rk-glazing-guide .rk-glz-faq summary::after {
    color: var(--rk-blue);
    content: "+";
    font-size: 1.5rem;
    font-weight: 500;
    position: absolute;
    right: 20px;
    top: 10px;
  }

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

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

  #rk-glazing-guide .rk-glz-sources {
    font-size: 0.9rem;
  }

  #rk-glazing-guide .rk-glz-sources li {
    overflow-wrap: anywhere;
  }

  #rk-glazing-guide .rk-glz-author {
    background: var(--rk-soft);
    border-top: 1px solid var(--rk-line);
  }

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

  #rk-glazing-guide .rk-glz-author-head {
    align-items: center;
    background: linear-gradient(120deg, var(--rk-dark), #16566a);
    color: #ffffff;
    display: flex;
    justify-content: space-between;
    padding: 30px clamp(22px, 7vw, 76px);
  }

  #rk-glazing-guide .rk-glz-author-title {
    color: #ffffff;
    font-size: clamp(1.65rem, 3.8vw, 2.45rem);
    margin: 0;
  }

  #rk-glazing-guide .rk-glz-author-head p {
    color: #cce2e9;
    margin: 7px 0 0;
  }

  #rk-glazing-guide .rk-glz-author-mark {
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 999px;
    color: #8df3fb;
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    padding: 8px 13px;
    text-transform: uppercase;
  }

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

  #rk-glazing-guide .rk-glz-author-side {
    background: var(--rk-dark);
    color: #ffffff;
    padding: 34px;
    text-align: center;
  }

  #rk-glazing-guide .rk-glz-author-photo {
    border: 6px solid rgba(255, 255, 255, 0.18);
    border-radius: 50%;
    margin: 0 auto 18px;
    max-width: 178px;
    overflow: hidden;
  }

  #rk-glazing-guide .rk-glz-author-photo img {
    aspect-ratio: 1;
    object-fit: cover;
    width: 100%;
  }

  #rk-glazing-guide .rk-glz-author-name a {
    color: #ffffff;
    font-size: 1.35rem;
    font-weight: 900;
    text-decoration: none;
  }

  #rk-glazing-guide .rk-glz-author-role {
    color: #bdd5dd;
    font-size: 0.82rem;
    line-height: 1.55;
    margin-top: 8px;
  }

  #rk-glazing-guide .rk-glz-author-social-label {
    color: #8eabb6;
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    margin-top: 26px;
    text-transform: uppercase;
  }

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

  #rk-glazing-guide .rk-glz-author-social a {
    align-items: center;
    border: 1px solid #416476;
    border-radius: 50%;
    color: #d7ebf0;
    display: flex;
    height: 48px;
    justify-content: center;
    text-decoration: none;
    width: 48px;
  }

  #rk-glazing-guide .rk-glz-author-social a:hover,
  #rk-glazing-guide .rk-glz-author-social a:focus-visible {
    background: var(--rk-cyan);
    color: var(--rk-dark);
  }

  #rk-glazing-guide .rk-glz-author-social svg {
    height: 21px;
    width: 21px;
  }

  #rk-glazing-guide .rk-glz-author-main {
    padding: 34px clamp(24px, 5vw, 54px) 42px;
  }

  #rk-glazing-guide .rk-glz-author-quote {
    background: #ffffff;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    margin: 0 0 24px;
    padding: 24px 25px 20px 70px;
    position: relative;
  }

  #rk-glazing-guide .rk-glz-author-quote::before {
    color: var(--rk-cyan);
    content: "“";
    font-family: Georgia, serif;
    font-size: 4.6rem;
    left: 24px;
    line-height: 1;
    position: absolute;
    top: 11px;
  }

  #rk-glazing-guide .rk-glz-author-quote p {
    color: var(--rk-dark);
    font-weight: 800;
  }

  #rk-glazing-guide .rk-glz-author-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-bottom: 20px;
  }

  #rk-glazing-guide .rk-glz-author-tab {
    background: #e4eef2;
    border-radius: 999px;
    color: #607685;
    cursor: pointer;
    font-size: 0.76rem;
    font-weight: 850;
    padding: 9px 15px;
  }

  #rk-glazing-guide .rk-glz-author-panel {
    color: var(--rk-text);
    display: none;
  }

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

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

  #rk-glazing-guide .rk-glz-site-links {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 16px;
  }

  #rk-glazing-guide .rk-glz-site-links a {
    background: #ffffff;
    border: 1px solid var(--rk-line);
    border-radius: 999px;
    padding: 7px 13px;
    text-decoration: none;
  }

  #rk-glazing-guide .rk-glz-final-cta {
    background:
      radial-gradient(circle at 92% 110%, rgba(37, 199, 216, 0.18) 0 150px, transparent 151px),
      linear-gradient(125deg, #102536, #155d70);
    color: #ffffff;
    padding: clamp(42px, 7vw, 72px) clamp(24px, 7vw, 76px);
    text-align: center;
  }

  #rk-glazing-guide .rk-glz-final-cta .rk-glz-cta-title {
    margin-left: auto;
    margin-right: auto;
    max-width: 900px;
  }

  #rk-glazing-guide .rk-glz-final-cta p {
    color: #d9edf2;
    margin-left: auto;
    margin-right: auto;
    max-width: 860px;
  }

  @media (max-width: 920px) {
    #rk-glazing-guide .rk-glz-grid-3 {
      grid-template-columns: 1fr;
    }

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

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

  @media (max-width: 760px) {
    #rk-glazing-guide {
      font-size: 16px;
      overflow-wrap: anywhere;
    }

    #rk-glazing-guide .rk-glz-shell {
      border-radius: 18px;
    }

    #rk-glazing-guide .rk-glz-grid,
    #rk-glazing-guide .rk-glz-checklist,
    #rk-glazing-guide .rk-glz-indicators,
    #rk-glazing-guide .rk-glz-viz-grid,
    #rk-glazing-guide .rk-glz-author-layout {
      grid-template-columns: 1fr;
    }

    #rk-glazing-guide .rk-glz-author-head {
      align-items: flex-start;
      flex-direction: column;
      gap: 14px;
    }

    #rk-glazing-guide .rk-glz-author-side {
      padding: 30px 22px;
    }

    #rk-glazing-guide .rk-glz-author-main {
      padding: 28px 20px 34px;
    }

    #rk-glazing-guide .rk-glz-author-quote {
      padding: 58px 20px 18px;
    }

    #rk-glazing-guide .rk-glz-author-quote::before {
      left: 18px;
      top: 4px;
    }

    #rk-glazing-guide table,
    #rk-glazing-guide thead,
    #rk-glazing-guide tbody,
    #rk-glazing-guide tr,
    #rk-glazing-guide th,
    #rk-glazing-guide td {
      display: block;
      width: 100%;
    }

    #rk-glazing-guide thead {
      border: 0;
      clip: rect(0 0 0 0);
      height: 1px;
      margin: -1px;
      overflow: hidden;
      padding: 0;
      position: absolute;
      width: 1px;
    }

    #rk-glazing-guide tbody {
      display: grid;
      gap: 14px;
    }

    #rk-glazing-guide tbody tr {
      background: #ffffff;
      border: 1px solid var(--rk-line);
      border-radius: 15px;
      overflow: hidden;
    }

    #rk-glazing-guide td,
    #rk-glazing-guide tbody tr:nth-child(even) td {
      background: #ffffff;
      border-bottom: 1px solid var(--rk-line);
      display: grid;
      gap: 6px;
      grid-template-columns: minmax(105px, 0.85fr) minmax(0, 1.35fr);
      padding: 13px 15px;
    }

    #rk-glazing-guide td:last-child {
      border-bottom: 0;
    }

    #rk-glazing-guide td::before {
      color: var(--rk-muted);
      content: attr(data-label);
      font-size: 0.72rem;
      font-weight: 850;
      letter-spacing: 0.04em;
      text-transform: uppercase;
    }

    #rk-glazing-guide .rk-glz-mode {
      width: 100%;
    }

    #rk-glazing-guide .rk-glz-diagram-label {
      font-size: 22px;
    }

    #rk-glazing-guide .rk-glz-diagram-small {
      font-size: 19px;
    }
  }

  @media (max-width: 470px) {
    #rk-glazing-guide .rk-glz-hero-title {
      font-size: clamp(2rem, 13vw, 3rem);
    }

    #rk-glazing-guide .rk-glz-toc a {
      border-radius: 12px;
      flex: 1 1 142px;
      justify-content: center;
      text-align: center;
    }

    #rk-glazing-guide .rk-glz-scenarios,
    #rk-glazing-guide .rk-glz-results {
      grid-template-columns: 1fr;
    }

    #rk-glazing-guide .rk-glz-card,
    #rk-glazing-guide .rk-glz-formula,
    #rk-glazing-guide .rk-glz-visual {
      padding: 18px;
    }

    #rk-glazing-guide .rk-glz-step {
      padding: 68px 18px 18px;
    }

    #rk-glazing-guide .rk-glz-step::before {
      left: 18px;
      top: 16px;
    }

    #rk-glazing-guide .rk-glz-cta-button {
      width: 100%;
    }

    #rk-glazing-guide .rk-glz-viz-panel {
      padding: 10px;
    }

    #rk-glazing-guide .rk-glz-indicators {
      padding: 14px;
    }

    #rk-glazing-guide .rk-glz-indicator-head {
      align-items: flex-start;
      flex-direction: column;
      gap: 7px;
    }

    #rk-glazing-guide .rk-glz-diagram-small {
      display: none;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    #rk-glazing-guide *,
    #rk-glazing-guide *::before,
    #rk-glazing-guide *::after {
      animation-duration: 0.001ms !important;
      animation-iteration-count: 1 !important;
      scroll-behavior: auto !important;
      transition-duration: 0.001ms !important;
    }
  }
</style>

<article id="rk-glazing-guide">
  <div class="rk-glz-shell">
    <header class="rk-glz-hero">
      <div class="rk-glz-hero-inner">
        <div class="rk-glz-eyebrow"><b aria-hidden="true"></b> DUŻE PRZESZKLENIA • AKTUALIZACJA 2026</div>
        <div class="rk-glz-hero-title">Podłogówka przy dużych oknach — <span>strefa brzegowa bez zgadywania</span></div>
        <p class="rk-glz-hero-lead">Duże przeszklenie nie oznacza automatycznie rur co 10 cm, pasa o szerokości 1,2 m ani osobnej pętli. Najpierw trzeba zestawić projektową stratę ciepła pomieszczenia z mocą rzeczywiście dostępnej powierzchni podłogi.</p>
        <div class="rk-glz-hero-tags" aria-label="Zakres poradnika">
          <span>okna HS i HST</span>
          <span>strefa brzegowa</span>
          <span>rozstaw rur</span>
          <span>mostek przy progu</span>
          <span>zyski słoneczne</span>
        </div>
        <div class="rk-glz-meta">
          <span>Autor: <strong>Robert Kucharski</strong></span>
          <span>Czas czytania: <strong>około 22 minuty</strong></span>
          <span>Aktualizacja techniczna: <strong>9 września 2026 r.</strong></span>
        </div>
      </div>
    </header>

    <nav class="rk-glz-toc" aria-label="Nawigacja po artykule">
      <span class="rk-glz-toc-label">Na skróty — wszystkie H2</span>
      <a href="#rk-glz-answer">Szybka odpowiedź</a>
      <a href="#rk-glz-physics">Co zmienia przeszklenie</a>
      <a href="#rk-glz-data">Dane do projektu</a>
      <a href="#rk-glz-method">Jak liczyć</a>
      <a href="#rk-glz-visual">Animowany przekrój</a>
      <a href="#rk-glz-edge">Strefa brzegowa</a>
      <a href="#rk-glz-spacing">Rozstaw rur</a>
      <a href="#rk-glz-loop">Osobna pętla</a>
      <a href="#rk-glz-threshold">Próg i mostek</a>
      <a href="#rk-glz-finishes">Okładzina</a>
      <a href="#rk-glz-solar">Słońce i sterowanie</a>
      <a href="#rk-glz-emitter">Dodatkowy odbiornik</a>
      <a href="#rk-glz-hydraulics">Hydraulika</a>
      <a href="#rk-glz-errors">Błędy</a>
      <a href="#rk-glz-checklist">Checklista</a>
      <a href="#rk-glz-faq">FAQ</a>
      <a href="#rk-glz-sources">Źródła</a>
      <a href="#rk-glz-author">Autor</a>
    </nav>

    <main>
      <section class="rk-glz-section" id="rk-glz-answer">
        <span class="rk-glz-kicker">Odpowiedź w 30 sekund</span>
        <h2>Czy duże przeszklenie zawsze wymaga strefy brzegowej?</h2>
        <p class="rk-glz-lead"><strong>Nie.</strong> Strefa brzegowa jest rozwiązaniem projektowym, a nie obowiązkowym dodatkiem do każdego okna tarasowego. Może być potrzebna, gdy lokalne obciążenie jest duże, powierzchnia czynna mała albo standardowy wariant podłogi nie pokrywa zapotrzebowania przy założonej temperaturze wody.</p>
        <div class="rk-glz-answer">
          <p><strong>Właściwa kolejność:</strong> policz stratę ciepła pomieszczenia, określ powierzchnię czynną, sprawdź możliwą moc podłogi, a dopiero później wybierz rozstaw, szerokość ewentualnej strefy i podział pętli.</p>
        </div>
        <div class="rk-glz-grid rk-glz-grid-3">
          <article class="rk-glz-card rk-glz-card-good">
            <span class="rk-glz-card-number">1</span>
            <h3>Może wystarczyć zwykły układ</h3>
            <p>Jeżeli całe pomieszczenie bilansuje się przy bezpiecznej temperaturze powierzchni, nie trzeba tworzyć strefy tylko dlatego, że okno jest szerokie.</p>
          </article>
          <article class="rk-glz-card rk-glz-card-accent">
            <span class="rk-glz-card-number">2</span>
            <h3>Może pomóc zagęszczenie</h3>
            <p>Gęstszy rozstaw może zwiększyć lokalną wydajność i równomierność temperatury, lecz musi zostać sprawdzony dla konkretnej konstrukcji podłogi.</p>
          </article>
          <article class="rk-glz-card rk-glz-card-warn">
            <span class="rk-glz-card-number">3</span>
            <h3>Podłoga może nie wystarczyć</h3>
            <p>Gdy moc wymagana przewyższa możliwą emisję, trzeba ograniczyć straty albo zastosować dodatkową powierzchnię grzewczą lub odbiornik.</p>
          </article>
        </div>
      </section>

      <section class="rk-glz-section rk-glz-section-alt" id="rk-glz-physics">
        <span class="rk-glz-kicker">Fizyka bez mitów</span>
        <h2>Co naprawdę zmienia duże przeszklenie?</h2>
        <p class="rk-glz-lead">Okno zwykle izoluje słabiej niż dobrze ocieplona ściana. Przy niskiej temperaturze zewnętrznej jego powierzchnia od strony pomieszczenia może być chłodniejsza, co wpływa zarówno na bilans ciepła, jak i na odczuwany komfort w pobliżu fasady.</p>
        <div class="rk-glz-grid">
          <article class="rk-glz-card">
            <h3>Strata przez przenikanie</h3>
            <p>Rośnie wraz z powierzchnią okna, jego współczynnikiem <code>U<sub>w</sub></code> i projektową różnicą temperatur. Do bilansu pomieszczenia dochodzą pozostałe przegrody oraz wentylacja i infiltracja.</p>
          </article>
          <article class="rk-glz-card">
            <h3>Mostek w miejscu montażu</h3>
            <p>Próg, rama i połączenie z warstwami podłogi mogą tworzyć dodatkową stratę liniową. Nie da się jej wiarygodnie zastąpić jednym procentowym narzutem dla wszystkich budynków.</p>
          </article>
          <article class="rk-glz-card">
            <h3>Lokalny komfort</h3>
            <p>Chłodniejsza pionowa powierzchnia może zwiększać asymetrię promieniowania i wywoływać ruch powietrza przy szybie. Termostat w głębi salonu nie opisuje tych zjawisk.</p>
          </article>
          <article class="rk-glz-card">
            <h3>Zyski słoneczne</h3>
            <p>W słoneczny dzień przeszklenie może dostarczać dużo energii i powodować przegrzewanie. Nie oznacza to jednak, że zysk będzie dostępny podczas mroźnej nocy obliczeniowej.</p>
          </article>
        </div>
        <div class="rk-glz-note rk-glz-note-warn">
          <p><strong>Ważne:</strong> temperatura powietrza 22°C nie gwarantuje takiego samego komfortu w każdym miejscu pokoju. Standard komfortu cieplnego rozpatruje również lokalne czynniki dyskomfortu, w tym asymetrię promieniowania, przeciąg i temperaturę podłogi.</p>
        </div>
      </section>

      <section class="rk-glz-section" id="rk-glz-data">
        <span class="rk-glz-kicker">Wejście do obliczeń</span>
        <h2>Jakie dane trzeba znać przed wyborem rozstawu przy oknie?</h2>
        <p class="rk-glz-lead">Sama informacja „mam sześć metrów przeszklenia” nie wystarcza. Wiarygodna ocena wymaga danych o budynku, oknie, podłodze i instalacji.</p>
        <ul class="rk-glz-checklist">
          <li><strong>Wymiary całego okna</strong> i podział na szyby, ramy oraz elementy nieprzezroczyste.</li>
          <li><strong>Wartość U<sub>w</sub></strong> dla całego okna, a nie wyłącznie U<sub>g</sub> pakietu szybowego.</li>
          <li><strong>Projektowa temperatura zewnętrzna</strong> właściwa dla lokalizacji budynku.</li>
          <li><strong>Temperatura wewnętrzna</strong> przyjęta dla konkretnego pomieszczenia.</li>
          <li><strong>Detal progu i montażu</strong>, w tym materiał podparcia i liniowy mostek cieplny.</li>
          <li><strong>Szczelność budynku</strong>, wentylacja oraz możliwa infiltracja przy drzwiach tarasowych.</li>
          <li><strong>Powierzchnia czynna podłogi</strong> po odjęciu zabudowy i wyłączonych fragmentów.</li>
          <li><strong>Opór cieplny okładziny</strong> razem z podkładem, klejem i pozostałymi warstwami.</li>
          <li><strong>Konstrukcja podłogi</strong>, położenie rury, rodzaj i grubość jastrychu.</li>
          <li><strong>Temperatura zasilania i powrotu</strong> oraz docelowa temperatura pomieszczenia.</li>
          <li><strong>Geometria pętli</strong>, długość dobiegów i położenie rozdzielacza.</li>
          <li><strong>Orientacja fasady i osłony</strong>, potrzebne do oceny ryzyka przegrzewania latem i w okresach przejściowych.</li>
        </ul>
        <p class="rk-glz-copy" style="margin-top:26px">Jeżeli nie masz jeszcze obliczeń dla poszczególnych pomieszczeń, zacznij od poradnika wyjaśniającego, <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">jak oblicza się straty cieplne w budynku</a>. Uproszczony <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">kalkulator strat ciepła</a> może pomóc zrozumieć składniki bilansu, ale nie zastępuje projektu pomieszczenie po pomieszczeniu.</p>
      </section>

      <section class="rk-glz-section rk-glz-section-alt" id="rk-glz-method">
        <span class="rk-glz-kicker">Kolejność obliczeń</span>
        <h2>Jak sprawdzić, czy podłogówka pokryje obciążenie przy dużym oknie?</h2>
        <p class="rk-glz-lead">Najpierw liczymy całe pomieszczenie. Dopiero później analizujemy, czy w części przy fasadzie występuje lokalne ryzyko dyskomfortu i czy warto inaczej rozłożyć moc.</p>

        <h3>1. Strata przez całe okno</h3>
        <div class="rk-glz-formula">
          <code>Q<sub>okna</sub> = U<sub>w</sub> × A<sub>okna</sub> × ΔT</code>
          <span>Q w W, U<sub>w</sub> w W/(m²K), powierzchnia w m², różnica temperatur w K.</span>
        </div>

        <h3>2. Strata liniowa w miejscu połączenia</h3>
        <div class="rk-glz-formula">
          <code>Q<sub>ψ</sub> = ψ × l × ΔT</code>
          <span>Współczynnik ψ oraz długość połączenia powinny odpowiadać rzeczywistemu detalowi montażowemu.</span>
        </div>

        <h3>3. Wymagana moc z powierzchni czynnej</h3>
        <div class="rk-glz-formula">
          <code>q<sub>wym</sub> = Q<sub>pomieszczenia</sub> ÷ A<sub>czynna</sub></code>
          <span>Powierzchnia czynna nie jest automatycznie równa całej powierzchni salonu.</span>
        </div>

        <h3>4. Porównanie z charakterystyką konkretnej podłogi</h3>
        <p class="rk-glz-copy">Wymaganą moc zestawiamy z wydajnością systemu przy określonym rozstawie, średniej temperaturze wody, temperaturze pomieszczenia, konstrukcji jastrychu i oporze okładziny. Właśnie dlatego uniwersalne tabele typu „10 cm daje 140 W/m²” są mylące. Metodyka <a href="https://www.iso.org/standard/74683.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-2:2021</a> wiąże strumień ciepła z modelem systemu i warunkami temperaturowymi.</p>

        <div class="rk-glz-note rk-glz-note-risk">
          <p><strong>Nie dodajemy automatycznego „30% na bryzę”.</strong> Ruch chłodniejszego powietrza i asymetria promieniowania są ważne dla komfortu, ale nie tworzą uniwersalnego procentowego dodatku do straty przez każde okno.</p>
        </div>
      </section>

      <section class="rk-glz-section rk-glz-section-dark" id="rk-glz-visual">
        <span class="rk-glz-kicker">Model edukacyjny</span>
        <h2>Jak podłogówka pracuje przy dużym przeszkleniu?</h2>
        <p class="rk-glz-lead" style="color:#d7eaf0">Przełącz scenariusz i obserwuj prosty przekrój przy fasadzie. Model pokazuje zależności, ale nie dobiera rozstawu rur i nie zastępuje obliczeń pomieszczenia.</p>

        <div class="rk-glz-visual">
          <div class="rk-glz-visual-head">
            <h3>Porównaj cztery sytuacje przy dużym oknie</h3>
            <p>Rysunek jest celowo uproszczony. Pokazuje kierunek zjawisk i logikę decyzji projektowej, a nie wartości w watach ani gotowy układ rur.</p>
          </div>

          <div class="rk-glz-scenarios" role="group" aria-label="Wybierz scenariusz modelu">
            <button class="rk-glz-mode is-active" type="button" data-rk-glz-mode="night" aria-pressed="true">Mroźna noc</button>
            <button class="rk-glz-mode" type="button" data-rk-glz-mode="edge" aria-pressed="false">Obliczona strefa</button>
            <button class="rk-glz-mode" type="button" data-rk-glz-mode="deficit" aria-pressed="false">Niedobór mocy</button>
            <button class="rk-glz-mode" type="button" data-rk-glz-mode="solar" aria-pressed="false">Słoneczny dzień</button>
          </div>

          <div class="rk-glz-indicators" aria-label="Poglądowe wskaźniki wybranego scenariusza">
            <div class="rk-glz-indicator">
              <div class="rk-glz-indicator-head"><span>Oddziaływanie chłodniejszej szyby</span><output id="rk-glz-cold-output">duże</output></div>
              <div class="rk-glz-indicator-track" role="img" aria-label="Poglądowa intensywność wpływu chłodniejszej szyby"><span class="rk-glz-indicator-fill" id="rk-glz-cold-fill" style="width:88%"></span></div>
              <div class="rk-glz-indicator-scale"><span>małe</span><span>średnie</span><span>duże</span></div>
            </div>
            <div class="rk-glz-indicator">
              <div class="rk-glz-indicator-head"><span>Relacja emisji podłogi do potrzeby</span><output id="rk-glz-balance-output">nieustalona</output></div>
              <div class="rk-glz-indicator-track" role="img" aria-label="Poglądowa relacja emisji podłogi do bieżącej potrzeby"><span class="rk-glz-indicator-fill" id="rk-glz-balance-fill" style="width:52%"></span></div>
              <div class="rk-glz-indicator-scale"><span>niedobór</span><span>bilans</span><span>nadwyżka</span></div>
            </div>
          </div>

          <div class="rk-glz-viz-grid">
            <div class="rk-glz-viz-panel">
              <h4>Przekrój przy fasadzie</h4>
              <p>Kolory pokazują względne kierunki oddziaływania szyby i ogrzewanej podłogi.</p>
              <div class="rk-glz-viz-canvas">
                <svg id="rk-glz-cross-svg" viewBox="0 0 620 420" role="img" aria-labelledby="rk-glz-cross-title rk-glz-cross-desc">
                  <title id="rk-glz-cross-title">Poglądowy przekrój ogrzewania podłogowego przy dużym oknie</title>
                  <desc id="rk-glz-cross-desc">Uproszczony przekrój pokazujący szybę, podłogę, ruch chłodniejszego powietrza, ciepło z podłogi, strefę brzegową, zysk słoneczny i możliwy dodatkowy odbiornik.</desc>
                  <rect width="620" height="420" fill="#f7fbfc"></rect>
                  <rect x="28" y="46" width="128" height="274" rx="10" fill="#d9eff5"></rect>
                  <rect x="156" y="46" width="18" height="274" rx="3" fill="#173e53"></rect>
                  <rect x="180" y="46" width="28" height="274" rx="4" fill="#9fd6e4" stroke="#ffffff" stroke-width="5"></rect>
                  <rect x="208" y="46" width="384" height="274" fill="#eef8fb"></rect>
                  <text x="48" y="32" class="rk-glz-diagram-label">ZEWNĄTRZ</text>
                  <text x="458" y="32" class="rk-glz-diagram-label">WNĘTRZE</text>

                  <rect x="28" y="320" width="564" height="28" fill="#dfcdb9"></rect>
                  <rect x="28" y="348" width="564" height="38" fill="#d8e7ec"></rect>
                  <rect x="28" y="386" width="564" height="18" fill="#6f7f87"></rect>

                  <g id="rk-glz-cross-edge" visibility="hidden">
                    <rect x="208" y="302" width="168" height="62" fill="#fff0e9" stroke="#ff9b79" stroke-width="2" opacity="0.78"></rect>
                    <circle cx="226" cy="344" r="10" fill="#ff6a3d" stroke="#ffffff" stroke-width="3"></circle>
                    <circle cx="264" cy="344" r="10" fill="#ff6a3d" stroke="#ffffff" stroke-width="3"></circle>
                    <circle cx="302" cy="344" r="10" fill="#ff6a3d" stroke="#ffffff" stroke-width="3"></circle>
                    <circle cx="340" cy="344" r="10" fill="#ff6a3d" stroke="#ffffff" stroke-width="3"></circle>
                    <path d="M232 296 C232 250 244 220 260 188" fill="none" stroke="#ff6a3d" stroke-width="8" stroke-linecap="round"></path>
                    <path d="M294 296 C294 244 306 213 324 178" fill="none" stroke="#ff6a3d" stroke-width="8" stroke-linecap="round"></path>
                  </g>

                  <g id="rk-glz-cross-standard">
                    <circle cx="386" cy="344" r="10" fill="#ff6a3d" stroke="#ffffff" stroke-width="3"></circle>
                    <circle cx="474" cy="344" r="10" fill="#ff6a3d" stroke="#ffffff" stroke-width="3"></circle>
                    <circle cx="562" cy="344" r="10" fill="#ff6a3d" stroke="#ffffff" stroke-width="3"></circle>
                    <path d="M386 306 C386 258 392 226 404 190" fill="none" stroke="#ff6a3d" stroke-width="8" stroke-linecap="round"></path>
                    <path d="M474 306 C474 258 480 226 492 190" fill="none" stroke="#ff6a3d" stroke-width="8" stroke-linecap="round"></path>
                    <path d="M562 306 C562 258 568 226 580 190" fill="none" stroke="#ff6a3d" stroke-width="8" stroke-linecap="round"></path>
                  </g>

                  <g id="rk-glz-cross-cold">
                    <path d="M224 82 C270 138 264 218 228 286" fill="none" stroke="#078fbe" stroke-width="10" stroke-linecap="round"></path>
                    <path d="M252 104 C286 158 280 218 252 264" fill="none" stroke="#25c7d8" stroke-width="7" stroke-linecap="round"></path>
                    <path d="M218 280 L228 300 L239 280 Z" fill="#078fbe"></path>
                  </g>

                  <g id="rk-glz-cross-emitter" visibility="hidden">
                    <rect x="218" y="300" width="156" height="22" rx="6" fill="#6659c7"></rect>
                    <line x1="240" y1="305" x2="240" y2="317" stroke="#ffffff" stroke-width="3"></line>
                    <line x1="276" y1="305" x2="276" y2="317" stroke="#ffffff" stroke-width="3"></line>
                    <line x1="312" y1="305" x2="312" y2="317" stroke="#ffffff" stroke-width="3"></line>
                    <line x1="348" y1="305" x2="348" y2="317" stroke="#ffffff" stroke-width="3"></line>
                    <path d="M260 288 C252 246 266 212 290 184" fill="none" stroke="#6659c7" stroke-width="8" stroke-linecap="round"></path>
                    <path d="M334 288 C328 248 340 218 362 192" fill="none" stroke="#6659c7" stroke-width="8" stroke-linecap="round"></path>
                  </g>

                  <g id="rk-glz-cross-sun" visibility="hidden">
                    <circle cx="88" cy="104" r="34" fill="#e8ad2c"></circle>
                    <path d="M122 122 L366 278" fill="none" stroke="#e8ad2c" stroke-width="8" stroke-linecap="round" opacity="0.72"></path>
                    <path d="M126 90 L398 218" fill="none" stroke="#e8ad2c" stroke-width="8" stroke-linecap="round" opacity="0.58"></path>
                  </g>
                </svg>
              </div>
            </div>

          </div>

          <div class="rk-glz-results" aria-live="polite">
            <div class="rk-glz-result"><span>Scenariusz</span><strong id="rk-glz-result-mode">Mroźna noc</strong></div>
            <div class="rk-glz-result"><span>Strefa przy oknie</span><strong id="rk-glz-result-edge">nie z automatu</strong></div>
            <div class="rk-glz-result"><span>Dodatkowy odbiornik</span><strong id="rk-glz-result-emitter">brak decyzji</strong></div>
            <div class="rk-glz-result"><span>Priorytet</span><strong id="rk-glz-result-priority">bilans pomieszczenia</strong></div>
          </div>

          <div class="rk-glz-tool-status" id="rk-glz-tool-status" aria-live="polite"><strong id="rk-glz-status-title">Co pokazuje ten wariant?</strong> <span id="rk-glz-status-text">Brak słońca ujawnia projektowe obciążenie. Chłodniejsza powierzchnia może pogarszać komfort przy fasadzie, ale sama szerokość okna nie wyznacza jeszcze rozstawu rur.</span></div>
          <p class="rk-glz-tool-note">Model jakościowy. Wskaźniki nie są procentami obliczeniowymi, rysunki nie odwzorowują konkretnej geometrii pętli, a przedstawione zagęszczenie nie stanowi rekomendacji rozstawu. Decyzję podejmuje się po obliczeniu straty pomieszczenia, mocy czynnej powierzchni podłogi i hydrauliki obwodów.</p>
        </div>

        <aside class="rk-glz-cta" aria-label="Indywidualny projekt strefy przy dużych przeszkleniach">
          <div class="rk-glz-kicker" style="color:#7beaf4">Od modelu do konkretnego rzutu</div>
          <div class="rk-glz-cta-title">Sprawdź strefę przy oknach na podstawie rzeczywistych danych budynku</div>
          <p>Model pokazuje mechanizm, ale nie zna U<sub>w</sub> okna, mostka przy progu, temperatury obliczeniowej, powierzchni czynnej ani oporu planowanej posadzki. Dopiero obliczenie pomieszczenia pokaże, czy wystarczy standardowy rozstaw, potrzebna jest strefa brzegowa, osobna pętla lub dodatkowy odbiornik.</p>
          <a class="rk-glz-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt podłogówki z obliczoną strefą przy oknach</a>
        </aside>
      </section>

      <section class="rk-glz-section" id="rk-glz-edge">
        <span class="rk-glz-kicker">Decyzja projektowa</span>
        <h2>Kiedy strefa brzegowa przy oknie ma sens?</h2>
        <p class="rk-glz-lead">Strefa brzegowa ma sens wtedy, gdy pomaga rozwiązać konkretny problem wykazany w obliczeniach. Nie tworzymy jej na podstawie samego wyglądu fasady ani nazwy źródła ciepła.</p>

        <div class="rk-glz-grid">
          <article class="rk-glz-card rk-glz-card-good">
            <h3>Strefa może być zbędna</h3>
            <ul>
              <li>okno ma dobre parametry i poprawny montaż,</li>
              <li>strata całego pomieszczenia jest niewielka,</li>
              <li>dostępna jest duża powierzchnia czynna,</li>
              <li>standardowy wariant podłogi pokrywa obciążenie,</li>
              <li>temperatura powierzchni pozostaje w przyjętym zakresie.</li>
            </ul>
          </article>
          <article class="rk-glz-card rk-glz-card-accent">
            <h3>Strefę warto przeanalizować</h3>
            <ul>
              <li>fasada ma dużą powierzchnię i lokalnie wysoką stratę,</li>
              <li>przy oknie pozostaje mało aktywnej podłogi,</li>
              <li>okładzina ogranicza możliwą emisję,</li>
              <li>występuje wyraźny mostek przy progu,</li>
              <li>istotny jest komfort bezpośrednio przy przeszkleniu.</li>
            </ul>
          </article>
        </div>

        <h3 style="margin-top:30px">Jak szeroka powinna być strefa?</h3>
        <p class="rk-glz-copy">Nie ma jednej obowiązkowej szerokości 1,0 lub 1,2 m dla każdego okna. Szerokość powinna wynikać z geometrii pomieszczenia, układu pętli, powierzchni dostępnej przed fasadą i sposobu rozłożenia wymaganej mocy. W jednym projekcie będzie to węższy pas, w innym większa część salonu, a w kolejnym oddzielna strefa nie będzie potrzebna.</p>
        <p class="rk-glz-copy">Przed podjęciem decyzji warto porównać warianty opisane w artykule <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstaw rur 10 czy 15 cm</a>. Kluczowe jest porównanie ich przy tych samych temperaturach, tej samej konstrukcji podłogi i tym samym oporze okładziny.</p>
      </section>

      <section class="rk-glz-section rk-glz-section-alt" id="rk-glz-spacing">
        <span class="rk-glz-kicker">Bez automatycznych recept</span>
        <h2>Jaki rozstaw rur zastosować przy dużych oknach?</h2>
        <p class="rk-glz-lead">Rozstaw może wynosić 10, 15 lub 20 cm, a w szczególnych systemach także inną wartość. Nie wybieramy go jednak z samej informacji, że w salonie znajduje się okno panoramiczne.</p>

        <div class="rk-glz-table-wrap">
          <table>
            <thead>
              <tr>
                <th>Wariant</th>
                <th>Co może zmienić</th>
                <th>Czego nie rozstrzyga</th>
                <th>Co trzeba sprawdzić</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td data-label="Wariant"><strong>Rozstaw 20 cm</strong></td>
                <td data-label="Możliwy wpływ">Mniej rury i mniejsza równomierność temperatury powierzchni.</td>
                <td data-label="Nie rozstrzyga">Nie oznacza automatycznie niedogrzania.</td>
                <td data-label="Sprawdzenie">Moc dla konkretnej temperatury wody i podłogi.</td>
              </tr>
              <tr>
                <td data-label="Wariant"><strong>Rozstaw 15 cm</strong></td>
                <td data-label="Możliwy wpływ">Częsty kompromis między ilością rury, mocą i równomiernością.</td>
                <td data-label="Nie rozstrzyga">Nie jest uniwersalnym optimum przy każdym oknie.</td>
                <td data-label="Sprawdzenie">Bilans pomieszczenia i powierzchnia czynna.</td>
              </tr>
              <tr>
                <td data-label="Wariant"><strong>Rozstaw 10 cm</strong></td>
                <td data-label="Możliwy wpływ">Więcej rury i możliwość większej emisji przy tych samych warunkach.</td>
                <td data-label="Nie rozstrzyga">Nie uratuje podłogi o zbyt małej powierzchni lub wysokim oporze.</td>
                <td data-label="Sprawdzenie">Temperatura powierzchni, długości pętli i hydraulika.</td>
              </tr>
            </tbody>
          </table>
        </div>

        <div class="rk-glz-note">
          <p><strong>Podłoga nie wie, skąd pochodzi ciepła woda.</strong> Przy tej samej temperaturze zasilania i powrotu zachowuje się podobnie niezależnie od tego, czy współpracuje z pompą ciepła, kotłem czy innym źródłem.</p>
        </div>
        <p class="rk-glz-copy">Więcej o zależności między temperaturą, konstrukcją i rozstawem znajdziesz w opracowaniu o <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstawie rur w wodnym ogrzewaniu podłogowym</a>. Praktyczne konsekwencje różnych podziałek wyjaśnia również poradnik <a href="https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/">jak gęsto rozkładać podłogówkę</a>.</p>
      </section>

      <section class="rk-glz-section" id="rk-glz-loop">
        <span class="rk-glz-kicker">Podział obwodów</span>
        <h2>Czy strefa przyokienna powinna mieć osobną pętlę?</h2>
        <p class="rk-glz-lead">Osobna pętla może ułatwić projektowanie, regulację i późniejszą kontrolę strefy, ale nie jest obowiązkowa po przekroczeniu umownej długości okna. Decyzję podejmujemy na podstawie całej geometrii instalacji.</p>

        <div class="rk-glz-grid">
          <article class="rk-glz-card rk-glz-card-accent">
            <h3>Kiedy osobny obwód pomaga?</h3>
            <ul>
              <li>strefa ma wyraźnie inne obciążenie niż reszta salonu,</li>
              <li>potrzebny jest inny przepływ lub sposób regulacji,</li>
              <li>wydzielenie pozwala utrzymać rozsądne długości pętli,</li>
              <li>geometria umożliwia logiczne pokrycie pasa przy fasadzie.</li>
            </ul>
          </article>
          <article class="rk-glz-card">
            <h3>Kiedy jedna pętla może wystarczyć?</h3>
            <ul>
              <li>lokalna różnica obciążenia jest niewielka,</li>
              <li>cały obwód ma prawidłową długość i przepływ,</li>
              <li>zróżnicowany rozstaw nie powoduje przekroczenia ograniczeń,</li>
              <li>całe pomieszczenie może być sterowane jako jedna strefa.</li>
            </ul>
          </article>
        </div>

        <div class="rk-glz-note rk-glz-note-warn">
          <p><strong>Rotametr reguluje cały obwód.</strong> Jeżeli na jednej pętli występują dwa rozstawy, nie można osobno zmienić przepływu tylko w pasie przy oknie. Nie oznacza to jednak, że taka pętla jest z definicji niemożliwa do zrównoważenia.</p>
        </div>
        <p class="rk-glz-copy">Podział trzeba zestawić z <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">maksymalną długością pętli ogrzewania podłogowego</a> i rzeczywistą długością dobiegów. Sam metraż pomieszczenia nie określa jeszcze liczby obwodów, co szerzej pokazuje poradnik <a href="https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/">ile pętli podłogówki zaplanować w salonie</a>.</p>
      </section>

      <section class="rk-glz-section rk-glz-section-alt" id="rk-glz-threshold">
        <span class="rk-glz-kicker">Detal budowlany</span>
        <h2>Próg okna HS lub HST, izolacja i mostek cieplny</h2>
        <p class="rk-glz-lead">Ogrzewanie podłogowe nie naprawi źle zaprojektowanego montażu dużego okna. Próg musi mieć ciągłość izolacji, szczelność i podparcie dostosowane do rzeczywistych obciążeń konstrukcji.</p>

        <div class="rk-glz-grid rk-glz-grid-3">
          <article class="rk-glz-card">
            <h3>Nośność</h3>
            <p>Materiał i sposób podparcia dobiera się do ciężaru okna, układu podpór i wymagań konstrukcyjnych. Sama nazwa EPS albo XPS nie rozstrzyga poprawności detalu.</p>
          </article>
          <article class="rk-glz-card">
            <h3>Ciągłość cieplna</h3>
            <p>Połączenie progu z fundamentem i warstwami podłogi powinno ograniczać mostek liniowy. Potrzebny jest konkretny przekrój, a nie uniwersalny pas materiału.</p>
          </article>
          <article class="rk-glz-card">
            <h3>Szczelność i wilgoć</h3>
            <p>Warstwy uszczelniające trzeba połączyć z hydroizolacją i izolacją powietrzną budynku zgodnie z projektem przegrody i warunkami montażu.</p>
          </article>
        </div>

        <div class="rk-glz-note rk-glz-note-risk">
          <p><strong>Nie przepisujemy automatycznie XPS 300.</strong> Wytrzymałość, grubość i szerokość elementu pod progiem muszą wynikać z obciążenia oraz detalu konstrukcyjno-cieplnego. Przypadkowa zmiana materiału może poprawić jeden parametr i jednocześnie zepsuć inny.</p>
        </div>
        <p class="rk-glz-copy">Ogólne wymagania dotyczące izolacyjności budynku wynikają z obowiązujących <a href="https://eli.gov.pl/eli/DU/2022/1225/ogl" target="_blank" rel="nofollow noopener noreferrer">Warunków Technicznych</a>, ale detal montażu konkretnego progu nadal wymaga dokumentacji projektowej. Warstwy pod ogrzewaniem warto jednocześnie skonfrontować z opracowaniem <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">ile izolacji przewidzieć pod ogrzewaniem podłogowym</a>.</p>
      </section>

      <section class="rk-glz-section" id="rk-glz-finishes">
        <span class="rk-glz-kicker">Droga ciepła do pomieszczenia</span>
        <h2>Płytki, panele i drewno w strefie przy dużym oknie</h2>
        <p class="rk-glz-lead">Materiał wykończeniowy wpływa na możliwą moc podłogi, ale nie powinien być oceniany tylko po nazwie. Liczy się deklarowany opór całego zestawu i dopuszczalna temperatura użytkowania.</p>

        <div class="rk-glz-table-wrap">
          <table>
            <thead>
              <tr>
                <th>Wykończenie</th>
                <th>Najważniejsza zaleta</th>
                <th>Co może ograniczać projekt</th>
                <th>Co sprawdzić</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td data-label="Wykończenie"><strong>Płytki lub kamień</strong></td>
                <td data-label="Zaleta">Zwykle niski opór cieplny całej warstwy.</td>
                <td data-label="Ograniczenie">Klej, dylatacje i wymagania jastrychu.</td>
                <td data-label="Sprawdzenie">Cały przekrój, nie tylko samą płytkę.</td>
              </tr>
              <tr>
                <td data-label="Wykończenie"><strong>Panele winylowe</strong></td>
                <td data-label="Zaleta">Mogą tworzyć cienki zestaw o niewielkim oporze.</td>
                <td data-label="Ograniczenie">Limit temperatury, klej lub podkład.</td>
                <td data-label="Sprawdzenie">Deklarację konkretnego produktu i montażu.</td>
              </tr>
              <tr>
                <td data-label="Wykończenie"><strong>Panele laminowane</strong></td>
                <td data-label="Zaleta">Dostępne są zestawy przeznaczone na podłogówkę.</td>
                <td data-label="Ograniczenie">Podkład może istotnie zwiększyć opór.</td>
                <td data-label="Sprawdzenie">Łączny opór panelu i podkładu.</td>
              </tr>
              <tr>
                <td data-label="Wykończenie"><strong>Drewno</strong></td>
                <td data-label="Zaleta">Może być stosowane po prawidłowym zaprojektowaniu.</td>
                <td data-label="Ograniczenie">Opór, wilgotność i dopuszczalna temperatura.</td>
                <td data-label="Sprawdzenie">Instrukcję producenta oraz warunki eksploatacji.</td>
              </tr>
            </tbody>
          </table>
        </div>

        <p class="rk-glz-copy">Nie będziemy pisać, że każdy grubszy parkiet jest zakazany ani że każdy LVT pozostaje całkowicie stabilny. Zależność pomiędzy oporem warstw i wydajnością wyjaśnia artykuł <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">jak okładzina wpływa na wydajność ogrzewania podłogowego</a>. Porównanie praktyczne znajduje się również w poradniku <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/">panele czy płytki na ogrzewanie podłogowe</a>.</p>
      </section>

      <section class="rk-glz-section rk-glz-section-alt" id="rk-glz-solar">
        <span class="rk-glz-kicker">Dwie różne sytuacje</span>
        <h2>Zyski słoneczne, bezwładność podłogi i sterowanie</h2>
        <p class="rk-glz-lead">Duże przeszklenie może zwiększać zimową stratę przez przenikanie, a kilka godzin później dostarczać do pomieszczenia intensywny zysk słoneczny. Oba zjawiska trzeba rozpatrywać oddzielnie.</p>

        <div class="rk-glz-grid">
          <article class="rk-glz-card rk-glz-card-accent">
            <h3>Mroźna noc obliczeniowa</h3>
            <p>Brak promieniowania słonecznego ujawnia projektowe obciążenie. To właśnie w takim stanie system ma utrzymać założoną temperaturę wewnętrzną.</p>
          </article>
          <article class="rk-glz-card rk-glz-card-warn">
            <h3>Słoneczny dzień</h3>
            <p>Zysk przechodzący przez szybę może szybko podnieść temperaturę operacyjną. Posadzka nadal oddaje jednak energię zgromadzoną wcześniej w jastrychu.</p>
          </article>
        </div>

        <p class="rk-glz-copy">Zamknięcie siłownika nie chłodzi natychmiast podłogi. Dlatego lepszy efekt daje połączenie możliwie niskiej temperatury wody, prawidłowej krzywej grzewczej, rozsądnej regulacji pokojowej oraz skutecznych osłon przeciwsłonecznych. O roli temperatury źródła przeczytasz w poradniku o <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalnej temperaturze zasilania podłogówki</a>, a praktyczne ustawienie opisuje artykuł o <a href="https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/">sterowaniu pogodowym</a>.</p>
        <p class="rk-glz-copy">Czujnik temperatury powietrza umieszczony w bezpośredniej plamie słonecznej będzie przekazywał informację reprezentującą tylko fragment pomieszczenia. Zasady lokalizacji i ograniczeń regulatorów omawia poradnik <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">termostat w ogrzewaniu podłogowym</a>.</p>
        <div class="rk-glz-note">
          <p>Okna wpływają jednocześnie na przenikanie ciepła, dostęp światła i zyski słoneczne. Zależność tę opisuje również program badawczy <a href="https://www.energy.gov/cmei/buildings/windows" target="_blank" rel="nofollow noopener noreferrer">Windows Departamentu Energii USA</a>.</p>
        </div>
      </section>

      <section class="rk-glz-section" id="rk-glz-emitter">
        <span class="rk-glz-kicker">Granica możliwości podłogi</span>
        <h2>Kiedy rozważyć konwektor kanałowy lub inny odbiornik?</h2>
        <p class="rk-glz-lead">Dodatkowy odbiornik nie staje się konieczny po przekroczeniu określonej wysokości okna. Pojawia się jako rozwiązanie wtedy, gdy podłoga nie może pokryć obciążenia w przyjętych warunkach.</p>

        <div class="rk-glz-steps">
          <article class="rk-glz-step">
            <h3>Najpierw sprawdź stratę</h3>
            <p>Upewnij się, że bilans obejmuje rzeczywiste U<sub>w</sub>, powierzchnię okna, mostek montażowy, wentylację oraz pozostałe przegrody.</p>
          </article>
          <article class="rk-glz-step">
            <h3>Sprawdź powierzchnię czynną</h3>
            <p>Duży salon może mieć mało podłogi zdolnej do oddawania ciepła, jeżeli znaczną część zajmuje stała zabudowa, kominek, kuchnia lub inne wyłączenia.</p>
          </article>
          <article class="rk-glz-step">
            <h3>Wyznacz możliwą moc podłogi</h3>
            <p>Uwzględnij konstrukcję, okładzinę, temperaturę wody i przyjęty limit temperatury powierzchni. Dopiero to pokazuje rzeczywisty niedobór.</p>
          </article>
          <article class="rk-glz-step">
            <h3>Porównaj rozwiązania</h3>
            <p>Można ograniczyć stratę, zwiększyć powierzchnię grzewczą, zastosować ogrzewanie ścienne, grzejnik lub odpowiednio dobrany konwektor. Wybór zależy od architektury i źródła ciepła.</p>
          </article>
        </div>

        <div class="rk-glz-note rk-glz-note-warn">
          <p><strong>Nie dobieraj konwektora z mocy katalogowej dla wysokiej temperatury.</strong> Jego wydajność musi odpowiadać rzeczywistym parametrom zasilania instalacji. To szczególnie ważne przy pompie ciepła.</p>
        </div>
        <p class="rk-glz-copy">Jeżeli źródłem ma być pompa ciepła, warto najpierw sprawdzić, <a href="https://projekt-ogrzewania.pl/czy-pompa-ciepla-ogrzeje-dom-z-podlogowka/">czy pompa ciepła i podłogówka pokryją obciążenie budynku</a>. Kompletny dobór wymaga równoczesnego sprawdzenia źródła oraz odbiorników, a nie ratowania instalacji samym podnoszeniem temperatury wody.</p>
      </section>

      <section class="rk-glz-section rk-glz-section-alt" id="rk-glz-hydraulics">
        <span class="rk-glz-kicker">Rura, przepływ i opory</span>
        <h2>Jak strefa przy oknie wpływa na hydraulikę instalacji?</h2>
        <p class="rk-glz-lead">Gęstszy rozstaw zwiększa ilość rury potrzebnej do pokrycia tej samej powierzchni. Nie oznacza jednak automatycznie, że każda pętla potrzebuje określonego wysokiego przepływu.</p>

        <div class="rk-glz-grid rk-glz-grid-3">
          <article class="rk-glz-card">
            <h3>Ilość rury</h3>
            <p>Orientacyjnie rozstaw 10 cm wymaga około dwa razy więcej rury w polu niż rozstaw 20 cm. Trzeba doliczyć łuki i dobiegi, dlatego dokładna długość wynika z rzutu.</p>
          </article>
          <article class="rk-glz-card">
            <h3>Przepływ pętli</h3>
            <p>Wynika z mocy przypisanej do obwodu i projektowej różnicy temperatur. Sam rozstaw nie wymusza wartości 1,8 albo 2,0 l/min.</p>
          </article>
          <article class="rk-glz-card">
            <h3>Strata ciśnienia</h3>
            <p>Zależy przede wszystkim od długości, średnicy, przepływu, medium oraz oporów rozdzielacza i armatury. Liczymy ją dla konkretnego obwodu.</p>
          </article>
        </div>

        <p class="rk-glz-copy">Orientacyjne zużycie materiału opisuje poradnik <a href="https://projekt-ogrzewania.pl/ile-rury-na-m%C2%B2-ogrzewania-podlogowego/">ile rury potrzeba na m² ogrzewania podłogowego</a>. Po rozrysowaniu geometrii trzeba zweryfikować, <a href="https://projekt-ogrzewania.pl/ile-metrow-podlogowki-na-jednej-petli/">ile metrów może mieć pojedyncza pętla</a>, a następnie policzyć jej przepływ i nastawę <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametru na rozdzielaczu</a>.</p>
        <p class="rk-glz-copy">Jeżeli dodatkowa pętla zwiększa sumaryczny przepływ rozdzielacza, trzeba również sprawdzić wspólną magistralę. Osobno omawiamy, <a href="https://projekt-ogrzewania.pl/jaka-srednica-rury-zasilajacej-rozdzielacz-w-ukladzie-ogrzewania-podlogowego-kalkulator/">jak dobrać średnicę rury zasilającej rozdzielacz</a>.</p>
      </section>

      <section class="rk-glz-section" id="rk-glz-errors">
        <span class="rk-glz-kicker">Kontrola przed wylewką</span>
        <h2>Najczęstsze błędy przy ogrzewaniu podłogowym obok dużych okien</h2>
        <div class="rk-glz-grid">
          <article class="rk-glz-card rk-glz-card-risk">
            <h3>Rozstaw wybrany z samej szerokości okna</h3>
            <p>Okno o długości 4 lub 6 m nie przesądza, czy potrzebne jest 10 cm. Bez straty pomieszczenia i charakterystyki podłogi taka decyzja jest zgadywaniem.</p>
          </article>
          <article class="rk-glz-card rk-glz-card-risk">
            <h3>Liczenie wyłącznie pakietu szybowego</h3>
            <p>U<sub>g</sub> nie zastępuje U<sub>w</sub> całego okna. Trzeba też uwzględnić ramę i miejsce montażu, szczególnie przy rozbudowanym progu.</p>
          </article>
          <article class="rk-glz-card rk-glz-card-risk">
            <h3>Traktowanie słońca jako pewnego zysku zimowego</h3>
            <p>Podczas warunków obliczeniowych zysk może nie występować. Osobno analizuje się ryzyko przegrzewania i działanie osłon.</p>
          </article>
          <article class="rk-glz-card rk-glz-card-risk">
            <h3>Automatyczna osobna pętla</h3>
            <p>Wydzielenie obwodu bez sprawdzenia jego mocy, długości i przepływu może zwiększyć liczbę pętli bez realnej korzyści.</p>
          </article>
          <article class="rk-glz-card rk-glz-card-risk">
            <h3>Dylatacja wyznaczona granicą rozstawu</h3>
            <p>Układ szczelin wynika z konstrukcji i geometrii jastrychu, nie z samego przejścia między podziałką 10 i 15 cm.</p>
          </article>
          <article class="rk-glz-card rk-glz-card-risk">
            <h3>Rury w miejscach niedostępnych lub ryzykownych</h3>
            <p>Przed montażem trzeba skoordynować profile okienne, mocowania, stałą zabudowę, szczeliny dylatacyjne i miejsca wiercenia.</p>
          </article>
        </div>
        <p class="rk-glz-copy" style="margin-top:26px">Przed rozłożeniem przewodów sprawdź także poradnik <a href="https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/">gdzie nie układać ogrzewania podłogowego</a>. Zasady podziału pól i przygotowania warstw rozwija artykuł o <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewce na ogrzewanie podłogowe</a>.</p>
      </section>

      <section class="rk-glz-section rk-glz-section-alt" id="rk-glz-checklist">
        <span class="rk-glz-kicker">Do projektu i na budowę</span>
        <h2>Checklista strefy przy dużym przeszkleniu</h2>
        <p class="rk-glz-lead">Poniższą listę warto zamknąć przed zamówieniem rury i przed rozpoczęciem montażu.</p>
        <ul class="rk-glz-checklist">
          <li>Mam U<sub>w</sub> całego okna oraz jego rzeczywiste wymiary.</li>
          <li>Znam projektową temperaturę zewnętrzną i wewnętrzną.</li>
          <li>Bilans cieplny został wykonany oddzielnie dla salonu.</li>
          <li>Powierzchnia czynna nie obejmuje stałej zabudowy i wyłączeń.</li>
          <li>Znam opór okładziny razem z podkładem lub klejem.</li>
          <li>Sprawdziłem temperaturę powierzchni dla planowanego wariantu.</li>
          <li>Próg ma skoordynowany detal konstrukcyjny, cieplny i wilgotnościowy.</li>
          <li>Rozstaw został sprawdzony przy konkretnej temperaturze wody.</li>
          <li>Każda pętla ma policzoną długość, moc, przepływ i stratę ciśnienia.</li>
          <li>Rozdzielacz i magistrala obsługują sumaryczny przepływ.</li>
          <li>Czujnik pokojowy nie znajduje się w bezpośredniej plamie słonecznej.</li>
          <li>Osłony przeciwsłoneczne uwzględniono w ocenie przegrzewania.</li>
          <li>Przebieg rur jest skoordynowany z dylatacjami oraz mocowaniami okna.</li>
          <li>Jeżeli podłoga nie pokrywa obciążenia, wskazano dodatkowy odbiornik.</li>
        </ul>
        <p class="rk-glz-copy" style="margin-top:26px">W budynku z wentylacją mechaniczną warto dodatkowo połączyć analizę fasady z projektem wymiany powietrza. Wyjaśniamy to w poradniku <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">rekuperacja i ogrzewanie podłogowe</a>. Jeżeli planujesz pompę ciepła, sprawdź również zasady tworzenia <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projektu ogrzewania podłogowego z pompą ciepła</a>.</p>
      </section>

      <section class="rk-glz-section" id="rk-glz-faq">
        <span class="rk-glz-kicker">Krótkie odpowiedzi</span>
        <h2>FAQ — podłogówka przy dużych oknach</h2>
        <div class="rk-glz-faq">
          <details>
            <summary>Czy przy każdym oknie tarasowym trzeba układać rury co 10 cm?</summary>
            <div class="rk-glz-faq-answer"><p>Nie. Rozstaw powinien wynikać z obciążenia pomieszczenia, powierzchni czynnej, parametrów wody, konstrukcji podłogi i oporu wykończenia.</p></div>
          </details>
          <details>
            <summary>Jak szeroka powinna być strefa brzegowa?</summary>
            <div class="rk-glz-faq-answer"><p>Nie ma jednej właściwej szerokości dla każdego budynku. Ustala się ją razem z geometrią pętli i rozkładem wymaganej mocy. W niektórych pomieszczeniach osobna strefa nie jest potrzebna.</p></div>
          </details>
          <details>
            <summary>Czy okno o długości ponad 4 m wymaga osobnej pętli?</summary>
            <div class="rk-glz-faq-answer"><p>Nie istnieje uniwersalna granica długości okna nakazująca osobny obwód. O podziale decydują moc, geometria, długość rury, przepływ i zakładany sposób regulacji.</p></div>
          </details>
          <details>
            <summary>Czy można połączyć dwa rozstawy na jednej pętli?</summary>
            <div class="rk-glz-faq-answer"><p>Tak, jeżeli cały obwód jest poprawnie zaprojektowany. Trzeba jednak pamiętać, że rotametr reguluje przepływ całej pętli i nie pozwala niezależnie sterować jej fragmentem przy oknie.</p></div>
          </details>
          <details>
            <summary>Czy podłogówka całkowicie zatrzyma chłód od szyby?</summary>
            <div class="rk-glz-faq-answer"><p>Może poprawić lokalny komfort i pokryć obciążenie, ale nie naprawi słabego okna, nieszczelności ani wadliwego mostka przy progu. Nie należy obiecywać całkowitego wyeliminowania każdego ruchu powietrza.</p></div>
          </details>
          <details>
            <summary>Czy przy pompie ciepła zawsze stosuje się gęstszy rozstaw?</summary>
            <div class="rk-glz-faq-answer"><p>Nie. Pompa ciepła zachęca do pracy z możliwie niską temperaturą wody, ale rozstaw nadal wynika z obliczonej mocy podłogi i warunków konkretnego pomieszczenia.</p></div>
          </details>
          <details>
            <summary>Czy drewno można ułożyć przed dużym przeszkleniem?</summary>
            <div class="rk-glz-faq-answer"><p>Można, jeżeli cały zestaw ma odpowiedni opór, a producent dopuszcza taką temperaturę i sposób montażu. Jeżeli ograniczenia zmniejszają moc podłogi, trzeba ponownie domknąć bilans.</p></div>
          </details>
          <details>
            <summary>Czy rekuperacja usuwa potrzebę analizy strefy przy oknie?</summary>
            <div class="rk-glz-faq-answer"><p>Nie. Rekuperacja ogranicza część strat wentylacyjnych, lecz nie usuwa przenikania przez okno ani mostka montażowego. Może natomiast zmienić całkowity bilans pomieszczenia.</p></div>
          </details>
          <details>
            <summary>Czy konwektor kanałowy jest obowiązkowy przy wysokim przeszkleniu?</summary>
            <div class="rk-glz-faq-answer"><p>Nie. Wysokość okna nie jest samodzielnym kryterium. Dodatkowy odbiornik rozważa się wtedy, gdy podłoga nie może zapewnić wymaganej mocy lub komfortu w przyjętych warunkach.</p></div>
          </details>
          <details>
            <summary>Gdzie umieścić czujnik podłogowy?</summary>
            <div class="rk-glz-faq-answer"><p>Jego lokalizacja zależy od funkcji sterowania. Powinien znajdować się w rurce ochronnej i reprezentować kontrolowaną powierzchnię, a nie przypadkowo najcieplejszy lub nasłoneczniony fragment. Więcej wyjaśnia poradnik o <a href="https://projekt-ogrzewania.pl/czujnik-podlogowy/">czujniku podłogowym</a>.</p></div>
          </details>
        </div>
      </section>

      <section class="rk-glz-section rk-glz-section-alt rk-glz-sources" id="rk-glz-sources">
        <span class="rk-glz-kicker">Weryfikowalne podstawy</span>
        <h2>Podstawa techniczna opracowania</h2>
        <p class="rk-glz-copy">Artykuł opiera się na zasadzie, że wydajność powierzchni grzewczej i komfort przy fasadzie są dwoma powiązanymi, lecz odrębnymi zagadnieniami. Nie przypisuje wymagań normowych do wartości, których norma nie ustala uniwersalnie.</p>
        <ol>
          <li><a href="https://www.iso.org/standard/74683.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-2:2021 — wyznaczanie projektowej wydajności systemów ogrzewania i chłodzenia płaszczyznowego</a>.</li>
          <li><a href="https://www.iso.org/standard/85803.html" target="_blank" rel="nofollow noopener noreferrer">ISO 7730:2025 — komfort cieplny i kryteria lokalnego dyskomfortu</a>.</li>
          <li><a href="https://eli.gov.pl/eli/DU/2022/1225/ogl" target="_blank" rel="nofollow noopener noreferrer">Dziennik Ustaw — tekst Warunków Technicznych z wykazem aktów zmieniających</a>.</li>
          <li><a href="https://www.energy.gov/cmei/buildings/windows" target="_blank" rel="nofollow noopener noreferrer">U.S. Department of Energy — wpływ okien na energię, komfort, zyski słoneczne i osłony</a>.</li>
        </ol>
        <div class="rk-glz-note">
          <p><strong>Zakres artykułu:</strong> materiał służy do zrozumienia decyzji projektowych. Nie zastępuje obliczeń strat ciepła, charakterystyki konkretnego systemu, projektu konstrukcyjnego progu ani instrukcji zastosowanych materiałów.</p>
        </div>
      </section>
    </main>

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

      <header class="rk-glz-author-head">
        <div>
          <span class="rk-glz-kicker" style="color:#83f1fb">Autor opracowania technicznego</span>
          <h2 class="rk-glz-author-title">Robert Kucharski</h2>
          <p>Projektant instalacji sanitarnych • specjalista HVAC i ogrzewania podłogowego</p>
        </div>
        <span class="rk-glz-author-mark">PRZESZKLENIA • BILANS • HYDRAULIKA</span>
      </header>

      <div class="rk-glz-author-layout">
        <aside class="rk-glz-author-side">
          <div class="rk-glz-author-photo">
            <img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant ogrzewania podłogowego" width="600" height="600" loading="lazy" decoding="async">
          </div>
          <div class="rk-glz-author-name"><a href="https://projekt-ogrzewania.pl/author/admin3399/">Robert Kucharski</a></div>
          <div class="rk-glz-author-role">Projektant instalacji sanitarnych<br>Specjalista HVAC i ogrzewania podłogowego</div>
          <div class="rk-glz-author-social-label">Profile autora</div>
          <div class="rk-glz-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="nofollow noopener noreferrer" aria-label="LinkedIn Roberta Kucharskiego">
              <svg viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M5.2 3.5A2.2 2.2 0 1 1 5.2 8a2.2 2.2 0 0 1 0-4.5ZM3.3 9.7h3.8V21H3.3V9.7Zm6.1 0H13v1.5h.1c.5-.9 1.7-1.9 3.6-1.9 3.9 0 4.6 2.5 4.6 5.8V21h-3.8v-5.2c0-1.2 0-2.8-1.8-2.8s-2 1.3-2 2.7V21H9.4V9.7Z"/></svg>
            </a>
            <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="nofollow noopener noreferrer" aria-label="Facebook Projekt Ogrzewania">
              <svg viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M13.7 21v-8h2.7l.4-3.1h-3.1v-2c0-.9.3-1.5 1.6-1.5H17V3.6c-.3 0-1.3-.1-2.5-.1-2.5 0-4.2 1.5-4.2 4.3v2.1H7.5V13h2.8v8h3.4Z"/></svg>
            </a>
            <a href="https://x.com/Projekt_HVAC" target="_blank" rel="nofollow noopener noreferrer" aria-label="Profil Projekt HVAC w serwisie X">
              <svg viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M4 3h4.7l4.1 5.5L17.6 3H20l-6.1 7.2L21 21h-4.7l-4.6-6.2L6.4 21H4l6.6-7.9L4 3Zm3.5 1.8 9.7 14.4h1.6L9.1 4.8H7.5Z"/></svg>
            </a>
          </div>
        </aside>

        <div class="rk-glz-author-main">
          <blockquote class="rk-glz-author-quote">
            <p>Przy dużym przeszkleniu nie zaczynam od pytania „10 czy 15 cm?”. Najpierw sprawdzam stratę pomieszczenia, aktywną powierzchnię podłogi i możliwą moc przy rzeczywistych temperaturach instalacji.</p>
          </blockquote>
          <div class="rk-glz-author-tabs" role="tablist" aria-label="Informacje o autorze">
            <label class="rk-glz-author-tab" for="rk-glz-author-about">O autorze</label>
            <label class="rk-glz-author-tab" for="rk-glz-author-exp">Doświadczenie</label>
            <label class="rk-glz-author-tab" for="rk-glz-author-method">Metodyka</label>
            <label class="rk-glz-author-tab" for="rk-glz-author-sites">Portale</label>
          </div>
          <div class="rk-glz-author-panel rk-glz-author-panel-about">
            <p>Robert Kucharski opracowuje projekty wodnego ogrzewania podłogowego, obliczenia cieplne i hydrauliczne oraz materiały techniczne dla inwestorów i wykonawców. Łączy straty ciepła poszczególnych pomieszczeń z powierzchnią czynną, konstrukcją podłogi, temperaturą wody, rozstawem rur, długościami pętli, przepływami i nastawami rozdzielacza.</p>
          </div>
          <div class="rk-glz-author-panel rk-glz-author-panel-exp">
            <p>Praktyka autora obejmuje nowe domy i modernizacje, instalacje współpracujące z pompami ciepła, kotłami oraz układami mieszanymi. Szczególnym obszarem pracy jest koordynacja ogrzewania płaszczyznowego z architekturą: dużymi przeszkleniami, stałą zabudową, różnymi okładzinami, dylatacjami i ograniczoną powierzchnią oddawania ciepła.</p>
          </div>
          <div class="rk-glz-author-panel rk-glz-author-panel-method">
            <p>W opracowaniach autor oddziela obliczenia od modeli edukacyjnych. Wartości rozstawu, przepływu i temperatury nie są dobierane z jednej cechy budynku. Każdy wariant jest oceniany jako całość: bilans pomieszczenia, wydajność podłogi, temperatura powierzchni, hydraulika i warunki wykonawcze.</p>
          </div>
          <div class="rk-glz-author-panel rk-glz-author-panel-sites">
            <p>Robert Kucharski jest właścicielem serwisów Projekt-Ogrzewania.pl, Remont.biz.pl oraz Sobir.pl. Powiązanie portali jest podane jawnie, aby czytelnik znał autorstwo i kontekst publikacji.</p>
            <div class="rk-glz-site-links">
              <a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a>
              <a href="https://remont.biz.pl/" target="_blank" rel="nofollow noopener noreferrer">Remont.biz.pl</a>
              <a href="https://sobir.pl/" target="_blank" rel="nofollow noopener noreferrer">Sobir.pl</a>
            </div>
          </div>
        </div>
      </div>
    </section>

    <section class="rk-glz-final-cta" aria-label="Zamówienie projektu ogrzewania podłogowego">
      <div class="rk-glz-kicker" style="color:#83f1fb">Obliczenia zamiast uniwersalnej recepty</div>
      <div class="rk-glz-cta-title">Zaprojektuj podłogówkę razem ze strefą przy dużych przeszkleniach</div>
      <p>Otrzymasz rozstaw rur naniesiony na rzut, długości pętli, przepływy, nastawy rozdzielacza oraz sprawdzenie, czy aktywna powierzchnia podłogi pokrywa projektową stratę poszczególnych pomieszczeń.</p>
      <a class="rk-glz-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów indywidualny projekt ogrzewania podłogowego</a>
    </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.pl",
      "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"
      }
    },
    {
      "@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",
      "worksFor": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "knowsAbout": [
        "ogrzewanie podłogowe",
        "obliczenia cieplne budynków",
        "hydraulika instalacji grzewczych",
        "duże przeszklenia",
        "strefy brzegowe",
        "pompy ciepła"
      ],
      "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/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/#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": "Ogrzewanie podłogowe przy dużych przeszkleniach",
          "item": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/#webpage",
      "url": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/",
      "name": "Ogrzewanie podłogowe przy dużych przeszkleniach – strefa brzegowa, rozstaw rur i komfort",
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/#website"
      },
      "breadcrumb": {
        "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/#breadcrumb"
      },
      "dateModified": "2026-09-09",
      "inLanguage": "pl-PL"
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/#article",
      "headline": "Ogrzewanie podłogowe przy dużych przeszkleniach – strefa brzegowa, rozstaw rur i komfort",
      "description": "Jak obliczyć strefę przy dużym przeszkleniu, dobrać rozstaw rur, ocenić powierzchnię czynną i sprawdzić, kiedy potrzebny jest dodatkowy odbiornik.",
      "mainEntityOfPage": {
        "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/#webpage"
      },
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "dateModified": "2026-09-09",
      "inLanguage": "pl-PL",
      "about": [
        "ogrzewanie podłogowe przy dużych przeszkleniach",
        "strefa brzegowa",
        "rozstaw rur",
        "komfort cieplny przy oknie",
        "mostek cieplny progu"
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/#visualization",
      "name": "Interaktywny model podłogówki przy dużym przeszkleniu",
      "applicationCategory": "EducationalApplication",
      "operatingSystem": "Any",
      "browserRequirements": "Przeglądarka z obsługą SVG, CSS i JavaScript",
      "isAccessibleForFree": true,
      "description": "Poglądowy przekrój przy fasadzie w czterech scenariuszach cieplnych.",
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      }
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/#howto",
      "name": "Jak sprawdzić strefę podłogówki przy dużym oknie",
      "description": "Kolejność oceny bilansu pomieszczenia, powierzchni czynnej, mocy podłogi i podziału pętli.",
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Policz stratę pomieszczenia",
          "text": "Uwzględnij całe okno, mostek montażowy, pozostałe przegrody oraz wentylację i infiltrację."
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Określ powierzchnię czynną",
          "text": "Odejmij stałą zabudowę i fragmenty, w których nie można ułożyć rur."
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Sprawdź możliwą moc podłogi",
          "text": "Porównaj warianty przy tej samej temperaturze wody, konstrukcji i oporze okładziny."
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Dobierz rozstaw i obwody",
          "text": "Wybierz strefę brzegową lub dodatkowy odbiornik tylko wtedy, gdy wynika to z obliczeń."
        }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/#faq",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Czy przy każdym oknie tarasowym trzeba układać rury co 10 cm?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie. Rozstaw powinien wynikać z obciążenia pomieszczenia, powierzchni czynnej, parametrów wody, konstrukcji podłogi i oporu wykończenia."
          }
        },
        {
          "@type": "Question",
          "name": "Jak szeroka powinna być strefa brzegowa?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie ma jednej właściwej szerokości. Ustala się ją razem z geometrią pętli, powierzchnią czynną i rozkładem wymaganej mocy."
          }
        },
        {
          "@type": "Question",
          "name": "Czy okno o długości ponad 4 m wymaga osobnej pętli?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie istnieje uniwersalna granica długości okna. O podziale decydują moc, geometria, długość rury, przepływ i sposób regulacji."
          }
        },
        {
          "@type": "Question",
          "name": "Czy można połączyć dwa rozstawy na jednej pętli?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Tak, jeżeli cały obwód jest poprawnie zaprojektowany. Rotametr reguluje jednak przepływ całej pętli, a nie jej pojedynczego fragmentu."
          }
        },
        {
          "@type": "Question",
          "name": "Czy konwektor kanałowy jest obowiązkowy przy wysokim przeszkleniu?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie. Dodatkowy odbiornik rozważa się wtedy, gdy podłoga nie może zapewnić wymaganej mocy lub komfortu w przyjętych warunkach."
          }
        }
      ]
    }
  ]
}
</script>

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

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

  var buttons = root.querySelectorAll("[data-rk-glz-mode]");
  var coldFill = document.getElementById("rk-glz-cold-fill");
  var balanceFill = document.getElementById("rk-glz-balance-fill");
  var coldOutput = document.getElementById("rk-glz-cold-output");
  var balanceOutput = document.getElementById("rk-glz-balance-output");
  var crossCold = document.getElementById("rk-glz-cross-cold");
  var crossStandard = document.getElementById("rk-glz-cross-standard");
  var crossEdge = document.getElementById("rk-glz-cross-edge");
  var crossEmitter = document.getElementById("rk-glz-cross-emitter");
  var crossSun = document.getElementById("rk-glz-cross-sun");
  var resultMode = document.getElementById("rk-glz-result-mode");
  var resultEdge = document.getElementById("rk-glz-result-edge");
  var resultEmitter = document.getElementById("rk-glz-result-emitter");
  var resultPriority = document.getElementById("rk-glz-result-priority");
  var status = document.getElementById("rk-glz-tool-status");
  var statusTitle = document.getElementById("rk-glz-status-title");
  var statusText = document.getElementById("rk-glz-status-text");

  var modes = {
    night: {
      label: "Mroźna noc",
      coldValue: 88,
      coldText: "duże",
      balanceValue: 52,
      balanceText: "nieustalona",
      balanceTone: "",
      edge: false,
      emitter: false,
      sun: false,
      coldOpacity: "1",
      heatOpacity: "0.82",
      edgeResult: "nie z automatu",
      emitterResult: "brak decyzji",
      priority: "bilans pomieszczenia",
      statusClass: "rk-glz-tool-status",
      statusTitle: "Co pokazuje ten wariant?",
      statusText: "Brak słońca ujawnia projektowe obciążenie. Chłodniejsza powierzchnia może pogarszać komfort przy fasadzie, ale sama szerokość okna nie wyznacza jeszcze rozstawu rur."
    },
    edge: {
      label: "Obliczona strefa",
      coldValue: 68,
      coldText: "umiarkowane",
      balanceValue: 74,
      balanceText: "możliwe pokrycie",
      balanceTone: "",
      edge: true,
      emitter: false,
      sun: false,
      coldOpacity: "0.44",
      heatOpacity: "0.42",
      edgeResult: "po obliczeniu",
      emitterResult: "nie wynika",
      priority: "geometria pętli",
      statusClass: "rk-glz-tool-status",
      statusTitle: "Strefa ma odpowiadać rzeczywistej potrzebie",
      statusText: "Lokalne zagęszczenie może poprawić równomierność i zwiększyć dostępną moc. Jego szerokość, rozstaw i podział pętli muszą wynikać z obliczeń, a nie z uniwersalnej reguły."
    },
    deficit: {
      label: "Niedobór mocy",
      coldValue: 92,
      coldText: "bardzo duże",
      balanceValue: 28,
      balanceText: "niedobór",
      balanceTone: "is-alert",
      edge: true,
      emitter: true,
      sun: false,
      coldOpacity: "0.72",
      heatOpacity: "0.18",
      edgeResult: "nie wystarcza",
      emitterResult: "do rozważenia",
      priority: "ograniczenie straty",
      statusClass: "rk-glz-tool-status is-warning",
      statusTitle: "Sam rozstaw 10 cm nie rozwiąże każdego przypadku",
      statusText: "Jeżeli aktywna podłoga nie pokrywa obciążenia bez przekroczenia ograniczeń, trzeba ograniczyć straty albo zastosować dodatkową powierzchnię grzewczą lub właściwie dobrany odbiornik."
    },
    solar: {
      label: "Słoneczny dzień",
      coldValue: 18,
      coldText: "małe",
      balanceValue: 92,
      balanceText: "chwilowa nadwyżka",
      balanceTone: "is-solar",
      edge: false,
      emitter: false,
      sun: true,
      coldOpacity: "0.12",
      heatOpacity: "0.52",
      edgeResult: "nie usuwa zysku",
      emitterResult: "niepotrzebny",
      priority: "osłony i sterowanie",
      statusClass: "rk-glz-tool-status is-solar",
      statusTitle: "Zysk słoneczny zmienia bieżący bilans",
      statusText: "Promieniowanie może szybko podnieść temperaturę przy fasadzie. Zamknięcie siłownika nie usuwa od razu energii zgromadzonej w jastrychu, dlatego ważne są osłony oraz spokojne sterowanie."
    }
  };

  function setVisible(element, visible) {
    if (visible) {
      element.setAttribute("visibility", "visible");
    } else {
      element.setAttribute("visibility", "hidden");
    }
  }

  function render(modeName) {
    var config = modes[modeName];
    if (!config) {
      return;
    }

    coldFill.style.width = config.coldValue + "%";
    balanceFill.style.width = config.balanceValue + "%";
    balanceFill.className = "rk-glz-indicator-fill";
    if (config.balanceTone) {
      balanceFill.classList.add(config.balanceTone);
    }

    coldOutput.textContent = config.coldText;
    balanceOutput.textContent = config.balanceText;
    crossCold.setAttribute("opacity", config.coldOpacity);
    crossStandard.setAttribute("opacity", config.heatOpacity);
    setVisible(crossEdge, config.edge);
    setVisible(crossEmitter, config.emitter);
    setVisible(crossSun, config.sun);

    resultMode.textContent = config.label;
    resultEdge.textContent = config.edgeResult;
    resultEmitter.textContent = config.emitterResult;
    resultPriority.textContent = config.priority;
    status.className = config.statusClass;
    statusTitle.textContent = config.statusTitle;
    statusText.textContent = config.statusText;

    var index;
    for (index = 0; index < buttons.length; index += 1) {
      var active = buttons[index].getAttribute("data-rk-glz-mode") === modeName;
      buttons[index].setAttribute("aria-pressed", active ? "true" : "false");
      if (active) {
        buttons[index].classList.add("is-active");
      } else {
        buttons[index].classList.remove("is-active");
      }
    }
  }

  var buttonIndex;
  for (buttonIndex = 0; buttonIndex < buttons.length; buttonIndex += 1) {
    buttons[buttonIndex].addEventListener("click", function (event) {
      render(event.currentTarget.getAttribute("data-rk-glz-mode"));
    });
  }

  render("night");
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/">Projekt ogrzewania podłogowego do domu z dużymi przeszkleniami  jak poradzić sobie ze strefą przy oknach?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Czym jest bezwładność cieplna ogrzewania podłogowego i ile trwa nagrzewanie?</title>
		<link>https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Wed, 17 Dec 2025 19:37:24 +0000</pubDate>
				<category><![CDATA[Automatyka grzewcza]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Fizyka budowli]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Sterowanie ogrzewaniem]]></category>
		<category><![CDATA[automatyka pogodowa]]></category>
		<category><![CDATA[bezwładność cieplna]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[jastrych]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt instalacji]]></category>
		<category><![CDATA[sterowanie ogrzewaniem]]></category>
		<category><![CDATA[wylewka betonowa]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2965</guid>

					<description><![CDATA[<p>Bezwładność cieplna to jeden z najczęściej niezrozumianych aspektów ogrzewania podłogowego, a jednocześnie klucz do jego komfortu i efektywności. W artykule wyjaśniamy, czym jest bezwładność cieplna w ogrzewaniu podłogowym, skąd się bierze i jak wpływa na codzienne użytkowanie instalacji. Pokazujemy, dlaczego podłogówka reaguje wolniej niż grzejniki, jaką rolę odgrywa wylewka, materiały wykończeniowe oraz automatyka i w jaki sposób świadome sterowanie pozwala zamienić pozorną wadę w realną przewagę energetyczną.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">Czym jest bezwładność cieplna ogrzewania podłogowego i ile trwa nagrzewanie?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-inertia-guide {
    --rk-dark: #102536;
    --rk-navy: #15384d;
    --rk-blue: #078fbe;
    --rk-cyan: #25c7d8;
    --rk-cyan-soft: #e9fbfe;
    --rk-orange: #ff6a3d;
    --rk-orange-soft: #fff1eb;
    --rk-green: #16836b;
    --rk-green-soft: #eaf8f3;
    --rk-yellow: #b97800;
    --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: #687b88;
    --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.75;
  }
  #rk-inertia-guide,
  #rk-inertia-guide * { box-sizing: border-box; }
  #rk-inertia-guide img,
  #rk-inertia-guide svg { display: block; max-width: 100%; }
  #rk-inertia-guide button,
  #rk-inertia-guide input,
  #rk-inertia-guide select,
  #rk-inertia-guide label,
  #rk-inertia-guide summary,
  #rk-inertia-guide a { font: inherit; -webkit-tap-highlight-color: transparent; }
  #rk-inertia-guide button { cursor: pointer; }
  #rk-inertia-guide a {
    color: var(--rk-blue);
    font-weight: 780;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }
  #rk-inertia-guide a:hover,
  #rk-inertia-guide a:focus-visible { color: var(--rk-red); }
  #rk-inertia-guide button:focus-visible,
  #rk-inertia-guide summary:focus-visible,
  #rk-inertia-guide a:focus-visible,
  #rk-inertia-guide input:focus-visible,
  #rk-inertia-guide select:focus-visible { outline: 3px solid rgba(7, 143, 190, .27); outline-offset: 3px; }
  #rk-inertia-guide p,
  #rk-inertia-guide ul,
  #rk-inertia-guide ol { margin-top: 0; margin-bottom: 1.08em; }
  #rk-inertia-guide h2,
  #rk-inertia-guide h3,
  #rk-inertia-guide h4 {
    margin-top: 0;
    color: var(--rk-dark);
    font-weight: 900;
    letter-spacing: -.035em;
    line-height: 1.15;
    overflow-wrap: anywhere;
  }
  #rk-inertia-guide h2 { margin-bottom: 18px; font-size: clamp(1.72rem, 4vw, 2.68rem); }
  #rk-inertia-guide h3 { margin-bottom: 11px; font-size: clamp(1.12rem, 2.35vw, 1.46rem); }
  #rk-inertia-guide h4 { margin-bottom: 8px; font-size: 1.02rem; }
  #rk-inertia-guide strong { color: var(--rk-dark); }
  #rk-inertia-guide [hidden] { display: none !important; }

  #rk-inertia-guide .rk-pg-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-inertia-guide .rk-pg-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(38px, 7vw, 78px) clamp(25px, 6vw, 76px) 42px;
    color: #ffffff !important;
    background:
      radial-gradient(circle at 91% 4%, rgba(37, 199, 216, .31), transparent 28%),
      radial-gradient(circle at 8% 100%, rgba(255, 106, 61, .24), transparent 30%),
      linear-gradient(135deg, #0d2332 0%, #143e53 55%, #175b62 100%);
  }
  #rk-inertia-guide .rk-pg-hero::after {
    position: absolute;
    right: -55px;
    bottom: -120px;
    width: 350px;
    height: 350px;
    border: 46px solid rgba(255, 255, 255, .05);
    border-radius: 50%;
    content: "";
  }
  #rk-inertia-guide .rk-pg-kicker {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 15px;
    color: #78efff !important;
    font-size: .69rem;
    font-weight: 900;
    letter-spacing: .09em;
    line-height: 1.2;
    text-transform: uppercase;
  }
  #rk-inertia-guide .rk-pg-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-inertia-guide .rk-pg-hero-title {
    position: relative;
    z-index: 1;
    max-width: 1040px;
    margin: 0 0 21px;
    color: #ffffff !important;
    font-size: clamp(2.2rem, 7vw, 5rem);
    font-weight: 900;
    letter-spacing: -.065em;
    line-height: .98;
  }
  #rk-inertia-guide .rk-pg-hero-title span { color: #67e7f5 !important; }
  #rk-inertia-guide .rk-pg-lead {
    position: relative;
    z-index: 1;
    max-width: 970px;
    margin-bottom: 24px;
    color: #e7f6f8 !important;
    font-size: clamp(1rem, 2.2vw, 1.3rem);
    line-height: 1.55;
  }
  #rk-inertia-guide .rk-pg-hero-tags,
  #rk-inertia-guide .rk-pg-byline {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 9px 12px;
  }
  #rk-inertia-guide .rk-pg-hero-tag {
    padding: 8px 13px;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 999px;
    color: #ffffff !important;
    background: rgba(255, 255, 255, .07);
    font-size: .67rem;
    font-weight: 850;
    line-height: 1.2;
  }
  #rk-inertia-guide .rk-pg-byline {
    margin-top: 27px;
    color: #d7ebef !important;
    font-size: .68rem;
    font-weight: 720;
  }
  #rk-inertia-guide .rk-pg-byline span { color: #d7ebef !important; }
  #rk-inertia-guide .rk-pg-byline strong { color: #ffffff !important; }
  #rk-inertia-guide .rk-pg-hero-metrics {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 28px;
  }
  #rk-inertia-guide .rk-pg-hero-metric {
    min-width: 0;
    padding: 18px;
    border: 1px solid rgba(255, 255, 255, .19);
    border-radius: 15px;
    background: rgba(255, 255, 255, .075);
  }
  #rk-inertia-guide .rk-pg-hero-metric b {
    display: block;
    margin-bottom: 5px;
    color: #ffffff !important;
    font-size: .75rem;
    line-height: 1.35;
  }
  #rk-inertia-guide .rk-pg-hero-metric span {
    display: block;
    color: #e5f4f7 !important;
    font-size: .65rem;
    line-height: 1.5;
  }

  #rk-inertia-guide .rk-pg-nav {
    display: block;
    padding: 18px clamp(20px, 4vw, 46px);
    border-bottom: 1px solid var(--rk-line);
    background: var(--rk-white);
  }
  #rk-inertia-guide .rk-pg-nav-label {
    display: block;
    margin-bottom: 9px;
    color: var(--rk-dark);
    font-size: .62rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
  }
  #rk-inertia-guide .rk-pg-nav-track {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    width: 100%;
    min-width: 0;
    white-space: normal;
  }
  #rk-inertia-guide .rk-pg-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    max-width: 100%;
    padding: 8px 12px;
    border-radius: 999px;
    color: var(--rk-dark);
    background: #f0f6f8;
    font-size: .64rem;
    font-weight: 900;
    line-height: 1.2;
    text-decoration: none;
    white-space: normal;
  }
  #rk-inertia-guide .rk-pg-nav a:hover,
  #rk-inertia-guide .rk-pg-nav a:focus-visible { color: #ffffff; background: var(--rk-blue); }

  #rk-inertia-guide .rk-pg-content { padding: 0 clamp(20px, 5.4vw, 64px) 64px; }
  #rk-inertia-guide .rk-pg-section {
    padding: clamp(42px, 7vw, 76px) 0;
    border-bottom: 1px solid var(--rk-line);
    scroll-margin-top: 18px;
  }
  #rk-inertia-guide .rk-pg-section:last-of-type { border-bottom: 0; }
  #rk-inertia-guide .rk-pg-eyebrow {
    display: block;
    margin-bottom: 10px;
    color: var(--rk-blue);
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .075em;
    text-transform: uppercase;
  }
  #rk-inertia-guide .rk-pg-intro { max-width: 950px; color: var(--rk-text); font-size: 1.08rem; }
  #rk-inertia-guide .rk-pg-answer,
  #rk-inertia-guide .rk-pg-note,
  #rk-inertia-guide .rk-pg-warning,
  #rk-inertia-guide .rk-pg-myth {
    margin: 24px 0;
    padding: 21px 23px;
    border-radius: 17px;
  }
  #rk-inertia-guide .rk-pg-answer { border-left: 5px solid var(--rk-cyan); background: var(--rk-cyan-soft); }
  #rk-inertia-guide .rk-pg-note { border: 1px solid #bfe6ed; background: #f0fbfd; }
  #rk-inertia-guide .rk-pg-warning { border-left: 5px solid var(--rk-orange); background: var(--rk-orange-soft); }
  #rk-inertia-guide .rk-pg-myth { border: 1px solid #e0dafa; background: var(--rk-purple-soft); }
  #rk-inertia-guide .rk-pg-answer p:last-child,
  #rk-inertia-guide .rk-pg-note p:last-child,
  #rk-inertia-guide .rk-pg-warning p:last-child,
  #rk-inertia-guide .rk-pg-myth p:last-child { margin-bottom: 0; }

  #rk-inertia-guide .rk-pg-grid-2,
  #rk-inertia-guide .rk-pg-grid-3,
  #rk-inertia-guide .rk-pg-grid-4 {
    display: grid;
    gap: 16px;
    margin: 25px 0;
  }
  #rk-inertia-guide .rk-pg-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #rk-inertia-guide .rk-pg-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #rk-inertia-guide .rk-pg-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  #rk-inertia-guide .rk-pg-card {
    min-width: 0;
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    color: var(--rk-text) !important;
    background: var(--rk-white);
    box-shadow: 0 10px 28px rgba(16, 37, 54, .055);
  }
  #rk-inertia-guide .rk-pg-card.is-cyan { border-top: 4px solid var(--rk-cyan); }
  #rk-inertia-guide .rk-pg-card.is-orange { border-top: 4px solid var(--rk-orange); }
  #rk-inertia-guide .rk-pg-card.is-green { border-top: 4px solid var(--rk-green); }
  #rk-inertia-guide .rk-pg-card.is-purple { border-top: 4px solid var(--rk-purple); }
  #rk-inertia-guide .rk-pg-card p,
  #rk-inertia-guide .rk-pg-card li { color: var(--rk-text) !important; }
  #rk-inertia-guide .rk-pg-card p:last-child { margin-bottom: 0; }
  #rk-inertia-guide .rk-pg-card-icon {
    display: grid !important;
    place-items: center !important;
    width: 46px !important;
    min-width: 46px !important;
    max-width: 46px !important;
    height: 46px !important;
    min-height: 46px !important;
    max-height: 46px !important;
    margin: 0 0 15px !important;
    padding: 0 !important;
    border-radius: 50% !important;
    color: var(--rk-dark) !important;
    background: var(--rk-cyan-soft) !important;
    font-size: .75rem !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    text-align: center !important;
    position: static !important;
    transform: none !important;
  }
  #rk-inertia-guide .rk-pg-card.is-orange .rk-pg-card-icon { background: var(--rk-orange-soft) !important; }
  #rk-inertia-guide .rk-pg-card.is-green .rk-pg-card-icon { background: var(--rk-green-soft) !important; }
  #rk-inertia-guide .rk-pg-card.is-purple .rk-pg-card-icon { background: var(--rk-purple-soft) !important; }

  #rk-inertia-guide .rk-pg-factor-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 28px 0;
    padding: 0;
    list-style: none;
  }
  #rk-inertia-guide .rk-pg-factor {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    align-items: start;
    gap: 18px;
    min-width: 0;
    padding: 26px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-white);
  }
  #rk-inertia-guide .rk-pg-step-badge {
    display: grid !important;
    place-items: center !important;
    align-items: center !important;
    justify-items: center !important;
    width: 52px !important;
    min-width: 52px !important;
    max-width: 52px !important;
    height: 52px !important;
    min-height: 52px !important;
    max-height: 52px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    color: var(--rk-dark) !important;
    background: #d9f5f8 !important;
    font-size: 1rem !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    text-align: center !important;
    flex: 0 0 52px !important;
    position: static !important;
    transform: none !important;
  }
  #rk-inertia-guide .rk-pg-step-badge > span {
    display: block !important;
    position: static !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
    transform: none !important;
  }
  #rk-inertia-guide .rk-pg-factor:nth-child(4n+2) .rk-pg-step-badge { background: #ffdfd4 !important; }
  #rk-inertia-guide .rk-pg-factor:nth-child(4n+3) .rk-pg-step-badge { background: #dff5ed !important; }
  #rk-inertia-guide .rk-pg-factor:nth-child(4n+4) .rk-pg-step-badge { background: #e5e1ff !important; }
  #rk-inertia-guide .rk-pg-factor-copy { min-width: 0; }
  #rk-inertia-guide .rk-pg-factor h3 { margin-bottom: 7px; }
  #rk-inertia-guide .rk-pg-factor p { margin-bottom: 0; color: var(--rk-text); }

  #rk-inertia-guide .rk-pg-table-wrap {
    overflow-x: auto;
    margin: 26px 0;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-white);
  }
  #rk-inertia-guide table { width: 100%; border-collapse: collapse; border-spacing: 0; }
  #rk-inertia-guide th,
  #rk-inertia-guide td { padding: 15px 17px; border-bottom: 1px solid var(--rk-line); text-align: left; vertical-align: top; }
  #rk-inertia-guide th { color: #ffffff; background: var(--rk-navy); font-size: .69rem; font-weight: 900; line-height: 1.35; }
  #rk-inertia-guide td { color: var(--rk-text); font-size: .84rem; line-height: 1.55; }
  #rk-inertia-guide tr:last-child td { border-bottom: 0; }
  #rk-inertia-guide tbody tr:nth-child(even) td { background: #f8fbfc; }

  #rk-inertia-guide .rk-pg-formula {
    margin: 28px 0;
    padding: clamp(23px, 5vw, 38px);
    border-radius: 22px;
    color: #ffffff;
    background: linear-gradient(135deg, #112c3f, #17616d);
  }
  #rk-inertia-guide .rk-pg-formula-main { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
  #rk-inertia-guide .rk-pg-formula-equation {
    color: #7cecf7;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: clamp(1.1rem, 3.5vw, 1.8rem);
    font-weight: 900;
    letter-spacing: -.04em;
    overflow-wrap: anywhere;
  }
  #rk-inertia-guide .rk-pg-formula-result {
    flex: 0 0 auto;
    padding: 11px 15px;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 999px;
    color: #ffffff;
    background: rgba(255, 255, 255, .08);
    font-size: .74rem;
    font-weight: 900;
  }
  #rk-inertia-guide .rk-pg-formula p,
  #rk-inertia-guide .rk-pg-formula li,
  #rk-inertia-guide .rk-pg-formula strong { color: #eaf7f9 !important; }

  #rk-inertia-guide .rk-pg-tool {
    margin: 30px 0;
    overflow: hidden;
    border: 1px solid #bcdde5;
    border-radius: 24px;
    background: var(--rk-white);
    box-shadow: 0 18px 48px rgba(16, 37, 54, .09);
  }
  #rk-inertia-guide .rk-pg-tool-head { padding: clamp(23px, 5vw, 36px); color: #ffffff; background: linear-gradient(135deg, #102d40 0%, #126879 100%); }
  #rk-inertia-guide .rk-pg-tool-kicker { display: block; margin-bottom: 8px; color: #81edf6; font-size: .65rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
  #rk-inertia-guide .rk-pg-tool-head h3 { margin-bottom: 9px; color: #ffffff; }
  #rk-inertia-guide .rk-pg-tool-head p { max-width: 900px; margin-bottom: 0; color: #e5f5f7; }
  #rk-inertia-guide .rk-pg-tool-body { padding: clamp(20px, 5vw, 36px); }
  #rk-inertia-guide .rk-pg-tool-disclaimer { margin-top: 20px; padding: 14px 16px; border-radius: 13px; color: #526570; background: var(--rk-soft); font-size: .73rem; line-height: 1.55; }

  #rk-inertia-guide .rk-ic-concept-tabs,
  #rk-inertia-guide .rk-ic-profile-tabs,
  #rk-inertia-guide .rk-ic-scenario-tabs,
  #rk-inertia-guide .rk-ic-preset-tabs { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 22px; }
  #rk-inertia-guide .rk-ic-tab {
    min-height: 44px;
    padding: 10px 16px;
    border: 1px solid var(--rk-line);
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: .72rem;
    font-weight: 900;
    line-height: 1.2;
  }
  #rk-inertia-guide .rk-ic-tab:hover,
  #rk-inertia-guide .rk-ic-tab:focus-visible { border-color: var(--rk-blue); background: var(--rk-cyan-soft); }
  #rk-inertia-guide .rk-ic-tab.is-active,
  #rk-inertia-guide .rk-ic-tab[aria-pressed="true"] { color: #ffffff; border-color: var(--rk-blue); background: var(--rk-blue); }
  #rk-inertia-guide .rk-ic-concept-status {
    margin-bottom: 22px;
    padding: 17px 19px;
    border-left: 5px solid var(--rk-cyan);
    border-radius: 14px;
    color: var(--rk-text);
    background: var(--rk-cyan-soft);
  }
  #rk-inertia-guide .rk-ic-concept-status b { display: block; margin-bottom: 3px; }
  #rk-inertia-guide .rk-ic-concept-status p { margin-bottom: 0; font-size: .8rem; line-height: 1.55; }
  #rk-inertia-guide .rk-ic-graphic-layout { display: grid; grid-template-columns: minmax(280px, .9fr) minmax(0, 1.2fr); gap: 22px; align-items: stretch; }
  #rk-inertia-guide .rk-ic-layer-stack { display: grid; gap: 8px; min-width: 0; }
  #rk-inertia-guide .rk-ic-layer {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    align-items: center;
    gap: 13px;
    width: 100%;
    min-width: 0;
    min-height: 72px;
    padding: 12px 15px;
    border: 1px solid var(--rk-line);
    border-radius: 15px;
    color: var(--rk-dark);
    background: #f7fafb;
    text-align: left;
    transition: border-color .18s ease, background .18s ease, transform .18s ease, box-shadow .18s ease;
  }
  #rk-inertia-guide .rk-ic-layer:hover,
  #rk-inertia-guide .rk-ic-layer:focus-visible { border-color: var(--rk-blue); transform: translateY(-1px); }
  #rk-inertia-guide .rk-ic-layer.is-active { border-color: #68cedb; background: #ecfbfd; box-shadow: 0 8px 22px rgba(7, 143, 190, .1); }
  #rk-inertia-guide .rk-ic-layer.is-selected { outline: 3px solid rgba(255, 106, 61, .18); border-color: var(--rk-orange); }
  #rk-inertia-guide .rk-ic-layer-number {
    display: grid !important;
    place-items: center !important;
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 50% !important;
    color: #ffffff !important;
    background: var(--rk-navy) !important;
    font-size: .76rem !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    text-align: center !important;
    position: static !important;
    transform: none !important;
  }
  #rk-inertia-guide .rk-ic-layer.is-active .rk-ic-layer-number { background: var(--rk-blue) !important; }
  #rk-inertia-guide .rk-ic-layer-copy { min-width: 0; }
  #rk-inertia-guide .rk-ic-layer-copy strong { display: block; margin-bottom: 2px; font-size: .76rem; line-height: 1.25; }
  #rk-inertia-guide .rk-ic-layer-copy small { display: block; color: var(--rk-muted); font-size: .61rem; line-height: 1.4; }
  #rk-inertia-guide .rk-ic-detail {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    padding: clamp(23px, 4vw, 34px);
    border-radius: 20px;
    color: #ffffff;
    background: linear-gradient(145deg, #112b3d, #155767);
  }
  #rk-inertia-guide .rk-ic-detail h4 { color: #ffffff; font-size: 1.35rem; }
  #rk-inertia-guide .rk-ic-detail > p { color: #dcecf0; }
  #rk-inertia-guide .rk-ic-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; margin-top: 14px; }
  #rk-inertia-guide .rk-ic-detail-card { min-width: 0; padding: 15px; border-radius: 14px; background: rgba(255, 255, 255, .085); }
  #rk-inertia-guide .rk-ic-detail-card b { display: block; margin-bottom: 5px; color: #7cecf7 !important; font-size: .68rem; }
  #rk-inertia-guide .rk-ic-detail-card p { margin-bottom: 0; color: #e5f2f4; font-size: .68rem; line-height: 1.5; }

  #rk-inertia-guide .rk-ic-lab-layout { display: grid; grid-template-columns: minmax(270px, .9fr) minmax(0, 1.45fr); gap: 24px; align-items: stretch; }
  #rk-inertia-guide .rk-ic-controls { min-width: 0; }
  #rk-inertia-guide .rk-ic-field { margin-bottom: 19px; }
  #rk-inertia-guide .rk-ic-field:last-child { margin-bottom: 0; }
  #rk-inertia-guide .rk-ic-label-row { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
  #rk-inertia-guide .rk-ic-label-row label { color: var(--rk-dark); font-size: .74rem; font-weight: 900; line-height: 1.3; }
  #rk-inertia-guide .rk-ic-output { flex: 0 0 auto; color: var(--rk-blue); font-size: .76rem; font-weight: 900; }
  #rk-inertia-guide input[type="range"] { width: 100%; height: 7px; margin: 0; border-radius: 99px; background: #d9e8ed; accent-color: var(--rk-blue); cursor: pointer; }
  #rk-inertia-guide .rk-ic-scale { display: flex; justify-content: space-between; margin-top: 5px; color: var(--rk-muted); font-size: .56rem; }
  #rk-inertia-guide .rk-ic-number {
    display: block;
    width: 100%;
    min-width: 0;
    height: 48px;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid #b9cfd7;
    border-radius: 12px;
    color: var(--rk-dark);
    background: #ffffff;
    font-size: .82rem;
    font-weight: 800;
    line-height: 1.2;
  }
  #rk-inertia-guide .rk-ic-field-help { display: block; margin-top: 6px; color: var(--rk-muted); font-size: .58rem; line-height: 1.42; }
  #rk-inertia-guide .rk-ic-results {
    min-width: 0;
    padding: clamp(20px, 4vw, 29px);
    border-radius: 20px;
    color: #ffffff;
    background: linear-gradient(145deg, #112b3d, #155767);
  }
  #rk-inertia-guide .rk-ic-results h4 { color: #ffffff; }
  #rk-inertia-guide .rk-ic-result-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
  #rk-inertia-guide .rk-ic-result-card { min-width: 0; padding: 15px; border-radius: 14px; background: rgba(255, 255, 255, .09); }
  #rk-inertia-guide .rk-ic-result-card.is-wide { grid-column: 1 / -1; }
  #rk-inertia-guide .rk-ic-result-card span { display: block; color: #cfe5e9; font-size: .61rem; line-height: 1.35; }
  #rk-inertia-guide .rk-ic-result-card strong { display: block; margin: 5px 0 3px; color: #7cecf7 !important; font-size: clamp(1.3rem, 3.2vw, 1.9rem); line-height: 1; }
  #rk-inertia-guide .rk-ic-result-card small { display: block; color: #dcecef; font-size: .6rem; line-height: 1.42; }
  #rk-inertia-guide .rk-ic-result-note { margin-top: 14px; padding: 12px 14px; border-radius: 11px; color: #ffe8df; background: rgba(255, 106, 61, .19); font-size: .66rem; line-height: 1.5; }

  #rk-inertia-guide .rk-ic-chart-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-bottom: 20px; }
  #rk-inertia-guide .rk-ic-chart-control-group { min-width: 0; }
  #rk-inertia-guide .rk-ic-chart-control-group > b { display: block; margin-bottom: 8px; color: var(--rk-dark); font-size: .68rem; }
  #rk-inertia-guide .rk-ic-chart-control-group .rk-ic-profile-tabs,
  #rk-inertia-guide .rk-ic-chart-control-group .rk-ic-scenario-tabs { margin-bottom: 0; }
  #rk-inertia-guide .rk-ic-chart-shell { position: relative; min-width: 0; }
  #rk-inertia-guide .rk-ic-chart-wrap { min-width: 0; padding: 14px 10px 2px; border: 1px solid var(--rk-line); border-radius: 18px; background: #fbfdfe; }
  #rk-inertia-guide .rk-ic-chart-svg { width: 100%; min-height: 320px; overflow: visible; }
  #rk-inertia-guide .rk-ic-chart-svg .rk-grid { stroke: #dce8ed; stroke-width: 1; }
  #rk-inertia-guide .rk-ic-chart-svg .rk-frame { fill: transparent; stroke: #afc4cd; stroke-width: 1.2; }
  #rk-inertia-guide .rk-ic-chart-svg .rk-axis-text { fill: #617681; font-size: 12px; }
  #rk-inertia-guide .rk-ic-chart-svg .rk-axis-title { fill: #314653; font-size: 12px; font-weight: 800; }
  #rk-inertia-guide .rk-ic-chart-svg .rk-series-input { fill: none; stroke: var(--rk-orange); stroke-width: 3; }
  #rk-inertia-guide .rk-ic-chart-svg .rk-series-floor { fill: none; stroke: var(--rk-blue); stroke-width: 4; }
  #rk-inertia-guide .rk-ic-chart-svg .rk-series-room { fill: none; stroke: var(--rk-green); stroke-width: 4; }
  #rk-inertia-guide .rk-ic-chart-svg .rk-guide { stroke: #6c7d87; stroke-width: 1.5; stroke-dasharray: 5 5; }
  #rk-inertia-guide .rk-ic-chart-svg .rk-marker-input { fill: var(--rk-orange); stroke: #ffffff; stroke-width: 2; }
  #rk-inertia-guide .rk-ic-chart-svg .rk-marker-floor { fill: var(--rk-blue); stroke: #ffffff; stroke-width: 2; }
  #rk-inertia-guide .rk-ic-chart-svg .rk-marker-room { fill: var(--rk-green); stroke: #ffffff; stroke-width: 2; }
  #rk-inertia-guide .rk-ic-legend { display: flex; flex-wrap: wrap; gap: 10px 18px; margin: 13px 0 17px; color: var(--rk-text); font-size: .64rem; }
  #rk-inertia-guide .rk-ic-legend-item { display: inline-flex; align-items: center; gap: 7px; }
  #rk-inertia-guide .rk-ic-legend-swatch { width: 22px; height: 4px; border-radius: 99px; background: var(--rk-blue); }
  #rk-inertia-guide .rk-ic-legend-item.is-input .rk-ic-legend-swatch { background: var(--rk-orange); }
  #rk-inertia-guide .rk-ic-legend-item.is-room .rk-ic-legend-swatch { background: var(--rk-green); }
  #rk-inertia-guide .rk-ic-time-control { margin-top: 19px; padding: 17px; border-radius: 15px; background: var(--rk-soft); }
  #rk-inertia-guide .rk-ic-chart-readout { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 14px; }
  #rk-inertia-guide .rk-ic-readout { min-width: 0; padding: 12px; border-radius: 12px; background: #ffffff; }
  #rk-inertia-guide .rk-ic-readout span { display: block; color: var(--rk-muted); font-size: .57rem; line-height: 1.3; }
  #rk-inertia-guide .rk-ic-readout strong { display: block; margin-top: 4px; color: var(--rk-dark); font-size: .88rem; line-height: 1.2; }
  #rk-inertia-guide .rk-ic-chart-status { margin-top: 15px; padding: 15px 17px; border-left: 5px solid var(--rk-cyan); border-radius: 13px; color: var(--rk-text); background: var(--rk-cyan-soft); font-size: .74rem; line-height: 1.55; }

  #rk-inertia-guide .rk-pg-checklist,
  #rk-inertia-guide .rk-pg-crosslist { margin: 22px 0; padding: 0; list-style: none; }
  #rk-inertia-guide .rk-pg-checklist li,
  #rk-inertia-guide .rk-pg-crosslist li { position: relative; margin-bottom: 10px; padding: 12px 14px 12px 45px; border-radius: 12px; background: var(--rk-soft); }
  #rk-inertia-guide .rk-pg-checklist li::before,
  #rk-inertia-guide .rk-pg-crosslist li::before {
    position: absolute;
    top: 12px;
    left: 13px;
    display: grid;
    place-items: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    color: #ffffff;
    background: var(--rk-green);
    content: "✓";
    font-size: .68rem;
    font-weight: 900;
    line-height: 1;
  }
  #rk-inertia-guide .rk-pg-crosslist li::before { background: var(--rk-red); content: "×"; }

  #rk-inertia-guide .rk-pg-myth-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 25px; }
  #rk-inertia-guide .rk-pg-myth-card { min-width: 0; padding: 21px; border: 1px solid var(--rk-line); border-radius: 17px; background: var(--rk-white); }
  #rk-inertia-guide .rk-pg-myth-label { display: inline-block; margin-bottom: 8px; padding: 5px 9px; border-radius: 999px; color: #9f322a; background: var(--rk-red-soft); font-size: .58rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
  #rk-inertia-guide .rk-pg-myth-card p { margin-bottom: 0; color: var(--rk-text); }

  #rk-inertia-guide .rk-pg-cta {
    position: relative;
    overflow: hidden;
    margin: 34px 0;
    padding: clamp(27px, 6vw, 44px);
    border-radius: 24px;
    color: #ffffff;
    background: linear-gradient(135deg, #102c40 0%, #176777 68%, #157c78 100%);
  }
  #rk-inertia-guide .rk-pg-cta::after {
    position: absolute;
    right: -70px;
    bottom: -115px;
    width: 270px;
    height: 270px;
    border: 35px solid rgba(255, 255, 255, .06);
    border-radius: 50%;
    content: "";
  }
  #rk-inertia-guide .rk-pg-cta > * { position: relative; z-index: 1; }
  #rk-inertia-guide .rk-pg-cta-kicker { display: block; margin-bottom: 7px; color: #7cecf7; font-size: .65rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
  #rk-inertia-guide .rk-pg-cta h3 { max-width: 850px; color: #ffffff; font-size: clamp(1.4rem, 3.5vw, 2.15rem); }
  #rk-inertia-guide .rk-pg-cta p { max-width: 870px; color: #e5f3f6; }
  #rk-inertia-guide .rk-pg-cta-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 13px 20px;
    border-radius: 999px;
    color: #ffffff !important;
    background: var(--rk-orange);
    box-shadow: 0 10px 25px rgba(255, 106, 61, .26);
    font-size: .75rem;
    font-weight: 900;
    line-height: 1.25;
    text-decoration: none;
  }
  #rk-inertia-guide .rk-pg-cta-button:hover,
  #rk-inertia-guide .rk-pg-cta-button:focus-visible { color: #ffffff !important; background: #e9552d; }

  #rk-inertia-guide .rk-pg-sources { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 24px; }
  #rk-inertia-guide .rk-pg-source { min-width: 0; padding: 20px; border: 1px solid var(--rk-line); border-radius: 16px; background: var(--rk-soft); }
  #rk-inertia-guide .rk-pg-source p { margin: 7px 0 0; color: var(--rk-text); font-size: .78rem; line-height: 1.55; }
  #rk-inertia-guide .rk-pg-faq { display: grid; gap: 10px; margin-top: 24px; }
  #rk-inertia-guide .rk-pg-faq details { overflow: hidden; border: 1px solid var(--rk-line); border-radius: 15px; background: var(--rk-white); }
  #rk-inertia-guide .rk-pg-faq summary { position: relative; padding: 18px 52px 18px 19px; color: var(--rk-dark); font-weight: 900; line-height: 1.35; cursor: pointer; list-style: none; }
  #rk-inertia-guide .rk-pg-faq summary::-webkit-details-marker { display: none; }
  #rk-inertia-guide .rk-pg-faq summary::after { position: absolute; top: 50%; right: 18px; width: 25px; height: 25px; border-radius: 50%; color: var(--rk-blue); background: var(--rk-cyan-soft); content: "+"; font-size: 1.05rem; font-weight: 900; line-height: 25px; text-align: center; transform: translateY(-50%); }
  #rk-inertia-guide .rk-pg-faq details[open] summary::after { content: "−"; }
  #rk-inertia-guide .rk-pg-faq-answer { padding: 0 19px 18px; color: var(--rk-text); }
  #rk-inertia-guide .rk-pg-faq-answer p:last-child { margin-bottom: 0; }

  #rk-inertia-guide .rk-pg-author { margin-top: 56px; overflow: hidden; border-radius: 24px; color: #ffffff; background: linear-gradient(135deg, #102536, #174b5b); }
  #rk-inertia-guide .rk-pg-author-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 22px; padding: 29px clamp(22px, 5vw, 42px); border-bottom: 1px solid rgba(255, 255, 255, .12); }
  #rk-inertia-guide .rk-pg-author-head h2 { margin-bottom: 6px; color: #ffffff; }
  #rk-inertia-guide .rk-pg-author-head p { margin-bottom: 0; color: #dcecf0; }
  #rk-inertia-guide .rk-pg-author-head .rk-pg-eyebrow { color: #7cecf7; }
  #rk-inertia-guide .rk-pg-author-mark { flex: 0 0 auto; padding: 8px 11px; border: 1px solid rgba(255, 255, 255, .18); border-radius: 999px; color: #ffffff; font-size: .62rem; font-weight: 900; }
  #rk-inertia-guide .rk-pg-author-layout { display: grid; grid-template-columns: 245px minmax(0, 1fr); }
  #rk-inertia-guide .rk-pg-author-side { padding: 30px 25px; border-right: 1px solid rgba(255, 255, 255, .12); text-align: center; }
  #rk-inertia-guide .rk-pg-author-photo { width: 132px; height: 132px; margin: 0 auto 16px; overflow: hidden; border: 5px solid rgba(255, 255, 255, .15); border-radius: 50%; }
  #rk-inertia-guide .rk-pg-author-photo img { width: 100%; height: 100%; object-fit: cover; }
  #rk-inertia-guide .rk-pg-author-name { margin-bottom: 5px; font-size: 1.12rem; font-weight: 900; }
  #rk-inertia-guide .rk-pg-author-name a { color: #ffffff; text-decoration: none; }
  #rk-inertia-guide .rk-pg-author-role { color: #cfe4e9; font-size: .7rem; line-height: 1.55; }
  #rk-inertia-guide .rk-pg-author-social-label { margin-top: 20px; color: #8beff7; font-size: .58rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
  #rk-inertia-guide .rk-pg-author-social { display: flex; justify-content: center; gap: 9px; margin-top: 9px; }
  #rk-inertia-guide .rk-pg-author-social a { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; color: #ffffff; background: rgba(255, 255, 255, .1); }
  #rk-inertia-guide .rk-pg-author-social svg { width: 18px; height: 18px; fill: currentColor; }
  #rk-inertia-guide .rk-pg-author-main { min-width: 0; padding: 32px clamp(23px, 5vw, 42px); }
  #rk-inertia-guide .rk-pg-author-quote { position: relative; margin: 0 0 24px; padding: 4px 0 4px 58px; border: 0; }
  #rk-inertia-guide .rk-pg-author-quote::before { position: absolute; top: -11px; left: 0; color: #6ee9f5; content: "“"; font-family: Georgia, serif; font-size: 4.4rem; line-height: 1; }
  #rk-inertia-guide .rk-pg-author-quote p { margin-bottom: 0; color: #ffffff; font-size: 1.02rem; font-weight: 740; }
  #rk-inertia-guide .rk-pg-author-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }
  #rk-inertia-guide .rk-pg-author-card { min-width: 0; padding: 16px; border-radius: 14px; background: rgba(255, 255, 255, .075); }
  #rk-inertia-guide .rk-pg-author-card b { display: block; margin-bottom: 5px; color: #8beff7 !important; font-size: .69rem; }
  #rk-inertia-guide .rk-pg-author-card p { margin-bottom: 0; color: #d8e9ed; font-size: .68rem; line-height: 1.55; }
  #rk-inertia-guide .rk-pg-mini-label { margin-top: 22px; color: #8beff7; font-size: .58rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
  #rk-inertia-guide .rk-pg-portals { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 9px; }
  #rk-inertia-guide .rk-pg-portals a { padding: 7px 10px; border: 1px solid rgba(255, 255, 255, .15); border-radius: 999px; color: #ffffff; font-size: .62rem; text-decoration: none; }

  @media (max-width: 900px) {
    #rk-inertia-guide .rk-pg-grid-3,
    #rk-inertia-guide .rk-pg-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #rk-inertia-guide .rk-ic-graphic-layout,
    #rk-inertia-guide .rk-ic-lab-layout { grid-template-columns: 1fr; }
    #rk-inertia-guide .rk-pg-author-layout { grid-template-columns: 1fr; }
    #rk-inertia-guide .rk-pg-author-side { border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, .12); }
  }
  @media (max-width: 720px) {
    #rk-inertia-guide { margin-top: 20px; font-size: 16px; }
    #rk-inertia-guide .rk-pg-shell { border-radius: 19px; }
    #rk-inertia-guide .rk-pg-hero-metrics,
    #rk-inertia-guide .rk-pg-grid-2,
    #rk-inertia-guide .rk-pg-grid-3,
    #rk-inertia-guide .rk-pg-grid-4,
    #rk-inertia-guide .rk-pg-factor-grid,
    #rk-inertia-guide .rk-pg-myth-grid,
    #rk-inertia-guide .rk-pg-sources,
    #rk-inertia-guide .rk-pg-author-cards,
    #rk-inertia-guide .rk-ic-chart-controls { grid-template-columns: 1fr; }
    #rk-inertia-guide .rk-pg-formula-main,
    #rk-inertia-guide .rk-pg-author-head { display: block; }
    #rk-inertia-guide .rk-pg-formula-result { display: inline-block; margin-top: 14px; }
    #rk-inertia-guide .rk-pg-author-mark { display: inline-block; margin-top: 14px; }
    #rk-inertia-guide .rk-pg-table-wrap { overflow: visible; border: 0; background: transparent; }
    #rk-inertia-guide table,
    #rk-inertia-guide thead,
    #rk-inertia-guide tbody,
    #rk-inertia-guide tr,
    #rk-inertia-guide th,
    #rk-inertia-guide td { display: block; width: 100%; }
    #rk-inertia-guide thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    #rk-inertia-guide tbody { display: grid; gap: 13px; }
    #rk-inertia-guide tr { overflow: hidden; border: 1px solid var(--rk-line); border-radius: 16px; background: var(--rk-white); }
    #rk-inertia-guide td { position: relative; min-height: 54px; padding: 31px 15px 12px; border-bottom: 1px solid var(--rk-line); background: #ffffff !important; }
    #rk-inertia-guide td:last-child { border-bottom: 0; }
    #rk-inertia-guide td::before { position: absolute; top: 9px; left: 15px; color: var(--rk-blue); content: attr(data-label); font-size: .56rem; font-weight: 900; letter-spacing: .045em; text-transform: uppercase; }
  }
  @media (max-width: 500px) {
    #rk-inertia-guide .rk-pg-hero { padding-left: 21px; padding-right: 21px; }
    #rk-inertia-guide .rk-pg-content { padding-left: 16px; padding-right: 16px; }
    #rk-inertia-guide .rk-pg-nav { padding-left: 15px; padding-right: 15px; }
    #rk-inertia-guide .rk-pg-nav a { font-size: .61rem; }
    #rk-inertia-guide .rk-pg-tool-body { padding-left: 13px; padding-right: 13px; }
    #rk-inertia-guide .rk-pg-factor { grid-template-columns: 52px minmax(0, 1fr); gap: 13px; padding: 18px 15px; }
    #rk-inertia-guide .rk-ic-concept-tabs,
    #rk-inertia-guide .rk-ic-profile-tabs,
    #rk-inertia-guide .rk-ic-scenario-tabs,
    #rk-inertia-guide .rk-ic-preset-tabs { display: grid; grid-template-columns: 1fr; }
    #rk-inertia-guide .rk-ic-tab { width: 100%; }
    #rk-inertia-guide .rk-ic-layer { grid-template-columns: 44px minmax(0, 1fr); padding: 11px 12px; }
    #rk-inertia-guide .rk-ic-detail-grid,
    #rk-inertia-guide .rk-ic-result-grid,
    #rk-inertia-guide .rk-ic-chart-readout { grid-template-columns: 1fr; }
    #rk-inertia-guide .rk-ic-result-card.is-wide { grid-column: auto; }
    #rk-inertia-guide .rk-ic-chart-svg { min-height: 310px; }
    #rk-inertia-guide .rk-pg-author-main { padding-left: 18px; padding-right: 18px; }
    #rk-inertia-guide .rk-pg-cta-button { width: 100%; text-align: center; }
  }
  @media (prefers-reduced-motion: reduce) {
    #rk-inertia-guide *,
    #rk-inertia-guide *::before,
    #rk-inertia-guide *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
  }
</style>

<article id="rk-inertia-guide" aria-labelledby="rk-ic-visual-title">
  <div class="rk-pg-shell">
    <header class="rk-pg-hero">
      <span class="rk-pg-kicker">Od energii w wylewce do reakcji pomieszczenia</span>
      <div class="rk-pg-hero-title" id="rk-ic-visual-title">Podłoga nie ma jednego <span>„czasu nagrzewania”</span></div>
      <p class="rk-pg-lead">Bezwładność cieplna nie jest jedną liczbą podawaną w godzinach. Tworzą ją pojemność cieplna warstw, opór drogi od rury do pomieszczenia oraz dynamiczna odpowiedź budynku, źródła i sterowania. Rozdzielamy te zjawiska i pokazujemy, co naprawdę dzieje się po zmianie nastawy.</p>

      <div class="rk-pg-hero-tags" aria-label="Zakres poradnika">
        <span class="rk-pg-hero-tag">pojemność cieplna</span>
        <span class="rk-pg-hero-tag">jastrych</span>
        <span class="rk-pg-hero-tag">opór posadzki</span>
        <span class="rk-pg-hero-tag">czas reakcji</span>
        <span class="rk-pg-hero-tag">sterowanie pogodowe</span>
      </div>

      <div class="rk-pg-byline" aria-label="Informacje o publikacji">
        <span><strong>Autor:</strong> Robert Kucharski</span>
        <span><strong>Czas czytania:</strong> około 30 minut</span>
        <span><strong>Aktualizacja techniczna:</strong> 12 września 2026 r.</span>
      </div>

      <div class="rk-pg-hero-metrics" aria-label="Trzy najważniejsze odpowiedzi">
        <div class="rk-pg-hero-metric"><b>Co magazynuje energię?</b><span>Przede wszystkim aktywna masa jastrychu lub płyty, a w mniejszym stopniu pozostałe nagrzewane warstwy.</span></div>
        <div class="rk-pg-hero-metric"><b>Co ogranicza przepływ ciepła?</b><span>Grubość, przewodność i układ warstw pomiędzy rurą a powierzchnią — szczególnie opór okładziny i podkładu.</span></div>
        <div class="rk-pg-hero-metric"><b>Co decyduje o reakcji pokoju?</b><span>Relacja mocy podłogi do strat i zysków pomieszczenia, a także pogoda, przepływ oraz sposób regulacji.</span></div>
      </div>
    </header>

    <nav class="rk-pg-nav" aria-label="Nawigacja po artykule">
      <span class="rk-pg-nav-label">Na skróty</span>
      <div class="rk-pg-nav-track">
        <a href="#rk-ic-odpowiedz">Krótka odpowiedź</a>
        <a href="#rk-ic-trzy-zjawiska">Trzy zjawiska</a>
        <a href="#rk-ic-droga-ciepla">Droga ciepła</a>
        <a href="#rk-ic-magazyn">Magazyn energii</a>
        <a href="#rk-ic-pojemnosc-opor">Pojemność a opór</a>
        <a href="#rk-ic-wzor">Wzór</a>
        <a href="#rk-ic-kalkulator">Kalkulator</a>
        <a href="#rk-ic-czas">Czas nagrzewania</a>
        <a href="#rk-ic-wykres">Wykres reakcji</a>
        <a href="#rk-ic-systemy">Mokry czy suchy</a>
        <a href="#rk-ic-jastrych">Jastrych</a>
        <a href="#rk-ic-okladziny">Okładziny</a>
        <a href="#rk-ic-geometria">Rury i powierzchnia</a>
        <a href="#rk-ic-woda">Temperatura i przepływ</a>
        <a href="#rk-ic-budynek">Budynek i zyski</a>
        <a href="#rk-ic-wylaczenie">Po wyłączeniu</a>
        <a href="#rk-ic-sterowanie">Sterowanie</a>
        <a href="#rk-ic-pompa-ciepla">Pompa ciepła</a>
        <a href="#rk-ic-kociol-bufor">Kocioł i bufor</a>
        <a href="#rk-ic-harmonogram">Harmonogram i taryfa</a>
        <a href="#rk-ic-pomiar">Pomiar instalacji</a>
        <a href="#rk-ic-mity">Mity</a>
        <a href="#rk-ic-checklista">Checklista</a>
        <a href="#rk-ic-wnioski">Wnioski</a>
        <a href="#rk-ic-zrodla">Źródła</a>
        <a href="#rk-ic-faq">FAQ</a>
        <a href="#rk-ic-autor">Autor</a>
      </div>
    </nav>

    <div class="rk-pg-content">
      <section class="rk-pg-section" id="rk-ic-odpowiedz">
        <span class="rk-pg-eyebrow">Odpowiedź w 60 sekund</span>
        <h2>Czym jest bezwładność cieplna ogrzewania podłogowego?</h2>
        <p class="rk-pg-intro"><strong>Bezwładność cieplna ogrzewania podłogowego opisuje opóźnioną zmianę temperatury podłogi i pomieszczenia po zmianie dostarczanej mocy.</strong> Wynika z energii magazynowanej w nagrzewanych warstwach, drogi przewodzenia ciepła oraz odpowiedzi całego budynku. Nie jest stałą cechą wyrażoną jedną liczbą godzin.</p>

        <div class="rk-pg-grid-3">
          <article class="rk-pg-card is-cyan"><div class="rk-pg-card-icon">01</div><h3>Podłoga magazynuje</h3><p>Zmiana średniej temperatury aktywnej masy wymaga dostarczenia albo odebrania energii. Im większa powierzchnia, grubość i objętościowa pojemność cieplna, tym większy magazyn.</p></article>
          <article class="rk-pg-card is-orange"><div class="rk-pg-card-icon">02</div><h3>Warstwy opóźniają przepływ</h3><p>Ciepło musi przejść od wody przez rurę, jastrych, klej, okładzinę i warstwę przyścienną powietrza. Każdy z tych etapów wpływa na temperaturę powierzchni i moc.</p></article>
          <article class="rk-pg-card is-green"><div class="rk-pg-card-icon">03</div><h3>Pomieszczenie odpowiada osobno</h3><p>Temperatura powietrza i temperatura odczuwalna zależą również od strat przez przegrody, wentylacji, nasłonecznienia, wyposażenia oraz zysków od ludzi i urządzeń.</p></article>
        </div>

        <div class="rk-pg-answer"><p><strong>Najważniejszy wniosek:</strong> ta sama wylewka może zachowywać się inaczej w dwóch domach. Jeden budynek potrzebuje małej mocy i szybko reaguje na słońce, drugi ma większe straty, inną okładzinę i inną temperaturę wody. Sama grubość jastrychu nie wystarczy do przewidzenia wyniku.</p></div>

        <p>Punktem wyjścia do oceny zachowania podłogi jest <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne OZC</a> pomieszczeń oraz zdolność powierzchni do oddania wymaganej mocy. Dopiero później analizuje się dynamikę, nastawy i oczekiwany komfort. Zasady obliczania mocy powierzchniowej porządkuje również poradnik o <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">obliczeniach ogrzewania podłogowego według PN-EN 1264</a>.</p>
      </section>

<section class="rk-pg-section" id="rk-ic-trzy-zjawiska">
        <span class="rk-pg-eyebrow">Jedno słowo, trzy różne pytania</span>
        <h2>Pojemność, opór i odpowiedź budynku — czego nie wolno ze sobą mylić?</h2>
        <p class="rk-pg-intro">W potocznym opisie wszystkie trzy właściwości trafiają do jednego worka z napisem „bezwładność”. W obliczeniach trzeba je rozdzielić, ponieważ zmiana jednego parametru nie zawsze działa tak samo na pozostałe.</p>

        <div class="rk-pg-table-wrap">
          <table>
            <thead><tr><th>Zjawisko</th><th>Pytanie, na które odpowiada</th><th>Najważniejsze dane</th><th>Czego nie mówi samo</th></tr></thead>
            <tbody>
              <tr><td data-label="Zjawisko"><strong>Pojemność cieplna</strong></td><td data-label="Pytanie">Ile energii potrzeba, aby zmienić średnią temperaturę analizowanej masy?</td><td data-label="Dane">Objętość, gęstość, ciepło właściwe albo objętościowa pojemność cieplna.</td><td data-label="Ograniczenie">Nie określa szybkości przepływu energii do pokoju.</td></tr>
              <tr><td data-label="Zjawisko"><strong>Opór cieplny</strong></td><td data-label="Pytanie">Jak trudno ciepłu przejść przez warstwy od rury do powierzchni?</td><td data-label="Dane">Grubość, przewodność, styki warstw i konstrukcja.</td><td data-label="Ograniczenie">Nie określa ilości energii zgromadzonej w masie.</td></tr>
              <tr><td data-label="Zjawisko"><strong>Odpowiedź dynamiczna</strong></td><td data-label="Pytanie">Jak w czasie zmieni się powierzchnia i temperatura pomieszczenia?</td><td data-label="Dane">Pojemności, opory, moc, pogoda, straty, zyski, przepływ i sterowanie.</td><td data-label="Ograniczenie">Nie jest uniwersalną liczbą przypisaną do jednego materiału.</td></tr>
            </tbody>
          </table>
        </div>

        <p>Norma ISO 13786 opisuje dynamiczne właściwości cieplne kompletnego elementu budynku, ponieważ wynik zależy od sposobu połączenia materiałów. To ważne rozróżnienie: karta jednego produktu nie opisuje automatycznie zachowania całej ogrzewanej podłogi.</p>
      </section>

      <section class="rk-pg-section" id="rk-ic-droga-ciepla">
        <span class="rk-pg-eyebrow">Narzędzie 1 · interaktywna grafika</span>
        <h2>Jak ciepło przechodzi przez podłogę i gdzie powstaje opóźnienie?</h2>
        <p class="rk-pg-intro">Wybierz pojęcie, a następnie dowolną warstwę. Moduł pokaże, które elementy odpowiadają za magazyn energii, które ograniczają jego przepływ i dlaczego temperatura pokoju nie jest kopią temperatury wody.</p>

        <div class="rk-pg-tool" id="rk-ic-concept-tool">
          <div class="rk-pg-tool-head">
            <span class="rk-pg-tool-kicker">Modułowa mapa zjawisk</span>
            <h3>Trzy rzeczy, które potocznie nazywamy bezwładnością</h3>
            <p>Grafika nie przypisuje jednej oceny całej podłodze. Pokazuje funkcję każdej części oraz zależności między nimi.</p>
          </div>
          <div class="rk-pg-tool-body">
            <div class="rk-ic-concept-tabs" role="group" aria-label="Wybierz analizowane zjawisko">
              <button class="rk-ic-tab is-active" type="button" data-rk-ic-concept="capacity" aria-pressed="true">Pojemność cieplna</button>
              <button class="rk-ic-tab" type="button" data-rk-ic-concept="resistance" aria-pressed="false">Opór i droga ciepła</button>
              <button class="rk-ic-tab" type="button" data-rk-ic-concept="response" aria-pressed="false">Reakcja pomieszczenia</button>
            </div>

            <div class="rk-ic-concept-status" id="rk-ic-concept-status" aria-live="polite">
              <b>Wybrano: pojemność cieplna</b>
              <p>Największy udział ma zwykle aktywna masa jastrychu lub płyty. Pozostałe nagrzewane warstwy także magazynują energię, ale ich udział zależy od grubości i właściwości materiału.</p>
            </div>

            <div class="rk-ic-graphic-layout">
              <div class="rk-ic-layer-stack" aria-label="Warstwy od pomieszczenia do izolacji">
                <button class="rk-ic-layer" type="button" data-rk-ic-layer="room">
                  <span class="rk-ic-layer-number">5</span>
                  <span class="rk-ic-layer-copy"><strong>Pomieszczenie i przegrody</strong><small>Powietrze, ściany, wyposażenie, wentylacja, zyski słoneczne</small></span>
                </button>
                <button class="rk-ic-layer" type="button" data-rk-ic-layer="finish">
                  <span class="rk-ic-layer-number">4</span>
                  <span class="rk-ic-layer-copy"><strong>Okładzina i podkład</strong><small>Płytki, kamień, winyl, drewno, laminat albo wykładzina</small></span>
                </button>
                <button class="rk-ic-layer is-active is-selected" type="button" data-rk-ic-layer="screed">
                  <span class="rk-ic-layer-number">3</span>
                  <span class="rk-ic-layer-copy"><strong>Jastrych lub płyta systemowa</strong><small>Główna aktywna masa otaczająca lub przykrywająca przewody</small></span>
                </button>
                <button class="rk-ic-layer is-active" type="button" data-rk-ic-layer="pipe">
                  <span class="rk-ic-layer-number">2</span>
                  <span class="rk-ic-layer-copy"><strong>Rura i woda</strong><small>Źródło strumienia ciepła, jego rozkład i chwilowa temperatura</small></span>
                </button>
                <button class="rk-ic-layer" type="button" data-rk-ic-layer="insulation">
                  <span class="rk-ic-layer-number">1</span>
                  <span class="rk-ic-layer-copy"><strong>Izolacja i warstwy poniżej</strong><small>Ograniczają przepływ w dół, ale nie eliminują go całkowicie</small></span>
                </button>
              </div>

              <div class="rk-ic-detail" aria-live="polite">
                <span class="rk-pg-tool-kicker">Wybrana warstwa</span>
                <h4 id="rk-ic-layer-title">Jastrych lub płyta systemowa</h4>
                <p id="rk-ic-layer-copy">W ciężkim systemie jastrych stanowi zwykle największą aktywną masę. Zmiana jego średniej temperatury wymaga energii, a po ograniczeniu zasilania część tej energii nadal płynie w stronę powierzchni.</p>
                <div class="rk-ic-detail-grid">
                  <div class="rk-ic-detail-card"><b>Co sprawdzić?</b><p id="rk-ic-layer-check">Rzeczywistą grubość, materiał, położenie rur i zakres konstrukcji uczestniczący w zmianie temperatury.</p></div>
                  <div class="rk-ic-detail-card"><b>Czego nie zakładać?</b><p id="rk-ic-layer-limit">Że sama grubość poda dokładny czas nagrzania pomieszczenia.</p></div>
                </div>
              </div>
            </div>

            <div class="rk-pg-tool-disclaimer"><strong>Jak czytać grafikę:</strong> podświetlenie oznacza istotny udział w wybranym zjawisku, a nie wyłączną odpowiedzialność. Rzeczywista granica aktywnej masy oraz rozkład temperatur wymagają znajomości konstrukcji i warunków brzegowych.</div>
          </div>
        </div>
      </section>

      <section class="rk-pg-section" id="rk-ic-magazyn">
        <span class="rk-pg-eyebrow">Energia nie znika po zamknięciu zaworu</span>
        <h2>Co naprawdę magazynuje ciepło w ogrzewanej podłodze?</h2>
        <p class="rk-pg-intro">Energię magazynuje każda nagrzewana część konstrukcji, ale udział poszczególnych warstw nie jest jednakowy. W typowym systemie mokrym największą pojemność ma zwykle jastrych, ponieważ łączy znaczną objętość z wysoką objętościową pojemnością cieplną.</p>

        <ul class="rk-pg-factor-grid">
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>1</span></span><div class="rk-pg-factor-copy"><h3>Jastrych lub płyta</h3><p>To główny magazyn systemu mokrego. Nie cała grubość musi jednak zmieniać temperaturę jednakowo i w tym samym czasie.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>2</span></span><div class="rk-pg-factor-copy"><h3>Okładzina</h3><p>Także ma masę i ciepło właściwe. Jej wpływ na magazyn trzeba oddzielić od oporu, jaki stawia przepływowi ciepła.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>3</span></span><div class="rk-pg-factor-copy"><h3>Woda i przewody</h3><p>Ich pojemność jest częścią bilansu, ale w ciężkim układzie zwykle nie dominuje nad masą otaczającego jastrychu.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>4</span></span><div class="rk-pg-factor-copy"><h3>Przegrody pomieszczenia</h3><p>Ściany, strop i wyposażenie tworzą osobny magazyn po stronie budynku. Dlatego reakcja pokoju może być wolniejsza niż reakcja powierzchni podłogi.</p></div></li>
        </ul>

        <p>Szczegółowa konstrukcja zależy od systemu oraz wymagań wykonawczych. Warto zestawić ją z poradnikami o <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewce na ogrzewanie podłogowe</a> i <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/">grubości wylewki betonowej</a>. Te informacje opisują geometrię, lecz nie zastępują obliczenia dynamicznego całego pomieszczenia.</p>
      </section>

      <section class="rk-pg-section" id="rk-ic-pojemnosc-opor">
        <span class="rk-pg-eyebrow">Najczęściej pomijane rozróżnienie</span>
        <h2>Czym różni się pojemność cieplna od oporu cieplnego podłogi?</h2>
        <p class="rk-pg-intro"><strong>Pojemność cieplna określa ilość energii potrzebną do zmiany temperatury, natomiast opór cieplny opisuje ograniczenie przepływu energii.</strong> Materiał może mieć małą masę, a jednocześnie stanowić wyraźny opór pomiędzy jastrychem i pokojem.</p>

        <div class="rk-pg-grid-2">
          <article class="rk-pg-card is-cyan"><h3>Duża pojemność</h3><p>Większa ilość energii jest potrzebna do podniesienia temperatury warstwy. Po zmniejszeniu dopływu ta sama warstwa może dłużej oddawać zgromadzoną energię.</p></article>
          <article class="rk-pg-card is-orange"><h3>Duży opór</h3><p>Przy tej samej różnicy temperatur maleje strumień ciepła. Aby uzyskać potrzebną moc, może być wymagana większa różnica temperatur — o ile pozwalają na nią ograniczenia podłogi i źródła.</p></article>
        </div>

        <div class="rk-pg-warning"><p><strong>Dlatego drewno lub wykładzina nie „zmniejszają bezwładności” w prostym znaczeniu.</strong> Mogą dołożyć mniej własnej masy niż kamień, ale równocześnie zwiększyć opór drogi do pomieszczenia. Efekt na czas reakcji pokoju zależy od całego układu, nie od jednej kolumny w tabeli materiałów.</p></div>
      </section>

      <section class="rk-pg-section" id="rk-ic-wzor">
        <span class="rk-pg-eyebrow">Obliczenie magazynu, nie zegara</span>
        <h2>Jak obliczyć energię zgromadzoną w aktywnej warstwie podłogi?</h2>
        <p class="rk-pg-intro">Najprostszy bilans wykorzystuje objętość analizowanej warstwy, jej objętościową pojemność cieplną oraz zmianę średniej temperatury. Obliczenie pokazuje skalę magazynowanej energii, ale nie określa samodzielnie, jak szybko dotrze ona do powierzchni i pomieszczenia.</p>

        <div class="rk-pg-formula">
          <div class="rk-pg-formula-main">
            <div class="rk-pg-formula-equation">E = A × d × C<sub>v</sub> × ΔT / 3,6</div>
            <div class="rk-pg-formula-result">wynik w kWh</div>
          </div>
          <ul>
            <li><strong>A</strong> — aktywna powierzchnia analizowanej warstwy w m²,</li>
            <li><strong>d</strong> — grubość tej warstwy w metrach,</li>
            <li><strong>C<sub>v</sub></strong> — objętościowa pojemność cieplna w MJ/(m³·K),</li>
            <li><strong>ΔT</strong> — zmiana średniej temperatury warstwy w K.</li>
          </ul>
          <p><strong>Przelicznik 3,6</strong> zamienia megadżule na kilowatogodziny. Temperaturowa różnica 1 K ma w tym bilansie tę samą wartość liczbową co różnica 1°C.</p>
        </div>

        <div class="rk-pg-note"><p><strong>Aktywna warstwa jest uproszczeniem.</strong> Rozkład temperatury w przekroju nie jest jednorodny, a część energii przepływa równocześnie do pomieszczenia, w dół konstrukcji i do sąsiednich stref. Dlatego wynik jest bilansem edukacyjnym, nie pełną symulacją budynku.</p></div>
      </section>

      <section class="rk-pg-section" id="rk-ic-kalkulator">
        <span class="rk-pg-eyebrow">Narzędzie 2A · kalkulator energii</span>
        <h2>Kalkulator pojemności cieplnej i energii w warstwie podłogi</h2>
        <p class="rk-pg-intro">Wprowadź geometrię i właściwość analizowanej warstwy. Presety są wyłącznie przykładami poziomu pojemności objętościowej — do oceny produktu należy wpisać wartość z wiarygodnej dokumentacji materiału.</p>

        <div class="rk-pg-tool" id="rk-ic-storage-tool">
          <div class="rk-pg-tool-head">
            <span class="rk-pg-tool-kicker">Kalkulator edukacyjny</span>
            <h3>Ile energii odpowiada zmianie średniej temperatury aktywnej masy?</h3>
            <p>Narzędzie liczy pojemność na metr kwadratowy, całkowitą pojemność analizowanej warstwy oraz energię dla wybranego ΔT.</p>
          </div>
          <div class="rk-pg-tool-body">
            <div class="rk-ic-preset-tabs" role="group" aria-label="Przykładowe profile warstwy">
              <button class="rk-ic-tab is-active" type="button" data-rk-ic-preset="heavy" aria-pressed="true">Przykład ciężki</button>
              <button class="rk-ic-tab" type="button" data-rk-ic-preset="thin" aria-pressed="false">Przykład cieńszy</button>
              <button class="rk-ic-tab" type="button" data-rk-ic-preset="light" aria-pressed="false">Przykład lekki</button>
            </div>

            <div class="rk-ic-lab-layout">
              <div class="rk-ic-controls">
                <div class="rk-ic-field">
                  <div class="rk-ic-label-row"><label for="rk-ic-area">Aktywna powierzchnia</label><output class="rk-ic-output" id="rk-ic-area-output" for="rk-ic-area">100 m²</output></div>
                  <input id="rk-ic-area" type="range" min="20" max="300" step="1" value="100">
                  <div class="rk-ic-scale"><span>20 m²</span><span>300 m²</span></div>
                </div>
                <div class="rk-ic-field">
                  <div class="rk-ic-label-row"><label for="rk-ic-thickness">Grubość analizowanej warstwy</label><output class="rk-ic-output" id="rk-ic-thickness-output" for="rk-ic-thickness">65 mm</output></div>
                  <input id="rk-ic-thickness" type="range" min="20" max="100" step="1" value="65">
                  <div class="rk-ic-scale"><span>20 mm</span><span>100 mm</span></div>
                </div>
                <div class="rk-ic-field">
                  <div class="rk-ic-label-row"><label for="rk-ic-cv">Objętościowa pojemność cieplna C<sub>v</sub></label><output class="rk-ic-output" id="rk-ic-cv-output" for="rk-ic-cv">2,00 MJ/(m³·K)</output></div>
                  <input class="rk-ic-number" id="rk-ic-cv" type="number" min="0.5" max="3" step="0.05" value="2.00" inputmode="decimal">
                  <small class="rk-ic-field-help">Wartość przykładowa. Dla konkretnego materiału użyj danych producenta lub źródła projektowego.</small>
                </div>
                <div class="rk-ic-field">
                  <div class="rk-ic-label-row"><label for="rk-ic-delta">Zmiana średniej temperatury warstwy</label><output class="rk-ic-output" id="rk-ic-delta-output" for="rk-ic-delta">2,0 K</output></div>
                  <input id="rk-ic-delta" type="range" min="0.5" max="8" step="0.1" value="2">
                  <div class="rk-ic-scale"><span>0,5 K</span><span>8 K</span></div>
                </div>
              </div>

              <div class="rk-ic-results" aria-live="polite">
                <h4>Wynik dla zdefiniowanej warstwy</h4>
                <div class="rk-ic-result-grid">
                  <div class="rk-ic-result-card"><span>Objętość warstwy</span><strong id="rk-ic-result-volume">6,50 m³</strong><small>powierzchnia × grubość</small></div>
                  <div class="rk-ic-result-card"><span>Pojemność powierzchniowa</span><strong id="rk-ic-result-areal">36,1 Wh/(m²·K)</strong><small>na każdy 1 K zmiany średniej temperatury</small></div>
                  <div class="rk-ic-result-card"><span>Pojemność całej warstwy</span><strong id="rk-ic-result-capacity">3,61 kWh/K</strong><small>energia potrzebna do zmiany średniej o 1 K</small></div>
                  <div class="rk-ic-result-card"><span>Energia dla wybranego ΔT</span><strong id="rk-ic-result-energy">7,22 kWh</strong><small id="rk-ic-result-context">dla zmiany średniej temperatury o 2,0 K</small></div>
                  <div class="rk-ic-result-card is-wide"><span>Co oznacza wynik?</span><small id="rk-ic-result-explanation">To teoretyczna zmiana energii analizowanej warstwy. Nie jest to cała energia użyteczna dla pomieszczenia ani czas jego nagrzania.</small></div>
                </div>
                <div class="rk-ic-result-note" id="rk-ic-calculator-status">Wynik nie obejmuje nierównomiernego rozkładu temperatury, okładziny, wody, strat w dół, przegród pomieszczenia ani bieżącego oddawania ciepła.</div>
              </div>
            </div>

            <div class="rk-pg-tool-disclaimer"><strong>Zakres narzędzia:</strong> kalkulator odpowiada na pytanie „ile energii wiąże się ze zmianą średniej temperatury wskazanej warstwy?”. Nie odpowiada samodzielnie na pytanie „po ilu godzinach zrobi się cieplej w pokoju?”. Do tego potrzebne są opory cieplne, moc chwilowa, straty i zyski budynku oraz model sterowania.</div>
          </div>
        </div>
      </section>

      <section class="rk-pg-section" id="rk-ic-czas">
        <span class="rk-pg-eyebrow">Zanim podamy godzinę, trzeba zdefiniować zdarzenie</span>
        <h2>Co właściwie oznacza czas nagrzewania ogrzewania podłogowego?</h2>
        <p class="rk-pg-intro">Pytanie „ile czasu nagrzewa się podłogówka?” ma kilka różnych znaczeń. Bez określenia punktu startowego i oczekiwanego rezultatu każda odpowiedź w godzinach może wyglądać konkretnie, ale nie musi być użyteczna.</p>

        <div class="rk-pg-grid-4">
          <article class="rk-pg-card is-cyan"><div class="rk-pg-card-icon">1</div><h3>Reakcja wody</h3><p>Temperatura zasilania może zmienić się szybko, lecz nie oznacza to natychmiastowej zmiany powierzchni.</p></article>
          <article class="rk-pg-card is-orange"><div class="rk-pg-card-icon">2</div><h3>Reakcja powierzchni</h3><p>Liczy się czas dotarcia zaburzenia od rury do wykończenia oraz zmiana rozkładu temperatury w przekroju.</p></article>
          <article class="rk-pg-card is-green"><div class="rk-pg-card-icon">3</div><h3>Reakcja pokoju</h3><p>Wzrost temperatury zależy od różnicy pomiędzy mocą dostarczaną i aktualnymi stratami lub zyskami.</p></article>
          <article class="rk-pg-card is-purple"><div class="rk-pg-card-icon">4</div><h3>Stan ustalony</h3><p>Pełne zbliżenie do nowej równowagi może trwać znacznie dłużej niż pierwsza zauważalna zmiana.</p></article>
        </div>

        <p>Innym zdarzeniem jest rozruch normalnie eksploatowanego domu, innym ponowne ogrzanie wychłodzonego budynku, a jeszcze innym technologiczne wygrzewanie nowej wylewki. Nie należy łączyć tych procedur ani przenosić czasu z jednego przypadku na drugi.</p>
      </section>

      <section class="rk-pg-section" id="rk-ic-wykres">
        <span class="rk-pg-eyebrow">Narzędzie 2B · laboratorium odpowiedzi</span>
        <h2>Interaktywny wykres: co dzieje się po włączeniu, wyłączeniu i pojawieniu się słońca?</h2>
        <p class="rk-pg-intro">Porównaj trzy umowne profile konstrukcji i trzy zdarzenia. Linie są znormalizowanym modelem edukacyjnym: pokazują kierunek oraz opóźnienie zmian, ale nie są prognozą konkretnego domu.</p>

        <div class="rk-pg-tool" id="rk-ic-response-tool">
          <div class="rk-pg-tool-head">
            <span class="rk-pg-tool-kicker">Interaktywny model jakościowy</span>
            <h3>Zobacz różnicę między sygnałem grzania, powierzchnią podłogi i reakcją pokoju</h3>
            <p>Zmień konstrukcję, wybierz zdarzenie i przesuń czas. Wartości procentowe opisują względną odpowiedź modelu, nie temperaturę w °C.</p>
          </div>
          <div class="rk-pg-tool-body">
            <div class="rk-ic-chart-controls">
              <div class="rk-ic-chart-control-group">
                <b>Profil konstrukcji</b>
                <div class="rk-ic-profile-tabs" role="group" aria-label="Wybierz profil konstrukcji">
                  <button class="rk-ic-tab is-active" type="button" data-rk-ic-profile="heavy" aria-pressed="true">Mokry ciężki</button>
                  <button class="rk-ic-tab" type="button" data-rk-ic-profile="thin" aria-pressed="false">Mokry cieńszy</button>
                  <button class="rk-ic-tab" type="button" data-rk-ic-profile="dry" aria-pressed="false">Suchy lekki</button>
                </div>
              </div>
              <div class="rk-ic-chart-control-group">
                <b>Zdarzenie od godziny 0</b>
                <div class="rk-ic-scenario-tabs" role="group" aria-label="Wybierz zdarzenie">
                  <button class="rk-ic-tab is-active" type="button" data-rk-ic-scenario="start" aria-pressed="true">Włączenie mocy</button>
                  <button class="rk-ic-tab" type="button" data-rk-ic-scenario="stop" aria-pressed="false">Odcięcie mocy</button>
                  <button class="rk-ic-tab" type="button" data-rk-ic-scenario="sun" aria-pressed="false">Słońce po 6 h</button>
                </div>
              </div>
            </div>

            <div class="rk-ic-chart-shell">
              <div class="rk-ic-chart-wrap">
                <svg class="rk-ic-chart-svg" id="rk-ic-response-chart" role="img" aria-labelledby="rk-ic-chart-title rk-ic-chart-desc">
                  <title id="rk-ic-chart-title">Względna odpowiedź ogrzewanej podłogi w czasie</title>
                  <desc id="rk-ic-chart-desc">Wykres porównuje sygnał grzania, opóźnioną odpowiedź powierzchni podłogi i dalszą odpowiedź pomieszczenia.</desc>
                </svg>
              </div>
              <div class="rk-ic-legend" aria-label="Legenda wykresu">
                <span class="rk-ic-legend-item is-input"><span class="rk-ic-legend-swatch"></span>Sygnał grzania lub zysk</span>
                <span class="rk-ic-legend-item"><span class="rk-ic-legend-swatch"></span>Odpowiedź powierzchni</span>
                <span class="rk-ic-legend-item is-room"><span class="rk-ic-legend-swatch"></span>Względny efekt w pomieszczeniu</span>
              </div>
            </div>

            <div class="rk-ic-time-control">
              <div class="rk-ic-label-row"><label for="rk-ic-time">Odczyt w wybranej chwili</label><output class="rk-ic-output" id="rk-ic-time-output" for="rk-ic-time">8,0 h</output></div>
              <input id="rk-ic-time" type="range" min="0" max="24" step="0.25" value="8">
              <div class="rk-ic-scale"><span>0 h</span><span>12 h</span><span>24 h</span></div>
              <div class="rk-ic-chart-readout" aria-live="polite">
                <div class="rk-ic-readout"><span>Sygnał / zysk</span><strong id="rk-ic-readout-input">100%</strong></div>
                <div class="rk-ic-readout"><span>Powierzchnia</span><strong id="rk-ic-readout-floor">70%</strong></div>
                <div class="rk-ic-readout"><span>Pomieszczenie</span><strong id="rk-ic-readout-room">52%</strong></div>
              </div>
            </div>

            <div class="rk-ic-chart-status" id="rk-ic-chart-status" aria-live="polite">W ciężkim systemie po zmianie sygnału powierzchnia narasta łagodniej, a odpowiedź pomieszczenia jest dodatkowo opóźniona przez straty i pojemność budynku.</div>
            <div class="rk-pg-tool-disclaimer"><strong>Ograniczenie modelu:</strong> profile używają umownych stałych czasowych tylko do porównania przebiegów. Nie wynikają z danych kalkulatora i nie zastępują symulacji konkretnego przekroju, pomieszczenia, pogody ani automatyki. Wartości 63% czy 95% odpowiedzi modelu nie są temperaturami ani gwarantowanym czasem nagrzania domu.</div>
          </div>
        </div>

        <aside class="rk-pg-cta" aria-label="Projekt ogrzewania podłogowego">
          <span class="rk-pg-cta-kicker">Kalkulator policzył magazyn. Projekt musi policzyć cały układ</span>
          <h3>Bezwładności nie dobiera się osobno od mocy, temperatury zasilania i sterowania.</h3>
          <p>Ta sama wylewka może zachowywać się inaczej w dwóch domach, ponieważ zmieniają się straty pomieszczeń, powierzchnia czynna, rozstaw rur, opór okładziny, temperatura wody, przepływy i sposób pracy źródła. W projekcie łączymy te parametry, zamiast zgadywać czas nagrzewania z samej grubości jastrychu.</p>
          <a class="rk-pg-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Sprawdź projekt ogrzewania podłogowego</a>
        </aside>
      </section>

<section class="rk-pg-section" id="rk-ic-systemy">
        <span class="rk-pg-eyebrow">Konstrukcja zmienia charakter odpowiedzi</span>
        <h2>System mokry ciężki, mokry cieńszy czy suchy — który reaguje szybciej?</h2>
        <p class="rk-pg-intro">System o mniejszej aktywnej masie zwykle szybciej zmienia temperaturę powierzchni, ale nie oznacza to automatycznie większej mocy ani niższego zużycia energii. Każdy wariant trzeba sprawdzić pod kątem mocy, temperatury powierzchni, oporu warstw i współpracy ze źródłem.</p>

        <div class="rk-pg-table-wrap">
          <table>
            <thead><tr><th>Profil konstrukcji</th><th>Aktywna masa</th><th>Typowa odpowiedź</th><th>Mocna strona</th><th>Co trzeba sprawdzić</th></tr></thead>
            <tbody>
              <tr><td data-label="Profil"><strong>System mokry ciężki</strong></td><td data-label="Masa">Duża warstwa otaczająca rury</td><td data-label="Odpowiedź">Łagodna zmiana i dłuższe oddawanie energii po ograniczeniu zasilania</td><td data-label="Mocna strona">Stabilność przy ciągłej, niskotemperaturowej pracy</td><td data-label="Sprawdź">Ryzyko przegrzewania od zysków, strategię obniżeń i rzeczywisty przekrój</td></tr>
              <tr><td data-label="Profil"><strong>System mokry cieńszy</strong></td><td data-label="Masa">Mniejsza niż w klasycznym ciężkim układzie</td><td data-label="Odpowiedź">Pośrednia, zależna od położenia rur oraz warstw nad nimi</td><td data-label="Mocna strona">Kompromis między akumulacją, wysokością konstrukcji i reakcją</td><td data-label="Sprawdź">Minimalną grubość, nośność, technologię wykonania i dokumentację systemu</td></tr>
              <tr><td data-label="Profil"><strong>System suchy lekki</strong></td><td data-label="Masa">Mała, często z płytami rozprowadzającymi</td><td data-label="Odpowiedź">Szybsza zmiana temperatury powierzchni i szybsze wychłodzenie</td><td data-label="Mocna strona">Modernizacje, ograniczona wysokość i potrzeba szybszej regulacji</td><td data-label="Sprawdź">Równomierność temperatury, moc jednostkową, akustykę i okładzinę</td></tr>
            </tbody>
          </table>
        </div>

        <p>W modernizowanych budynkach rozwiązaniem może być <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-wodne-bez-wylewki/">wodne ogrzewanie podłogowe bez tradycyjnej wylewki</a>. Nie należy jednak wybierać go wyłącznie dlatego, że „jest szybkie”. Liczy się kompletna charakterystyka cieplna, konstrukcyjna i hydrauliczna.</p>
      </section>

      <section class="rk-pg-section" id="rk-ic-jastrych">
        <span class="rk-pg-eyebrow">Grubość to tylko jedna zmienna</span>
        <h2>Jak rodzaj i grubość jastrychu wpływają na bezwładność?</h2>
        <p class="rk-pg-intro">Zwiększenie grubości analizowanej warstwy zwiększa jej objętość, a więc również pojemność cieplną. Jednocześnie znaczenie ma przewodność, położenie rur, powierzchnia wymiany i sposób związania warstw. Dwie podłogi o tej samej całkowitej grubości nie muszą odpowiadać identycznie.</p>

        <div class="rk-pg-grid-3">
          <article class="rk-pg-card is-cyan"><h3>Grubość nad rurą</h3><p>Wpływa na drogę przewodzenia do powierzchni i rozkład temperatury. Nie wolno utożsamiać jej z całkowitą grubością jastrychu bez sprawdzenia położenia przewodu.</p></article>
          <article class="rk-pg-card is-orange"><h3>Właściwości materiału</h3><p>Do bilansu dynamicznego potrzebne są co najmniej pojemność cieplna i przewodność. Sama etykieta „cementowy” lub „anhydrytowy” nie daje pełnej odpowiedzi.</p></article>
          <article class="rk-pg-card is-green"><h3>Warunki brzegowe</h3><p>Izolacja od dołu, sąsiednie pomieszczenie, temperatura gruntu albo stropu i okładzina zmieniają kierunki oraz intensywność przepływu energii.</p></article>
        </div>

        <p>Nie należy też mieszać codziennej regulacji z technologicznym uruchomieniem świeżej posadzki. Procedura wygrzewania wynika z rodzaju jastrychu, wieku, zaleceń wykonawcy i dokumentacji materiału, a nie z oczekiwanego harmonogramu ogrzewania domu.</p>
      </section>

      <section class="rk-pg-section" id="rk-ic-okladziny">
        <span class="rk-pg-eyebrow">Okładzina ma dwa różne zadania w bilansie</span>
        <h2>Płytki, winyl, drewno i wykładzina — jak naprawdę wpływają na reakcję podłogi?</h2>
        <p class="rk-pg-intro">Okładzinę trzeba opisać co najmniej przez jej opór cieplny, grubość, pojemność oraz dopuszczalną temperaturę pracy. Nieprawidłowe jest proste założenie, że materiał izolujący zawsze skraca czas reakcji, ponieważ jego mała masa może iść w parze z ograniczeniem mocy przekazywanej do pomieszczenia.</p>

        <div class="rk-pg-table-wrap">
          <table>
            <thead><tr><th>Okładzina</th><th>Wpływ na przepływ ciepła</th><th>Wpływ dynamiczny</th><th>Najważniejsza weryfikacja</th></tr></thead>
            <tbody>
              <tr><td data-label="Okładzina"><strong>Płytki lub kamień</strong></td><td data-label="Przepływ">Zwykle korzystna droga przewodzenia przy poprawnym kleju i typowej grubości</td><td data-label="Dynamika">Okładzina może dołożyć masę, ale główny magazyn nadal często stanowi jastrych</td><td data-label="Weryfikacja">Grubość, klej, dylatacje i dopuszczalna temperatura powierzchni</td></tr>
              <tr><td data-label="Okładzina"><strong>Winyl</strong></td><td data-label="Przepływ">Cienka warstwa może mieć niewielki opór, lecz wynik zależy także od podkładu</td><td data-label="Dynamika">Mała własna masa nie usuwa bezwładności warstw znajdujących się niżej</td><td data-label="Weryfikacja">Łączny opór zestawu i limit temperatury producenta</td></tr>
              <tr><td data-label="Okładzina"><strong>Drewno</strong></td><td data-label="Przepływ">Zwykle większy opór niż przy płytkach; znaczenie ma gatunek, grubość i budowa</td><td data-label="Dynamika">Może ograniczyć szybkość przekazywania mocy do pokoju mimo mniejszej własnej masy</td><td data-label="Weryfikacja">Łączny opór, stabilność wymiarowa, wilgotność i dopuszczalna temperatura</td></tr>
              <tr><td data-label="Okładzina"><strong>Wykładzina</strong></td><td data-label="Przepływ">Wykładzina i podkład mogą utworzyć istotny opór cieplny</td><td data-label="Dynamika">Nie należy wyciągać wniosku o szybszym ogrzaniu pokoju wyłącznie z małej masy</td><td data-label="Weryfikacja">Łączny opór deklarowany dla całego zestawu oraz dopuszczenie do podłogówki</td></tr>
            </tbody>
          </table>
        </div>

        <p>Osobną analizę gatunków, budowy deski i ograniczeń wykonawczych zawiera poradnik <a href="https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/">jak wybrać drewno na ogrzewanie podłogowe</a>. W projekcie opór wykończenia trzeba wprowadzić do obliczeń mocy, zamiast dopisywać go dopiero po wykonaniu pętli.</p>
      </section>

      <section class="rk-pg-section" id="rk-ic-geometria">
        <span class="rk-pg-eyebrow">Geometria wpływa na moc i rozkład temperatury</span>
        <h2>Rozstaw, głębokość rur i powierzchnia czynna — czy zmieniają bezwładność?</h2>
        <p class="rk-pg-intro">Nie zmieniają pojemności cieplnej materiału, ale zmieniają sposób dostarczania energii do konstrukcji. Dlatego mogą wpływać na temperaturę powierzchni, równomierność, wymaganą temperaturę wody i obserwowany czas reakcji.</p>

        <ul class="rk-pg-factor-grid">
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>1</span></span><div class="rk-pg-factor-copy"><h3>Rozstaw rur</h3><p>Mniejszy rozstaw może poprawić równomierność i zwiększyć zdolność oddawania mocy przy danym parametrze. Nie „usuwa” jednak masy jastrychu.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>2</span></span><div class="rk-pg-factor-copy"><h3>Położenie przewodu</h3><p>Większa odległość od rury do powierzchni wydłuża drogę przewodzenia. Znaczenie ma także kontakt przewodu z warstwą rozprowadzającą.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>3</span></span><div class="rk-pg-factor-copy"><h3>Powierzchnia czynna</h3><p>Meble stałe, zabudowa i strefy nieogrzewane ograniczają fragment podłogi, który rzeczywiście może przekazać moc do pokoju.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>4</span></span><div class="rk-pg-factor-copy"><h3>Długość pętli</h3><p>Wpływa na opór hydrauliczny, rozkład temperatury wody i możliwy przepływ. To pośrednio zmienia chwilową moc dostarczaną do podłogi.</p></div></li>
        </ul>

        <p>Rozstaw powinien wynikać z obliczeń, co szerzej pokazuje porównanie <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstawu rur co 10 i 15 cm</a>. Hydrauliczny wpływ geometrii trzeba połączyć z poradnikami o <a href="https://projekt-ogrzewania.pl/petla-grzewcza/">pętli grzewczej</a> i <a href="https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/">średnicach rur ogrzewania podłogowego</a>.</p>
      </section>

      <section class="rk-pg-section" id="rk-ic-woda">
        <span class="rk-pg-eyebrow">Moc chwilowa nie jest tym samym co pojemność</span>
        <h2>Jak temperatura zasilania, ΔT i przepływ wpływają na czas reakcji?</h2>
        <p class="rk-pg-intro">Wyższa temperatura wody może zwiększyć chwilową różnicę temperatur i moc przekazywaną do podłogi, lecz nie zmienia pojemności cieplnej jastrychu. Zwiększanie parametru nie jest więc sposobem na „zmniejszenie bezwładności”, a jego dopuszczalność trzeba ocenić razem z powierzchnią, okładziną i źródłem.</p>

        <div class="rk-pg-grid-3">
          <article class="rk-pg-card is-orange"><h3>Temperatura zasilania</h3><p>Powinna wynikać z wymaganej mocy i charakterystyki podłogi. Nie ma jednej wartości, która będzie optymalna dla każdego domu i każdej pogody.</p></article>
          <article class="rk-pg-card is-cyan"><h3>Różnica zasilanie–powrót</h3><p>Jest powiązana z mocą i przepływem. Zmiana ΔT bez sprawdzenia pozostałych danych może oznaczać inny rozkład temperatury wzdłuż pętli.</p></article>
          <article class="rk-pg-card is-green"><h3>Przepływ</h3><p>Wpływa na transport energii i warunki wymiany w rurach. Zbyt mały strumień może ograniczyć moc, ale maksymalny bieg pompy nie naprawia błędnej geometrii.</p></article>
        </div>

        <p>Powiązania te opisują szerzej poradniki o <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">różnicy temperatur zasilania i powrotu</a>, <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompie obiegowej w podłogówce</a> oraz <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/">optymalnej temperaturze ogrzewania podłogowego</a>. Ograniczenia powierzchni i źródła trzeba dodatkowo zestawić z <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalną temperaturą zasilania podłogówki</a>.</p>
      </section>

      <section class="rk-pg-section" id="rk-ic-budynek">
        <span class="rk-pg-eyebrow">Podłoga pracuje wewnątrz dynamicznego budynku</span>
        <h2>Dlaczego dwa pomieszczenia z taką samą podłogą reagują inaczej?</h2>
        <p class="rk-pg-intro">Temperatura pomieszczenia zmienia się zgodnie z bilansem pomiędzy mocą dostarczaną, stratami i zyskami. Dlatego ten sam układ warstw nie gwarantuje takiego samego przebiegu w salonie z dużymi przeszkleniami i w niewielkiej sypialni.</p>

        <div class="rk-pg-grid-3">
          <article class="rk-pg-card is-cyan"><h3>Straty budynku</h3><p>Zmieniają się wraz z temperaturą zewnętrzną, wiatrem, wentylacją i temperaturą sąsiednich stref. Moc potrzebna o świcie może być inna niż po południu.</p></article>
          <article class="rk-pg-card is-orange"><h3>Zyski słoneczne</h3><p>Potrafią pojawić się szybciej niż ciężka podłoga ograniczy oddawanie wcześniej zgromadzonej energii. To jeden z głównych mechanizmów przegrzewania.</p></article>
          <article class="rk-pg-card is-green"><h3>Pojemność przegród</h3><p>Ściany, stropy i wyposażenie pochłaniają część energii. Temperatura powietrza, powierzchni i temperatura odczuwalna nie zmieniają się identycznie.</p></article>
        </div>

        <p>Ryzyko trzeba analizować szczególnie przy dużej ekspozycji słonecznej. Osobny poradnik pokazuje, jak projektować <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/">ogrzewanie podłogowe w domu z dużymi przeszkleniami</a>. Podstawą pozostaje obliczenie <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">strat ciepła budynku</a>, a nie przypisanie jednej stałej czasowej wszystkim pokojom.</p>
      </section>

      <section class="rk-pg-section" id="rk-ic-wylaczenie">
        <span class="rk-pg-eyebrow">Termostat odcina dopływ, nie usuwa energii</span>
        <h2>Co dzieje się po wyłączeniu ogrzewania podłogowego?</h2>
        <p class="rk-pg-intro">Po zamknięciu siłownika albo wyłączeniu źródła dopływ nowej energii maleje, ale rozgrzany przekrój nadal wyrównuje temperaturę. Ciepło płynie z cieplejszych obszarów jastrychu w stronę powierzchni oraz pozostałych części konstrukcji.</p>

        <ol class="rk-pg-factor-grid">
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>1</span></span><div class="rk-pg-factor-copy"><h3>Sygnał zostaje odcięty</h3><p>Pompa, zawór lub siłownik zmienia stan. To informacja dla hydrauliki, nie natychmiastowa zmiana temperatury całej podłogi.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>2</span></span><div class="rk-pg-factor-copy"><h3>Woda i rura reagują</h3><p>Temperatura czynnika zaczyna się zmieniać, lecz jastrych w pobliżu przewodu zachowuje część wcześniej dostarczonej energii.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>3</span></span><div class="rk-pg-factor-copy"><h3>Powierzchnia nadal oddaje ciepło</h3><p>Strumień nie znika skokowo. Jego tempo zależy od rozkładu temperatury, oporów i warunków w pomieszczeniu.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>4</span></span><div class="rk-pg-factor-copy"><h3>Pokój dochodzi do nowej równowagi</h3><p>Jeżeli równocześnie pojawi się słońce albo duże zyski wewnętrzne, temperatura może jeszcze wzrosnąć mimo odcięcia grzania.</p></div></li>
        </ol>

        <div class="rk-pg-warning"><p><strong>Przegrzanie nie jest automatycznym dowodem wadliwego termostatu.</strong> Trzeba sprawdzić krzywą grzewczą, temperaturę wody, strefowanie, położenie czujnika, histerezę, pogodę, zyski i to, ile energii wcześniej zgromadzono w konstrukcji.</p></div>
      </section>

      <section class="rk-pg-section" id="rk-ic-sterowanie">
        <span class="rk-pg-eyebrow">Regulacja ma prowadzić, nie walczyć z podłogą</span>
        <h2>Jak sterować ogrzewaniem podłogowym o dużej bezwładności?</h2>
        <p class="rk-pg-intro">Nie istnieje jeden obowiązkowy algorytm. Najczęściej dobrze działa stabilna regulacja temperatury zasilania dopasowana do pogody, uzupełniona rozsądną korektą pomieszczeniową. Szczegóły zależą od źródła, stref i sposobu użytkowania domu.</p>

        <div class="rk-pg-table-wrap">
          <table>
            <thead><tr><th>Sposób regulacji</th><th>Co rzeczywiście robi</th><th>Kiedy pomaga</th><th>Na co uważać</th></tr></thead>
            <tbody>
              <tr><td data-label="Regulacja"><strong>Krzywa grzewcza</strong></td><td data-label="Funkcja">Dostosowuje temperaturę zasilania do temperatury zewnętrznej</td><td data-label="Zastosowanie">Ogranicza potrzebę gwałtownego włączania i wyłączania dużej mocy</td><td data-label="Uwaga">Zwykła pogodówka nie przewiduje automatycznie przyszłej pogody</td></tr>
              <tr><td data-label="Regulacja"><strong>Termostat dwustanowy</strong></td><td data-label="Funkcja">Zgłasza zapotrzebowanie albo je odcina</td><td data-label="Zastosowanie">Może pełnić funkcję ogranicznika lub regulować strefę przy dobrze dobranym cyklu</td><td data-label="Uwaga">Duża histereza i zbyt wysoki parametr mogą zwiększać wahania</td></tr>
              <tr><td data-label="Regulacja"><strong>TPI/PWM, PI lub PID</strong></td><td data-label="Funkcja">Dawkuje zapotrzebowanie w czasie albo koryguje sygnał według błędu</td><td data-label="Zastosowanie">Może ograniczyć przestrzelenie przy odpowiednim dostrojeniu</td><td data-label="Uwaga">Algorytm może nadal sterować binarnym siłownikiem impulsowo</td></tr>
              <tr><td data-label="Regulacja"><strong>Predykcyjna</strong></td><td data-label="Funkcja">Wykorzystuje model, historię, harmonogram lub prognozę</td><td data-label="Zastosowanie">Może wcześniej reagować na przewidywalne zmiany</td><td data-label="Uwaga">Błędny model lub dane nie gwarantują lepszego wyniku</td></tr>
            </tbody>
          </table>
        </div>

        <p>Najpierw należy ustawić <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywą grzewczą podłogówki</a> i zrozumieć działanie <a href="https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/">sterowania pogodowego</a>. Dopiero później ocenia się rolę <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">termostatów pokojowych</a>, <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">siłowników termoelektrycznych</a> i <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">sterowania strefowego</a>.</p>

        <div class="rk-pg-note"><p><strong>Pompa obiegowa nie zastępuje regulacji temperatury.</strong> Jej tryb wpływa na przepływ i różnicę ciśnień. Zmniejszenie obrotów może zmienić transport mocy, ale nie jest uniwersalnym sposobem prowadzenia temperatury pomieszczeń.</p></div>
      </section>

      <section class="rk-pg-section" id="rk-ic-pompa-ciepla">
        <span class="rk-pg-eyebrow">Korzyść wynika głównie z niskiej temperatury</span>
        <h2>Bezwładność podłogówki a pompa ciepła — kiedy pomaga, a kiedy przeszkadza?</h2>
        <p class="rk-pg-intro">Ogrzewanie podłogowe dobrze współpracuje z pompą ciepła przede wszystkim dlatego, że może oddawać wymaganą moc przy niskiej temperaturze zasilania. Duża aktywna masa może stabilizować odbiór energii, lecz nie jest zawsze i w każdych warunkach „idealna”.</p>

        <div class="rk-pg-grid-2">
          <article class="rk-pg-card is-green"><h3>Kiedy masa pomaga</h3><ul><li>Gdy instalacja pracuje długo i stabilnie z małą temperaturą zasilania.</li><li>Gdy aktywna objętość ogranicza krótkie cykle źródła.</li><li>Gdy zmiany obciążenia są łagodne, a krzywa grzewcza poprawnie ustawiona.</li></ul></article>
          <article class="rk-pg-card is-orange"><h3>Kiedy może utrudniać</h3><ul><li>Gdy duże zyski słoneczne pojawiają się po wcześniejszym naładowaniu podłogi.</li><li>Gdy strefy zamykają większość przepływu wymaganego przez pompę ciepła.</li><li>Gdy użytkownik stosuje głębokie i krótkie obniżenia temperatury.</li></ul></article>
        </div>

        <p>W projekcie trzeba połączyć wymagania źródła z charakterystyką odbiornika, co opisuje poradnik o <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projekcie ogrzewania podłogowego z pompą ciepła</a>. Niska temperatura jest korzystna, ale hasło „35°C zawsze jest idealne” trzeba zastąpić obliczeniem — więcej w analizie <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">niskiej temperatury zasilania pompy ciepła</a>.</p>
      </section>

      <section class="rk-pg-section" id="rk-ic-kociol-bufor">
        <span class="rk-pg-eyebrow">Masa podłogi nie jest zabezpieczeniem kotła</span>
        <h2>Czy bezwładność podłogi może zastąpić bufor przy kotle na paliwo stałe?</h2>
        <p class="rk-pg-intro"><strong>Nie należy traktować podłogi jako zamiennika bufora hydraulicznego ani elementów bezpieczeństwa.</strong> Konstrukcja może przyjąć i oddać pewną ilość energii, ale jej odbiór jest ograniczony temperaturą powierzchni, komfortem, przepływem, stanem stref i chwilowymi stratami budynku.</p>

        <div class="rk-pg-grid-3">
          <article class="rk-pg-card is-orange"><h3>Podłoga</h3><p>Jest emiterem i magazynem o ograniczonej temperaturze. Nie można bez końca zwiększać jej energii ani zakładać, że każda pętla zawsze pozostanie otwarta.</p></article>
          <article class="rk-pg-card is-cyan"><h3>Bufor</h3><p>Ma zdefiniowaną objętość, temperatury i funkcję hydrauliczną lub energetyczną. Jego dobór zależy od źródła, wymaganych przepływów i strategii pracy.</p></article>
          <article class="rk-pg-card is-green"><h3>Zabezpieczenia</h3><p>Ochrona powrotu, odprowadzenie nadmiaru energii i pozostałe wymagania muszą wynikać z dokumentacji kotła i przepisów, niezależnie od masy podłogi.</p></article>
        </div>

        <p>Funkcję i ograniczenia zbiornika wyjaśnia poradnik <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">bufor ciepła w ogrzewaniu podłogowym</a>. Przy źródle stałopalnym trzeba osobno przeanalizować układ opisany w artykule <a href="https://projekt-ogrzewania.pl/kotly-na-paliwa-stale-w-ogrzewaniu-podlogowym/">kotły na paliwa stałe a podłogówka</a> oraz sposób przygotowania temperatury przez <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">zawór mieszający</a>.</p>
      </section>

      <section class="rk-pg-section" id="rk-ic-harmonogram">
        <span class="rk-pg-eyebrow">Obniżenie ma sens tylko w odpowiednim horyzoncie</span>
        <h2>Obniżenie nocne i tania taryfa — czy warto „ładować” podłogę?</h2>
        <p class="rk-pg-intro">Nie ma jednej poprawnej wartości obniżenia ani jednego czasu wcześniejszego startu. Wynik zależy od długości przerwy, strat budynku, pogody, pojemności konstrukcji, ceny energii, źródła i dopuszczalnej zmiany komfortu.</p>

        <div class="rk-pg-table-wrap">
          <table>
            <thead><tr><th>Strategia</th><th>Możliwa korzyść</th><th>Możliwe ograniczenie</th><th>Jak oceniać</th></tr></thead>
            <tbody>
              <tr><td data-label="Strategia"><strong>Stała temperatura</strong></td><td data-label="Korzyść">Stabilna praca i małe wahania</td><td data-label="Ograniczenie">Brak wykorzystania długich okresów nieobecności</td><td data-label="Ocena">Porównać zużycie i komfort w podobnych warunkach pogodowych</td></tr>
              <tr><td data-label="Strategia"><strong>Niewielkie obniżenie</strong></td><td data-label="Korzyść">Może ograniczyć średnią różnicę temperatur przy dłuższej przerwie</td><td data-label="Ograniczenie">Powrót do nastawy jest opóźniony</td><td data-label="Ocena">Zmieniać jedną nastawę i obserwować pełny cykl</td></tr>
              <tr><td data-label="Strategia"><strong>Głębokie krótkie obniżenie</strong></td><td data-label="Korzyść">Często niewielka przy ciężkim systemie</td><td data-label="Ograniczenie">Ryzyko braku spadku przed końcem okresu i późniejszego forsowania parametru</td><td data-label="Ocena">Nie przyjmować stałych godzin bez pomiaru budynku</td></tr>
              <tr><td data-label="Strategia"><strong>Ładowanie w tańszej taryfie</strong></td><td data-label="Korzyść">Przesunięcie części poboru na tańsze godziny</td><td data-label="Ograniczenie">Wyższa temperatura może obniżyć sprawność pompy ciepła i zwiększyć przegrzewanie</td><td data-label="Ocena">Bilansować cenę, COP, straty, komfort i realną użyteczną pojemność</td></tr>
            </tbody>
          </table>
        </div>

        <div class="rk-pg-answer"><p><strong>Energia policzona przez kalkulator nie jest w całości dowolnie użytecznym magazynem taryfowym.</strong> Część przepływa do pomieszczenia już podczas ładowania, część w innych kierunkach, a dopuszczalny wzrost temperatury ogranicza komfort i charakterystyka podłogi.</p></div>
      </section>

      <section class="rk-pg-section" id="rk-ic-pomiar">
        <span class="rk-pg-eyebrow">Diagnoza istniejącej instalacji</span>
        <h2>Jak zmierzyć rzeczywisty czas reakcji własnej podłogówki?</h2>
        <p class="rk-pg-intro">Najbardziej użyteczna odpowiedź pochodzi z równoczesnego zapisu sygnału sterującego, temperatur wody, powierzchni, pomieszczenia i pogody. Jedna fotografia termometru nie pokazuje opóźnienia ani przyczyny zmiany.</p>

        <ol class="rk-pg-factor-grid">
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>1</span></span><div class="rk-pg-factor-copy"><h3>Wybierz stabilny punkt startowy</h3><p>Nie rozpoczynaj testu bezpośrednio po wietrzeniu, dużym nasłonecznieniu albo gwałtownej zmianie wszystkich nastaw.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>2</span></span><div class="rk-pg-factor-copy"><h3>Zapisuj temperaturę zewnętrzną</h3><p>Bez pogody trudno odróżnić reakcję instalacji od równoczesnej zmiany strat budynku.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>3</span></span><div class="rk-pg-factor-copy"><h3>Mierz zasilanie i powrót</h3><p>Najlepiej w stałych punktach i w krótkim, regularnym interwale. Zapisz także stan źródła i pompy.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>4</span></span><div class="rk-pg-factor-copy"><h3>Obserwuj powierzchnię</h3><p>Pomiar wykonuj w tym samym miejscu, z uwzględnieniem mebli, nasłonecznienia i niepewności czujnika.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>5</span></span><div class="rk-pg-factor-copy"><h3>Zapisuj temperaturę pomieszczenia</h3><p>Czujnik nie powinien znajdować się przy słońcu, drzwiach, nawiewie ani lokalnym źródle ciepła.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>6</span></span><div class="rk-pg-factor-copy"><h3>Zmień jeden parametr</h3><p>Jednoczesna korekta krzywej, przepływów, harmonogramu i termostatów uniemożliwia przypisanie rezultatu do przyczyny.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>7</span></span><div class="rk-pg-factor-copy"><h3>Obserwuj pełny przebieg</h3><p>Rejestruj do czasu wyraźnego ustabilizowania, najlepiej przez reprezentatywny cykl pogody, a nie przez z góry narzuconą liczbę godzin.</p></div></li>
          <li class="rk-pg-factor"><span class="rk-pg-step-badge"><span>8</span></span><div class="rk-pg-factor-copy"><h3>Porównuj podobne dni</h3><p>Wnioski z dwóch okresów mają sens, gdy zyski, użytkowanie i warunki zewnętrzne są możliwie zbliżone.</p></div></li>
        </ol>

        <p>Jeżeli przepływy są niestabilne albo część pętli nie pracuje, najpierw trzeba zweryfikować <a href="https://projekt-ogrzewania.pl/obieg-grzewczy-w-wodnym-ogrzewaniu-podlogowym/">obieg grzewczy podłogówki</a> i hydraulikę rozdzielacza. Analizowanie bezwładności układu z niedrożną albo zapowietrzoną pętlą prowadzi do błędnych wniosków.</p>
      </section>

      <section class="rk-pg-section" id="rk-ic-mity">
        <span class="rk-pg-eyebrow">Skróty myślowe, które psują diagnozę</span>
        <h2>Najczęstsze mity o bezwładności cieplnej podłogówki</h2>
        <div class="rk-pg-myth-grid">
          <article class="rk-pg-myth-card"><span class="rk-pg-myth-label">Mit 1</span><h3>„Płytki zwiększają bezwładność, a drewno ją zmniejsza”</h3><p>Trzeba osobno ocenić masę i opór cieplny. Drewno może dołożyć mniejszą masę, ale ograniczyć przepływ mocy do pokoju.</p></article>
          <article class="rk-pg-myth-card"><span class="rk-pg-myth-label">Mit 2</span><h3>„Podłogówka zawsze potrzebuje kilkunastu godzin”</h3><p>Pierwsza reakcja powierzchni, reakcja pomieszczenia i dojście do nowego stanu ustalonego mają różne czasy.</p></article>
          <article class="rk-pg-myth-card"><span class="rk-pg-myth-label">Mit 3</span><h3>„Rozstaw 10 cm usuwa bezwładność”</h3><p>Mniejszy rozstaw zmienia pole temperatury i zdolność oddawania mocy, lecz nie usuwa pojemności cieplnej konstrukcji.</p></article>
          <article class="rk-pg-myth-card"><span class="rk-pg-myth-label">Mit 4</span><h3>„Wyższe zasilanie zawsze rozwiązuje wolną reakcję”</h3><p>Może zwiększyć chwilową moc, ale także ryzyko przegrzewania, przekroczenia ograniczeń i pogorszenia sprawności źródła.</p></article>
          <article class="rk-pg-myth-card"><span class="rk-pg-myth-label">Mit 5</span><h3>„Sterowanie włącz/wyłącz zawsze jest błędem”</h3><p>O wyniku decydują nastawy, cykl, temperatura zasilania, masa, zyski oraz sposób współpracy termostatu ze źródłem i strefami.</p></article>
          <article class="rk-pg-myth-card"><span class="rk-pg-myth-label">Mit 6</span><h3>„Masa podłogi zastępuje bufor”</h3><p>Podłoga jest odbiornikiem o ograniczonej temperaturze i zmiennym przepływie. Nie przejmuje automatycznie funkcji hydraulicznych ani bezpieczeństwa.</p></article>
        </div>
      </section>

      <section class="rk-pg-section" id="rk-ic-checklista">
        <span class="rk-pg-eyebrow">Dane przed projektem albo diagnozą</span>
        <h2>Checklista: co trzeba znać, aby ocenić bezwładność podłogi?</h2>
        <p class="rk-pg-intro">Im więcej poniższych danych jest potwierdzonych, tym mniej miejsca pozostaje na zgadywanie. Brak jednego parametru nie zawsze uniemożliwia analizę, ale powinien być jawnie opisanym założeniem.</p>

        <ul class="rk-pg-checklist">
          <li>Warstwy od rury do powierzchni wraz z rzeczywistymi grubościami.</li>
          <li>Rodzaj jastrychu lub kompletnego systemu suchego oraz dane cieplne materiałów.</li>
          <li>Okładzina, podkład, klej i łączny opór cieplny zestawu.</li>
          <li>Położenie, średnica, długości i rozstaw rur.</li>
          <li>Aktywna powierzchnia każdego pomieszczenia.</li>
          <li>Projektowe obciążenie cieplne i warunki obliczeniowe.</li>
          <li>Temperatura zasilania, powrotu i rzeczywiste przepływy pętli.</li>
          <li>Rodzaj źródła, jego minimalny przepływ, modulacja i sposób sterowania.</li>
          <li>Podział na strefy, rodzaj termostatów, siłowników i logika zamykania obiegów.</li>
          <li>Orientacja okien, zyski słoneczne, wentylacja i harmonogram użytkowania.</li>
          <li>Rejestr temperatur oraz stanów pracy przed i po zmianie nastawy.</li>
          <li>Oczekiwany rezultat: komfort, ograniczenie przegrzewania, taryfa czy szybsza reakcja.</li>
        </ul>
      </section>

      <section class="rk-pg-section" id="rk-ic-wnioski">
        <span class="rk-pg-eyebrow">Najważniejszy wniosek projektowy</span>
        <h2>Bezwładność nie jest wadą ani zaletą — musi pasować do budynku i sterowania</h2>
        <p class="rk-pg-intro">Ciężka podłoga może stabilnie oddawać ciepło przy niskiej temperaturze, ale wolniej reaguje na gwałtowne zyski i krótkie harmonogramy. Lekki system może szybciej zmieniać temperaturę powierzchni, lecz ma mniejszy magazyn. O wyborze nie powinna decydować jedna etykieta, tylko obliczona praca całego układu.</p>

        <div class="rk-pg-answer"><p><strong>Najpierw liczymy moc i temperatury, później oceniamy dynamikę.</strong> Konstrukcja, powierzchnia czynna, okładzina, przepływy, źródło i automatyka muszą tworzyć jeden model. Wtedy bezwładność staje się przewidywalną cechą zamiast przyczyny przypadkowego przegrzewania albo niedogrzania.</p></div>

        <aside class="rk-pg-cta" aria-label="Zamów projekt ogrzewania podłogowego">
          <span class="rk-pg-cta-kicker">Sterowanie zaczyna się od poprawnej charakterystyki podłogi</span>
          <h3>Zaprojektujmy moc, pętle, temperatury i sposób regulacji jako jeden system.</h3>
          <p>Kompletny projekt łączy OZC pomieszczeń z powierzchnią czynną, rozstawem rur, temperaturą wody, przepływami, rozdzielaczem i wymaganiami źródła. Dzięki temu nie trzeba korygować błędów podnoszeniem temperatury ani przypadkowym zamykaniem stref.</p>
          <a class="rk-pg-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
        </aside>
      </section>

      <section class="rk-pg-section" id="rk-ic-zrodla">
        <span class="rk-pg-eyebrow">Weryfikacja techniczna</span>
        <h2>Źródła oficjalne, normy i badania wykorzystane w artykule</h2>
        <p class="rk-pg-intro">Artykuł rozdziela obliczenie energii warstwy od dynamicznej odpowiedzi całego pomieszczenia. Wartości materiałowe i rozwiązania wykonawcze należy każdorazowo sprawdzić w dokumentacji konkretnego systemu.</p>

        <div class="rk-pg-sources">
          <article class="rk-pg-source"><a href="https://www.iso.org/standard/65711.html" target="_blank" rel="nofollow noopener noreferrer">ISO 13786:2017 — Dynamic thermal characteristics</a><p>Oficjalny zakres metod obliczania dynamicznych właściwości cieplnych kompletnych elementów budynku i ich warstw.</p></article>
          <article class="rk-pg-source"><a href="https://www.iso.org/standard/65696.html" target="_blank" rel="nofollow noopener noreferrer">ISO 52016-1:2017 — Energy performance of buildings</a><p>Oficjalny zakres obliczeń godzinowych zapotrzebowania, temperatur wewnętrznych i obciążeń cieplnych budynku.</p></article>
          <article class="rk-pg-source"><a href="https://sklep.pkn.pl/pn-en-1264-2-2021-10e.html" target="_blank" rel="nofollow noopener noreferrer">Polski Komitet Normalizacyjny — PN-EN 1264-2:2021-10</a><p>Zakres normy dotyczący metod określania mocy cieplnej wodnych systemów ogrzewania i chłodzenia płaszczyznowego.</p></article>
          <article class="rk-pg-source"><a href="https://www.energy.gov/energysaver/radiant-heating" target="_blank" rel="nofollow noopener noreferrer">U.S. Department of Energy — Radiant Heating</a><p>Rządowe omówienie działania ogrzewania promiennikowego, masywnych podłóg i sposobów ich zasilania.</p></article>
          <article class="rk-pg-source"><a href="https://pure.etsmtl.ca/en/publications/semi-analytical-model-for-thermal-response-of-anhydrite-radiant-s/" target="_blank" rel="nofollow noopener noreferrer">ÉTS Montréal — model odpowiedzi płyty anhydrytowej</a><p>Repozytorium uczelni opisujące badanie pełnowymiarowej komory oraz model czasu opóźnienia i odpowiedzi powierzchni.</p></article>
        </div>

        <div class="rk-pg-warning"><p><strong>Ważne:</strong> kalkulator i wykres są narzędziami edukacyjnymi. Nie są projektem, świadectwem energetycznym, instrukcją wygrzewania jastrychu ani nastawą dla konkretnej pompy ciepła, kotła lub sterownika.</p></div>
      </section>

      <section class="rk-pg-section" id="rk-ic-faq">
        <span class="rk-pg-eyebrow">Najczęściej zadawane pytania</span>
        <h2>FAQ — bezwładność cieplna ogrzewania podłogowego</h2>
        <div class="rk-pg-faq">
          <details><summary>Ile czasu nagrzewa się ogrzewanie podłogowe?</summary><div class="rk-pg-faq-answer"><p>Nie ma jednej wartości dla wszystkich instalacji. Trzeba rozróżnić pierwszą zmianę temperatury powierzchni, zmianę temperatury pomieszczenia i dojście do nowego stanu ustalonego. Wynik zależy m.in. od konstrukcji, temperatury wody, mocy, strat budynku i punktu startowego.</p></div></details>
          <details><summary>Ile czasu stygnie ogrzewanie podłogowe?</summary><div class="rk-pg-faq-answer"><p>Stygnięcie zależy od ilości zgromadzonej energii, oporów cieplnych, temperatury pomieszczenia i warunków zewnętrznych. Odcięcie zasilania nie powoduje natychmiastowego zaniku mocy powierzchni.</p></div></details>
          <details><summary>Czy grubsza wylewka zawsze oznacza większą bezwładność?</summary><div class="rk-pg-faq-answer"><p>Większa objętość tego samego materiału zwiększa pojemność cieplną, ale czas reakcji zależy również od położenia rur, właściwości materiału, oporu okładziny, mocy oraz warunków po obu stronach przegrody.</p></div></details>
          <details><summary>Czy drewno zmniejsza bezwładność podłogówki?</summary><div class="rk-pg-faq-answer"><p>Nie można tego stwierdzić na podstawie samej nazwy okładziny. Drewno może mieć mniejszą własną masę niż kamień, ale zwykle tworzy większy opór cieplny i może ograniczać moc przekazywaną z jastrychu do pomieszczenia.</p></div></details>
          <details><summary>Czy system suchy nagrzewa się szybciej?</summary><div class="rk-pg-faq-answer"><p>Systemy suche o małej aktywnej masie zwykle szybciej zmieniają temperaturę powierzchni. Nadal trzeba sprawdzić ich moc, równomierność, okładzinę, izolację i dopuszczalne parametry konkretnego rozwiązania.</p></div></details>
          <details><summary>Czy rozstaw rur 10 cm przyspiesza ogrzewanie?</summary><div class="rk-pg-faq-answer"><p>Mniejszy rozstaw zmienia rozkład temperatury i może zwiększyć zdolność oddawania mocy przy danym parametrze. Nie zmniejsza jednak pojemności cieplnej jastrychu i nie gwarantuje określonego czasu reakcji pokoju.</p></div></details>
          <details><summary>Czy warto podnieść temperaturę zasilania, aby szybciej nagrzać dom?</summary><div class="rk-pg-faq-answer"><p>Podniesienie temperatury może zwiększyć chwilową moc, ale również ryzyko przegrzania, przekroczenia ograniczeń powierzchni i pogorszenia sprawności źródła. Parametr powinien wynikać z projektu i regulacji, a nie z próby pokonania bezwładności.</p></div></details>
          <details><summary>Jak ustawić termostat przy dużej bezwładności?</summary><div class="rk-pg-faq-answer"><p>Nie ma uniwersalnej histerezy ani harmonogramu. Najpierw należy poprawnie ustawić temperaturę zasilania lub krzywą grzewczą, a następnie obserwować reakcję strefy i korygować jeden parametr naraz.</p></div></details>
          <details><summary>Czy PID zawsze płynnie moduluje ogrzewanie?</summary><div class="rk-pg-faq-answer"><p>Nie. Regulator może obliczać sygnał według algorytmu PI lub PID, a jednocześnie sterować binarnym siłownikiem przez impulsy czasowe. Trzeba sprawdzić faktyczny sposób działania wyjścia i urządzenia wykonawczego.</p></div></details>
          <details><summary>Czy duża bezwładność jest dobra dla pompy ciepła?</summary><div class="rk-pg-faq-answer"><p>Może pomóc w stabilnej pracy i zwiększeniu aktywnej objętości, ale główną zaletą podłogówki dla pompy ciepła jest niska wymagana temperatura zasilania. Duża masa może utrudniać reakcję na słońce lub głębokie obniżenia.</p></div></details>
          <details><summary>Czy podłoga może zastąpić bufor ciepła?</summary><div class="rk-pg-faq-answer"><p>Nie należy jej traktować jako zamiennika funkcji hydraulicznych i zabezpieczeń bufora. Podłoga ma ograniczoną temperaturę, zmienny odbiór i może zostać częściowo odcięta przez strefy.</p></div></details>
          <details><summary>Jak obliczyć energię zgromadzoną w wylewce?</summary><div class="rk-pg-faq-answer"><p>Dla uproszczonej aktywnej warstwy można pomnożyć powierzchnię, grubość w metrach, objętościową pojemność cieplną oraz zmianę średniej temperatury, a wynik w megadżulach podzielić przez 3,6. Nie jest to jednak obliczenie dokładnego czasu nagrzania pokoju.</p></div></details>
        </div>
      </section>

      <section class="rk-pg-section" id="rk-ic-autor">
        <div class="rk-pg-author">
          <div class="rk-pg-author-head">
            <div><span class="rk-pg-eyebrow">E-E-A-T i odpowiedzialność za treść</span><h2 id="rk-ic-author-heading">Autor i weryfikacja merytoryczna</h2><p>Treść przygotowana z perspektywy projektowania cieplnego, hydrauliki i rzeczywistego sterowania całym układem.</p></div>
            <span class="rk-pg-author-mark">Aktualizacja: 12.09.2026</span>
          </div>
          <div class="rk-pg-author-layout">
            <aside class="rk-pg-author-side">
              <div class="rk-pg-author-photo"><img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski – projektant instalacji grzewczych" width="132" height="132" loading="lazy"></div>
              <div class="rk-pg-author-name"><a href="https://projekt-ogrzewania.pl/author/admin3399/">Robert Kucharski</a></div>
              <div class="rk-pg-author-role">Projektant instalacji sanitarnych i specjalista HVAC</div>
              <div class="rk-pg-author-social-label">Profile branżowe</div>
              <div class="rk-pg-author-social">
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="nofollow noopener noreferrer" aria-label="LinkedIn Roberta Kucharskiego"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M6.5 8.2H3.2V21h3.3V8.2ZM4.85 3A1.92 1.92 0 1 0 4.9 6.84 1.92 1.92 0 0 0 4.85 3ZM21 13.66c0-3.86-2.06-5.66-4.81-5.66a4.14 4.14 0 0 0-3.75 2.06V8.2H9.12V21h3.32v-6.34c0-1.67.32-3.29 2.39-3.29 2.04 0 2.07 1.91 2.07 3.4V21H21v-7.34Z"></path></svg></a>
                <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="nofollow noopener noreferrer" aria-label="Projekt Ogrzewania na Facebooku"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M14 8.5V7c0-.74.5-.92.85-.92H17V3.13L14.05 3C11.13 3 10.47 5.16 10.47 6.55V8.5H8v3.36h2.47V21H14v-9.14h2.7l.44-3.36H14Z"></path></svg></a>
                <a href="https://x.com/Projekt_HVAC" target="_blank" rel="nofollow noopener noreferrer" aria-label="Projekt HVAC w serwisie X"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M18.9 3H22l-6.77 7.74L23.2 21h-6.24l-4.89-6.39L6.49 21H3.38l7.24-8.28L2.98 3h6.4l4.42 5.84L18.9 3Zm-1.09 16.2h1.72L8.44 4.7H6.59l11.22 14.5Z"></path></svg></a>
              </div>
            </aside>
            <div class="rk-pg-author-main">
              <blockquote class="rk-pg-author-quote"><p>Nie przypisuję podłodze jednego czasu reakcji na podstawie samej grubości wylewki. Najpierw rozdzielam energię magazynowaną, drogę przepływu ciepła oraz bilans konkretnego pomieszczenia.</p></blockquote>
              <div class="rk-pg-author-cards">
                <div class="rk-pg-author-card"><b>Praktyka projektowa</b><p>Analiza OZC, powierzchni czynnej, temperatur, pętli, przepływów, rozdzielaczy, źródeł ciepła i automatyki.</p></div>
                <div class="rk-pg-author-card"><b>Metoda</b><p>Wartości obliczeniowe są oddzielane od profili edukacyjnych, a ograniczenia kalkulatora i wykresu opisano przy wynikach.</p></div>
                <div class="rk-pg-author-card"><b>Zakres aktualizacji</b><p>Poprawiono rozróżnienie pojemności i oporu, opis okładzin, sterowania, pomp ciepła, bufora oraz czasu reakcji.</p></div>
              </div>
              <div class="rk-pg-mini-label">Portale autora</div>
              <div class="rk-pg-portals"><a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a><a href="https://remont.biz.pl/" target="_blank" rel="nofollow noopener noreferrer">Remont.biz.pl</a><a href="https://sobir.pl/" target="_blank" rel="nofollow noopener noreferrer">Sobir.pl</a></div>
            </div>
          </div>
        </div>
      </section>
    </div>
  </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",
      "description": "Projektowanie ogrzewania podłogowego, obliczenia cieplne i hydraulika instalacji grzewczych.",
      "publisher": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "inLanguage": "pl-PL",
      "potentialAction": {
        "@type": "SearchAction",
        "target": {"@type": "EntryPoint", "urlTemplate": "https://projekt-ogrzewania.pl/?s={search_term_string}"},
        "query-input": "required name=search_term_string"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt Ogrzewania",
      "url": "https://projekt-ogrzewania.pl/",
      "logo": {"@id": "https://projekt-ogrzewania.pl/#logo"},
      "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": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/#logo",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-ogrzewania-logo-1.jpg",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-ogrzewania-logo-1.jpg",
      "width": 1024,
      "height": 1024,
      "caption": "Projekt Ogrzewania"
    },
    {
      "@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",
      "worksFor": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "knowsAbout": ["ogrzewanie podłogowe", "bezwładność cieplna", "projektowe obciążenie cieplne", "hydraulika instalacji grzewczych", "pompy ciepła", "sterowanie pogodowe", "instalacje płaszczyznowe"],
      "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/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#primaryimage",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/12/Czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym.webp",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/12/Czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym.webp",
      "width": 945,
      "height": 945,
      "caption": "Bezwładność cieplna w ogrzewaniu podłogowym"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#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": "Bezwładność cieplna ogrzewania podłogowego", "item": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/"}
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#webpage",
      "url": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/",
      "name": "Czym jest bezwładność cieplna ogrzewania podłogowego i ile trwa nagrzewanie?",
      "description": "Od czego zależy bezwładność cieplna podłogówki? Oblicz energię w wylewce i zobacz na wykresie, dlaczego podłoga wolno się nagrzewa i stygnie.",
      "isPartOf": {"@id": "https://projekt-ogrzewania.pl/#website"},
      "breadcrumb": {"@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#breadcrumb"},
      "primaryImageOfPage": {"@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#primaryimage"},
      "datePublished": "2025-12-17T19:37:24+00:00",
      "dateModified": "2026-09-12T12:00:00+02:00",
      "inLanguage": "pl-PL",
      "mainEntity": {"@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#article"},
      "speakable": {"@type": "SpeakableSpecification", "cssSelector": ["#rk-ic-odpowiedz .rk-pg-intro", "#rk-ic-wnioski .rk-pg-intro"]}
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#article",
      "url": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/",
      "headline": "Czym jest bezwładność cieplna ogrzewania podłogowego i ile trwa nagrzewanie?",
      "alternativeHeadline": "Bezwładność cieplna podłogówki — kalkulator energii, wykres reakcji i sterowanie",
      "description": "Kompletny poradnik o pojemności cieplnej podłogi, oporze warstw, czasie nagrzewania, sterowaniu, pompie ciepła i pomiarze rzeczywistej reakcji instalacji.",
      "image": {"@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#primaryimage"},
      "mainEntityOfPage": {"@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#webpage"},
      "author": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"},
      "publisher": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "datePublished": "2025-12-17T19:37:24+00:00",
      "dateModified": "2026-09-12T12:00:00+02:00",
      "wordCount": 5032,
      "articleSection": ["Bezwładność cieplna", "Ogrzewanie podłogowe", "Fizyka budowli", "Sterowanie ogrzewaniem", "Pompy ciepła", "Projektowanie instalacji"],
      "keywords": ["bezwładność cieplna ogrzewania podłogowego", "ile czasu nagrzewa się ogrzewanie podłogowe", "czas reakcji ogrzewania podłogowego", "grubość wylewki a bezwładność podłogówki", "sterowanie podłogówką o dużej bezwładności", "bezwładność podłogówki a pompa ciepła", "ile energii magazynuje wylewka", "opór cieplny posadzki"],
      "proficiencyLevel": "Intermediate",
      "dependencies": "Warstwy podłogi, właściwości cieplne materiałów, aktywna powierzchnia, obciążenie pomieszczeń, temperatury zasilania i powrotu, przepływy, źródło ciepła, pogoda oraz strategia sterowania",
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "about": [
        {"@type": "DefinedTerm", "name": "Pojemność cieplna", "description": "Ilość energii związana ze zmianą temperatury analizowanej masy."},
        {"@type": "DefinedTerm", "name": "Opór cieplny", "description": "Miara ograniczenia przepływu ciepła przez warstwę lub zestaw warstw."},
        {"@type": "DefinedTerm", "name": "Odpowiedź dynamiczna", "description": "Zmiana temperatury i strumienia ciepła w czasie po zmianie warunków pracy."}
      ],
      "mentions": [
        {"@type": "Thing", "name": "Jastrych ogrzewany"},
        {"@type": "Thing", "name": "Sterowanie pogodowe"},
        {"@type": "Thing", "name": "Pompa ciepła"},
        {"@type": "Thing", "name": "Bufor ciepła"}
      ],
      "hasPart": [
        {"@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#concept-app"},
        {"@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#lab-app"},
        {"@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#howto"},
        {"@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#systems-list"},
        {"@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#faq-schema"}
      ],
      "citation": [
        "https://www.iso.org/standard/65711.html",
        "https://www.iso.org/standard/65696.html",
        "https://sklep.pkn.pl/pn-en-1264-2-2021-10e.html",
        "https://www.energy.gov/energysaver/radiant-heating",
        "https://pure.etsmtl.ca/en/publications/semi-analytical-model-for-thermal-response-of-anhydrite-radiant-s/"
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#concept-app",
      "name": "Interaktywna mapa pojemności, oporu i reakcji podłogi",
      "url": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#rk-ic-droga-ciepla",
      "applicationCategory": "EducationalApplication",
      "operatingSystem": "Dowolny system z nowoczesną przeglądarką",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "softwareVersion": "1.0",
      "author": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"},
      "description": "Moduł pokazujący udział pomieszczenia, okładziny, jastrychu, rur i izolacji w magazynowaniu energii, oporze cieplnym oraz odpowiedzi dynamicznej.",
      "featureList": ["trzy rozdzielone zjawiska", "pięć warstw konstrukcji", "opis funkcji warstw", "ograniczenia interpretacji"]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#lab-app",
      "name": "Kalkulator energii warstwy i wykres reakcji ogrzewania podłogowego",
      "url": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#rk-ic-kalkulator",
      "applicationCategory": "CalculatorApplication",
      "operatingSystem": "Dowolny system z nowoczesną przeglądarką",
      "browserRequirements": "JavaScript i SVG",
      "isAccessibleForFree": true,
      "softwareVersion": "1.0",
      "author": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"},
      "description": "Kalkulator pojemności cieplnej aktywnej warstwy połączony ze znormalizowanym wykresem odpowiedzi ciężkiej, cieńszej i lekkiej konstrukcji.",
      "featureList": ["objętość warstwy", "pojemność w kWh na kelwin", "energia dla wybranego delta T", "trzy profile konstrukcji", "trzy zdarzenia dynamiczne", "odczyt odpowiedzi w czasie"]
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#howto",
      "name": "Jak zmierzyć czas reakcji ogrzewania podłogowego",
      "description": "Metoda rejestracji temperatur, stanów pracy i pogody potrzebna do oceny rzeczywistej odpowiedzi instalacji.",
      "step": [
        {"@type": "HowToStep", "position": 1, "name": "Wybierz stabilny punkt startowy", "text": "Rozpocznij pomiar bez świeżego wietrzenia, silnego słońca i równoczesnej zmiany wielu nastaw."},
        {"@type": "HowToStep", "position": 2, "name": "Zapisuj temperaturę zewnętrzną", "text": "Rejestruj pogodę, aby oddzielić reakcję instalacji od zmiany strat budynku."},
        {"@type": "HowToStep", "position": 3, "name": "Mierz zasilanie i powrót", "text": "Zapisuj temperatury w stałych punktach oraz stan źródła i pompy."},
        {"@type": "HowToStep", "position": 4, "name": "Obserwuj temperaturę powierzchni", "text": "Mierz zawsze w tym samym miejscu i zanotuj wpływ mebli lub nasłonecznienia."},
        {"@type": "HowToStep", "position": 5, "name": "Zapisuj temperaturę pomieszczenia", "text": "Umieść czujnik z dala od słońca, nawiewu i lokalnych źródeł ciepła."},
        {"@type": "HowToStep", "position": 6, "name": "Zmień jeden parametr", "text": "Nie zmieniaj jednocześnie krzywej, przepływów, harmonogramu i termostatów."},
        {"@type": "HowToStep", "position": 7, "name": "Obserwuj pełny przebieg", "text": "Prowadź rejestr do wyraźnego ustabilizowania zamiast kończyć go po z góry ustalonej liczbie godzin."},
        {"@type": "HowToStep", "position": 8, "name": "Porównaj podobne warunki", "text": "Porównuj okresy o zbliżonej pogodzie, użytkowaniu i zyskach cieplnych."}
      ]
    },
    {
      "@type": "ItemList",
      "@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#systems-list",
      "name": "Porównanie profili konstrukcji ogrzewania podłogowego",
      "numberOfItems": 3,
      "itemListOrder": "https://schema.org/ItemListUnordered",
      "itemListElement": [
        {"@type": "ListItem", "position": 1, "name": "System mokry ciężki", "description": "Duża aktywna masa, łagodna odpowiedź i dłuższe oddawanie energii."},
        {"@type": "ListItem", "position": 2, "name": "System mokry cieńszy", "description": "Pośrednia aktywna masa i reakcja zależna od położenia rur oraz warstw."},
        {"@type": "ListItem", "position": 3, "name": "System suchy lekki", "description": "Mała aktywna masa, szybsza zmiana temperatury powierzchni i mniejszy magazyn."}
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#faq-schema",
      "url": "https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/#rk-ic-faq",
      "inLanguage": "pl-PL",
      "mainEntity": [
        {"@type": "Question", "name": "Ile czasu nagrzewa się ogrzewanie podłogowe?", "acceptedAnswer": {"@type": "Answer", "text": "Nie ma jednej wartości dla wszystkich instalacji. Trzeba rozróżnić pierwszą zmianę temperatury powierzchni, zmianę temperatury pomieszczenia i dojście do nowego stanu ustalonego. Wynik zależy m.in. od konstrukcji, temperatury wody, mocy, strat budynku i punktu startowego."}},
        {"@type": "Question", "name": "Ile czasu stygnie ogrzewanie podłogowe?", "acceptedAnswer": {"@type": "Answer", "text": "Stygnięcie zależy od ilości zgromadzonej energii, oporów cieplnych, temperatury pomieszczenia i warunków zewnętrznych. Odcięcie zasilania nie powoduje natychmiastowego zaniku mocy powierzchni."}},
        {"@type": "Question", "name": "Czy grubsza wylewka zawsze oznacza większą bezwładność?", "acceptedAnswer": {"@type": "Answer", "text": "Większa objętość tego samego materiału zwiększa pojemność cieplną, ale czas reakcji zależy również od położenia rur, właściwości materiału, oporu okładziny, mocy oraz warunków po obu stronach przegrody."}},
        {"@type": "Question", "name": "Czy drewno zmniejsza bezwładność podłogówki?", "acceptedAnswer": {"@type": "Answer", "text": "Nie można tego stwierdzić na podstawie samej nazwy okładziny. Drewno może mieć mniejszą własną masę niż kamień, ale zwykle tworzy większy opór cieplny i może ograniczać moc przekazywaną z jastrychu do pomieszczenia."}},
        {"@type": "Question", "name": "Czy system suchy nagrzewa się szybciej?", "acceptedAnswer": {"@type": "Answer", "text": "Systemy suche o małej aktywnej masie zwykle szybciej zmieniają temperaturę powierzchni. Nadal trzeba sprawdzić ich moc, równomierność, okładzinę, izolację i dopuszczalne parametry konkretnego rozwiązania."}},
        {"@type": "Question", "name": "Czy rozstaw rur 10 cm przyspiesza ogrzewanie?", "acceptedAnswer": {"@type": "Answer", "text": "Mniejszy rozstaw zmienia rozkład temperatury i może zwiększyć zdolność oddawania mocy przy danym parametrze. Nie zmniejsza jednak pojemności cieplnej jastrychu i nie gwarantuje określonego czasu reakcji pokoju."}},
        {"@type": "Question", "name": "Czy warto podnieść temperaturę zasilania, aby szybciej nagrzać dom?", "acceptedAnswer": {"@type": "Answer", "text": "Podniesienie temperatury może zwiększyć chwilową moc, ale również ryzyko przegrzania, przekroczenia ograniczeń powierzchni i pogorszenia sprawności źródła. Parametr powinien wynikać z projektu i regulacji, a nie z próby pokonania bezwładności."}},
        {"@type": "Question", "name": "Jak ustawić termostat przy dużej bezwładności?", "acceptedAnswer": {"@type": "Answer", "text": "Nie ma uniwersalnej histerezy ani harmonogramu. Najpierw należy poprawnie ustawić temperaturę zasilania lub krzywą grzewczą, a następnie obserwować reakcję strefy i korygować jeden parametr naraz."}},
        {"@type": "Question", "name": "Czy PID zawsze płynnie moduluje ogrzewanie?", "acceptedAnswer": {"@type": "Answer", "text": "Nie. Regulator może obliczać sygnał według algorytmu PI lub PID, a jednocześnie sterować binarnym siłownikiem przez impulsy czasowe. Trzeba sprawdzić faktyczny sposób działania wyjścia i urządzenia wykonawczego."}},
        {"@type": "Question", "name": "Czy duża bezwładność jest dobra dla pompy ciepła?", "acceptedAnswer": {"@type": "Answer", "text": "Może pomóc w stabilnej pracy i zwiększeniu aktywnej objętości, ale główną zaletą podłogówki dla pompy ciepła jest niska wymagana temperatura zasilania. Duża masa może utrudniać reakcję na słońce lub głębokie obniżenia."}},
        {"@type": "Question", "name": "Czy podłoga może zastąpić bufor ciepła?", "acceptedAnswer": {"@type": "Answer", "text": "Nie należy jej traktować jako zamiennika funkcji hydraulicznych i zabezpieczeń bufora. Podłoga ma ograniczoną temperaturę, zmienny odbiór i może zostać częściowo odcięta przez strefy."}},
        {"@type": "Question", "name": "Jak obliczyć energię zgromadzoną w wylewce?", "acceptedAnswer": {"@type": "Answer", "text": "Dla uproszczonej aktywnej warstwy można pomnożyć powierzchnię, grubość w metrach, objętościową pojemność cieplną oraz zmianę średniej temperatury, a wynik w megadżulach podzielić przez 3,6. Nie jest to jednak obliczenie dokładnego czasu nagrzania pokoju."}}
      ]
    }
  ]
}
</script>

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

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

  function byId(id) { return document.getElementById(id); }
  function setText(id, value) {
    var element = byId(id);
    if (element) { element.textContent = value; }
  }
  function numberValue(id) {
    var element = byId(id);
    if (!element) { return NaN; }
    return Number(String(element.value).replace(",", "."));
  }
  function formatNumber(value, digits) {
    return new Intl.NumberFormat("pl-PL", { minimumFractionDigits: digits, maximumFractionDigits: digits }).format(value);
  }
  function setPressed(buttons, activeButton) {
    buttons.forEach(function (button) {
      var active = button === activeButton;
      button.classList.toggle("is-active", active);
      button.setAttribute("aria-pressed", active ? "true" : "false");
    });
  }

  var conceptModes = {
    capacity: {
      title: "Wybrano: pojemność cieplna",
      copy: "Największy udział ma zwykle aktywna masa jastrychu lub płyty. Pozostałe nagrzewane warstwy także magazynują energię, ale ich udział zależy od grubości i właściwości materiału.",
      layers: ["screed", "pipe", "finish"],
      defaultLayer: "screed"
    },
    resistance: {
      title: "Wybrano: opór i droga ciepła",
      copy: "Liczy się cały szereg warstw od wody do powierzchni oraz warunki pod podłogą. Duży opór może ograniczyć chwilową moc mimo niewielkiej masy okładziny.",
      layers: ["finish", "screed", "insulation"],
      defaultLayer: "finish"
    },
    response: {
      title: "Wybrano: reakcja pomieszczenia",
      copy: "Na przebieg w czasie wpływa cały łańcuch: sygnał źródła, przepływ, przekrój podłogi, okładzina, straty budynku, zyski oraz algorytm sterowania.",
      layers: ["room", "finish", "screed", "pipe", "insulation"],
      defaultLayer: "room"
    }
  };

  var layerDetails = {
    room: {
      title: "Pomieszczenie i przegrody",
      copy: "Temperatura powietrza jest wynikiem bilansu całego pokoju. Ściany, strop, wyposażenie i wentylacja mają własne pojemności oraz opory, a słońce i użytkownicy mogą szybko zmienić zyski.",
      check: "Straty cieplne, wentylację, orientację okien, zyski słoneczne, położenie czujnika i temperaturę odczuwalną.",
      limit: "Że zmiana temperatury powierzchni o określoną wartość da identyczną zmianę temperatury powietrza."
    },
    finish: {
      title: "Okładzina i podkład",
      copy: "Warstwa wykończeniowa magazynuje część energii, ale równocześnie stanowi drogę przewodzenia do pomieszczenia. Mała masa nie oznacza automatycznie szybkiego ogrzania pokoju, gdy opór cieplny jest wysoki.",
      check: "Łączną grubość, opór całego zestawu, sposób montażu, dopuszczenie do ogrzewania i limit temperatury.",
      limit: "Że płytki zawsze zwiększają, a drewno lub wykładzina zawsze zmniejszają bezwładność całego systemu."
    },
    screed: {
      title: "Jastrych lub płyta systemowa",
      copy: "W ciężkim systemie jastrych stanowi zwykle największą aktywną masę. Zmiana jego średniej temperatury wymaga energii, a po ograniczeniu zasilania część tej energii nadal płynie w stronę powierzchni.",
      check: "Rzeczywistą grubość, materiał, położenie rur i zakres konstrukcji uczestniczący w zmianie temperatury.",
      limit: "Że sama grubość poda dokładny czas nagrzania pomieszczenia."
    },
    pipe: {
      title: "Rura i woda",
      copy: "Temperatura oraz przepływ wody określają chwilowy strumień dostarczany do konstrukcji. Rura rozprowadza energię przestrzennie, ale nie zmienia ciepła właściwego jastrychu.",
      check: "Zasilanie, powrót, przepływ, średnicę, długość, rozstaw oraz kontakt rury z materiałem przewodzącym.",
      limit: "Że maksymalny przepływ albo minimalny rozstaw automatycznie usuwa opóźnienie aktywnej masy."
    },
    insulation: {
      title: "Izolacja i warstwy poniżej",
      copy: "Izolacja ogranicza przepływ energii w dół i kieruje większą część strumienia ku ogrzewanemu pomieszczeniu. Rzeczywisty udział strat zależy od całej konstrukcji i temperatur po obu stronach.",
      check: "Grubość, przewodność, mostki, warstwy stropu lub podłoża oraz temperaturę przestrzeni poniżej.",
      limit: "Że każde ciepło zgromadzone w jastrychu będzie później w całości użytecznie oddane do tego samego pokoju."
    }
  };

  var conceptButtons = root.querySelectorAll("[data-rk-ic-concept]");
  var layerButtons = root.querySelectorAll("[data-rk-ic-layer]");
  var currentConcept = "capacity";

  function renderLayer(layerKey) {
    var detail = layerDetails[layerKey];
    if (!detail) { return; }
    layerButtons.forEach(function (button) {
      button.classList.toggle("is-selected", button.getAttribute("data-rk-ic-layer") === layerKey);
    });
    setText("rk-ic-layer-title", detail.title);
    setText("rk-ic-layer-copy", detail.copy);
    setText("rk-ic-layer-check", detail.check);
    setText("rk-ic-layer-limit", detail.limit);
  }

  function renderConcept(key) {
    var mode = conceptModes[key];
    if (!mode) { return; }
    currentConcept = key;
    conceptButtons.forEach(function (button) {
      var active = button.getAttribute("data-rk-ic-concept") === key;
      button.classList.toggle("is-active", active);
      button.setAttribute("aria-pressed", active ? "true" : "false");
    });
    layerButtons.forEach(function (button) {
      var layerKey = button.getAttribute("data-rk-ic-layer");
      button.classList.toggle("is-active", mode.layers.indexOf(layerKey) !== -1);
    });
    var status = byId("rk-ic-concept-status");
    if (status) {
      var statusTitle = status.querySelector("b");
      var statusCopy = status.querySelector("p");
      if (statusTitle) { statusTitle.textContent = mode.title; }
      if (statusCopy) { statusCopy.textContent = mode.copy; }
    }
    renderLayer(mode.defaultLayer);
  }

  conceptButtons.forEach(function (button) {
    button.addEventListener("click", function () { renderConcept(button.getAttribute("data-rk-ic-concept")); });
  });
  layerButtons.forEach(function (button) {
    button.addEventListener("click", function () { renderLayer(button.getAttribute("data-rk-ic-layer")); });
  });

  var storagePresets = {
    heavy: { thickness: 65, cv: 2.00, profile: "heavy" },
    thin: { thickness: 35, cv: 1.55, profile: "thin" },
    light: { thickness: 25, cv: 1.05, profile: "dry" }
  };
  var presetButtons = root.querySelectorAll("[data-rk-ic-preset]");

  function setCalculatorInvalid(message) {
    setText("rk-ic-result-volume", "—");
    setText("rk-ic-result-areal", "—");
    setText("rk-ic-result-capacity", "—");
    setText("rk-ic-result-energy", "—");
    setText("rk-ic-result-context", "Popraw dane wejściowe");
    setText("rk-ic-result-explanation", "Wynik pojawi się po podaniu wartości z dopuszczalnego zakresu.");
    setText("rk-ic-calculator-status", message);
  }

  function calculateStorage() {
    var area = numberValue("rk-ic-area");
    var thicknessMm = numberValue("rk-ic-thickness");
    var cv = numberValue("rk-ic-cv");
    var delta = numberValue("rk-ic-delta");
    var values = [area, thicknessMm, cv, delta];
    var finite = values.every(function (value) { return Number.isFinite(value); });

    setText("rk-ic-area-output", formatNumber(area, 0) + " m²");
    setText("rk-ic-thickness-output", formatNumber(thicknessMm, 0) + " mm");
    if (Number.isFinite(cv)) { setText("rk-ic-cv-output", formatNumber(cv, 2) + " MJ/(m³·K)"); }
    setText("rk-ic-delta-output", formatNumber(delta, 1) + " K");

    if (!finite) { setCalculatorInvalid("Uzupełnij wszystkie pola prawidłowymi liczbami."); return; }
    var valid = area > 0;
    if (valid) { valid = thicknessMm > 0; }
    if (valid) { valid = cv >= 0.5; }
    if (valid) { valid = cv <= 3; }
    if (valid) { valid = delta > 0; }
    if (!valid) { setCalculatorInvalid("Pojemność objętościowa musi mieścić się w zakresie 0,50–3,00 MJ/(m³·K), a pozostałe wartości muszą być dodatnie."); return; }

    var thicknessM = thicknessMm / 1000;
    var volume = area * thicknessM;
    var areal = thicknessM * cv / 3.6 * 1000;
    var capacity = area * thicknessM * cv / 3.6;
    var energy = capacity * delta;

    setText("rk-ic-result-volume", formatNumber(volume, 2) + " m³");
    setText("rk-ic-result-areal", formatNumber(areal, 1) + " Wh/(m²·K)");
    setText("rk-ic-result-capacity", formatNumber(capacity, 2) + " kWh/K");
    setText("rk-ic-result-energy", formatNumber(energy, 2) + " kWh");
    setText("rk-ic-result-context", "dla zmiany średniej temperatury o " + formatNumber(delta, 1) + " K");
    setText("rk-ic-result-explanation", "Zmiana średniej temperatury analizowanej warstwy o " + formatNumber(delta, 1) + " K odpowiada zmianie jej energii o około " + formatNumber(energy, 2) + " kWh.");
    setText("rk-ic-calculator-status", "Obliczenie obejmuje tylko zdefiniowaną warstwę. Nie określa, jaka część tej energii trafi do pomieszczenia ani jak szybko zmieni się temperatura powietrza.");
  }

  var calculatorInputs = root.querySelectorAll("#rk-ic-storage-tool input");
  calculatorInputs.forEach(function (input) {
    input.addEventListener("input", calculateStorage);
    input.addEventListener("change", calculateStorage);
  });

  var profiles = {
    heavy: { surfaceTau: 5.5, surfaceDelay: 0.8, roomTau: 8.0, roomDelay: 1.6, label: "ciężkim systemie mokrym" },
    thin: { surfaceTau: 3.0, surfaceDelay: 0.45, roomTau: 5.0, roomDelay: 1.0, label: "cieńszym systemie mokrym" },
    dry: { surfaceTau: 1.25, surfaceDelay: 0.15, roomTau: 2.8, roomDelay: 0.55, label: "lekkim systemie suchym" }
  };
  var profileButtons = root.querySelectorAll("[data-rk-ic-profile]");
  var scenarioButtons = root.querySelectorAll("[data-rk-ic-scenario]");
  var currentProfile = "heavy";
  var currentScenario = "start";

  function clamp(value, minimum, maximum) { return Math.max(minimum, Math.min(maximum, value)); }
  function rise(time, delay, tau) {
    if (time <= delay) { return 0; }
    return 1 - Math.exp(-(time - delay) / tau);
  }

  function responseAt(time) {
    var profile = profiles[currentProfile];
    var input = 0;
    var floor = 0;
    var room = 0;

    if (currentScenario === "start") {
      input = 100;
      floor = 100 * rise(time, profile.surfaceDelay, profile.surfaceTau);
      room = 100 * rise(time, profile.roomDelay, profile.roomTau);
    }
    if (currentScenario === "stop") {
      input = 0;
      floor = 100 * Math.exp(-time / profile.surfaceTau);
      room = 100 * Math.exp(-time / profile.roomTau);
    }
    if (currentScenario === "sun") {
      var solar = 0;
      if (time >= 6) { solar = 100 * Math.exp(-Math.pow((time - 9) / 2.7, 2)); }
      input = 50 + solar * 0.5;
      floor = 50 * rise(time, profile.surfaceDelay, profile.surfaceTau) + solar * 0.35;
      room = 45 * rise(time, profile.roomDelay, profile.roomTau) + solar * 0.5;
    }

    return {
      input: clamp(input, 0, 105),
      floor: clamp(floor, 0, 105),
      room: clamp(room, 0, 105)
    };
  }

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

  function drawChart() {
    var svg = byId("rk-ic-response-chart");
    if (!svg) { return; }
    var measured = Math.round(svg.getBoundingClientRect().width);
    var width = measured > 0 ? measured : 720;
    if (width < 280) { width = 280; }
    var height = width < 520 ? 330 : 360;
    var left = width < 420 ? 48 : 58;
    var right = 16;
    var top = 24;
    var bottom = 52;
    var plotWidth = width - left - right;
    var plotHeight = height - top - bottom;
    var maxY = 110;
    var selectedTime = numberValue("rk-ic-time");

    function xScale(value) { return left + value / 24 * plotWidth; }
    function yScale(value) { return top + (1 - value / maxY) * plotHeight; }

    while (svg.firstChild) { svg.removeChild(svg.firstChild); }
    svg.setAttribute("viewBox", "0 0 " + width + " " + height);
    svg.setAttribute("height", String(height));
    svg.appendChild(svgElement("title", {}, "Względna odpowiedź ogrzewanej podłogi w czasie"));
    svg.appendChild(svgElement("desc", {}, "Wykres porównuje sygnał grzania, opóźnioną odpowiedź powierzchni podłogi i dalszą odpowiedź pomieszczenia."));

    [0, 25, 50, 75, 100].forEach(function (tick) {
      var y = yScale(tick);
      svg.appendChild(svgElement("line", { x1: left, y1: y, x2: width - right, y2: y, class: "rk-grid" }));
      svg.appendChild(svgElement("text", { x: left - 8, y: y + 4, "text-anchor": "end", class: "rk-axis-text" }, String(tick)));
    });

    var xTicks = [0, 4, 8, 12, 16, 20, 24];
    if (width < 560) { xTicks = [0, 6, 12, 18, 24]; }
    if (width < 360) { xTicks = [0, 8, 16, 24]; }
    xTicks.forEach(function (tick) {
      var x = xScale(tick);
      svg.appendChild(svgElement("line", { x1: x, y1: top, x2: x, y2: height - bottom, class: "rk-grid" }));
      var anchor = "middle";
      if (tick === 0) { anchor = "start"; }
      if (tick === 24) { anchor = "end"; }
      svg.appendChild(svgElement("text", { x: x, y: height - bottom + 22, "text-anchor": anchor, class: "rk-axis-text" }, tick + " h"));
    });

    svg.appendChild(svgElement("rect", { x: left, y: top, width: plotWidth, height: plotHeight, class: "rk-frame" }));
    svg.appendChild(svgElement("text", { x: left + plotWidth / 2, y: height - 8, "text-anchor": "middle", class: "rk-axis-title" }, "Czas od zdarzenia [h]"));
    svg.appendChild(svgElement("text", { x: 15, y: top + plotHeight / 2, "text-anchor": "middle", transform: "rotate(-90 15 " + (top + plotHeight / 2) + ")", class: "rk-axis-title" }, "Odpowiedź względna [%]"));

    var series = [
      { key: "input", className: "rk-series-input" },
      { key: "floor", className: "rk-series-floor" },
      { key: "room", className: "rk-series-room" }
    ];
    series.forEach(function (seriesItem) {
      var path = "";
      for (var index = 0; index <= 96; index += 1) {
        var time = index / 4;
        var point = responseAt(time);
        var command = index === 0 ? "M" : "L";
        path += command + xScale(time).toFixed(2) + "," + yScale(point[seriesItem.key]).toFixed(2) + " ";
      }
      svg.appendChild(svgElement("path", { d: path.trim(), class: seriesItem.className }));
    });

    var selected = responseAt(selectedTime);
    var guideX = xScale(selectedTime);
    svg.appendChild(svgElement("line", { x1: guideX, y1: top, x2: guideX, y2: height - bottom, class: "rk-guide" }));
    svg.appendChild(svgElement("circle", { cx: guideX, cy: yScale(selected.input), r: 6, class: "rk-marker-input" }));
    svg.appendChild(svgElement("circle", { cx: guideX, cy: yScale(selected.floor), r: 6, class: "rk-marker-floor" }));
    svg.appendChild(svgElement("circle", { cx: guideX, cy: yScale(selected.room), r: 6, class: "rk-marker-room" }));
  }

  function updateChartReadout() {
    var time = numberValue("rk-ic-time");
    var point = responseAt(time);
    setText("rk-ic-time-output", formatNumber(time, 1) + " h");
    setText("rk-ic-readout-input", formatNumber(point.input, 0) + "%");
    setText("rk-ic-readout-floor", formatNumber(point.floor, 0) + "%");
    setText("rk-ic-readout-room", formatNumber(point.room, 0) + "%");

    var profile = profiles[currentProfile];
    var status = "W " + profile.label + " ";
    if (currentScenario === "start") { status += "powierzchnia reaguje po zmianie sygnału, a efekt w pomieszczeniu narasta z dodatkowym opóźnieniem. To porównanie nie określa temperatury ani gwarantowanego czasu."; }
    if (currentScenario === "stop") { status += "odcięcie mocy nie zeruje natychmiast odpowiedzi powierzchni. Pokój może jeszcze przez pewien czas korzystać z energii wcześniej zgromadzonej w konstrukcji."; }
    if (currentScenario === "sun") { status += "zysk słoneczny pojawia się szybciej niż ciężka konstrukcja zmienia swój stan. Jeżeli podłoga była wcześniej naładowana, wzrasta ryzyko przegrzania."; }
    setText("rk-ic-chart-status", status);
    drawChart();
  }

  function selectProfile(profileKey) {
    if (!profiles[profileKey]) { return; }
    currentProfile = profileKey;
    profileButtons.forEach(function (button) {
      var active = button.getAttribute("data-rk-ic-profile") === profileKey;
      button.classList.toggle("is-active", active);
      button.setAttribute("aria-pressed", active ? "true" : "false");
    });
    updateChartReadout();
  }

  profileButtons.forEach(function (button) {
    button.addEventListener("click", function () { selectProfile(button.getAttribute("data-rk-ic-profile")); });
  });
  scenarioButtons.forEach(function (button) {
    button.addEventListener("click", function () {
      currentScenario = button.getAttribute("data-rk-ic-scenario");
      setPressed(scenarioButtons, button);
      updateChartReadout();
    });
  });

  var timeInput = byId("rk-ic-time");
  if (timeInput) {
    timeInput.addEventListener("input", updateChartReadout);
    timeInput.addEventListener("change", updateChartReadout);
  }

  presetButtons.forEach(function (button) {
    button.addEventListener("click", function () {
      var key = button.getAttribute("data-rk-ic-preset");
      var preset = storagePresets[key];
      if (!preset) { return; }
      byId("rk-ic-thickness").value = String(preset.thickness);
      byId("rk-ic-cv").value = preset.cv.toFixed(2);
      setPressed(presetButtons, button);
      calculateStorage();
      selectProfile(preset.profile);
    });
  });

  var resizeQueued = false;
  function queueChartDraw() {
    if (resizeQueued) { return; }
    resizeQueued = true;
    window.requestAnimationFrame(function () {
      resizeQueued = false;
      drawChart();
    });
  }
  if ("ResizeObserver" in window) {
    var chartObserver = new ResizeObserver(queueChartDraw);
    var chartWrap = root.querySelector(".rk-ic-chart-wrap");
    if (chartWrap) { chartObserver.observe(chartWrap); }
  } else {
    window.addEventListener("resize", queueChartDraw);
  }

  renderConcept(currentConcept);
  calculateStorage();
  updateChartReadout();
})();
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">Czym jest bezwładność cieplna ogrzewania podłogowego i ile trwa nagrzewanie?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Pompa obiegowa w instalacji ogrzewania podłogowego.</title>
		<link>https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Mon, 15 Dec 2025 10:42:46 +0000</pubDate>
				<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Hydraulika budowlana]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Modernizacja ogrzewania]]></category>
		<category><![CDATA[Nowoczesne technologie grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompy obiegowe]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[auto adapt]]></category>
		<category><![CDATA[dobór pompy]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[hydraulika instalacji]]></category>
		<category><![CDATA[instalacja grzewcza]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pompa obiegowa]]></category>
		<category><![CDATA[pompy cyrkulacyjne]]></category>
		<category><![CDATA[pompy ec]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2943</guid>

					<description><![CDATA[<p>Pompa obiegowa w instalacji ogrzewania podłogowego to element, który w praktyce decyduje o tym, czy cały system będzie działał cicho, oszczędnie i równomiernie. Choć często traktowana jako detal techniczny, jej dobór ma bezpośredni wpływ na komfort cieplny, zużycie energii elektrycznej oraz trwałość instalacji. W artykule szczegółowo wyjaśniamy, jak działa pompa obiegowa w instalacji ogrzewania podłogowego, jakie parametry mają kluczowe znaczenie, czym różnią się nowoczesne pompy EC od starszych modeli oraz dlaczego projekt hydrauliczny jest fundamentem prawidłowej pracy całego systemu.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">Pompa obiegowa w instalacji ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-pump-guide {
    --rk-pump-navy: #123247;
    --rk-pump-navy-deep: #0b2536;
    --rk-pump-teal: #0e7787;
    --rk-pump-cyan: #5fdef0;
    --rk-pump-orange: #ff7a21;
    --rk-pump-green: #248c68;
    --rk-pump-red: #c64b48;
    --rk-pump-amber: #b77812;
    --rk-pump-ink: #173246;
    --rk-pump-muted: #5d7180;
    --rk-pump-line: #d7e1e7;
    --rk-pump-soft: #f3f7f9;
    --rk-pump-white: #ffffff;
    --rk-pump-shadow: 0 18px 48px rgba(13, 43, 60, 0.12);
    color: var(--rk-pump-ink);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 18px;
    line-height: 1.72;
    overflow-x: hidden;
  }

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

  #rk-pump-guide .rk-pump-shell {
    width: min(1240px, 100%);
    margin: 0 auto;
  }

  #rk-pump-guide a {
    color: #087a9f;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 3px;
    overflow-wrap: anywhere;
  }

  #rk-pump-guide a:hover {
    color: #055d79;
  }

  #rk-pump-guide p,
  #rk-pump-guide ul,
  #rk-pump-guide ol {
    margin: 0 0 1.1rem;
  }

  #rk-pump-guide strong {
    color: inherit;
  }

  #rk-pump-guide .rk-pump-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(42px, 6vw, 78px);
    border-radius: 32px;
    background:
      radial-gradient(circle at 90% 112%, rgba(95, 222, 240, 0.16) 0 150px, transparent 151px),
      radial-gradient(circle at 90% 112%, transparent 0 205px, rgba(95, 222, 240, 0.09) 206px 275px, transparent 276px),
      linear-gradient(115deg, #122f43 0%, #123c4f 56%, #0d5b63 100%);
    color: #ffffff;
    box-shadow: var(--rk-pump-shadow);
  }

  #rk-pump-guide .rk-pump-hero::before {
    content: "";
    position: absolute;
    z-index: -1;
    left: -120px;
    bottom: -180px;
    width: 440px;
    height: 440px;
    border-radius: 50%;
    background: rgba(255, 122, 33, 0.10);
    filter: blur(2px);
  }

  #rk-pump-guide .rk-pump-hero-inner {
    position: relative;
    z-index: 1;
  }

  #rk-pump-guide .rk-pump-kicker,
  #rk-pump-guide .rk-pump-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
    color: var(--rk-pump-orange);
    font-size: 0.78rem;
    font-weight: 850;
    letter-spacing: 0.13em;
    line-height: 1.35;
    text-transform: uppercase;
  }

  #rk-pump-guide .rk-pump-kicker::before,
  #rk-pump-guide .rk-pump-eyebrow::before {
    content: "";
    flex: 0 0 9px;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: currentColor;
  }

  #rk-pump-guide .rk-pump-hero-title {
    max-width: 1110px;
    margin: 0;
    color: #ffffff;
    font-size: clamp(2.55rem, 6.1vw, 5.2rem);
    font-weight: 900;
    letter-spacing: -0.055em;
    line-height: 0.98;
    text-wrap: balance;
  }

  #rk-pump-guide .rk-pump-hero-title span {
    color: var(--rk-pump-cyan);
  }

  #rk-pump-guide .rk-pump-hero-lead {
    max-width: 1050px;
    margin: 30px 0 0;
    color: #eef9fc;
    font-size: clamp(1.05rem, 2vw, 1.34rem);
    line-height: 1.62;
  }

  #rk-pump-guide .rk-pump-hero-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    margin: 28px 0 0;
  }

  #rk-pump-guide .rk-pump-hero-tag {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 8px 17px;
    border: 1px solid rgba(255, 255, 255, 0.26);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
    font-size: 0.84rem;
    font-weight: 800;
    line-height: 1.3;
  }

  #rk-pump-guide .rk-pump-byline {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 24px;
    margin: 34px 0 0;
    color: #e5f0f4;
    font-size: 0.85rem;
    font-weight: 700;
  }

  #rk-pump-guide .rk-pump-hero-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin-top: 38px;
  }

  #rk-pump-guide .rk-pump-hero-metric {
    min-width: 0;
    padding: 22px 24px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 19px;
    background: rgba(255, 255, 255, 0.08);
    color: #eff9fb;
    backdrop-filter: blur(5px);
  }

  #rk-pump-guide .rk-pump-hero-metric b {
    display: block;
    margin-bottom: 7px;
    color: #ffffff;
    font-size: 1.02rem;
    line-height: 1.3;
  }

  #rk-pump-guide .rk-pump-hero-metric span {
    display: block;
    color: #e2f1f5;
    font-size: 0.88rem;
    line-height: 1.55;
  }

  #rk-pump-guide .rk-pump-shortcuts {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 24px 0;
    padding: 22px;
    border: 1px solid var(--rk-pump-line);
    border-radius: 22px;
    background: #ffffff;
    box-shadow: 0 10px 30px rgba(18, 50, 71, 0.07);
  }

  #rk-pump-guide .rk-pump-shortcuts-label {
    display: block;
    flex-basis: 100%;
    color: var(--rk-pump-navy);
    font-size: 0.8rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-pump-guide .rk-pump-shortcuts a {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 7px 13px;
    border: 1px solid #cbd9e1;
    border-radius: 999px;
    background: var(--rk-pump-soft);
    color: var(--rk-pump-navy);
    font-size: 0.76rem;
    font-weight: 800;
    line-height: 1.25;
    text-decoration: none;
  }

  #rk-pump-guide .rk-pump-shortcuts a:hover {
    border-color: var(--rk-pump-teal);
    background: #e8f6f8;
    color: #075f6b;
  }

  #rk-pump-guide .rk-pump-section,
  #rk-pump-guide .rk-pump-author {
    margin: 24px 0;
    padding: clamp(30px, 5vw, 62px);
    border: 1px solid var(--rk-pump-line);
    border-radius: 28px;
    background: #ffffff;
    box-shadow: 0 14px 42px rgba(18, 50, 71, 0.07);
    scroll-margin-top: 28px;
  }

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

  #rk-pump-guide .rk-pump-section-dark {
    border-color: #234c61;
    background:
      radial-gradient(circle at 105% 100%, rgba(95, 222, 240, 0.12) 0 190px, transparent 191px),
      linear-gradient(135deg, #102d40, #0e4854);
    color: #eff8fb;
  }

  #rk-pump-guide .rk-pump-section-dark .rk-pump-section-title,
  #rk-pump-guide .rk-pump-section-dark h3,
  #rk-pump-guide .rk-pump-section-dark strong {
    color: #ffffff;
  }

  #rk-pump-guide .rk-pump-section-dark .rk-pump-lead,
  #rk-pump-guide .rk-pump-section-dark p,
  #rk-pump-guide .rk-pump-section-dark li {
    color: #e3f0f4;
  }

  #rk-pump-guide .rk-pump-section-title,
  #rk-pump-guide .rk-pump-author-title {
    max-width: 1010px;
    margin: 0 0 18px;
    color: var(--rk-pump-navy);
    font-size: clamp(1.8rem, 3.7vw, 3.05rem);
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.12;
    text-wrap: balance;
  }

  #rk-pump-guide .rk-pump-lead {
    max-width: 1040px;
    color: #314c5e;
    font-size: 1.08rem;
    line-height: 1.75;
  }

  #rk-pump-guide .rk-pump-answer {
    margin: 24px 0;
    padding: 26px 28px;
    border-left: 6px solid var(--rk-pump-cyan);
    border-radius: 8px 20px 20px 8px;
    background: var(--rk-pump-navy);
    color: #ffffff;
  }

  #rk-pump-guide .rk-pump-answer-label {
    display: block;
    margin-bottom: 9px;
    color: var(--rk-pump-cyan);
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  #rk-pump-guide .rk-pump-answer p {
    margin: 0;
    color: #ffffff;
    font-size: 1.06rem;
  }

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

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

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

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

  #rk-pump-guide .rk-pump-card {
    min-width: 0;
    padding: 23px;
    border: 1px solid var(--rk-pump-line);
    border-radius: 20px;
    background: #ffffff;
    color: var(--rk-pump-ink);
  }

  #rk-pump-guide .rk-pump-card h3 {
    margin: 0 0 10px;
    color: var(--rk-pump-navy);
    font-size: 1.06rem;
    line-height: 1.35;
  }

  #rk-pump-guide .rk-pump-card p,
  #rk-pump-guide .rk-pump-card li {
    color: #3e5869;
    font-size: 0.92rem;
    line-height: 1.65;
  }

  #rk-pump-guide .rk-pump-card p:last-child,
  #rk-pump-guide .rk-pump-card ul:last-child {
    margin-bottom: 0;
  }

  #rk-pump-guide .rk-pump-card-number {
    display: inline-grid;
    place-items: center;
    width: 36px;
    height: 36px;
    margin-bottom: 14px;
    border-radius: 50%;
    background: #dff8fb;
    color: #086678;
    font-size: 0.85rem;
    font-weight: 900;
  }

  #rk-pump-guide .rk-pump-callout,
  #rk-pump-guide .rk-pump-note,
  #rk-pump-guide .rk-pump-warning {
    margin: 24px 0 0;
    padding: 20px 22px;
    border-radius: 16px;
    color: #274657;
    font-size: 0.94rem;
    line-height: 1.68;
  }

  #rk-pump-guide .rk-pump-callout {
    border: 1px solid #b9e7ed;
    background: #eaf9fb;
  }

  #rk-pump-guide .rk-pump-note {
    border: 1px solid #d7e1e7;
    background: #ffffff;
  }

  #rk-pump-guide .rk-pump-warning {
    border: 1px solid #efd0a1;
    background: #fff6e9;
  }

  #rk-pump-guide .rk-pump-tool {
    overflow: hidden;
    margin: 28px 0 0;
    border: 1px solid #aacbd2;
    border-radius: 26px;
    background: #ffffff;
    box-shadow: 0 18px 46px rgba(15, 66, 78, 0.12);
  }

  #rk-pump-guide .rk-pump-tool-head {
    padding: 28px clamp(22px, 4vw, 40px);
    background: linear-gradient(125deg, var(--rk-pump-navy), #0d5962);
    color: #ffffff;
  }

  #rk-pump-guide .rk-pump-tool-head .rk-pump-eyebrow {
    color: #ffad73;
  }

  #rk-pump-guide .rk-pump-tool-head h3 {
    margin: 0 0 10px;
    color: #ffffff;
    font-size: clamp(1.35rem, 3vw, 2.05rem);
    line-height: 1.2;
  }

  #rk-pump-guide .rk-pump-tool-head p {
    max-width: 920px;
    margin: 0;
    color: #e9f7fa;
    font-size: 0.94rem;
  }

  #rk-pump-guide .rk-pump-tool-body {
    padding: clamp(22px, 4vw, 40px);
  }

  #rk-pump-guide .rk-pump-control-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 22px;
  }

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

  #rk-pump-guide .rk-pump-control-label {
    display: block;
    margin-bottom: 11px;
    color: var(--rk-pump-navy);
    font-size: 0.84rem;
    font-weight: 900;
  }

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

  #rk-pump-guide .rk-pump-segmented button {
    min-width: 0;
    min-height: 48px;
    padding: 9px 12px;
    border: 1px solid #bfd0d9;
    border-radius: 13px;
    background: #ffffff;
    color: var(--rk-pump-navy);
    font: inherit;
    font-size: 0.84rem;
    font-weight: 850;
    line-height: 1.25;
    cursor: pointer;
    transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
  }

  #rk-pump-guide .rk-pump-segmented button:hover {
    transform: translateY(-1px);
    border-color: var(--rk-pump-teal);
  }

  #rk-pump-guide .rk-pump-segmented button[aria-pressed="true"] {
    border-color: var(--rk-pump-navy);
    background: var(--rk-pump-navy);
    color: #ffffff;
    box-shadow: 0 8px 18px rgba(18, 50, 71, 0.18);
  }

  #rk-pump-guide .rk-pump-state-summary {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 16px;
    align-items: center;
    margin: 0 0 22px;
    padding: 20px;
    border: 1px solid #b9e7ed;
    border-radius: 18px;
    background: #eaf9fb;
  }

  #rk-pump-guide .rk-pump-state-dot {
    display: grid;
    place-items: center;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: var(--rk-pump-green);
    color: #ffffff;
    font-size: 1.25rem;
    font-weight: 900;
  }

  #rk-pump-guide .rk-pump-state-summary[data-flow="closed"] {
    border-color: #e5c4c2;
    background: #fff1f0;
  }

  #rk-pump-guide .rk-pump-state-summary[data-flow="closed"] .rk-pump-state-dot {
    background: var(--rk-pump-red);
  }

  #rk-pump-guide .rk-pump-state-summary strong {
    display: block;
    margin-bottom: 2px;
    color: var(--rk-pump-navy);
    font-size: 1.05rem;
  }

  #rk-pump-guide .rk-pump-state-summary p {
    margin: 0;
    color: #405c6d;
    font-size: 0.91rem;
    line-height: 1.55;
  }

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

  #rk-pump-guide .rk-pump-flow-step {
    position: relative;
    min-width: 0;
    padding: 22px;
    border: 1px solid var(--rk-pump-line);
    border-radius: 20px;
    background: #ffffff;
    color: var(--rk-pump-ink);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
  }

  #rk-pump-guide .rk-pump-flow-step.is-active {
    border-color: #64c7d2;
    box-shadow: 0 12px 28px rgba(14, 119, 135, 0.13);
    transform: translateY(-2px);
  }

  #rk-pump-guide .rk-pump-flow-step.is-rest {
    background: #f7f9fa;
  }

  #rk-pump-guide .rk-pump-flow-top {
    display: flex;
    gap: 13px;
    align-items: center;
    margin-bottom: 14px;
  }

  #rk-pump-guide .rk-pump-flow-icon {
    display: grid;
    flex: 0 0 52px;
    place-items: center;
    width: 52px;
    height: 52px;
    border-radius: 16px;
    background: #e6f7f9;
    color: #087083;
  }

  #rk-pump-guide .rk-pump-flow-icon svg {
    width: 29px;
    height: 29px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
  }

  #rk-pump-guide .rk-pump-flow-number {
    display: block;
    color: var(--rk-pump-orange);
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-pump-guide .rk-pump-flow-step h4 {
    margin: 2px 0 0;
    color: var(--rk-pump-navy);
    font-size: 1rem;
    line-height: 1.25;
  }

  #rk-pump-guide .rk-pump-flow-value {
    display: inline-flex;
    align-items: center;
    min-height: 31px;
    margin-bottom: 10px;
    padding: 5px 11px;
    border-radius: 999px;
    background: #dff6e9;
    color: #176a4e;
    font-size: 0.77rem;
    font-weight: 900;
    line-height: 1.2;
  }

  #rk-pump-guide .rk-pump-flow-value.is-off {
    background: #eef1f3;
    color: #5c6e79;
  }

  #rk-pump-guide .rk-pump-flow-value.is-closed {
    background: #fde7e6;
    color: #9c3936;
  }

  #rk-pump-guide .rk-pump-flow-copy {
    margin: 0;
    color: #405b6c;
    font-size: 0.87rem;
    line-height: 1.6;
  }

  #rk-pump-guide .rk-pump-tool-disclaimer {
    margin: 22px 0 0;
    padding: 17px 19px;
    border: 1px solid #efd0a1;
    border-radius: 15px;
    background: #fff6e9;
    color: #5f4a2c;
    font-size: 0.86rem;
    line-height: 1.6;
  }

  #rk-pump-guide .rk-pump-compare-table,
  #rk-pump-guide .rk-pump-diagnostic-table {
    overflow: hidden;
    margin: 24px 0;
    border: 1px solid var(--rk-pump-line);
    border-radius: 20px;
    background: #ffffff;
  }

  #rk-pump-guide .rk-pump-table-row {
    display: grid;
    grid-template-columns: minmax(150px, 0.8fr) repeat(2, minmax(0, 1fr));
    border-top: 1px solid var(--rk-pump-line);
  }

  #rk-pump-guide .rk-pump-table-row:first-child {
    border-top: 0;
  }

  #rk-pump-guide .rk-pump-table-row > div {
    min-width: 0;
    padding: 18px 20px;
    border-left: 1px solid var(--rk-pump-line);
    color: #3b5667;
    font-size: 0.89rem;
    line-height: 1.58;
  }

  #rk-pump-guide .rk-pump-table-row > div:first-child {
    border-left: 0;
  }

  #rk-pump-guide .rk-pump-table-head {
    background: var(--rk-pump-navy);
  }

  #rk-pump-guide .rk-pump-table-head > div {
    color: #ffffff;
    font-weight: 850;
  }

  #rk-pump-guide .rk-pump-table-label {
    background: #f2f6f8;
    color: var(--rk-pump-navy) !important;
    font-weight: 850;
  }

  #rk-pump-guide .rk-pump-diagnostic-table .rk-pump-table-row {
    grid-template-columns: minmax(180px, 0.8fr) minmax(0, 1fr) minmax(0, 1.15fr);
  }

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

  #rk-pump-guide .rk-pump-spec {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--rk-pump-line);
    border-radius: 17px;
    background: #ffffff;
  }

  #rk-pump-guide .rk-pump-spec-mark {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #daf4f7;
    color: #0b7180;
    font-weight: 900;
  }

  #rk-pump-guide .rk-pump-spec strong {
    display: block;
    margin-bottom: 4px;
    color: var(--rk-pump-navy);
    font-size: 0.94rem;
  }

  #rk-pump-guide .rk-pump-spec span {
    display: block;
    color: #4b6474;
    font-size: 0.84rem;
    line-height: 1.55;
  }

  #rk-pump-guide .rk-pump-chain {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    align-items: stretch;
    margin: 26px 0;
  }

  #rk-pump-guide .rk-pump-chain-item {
    position: relative;
    min-width: 0;
    padding: 19px 15px;
    border: 1px solid var(--rk-pump-line);
    border-radius: 17px;
    background: #ffffff;
    color: var(--rk-pump-ink);
    text-align: center;
  }

  #rk-pump-guide .rk-pump-chain-item::after {
    content: "→";
    position: absolute;
    top: 50%;
    right: -15px;
    z-index: 2;
    width: 18px;
    color: var(--rk-pump-orange);
    font-size: 1.15rem;
    font-weight: 900;
    line-height: 1;
    transform: translateY(-50%);
  }

  #rk-pump-guide .rk-pump-chain-item:last-child::after {
    display: none;
  }

  #rk-pump-guide .rk-pump-chain-item strong {
    display: block;
    color: var(--rk-pump-navy);
    font-size: 0.9rem;
    line-height: 1.35;
  }

  #rk-pump-guide .rk-pump-chain-item span {
    display: block;
    margin-top: 5px;
    color: #56707f;
    font-size: 0.75rem;
    line-height: 1.45;
  }

  #rk-pump-guide .rk-pump-steps {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 24px 0;
    counter-reset: rk-pump-step;
  }

  #rk-pump-guide .rk-pump-step {
    position: relative;
    min-width: 0;
    padding: 21px 21px 21px 67px;
    border: 1px solid var(--rk-pump-line);
    border-radius: 19px;
    background: #ffffff;
    color: var(--rk-pump-ink);
    counter-increment: rk-pump-step;
  }

  #rk-pump-guide .rk-pump-step::before {
    content: counter(rk-pump-step);
    position: absolute;
    top: 20px;
    left: 20px;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--rk-pump-navy);
    color: #ffffff;
    font-size: 0.82rem;
    font-weight: 900;
  }

  #rk-pump-guide .rk-pump-step h3 {
    margin: 0 0 7px;
    color: var(--rk-pump-navy);
    font-size: 1rem;
    line-height: 1.35;
  }

  #rk-pump-guide .rk-pump-step p {
    margin: 0;
    color: #435e6f;
    font-size: 0.88rem;
    line-height: 1.6;
  }

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

  #rk-pump-guide .rk-pump-mistake {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 13px;
    min-width: 0;
    padding: 19px;
    border: 1px solid #ead4d2;
    border-radius: 17px;
    background: #fff7f6;
  }

  #rk-pump-guide .rk-pump-mistake-icon {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--rk-pump-red);
    color: #ffffff;
    font-weight: 900;
  }

  #rk-pump-guide .rk-pump-mistake strong {
    color: #7e302e;
    font-size: 0.94rem;
  }

  #rk-pump-guide .rk-pump-mistake p {
    margin: 4px 0 0;
    color: #5f4d4c;
    font-size: 0.85rem;
    line-height: 1.55;
  }

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

  #rk-pump-guide .rk-pump-checklist-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 13px;
    align-items: start;
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--rk-pump-line);
    border-radius: 17px;
    background: #ffffff;
    color: #425d6e;
    font-size: 0.86rem;
    line-height: 1.55;
  }

  #rk-pump-guide .rk-pump-checklist-item > span {
    display: grid;
    place-items: center;
    width: 31px;
    height: 31px;
    border-radius: 50%;
    background: #dff6e9;
    color: var(--rk-pump-green);
    font-weight: 900;
  }

  #rk-pump-guide .rk-pump-checklist-item strong {
    color: var(--rk-pump-navy);
    font-size: 0.92rem;
  }

  #rk-pump-guide .rk-pump-formula {
    display: grid;
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    gap: 18px;
    align-items: stretch;
    margin: 24px 0;
  }

  #rk-pump-guide .rk-pump-formula-box {
    display: grid;
    place-items: center;
    min-height: 170px;
    padding: 24px;
    border-radius: 20px;
    background: var(--rk-pump-navy);
    color: #ffffff;
    text-align: center;
  }

  #rk-pump-guide .rk-pump-formula-box strong {
    display: block;
    color: var(--rk-pump-cyan);
    font-size: clamp(1.35rem, 3vw, 2rem);
    line-height: 1.25;
  }

  #rk-pump-guide .rk-pump-formula-box span {
    display: block;
    margin-top: 8px;
    color: #dcecf2;
    font-size: 0.82rem;
  }

  #rk-pump-guide .rk-pump-formula-copy {
    padding: 23px;
    border: 1px solid var(--rk-pump-line);
    border-radius: 20px;
    background: #ffffff;
    color: #3f596a;
  }

  #rk-pump-guide .rk-pump-formula-copy h3 {
    margin: 0 0 9px;
    color: var(--rk-pump-navy);
    font-size: 1.08rem;
  }

  #rk-pump-guide .rk-pump-formula-copy p:last-child {
    margin-bottom: 0;
  }

  #rk-pump-guide .rk-pump-cta {
    margin: 32px 0 0;
    padding: clamp(27px, 4vw, 42px);
    border-radius: 24px;
    background:
      radial-gradient(circle at 100% 110%, rgba(95, 222, 240, 0.14) 0 130px, transparent 131px),
      linear-gradient(125deg, var(--rk-pump-navy), #0b5761);
    color: #ffffff;
    box-shadow: 0 18px 45px rgba(11, 45, 62, 0.18);
  }

  #rk-pump-guide .rk-pump-cta-title {
    max-width: 930px;
    margin: 0 0 12px;
    color: #ffffff;
    font-size: clamp(1.45rem, 3.2vw, 2.35rem);
    font-weight: 900;
    letter-spacing: -0.03em;
    line-height: 1.16;
  }

  #rk-pump-guide .rk-pump-cta p {
    max-width: 980px;
    margin-bottom: 20px;
    color: #e7f3f6;
  }

  #rk-pump-guide .rk-pump-cta-button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 52px;
    padding: 12px 20px;
    border: 2px solid var(--rk-pump-orange);
    border-radius: 12px;
    background: var(--rk-pump-orange);
    color: #ffffff !important;
    font-weight: 900;
    line-height: 1.3;
    text-align: center;
    text-decoration: none !important;
    box-shadow: 0 10px 22px rgba(255, 122, 33, 0.22);
  }

  #rk-pump-guide .rk-pump-cta-button:hover {
    border-color: #ff9652;
    background: #ff9652;
    color: #ffffff !important;
  }

  #rk-pump-guide .rk-pump-link-disclosure {
    display: block;
    margin-top: 13px;
    color: #cfe1e6;
    font-size: 0.72rem;
    line-height: 1.45;
  }

  #rk-pump-guide .rk-pump-source-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 24px;
  }

  #rk-pump-guide .rk-pump-source-card {
    min-width: 0;
    padding: 20px;
    border: 1px solid var(--rk-pump-line);
    border-radius: 18px;
    background: #ffffff;
  }

  #rk-pump-guide .rk-pump-source-card a {
    display: inline-block;
    color: var(--rk-pump-navy);
    font-size: 0.93rem;
    font-weight: 900;
    line-height: 1.45;
  }

  #rk-pump-guide .rk-pump-source-card p {
    margin: 8px 0 0;
    color: #516a79;
    font-size: 0.83rem;
    line-height: 1.55;
  }

  #rk-pump-guide .rk-pump-responsibility {
    margin-top: 20px;
    padding: 21px;
    border: 1px solid #d7e1e7;
    border-radius: 18px;
    background: #ffffff;
    color: #405a6b;
    font-size: 0.87rem;
    line-height: 1.62;
  }

  #rk-pump-guide .rk-pump-responsibility p:last-child {
    margin-bottom: 0;
  }

  #rk-pump-guide .rk-pump-faq details {
    overflow: hidden;
    margin: 12px 0;
    border: 1px solid var(--rk-pump-line);
    border-radius: 16px;
    background: #ffffff;
  }

  #rk-pump-guide .rk-pump-faq summary {
    position: relative;
    padding: 18px 52px 18px 20px;
    color: var(--rk-pump-navy);
    font-size: 0.96rem;
    font-weight: 850;
    line-height: 1.45;
    cursor: pointer;
    list-style: none;
  }

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

  #rk-pump-guide .rk-pump-faq summary::after {
    content: "+";
    position: absolute;
    top: 50%;
    right: 20px;
    color: var(--rk-pump-teal);
    font-size: 1.4rem;
    font-weight: 700;
    transform: translateY(-50%);
  }

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

  #rk-pump-guide .rk-pump-faq-answer {
    padding: 0 20px 18px;
    color: #415c6d;
    font-size: 0.9rem;
    line-height: 1.65;
  }

  #rk-pump-guide .rk-pump-faq-answer p:last-child {
    margin-bottom: 0;
  }

  #rk-pump-guide .rk-pump-author {
    background:
      radial-gradient(circle at 98% 100%, rgba(95, 222, 240, 0.12) 0 150px, transparent 151px),
      linear-gradient(130deg, #102d40, #113f4e);
    color: #eaf4f7;
  }

  #rk-pump-guide .rk-pump-author .rk-pump-eyebrow {
    color: #ff9a57;
  }

  #rk-pump-guide .rk-pump-author-title {
    color: #ffffff;
  }

  #rk-pump-guide .rk-pump-author-layout {
    display: grid;
    grid-template-columns: minmax(210px, 0.34fr) minmax(0, 1fr);
    gap: 28px;
    align-items: start;
    margin-top: 25px;
  }

  #rk-pump-guide .rk-pump-author-side {
    padding: 22px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.07);
    text-align: center;
  }

  #rk-pump-guide .rk-pump-author-photo {
    width: 150px;
    height: 150px;
    margin: 0 auto 16px;
    overflow: hidden;
    border: 4px solid rgba(255, 255, 255, 0.24);
    border-radius: 50%;
    background: #ffffff;
  }

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

  #rk-pump-guide .rk-pump-author-name a {
    color: #ffffff;
    font-size: 1.12rem;
    font-weight: 900;
  }

  #rk-pump-guide .rk-pump-author-role {
    margin: 7px 0 13px;
    color: #dbeaf0;
    font-size: 0.82rem;
    line-height: 1.5;
  }

  #rk-pump-guide .rk-pump-author-social {
    display: flex;
    justify-content: center;
    gap: 9px;
  }

  #rk-pump-guide .rk-pump-author-social a {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
    font-size: 0.8rem;
    font-weight: 900;
    text-decoration: none;
  }

  #rk-pump-guide .rk-pump-author-main p {
    color: #dcecf1;
    font-size: 0.92rem;
  }

  #rk-pump-guide .rk-pump-author-main a {
    color: var(--rk-pump-cyan);
  }

  #rk-pump-guide .rk-pump-author-quote {
    margin-bottom: 21px;
    padding: 22px;
    border-left: 5px solid var(--rk-pump-cyan);
    border-radius: 7px 17px 17px 7px;
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
    font-size: 1.03rem;
    font-weight: 750;
    line-height: 1.6;
  }

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

  #rk-pump-guide .rk-pump-author-fact {
    min-width: 0;
    padding: 15px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 15px;
    background: rgba(255, 255, 255, 0.06);
    color: #d7e8ed;
    font-size: 0.75rem;
    line-height: 1.45;
  }

  #rk-pump-guide .rk-pump-author-fact strong {
    display: block;
    margin-bottom: 4px;
    color: #ffffff;
    font-size: 0.8rem;
  }

  #rk-pump-guide .rk-pump-tool-tabs,
  #rk-pump-guide .rk-pump-graphic-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin: 0 0 22px;
  }

  #rk-pump-guide .rk-pump-tool-tabs button,
  #rk-pump-guide .rk-pump-graphic-controls button {
    min-height: 44px;
    padding: 9px 15px;
    border: 1px solid #bdd0d8;
    border-radius: 999px;
    background: #ffffff;
    color: var(--rk-pump-navy);
    font: inherit;
    font-size: 0.8rem;
    font-weight: 850;
    line-height: 1.25;
    cursor: pointer;
  }

  #rk-pump-guide .rk-pump-tool-tabs button[aria-selected="true"],
  #rk-pump-guide .rk-pump-graphic-controls button[aria-pressed="true"] {
    border-color: var(--rk-pump-navy);
    background: var(--rk-pump-navy);
    color: #ffffff;
    box-shadow: 0 8px 20px rgba(18, 50, 71, 0.18);
  }

  #rk-pump-guide .rk-pump-panel[hidden],
  #rk-pump-guide .rk-pump-is-hidden {
    display: none !important;
  }

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

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

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

  #rk-pump-guide .rk-pump-field label,
  #rk-pump-guide .rk-pump-field-label {
    display: block;
    margin: 0 0 7px;
    color: var(--rk-pump-navy);
    font-size: 0.79rem;
    font-weight: 900;
    line-height: 1.4;
  }

  #rk-pump-guide .rk-pump-field input,
  #rk-pump-guide .rk-pump-field select,
  #rk-pump-guide .rk-pump-loop-row input,
  #rk-pump-guide .rk-pump-curve-row input {
    width: 100%;
    min-height: 47px;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid #b9cbd4;
    border-radius: 11px;
    background: #ffffff;
    color: #173246;
    font: inherit;
    font-size: 0.91rem;
    line-height: 1.2;
  }

  #rk-pump-guide .rk-pump-field input:focus,
  #rk-pump-guide .rk-pump-field select:focus,
  #rk-pump-guide .rk-pump-loop-row input:focus,
  #rk-pump-guide .rk-pump-curve-row input:focus {
    outline: 3px solid rgba(95, 222, 240, 0.34);
    border-color: var(--rk-pump-teal);
  }

  #rk-pump-guide .rk-pump-field-help {
    display: block;
    margin-top: 7px;
    color: #5c7180;
    font-size: 0.7rem;
    line-height: 1.45;
  }

  #rk-pump-guide .rk-pump-tool-subtitle {
    margin: 26px 0 10px;
    color: var(--rk-pump-navy);
    font-size: 1.12rem;
    font-weight: 900;
    line-height: 1.35;
  }

  #rk-pump-guide .rk-pump-loop-editor,
  #rk-pump-guide .rk-pump-curve-editor {
    margin: 18px 0;
    padding: 18px;
    border: 1px solid var(--rk-pump-line);
    border-radius: 18px;
    background: var(--rk-pump-soft);
  }

  #rk-pump-guide .rk-pump-loop-row,
  #rk-pump-guide .rk-pump-curve-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(120px, 0.46fr) auto;
    gap: 9px;
    align-items: end;
    margin-top: 10px;
  }

  #rk-pump-guide .rk-pump-curve-row {
    grid-template-columns: 42px repeat(2, minmax(110px, 1fr));
  }

  #rk-pump-guide .rk-pump-loop-row:first-child,
  #rk-pump-guide .rk-pump-curve-row:first-child {
    margin-top: 0;
  }

  #rk-pump-guide .rk-pump-loop-cell label,
  #rk-pump-guide .rk-pump-curve-cell label {
    display: block;
    margin-bottom: 5px;
    color: #496371;
    font-size: 0.68rem;
    font-weight: 850;
    line-height: 1.35;
  }

  #rk-pump-guide .rk-pump-remove-loop,
  #rk-pump-guide .rk-pump-add-loop {
    min-height: 45px;
    padding: 9px 13px;
    border: 1px solid #c7d5dc;
    border-radius: 11px;
    background: #ffffff;
    color: var(--rk-pump-navy);
    font: inherit;
    font-size: 0.77rem;
    font-weight: 850;
    cursor: pointer;
  }

  #rk-pump-guide .rk-pump-remove-loop {
    width: 45px;
    padding: 8px;
    color: #9b3b38;
  }

  #rk-pump-guide .rk-pump-add-loop {
    margin-top: 13px;
    border-color: #86cdd5;
    background: #eaf9fb;
    color: #075f6b;
  }

  #rk-pump-guide .rk-pump-calc-layout {
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
    gap: 20px;
    align-items: start;
  }

  #rk-pump-guide .rk-pump-results {
    min-width: 0;
  }

  #rk-pump-guide .rk-pump-result-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 11px;
    margin: 0 0 16px;
  }

  #rk-pump-guide .rk-pump-result {
    min-width: 0;
    padding: 17px;
    border: 1px solid #b8dce1;
    border-radius: 16px;
    background: #effbfc;
  }

  #rk-pump-guide .rk-pump-result span {
    display: block;
    color: #4c6876;
    font-size: 0.7rem;
    font-weight: 850;
    line-height: 1.35;
  }

  #rk-pump-guide .rk-pump-result strong {
    display: block;
    margin-top: 4px;
    color: var(--rk-pump-navy);
    font-size: clamp(1.2rem, 2.5vw, 1.7rem);
    line-height: 1.2;
  }

  #rk-pump-guide .rk-pump-breakdown {
    padding: 18px;
    border: 1px solid var(--rk-pump-line);
    border-radius: 17px;
    background: #ffffff;
  }

  #rk-pump-guide .rk-pump-breakdown-title {
    display: block;
    margin-bottom: 12px;
    color: var(--rk-pump-navy);
    font-size: 0.86rem;
    font-weight: 900;
  }

  #rk-pump-guide .rk-pump-break-row {
    display: grid;
    grid-template-columns: minmax(104px, 0.62fr) minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    margin: 9px 0;
    color: #496371;
    font-size: 0.73rem;
    line-height: 1.35;
  }

  #rk-pump-guide .rk-pump-break-row strong,
  #rk-pump-guide .rk-pump-curve-row > strong {
    color: var(--rk-pump-navy);
  }

  #rk-pump-guide .rk-pump-section-dark .rk-pump-callout strong {
    color: var(--rk-pump-navy);
  }

  #rk-pump-guide .rk-pump-break-track {
    height: 9px;
    overflow: hidden;
    border-radius: 999px;
    background: #e8eef1;
  }

  #rk-pump-guide .rk-pump-break-fill {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--rk-pump-teal), var(--rk-pump-cyan));
  }

  #rk-pump-guide .rk-pump-chart-card {
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--rk-pump-line);
    border-radius: 18px;
    background: #ffffff;
  }

  #rk-pump-guide .rk-pump-chart-title {
    margin: 0 0 11px;
    color: var(--rk-pump-navy);
    font-size: 0.95rem;
    font-weight: 900;
  }

  #rk-pump-guide .rk-pump-chart-wrap {
    width: 100%;
    min-width: 0;
    overflow: hidden;
    border-radius: 13px;
    background: #f8fbfc;
  }

  #rk-pump-guide .rk-pump-chart-wrap svg {
    display: block;
    width: 100%;
    height: auto;
    min-height: 310px;
  }

  #rk-pump-guide .rk-pump-chart-grid-line {
    stroke: #dbe5ea;
    stroke-width: 1;
  }

  #rk-pump-guide .rk-pump-chart-axis {
    stroke: #6f8592;
    stroke-width: 1.4;
  }

  #rk-pump-guide .rk-pump-system-path {
    fill: none;
    stroke: var(--rk-pump-teal);
    stroke-width: 4;
  }

  #rk-pump-guide .rk-pump-device-path {
    fill: none;
    stroke: var(--rk-pump-orange);
    stroke-width: 4;
  }

  #rk-pump-guide .rk-pump-design-point {
    fill: var(--rk-pump-navy);
    stroke: #ffffff;
    stroke-width: 4;
  }

  #rk-pump-guide .rk-pump-operating-point {
    fill: var(--rk-pump-orange);
    stroke: #ffffff;
    stroke-width: 4;
  }

  #rk-pump-guide .rk-pump-chart-tick,
  #rk-pump-guide .rk-pump-chart-label {
    fill: #55707f;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 12px;
  }

  #rk-pump-guide .rk-pump-chart-label {
    fill: var(--rk-pump-navy);
    font-size: 13px;
    font-weight: 800;
  }

  #rk-pump-guide .rk-pump-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 15px;
    margin-top: 12px;
    color: #536d7b;
    font-size: 0.69rem;
    font-weight: 800;
  }

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

  #rk-pump-guide .rk-pump-legend i {
    display: inline-block;
    width: 25px;
    height: 4px;
    border-radius: 999px;
    background: var(--rk-pump-teal);
  }

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

  #rk-pump-guide .rk-pump-legend .is-point i {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--rk-pump-navy);
  }

  #rk-pump-guide .rk-pump-status {
    margin: 15px 0 0;
    padding: 15px 17px;
    border: 1px solid #b8dce1;
    border-radius: 14px;
    background: #effbfc;
    color: #315261;
    font-size: 0.79rem;
    line-height: 1.55;
  }

  #rk-pump-guide .rk-pump-status.is-warning {
    border-color: #efd0a1;
    background: #fff6e9;
    color: #664d2b;
  }

  #rk-pump-guide .rk-pump-status.is-bad {
    border-color: #e6c2c0;
    background: #fff2f1;
    color: #743b38;
  }

  #rk-pump-guide .rk-pump-status.is-good {
    border-color: #b8ddce;
    background: #eefaf5;
    color: #245d48;
  }

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

  #rk-pump-guide .rk-pump-hydraulic-card {
    min-width: 0;
    padding: 20px;
    border: 1px solid var(--rk-pump-line);
    border-radius: 18px;
    background: #ffffff;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
  }

  #rk-pump-guide .rk-pump-hydraulic-card.is-active {
    border-color: #5fc6d1;
    box-shadow: 0 12px 28px rgba(14, 119, 135, 0.13);
    transform: translateY(-2px);
  }

  #rk-pump-guide .rk-pump-hydraulic-card.is-muted {
    opacity: 0.58;
    background: #f3f6f7;
  }

  #rk-pump-guide .rk-pump-hydraulic-number {
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 34px;
    margin-bottom: 12px;
    border-radius: 50%;
    background: #ddf6f8;
    color: #086878;
    font-size: 0.78rem;
    font-weight: 900;
  }

  #rk-pump-guide .rk-pump-hydraulic-card h3 {
    margin: 0 0 8px;
    color: var(--rk-pump-navy);
    font-size: 1rem;
    line-height: 1.35;
  }

  #rk-pump-guide .rk-pump-hydraulic-value {
    display: inline-flex;
    min-height: 29px;
    align-items: center;
    margin: 0 0 9px;
    padding: 5px 10px;
    border-radius: 999px;
    background: #eef4f6;
    color: #3f5e6d;
    font-size: 0.71rem;
    font-weight: 900;
  }

  #rk-pump-guide .rk-pump-hydraulic-card.is-active .rk-pump-hydraulic-value {
    background: #dff6e9;
    color: #21664e;
  }

  #rk-pump-guide .rk-pump-hydraulic-card p {
    margin: 0;
    color: #466171;
    font-size: 0.82rem;
    line-height: 1.58;
  }

  #rk-pump-guide .rk-pump-graphic-result {
    margin-top: 16px;
    padding: 20px;
    border-left: 5px solid var(--rk-pump-cyan);
    border-radius: 8px 16px 16px 8px;
    background: var(--rk-pump-navy);
    color: #ffffff;
  }

  #rk-pump-guide .rk-pump-graphic-result strong {
    display: block;
    margin-bottom: 5px;
    color: #ffffff;
  }

  #rk-pump-guide .rk-pump-graphic-result p {
    margin: 0;
    color: #e8f5f8;
    font-size: 0.87rem;
  }

  #rk-pump-guide .rk-pump-equation {
    overflow-wrap: anywhere;
    font-variant-numeric: tabular-nums;
  }

  #rk-pump-guide .rk-pump-visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
  }

  @media (max-width: 1040px) {
    #rk-pump-guide .rk-pump-grid-4 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

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

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

    #rk-pump-guide .rk-pump-chain-item::after {
      display: none;
    }

    #rk-pump-guide .rk-pump-calc-layout {
      grid-template-columns: 1fr;
    }
  }

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

    #rk-pump-guide .rk-pump-hero {
      border-radius: 24px;
    }

    #rk-pump-guide .rk-pump-hero-metrics,
    #rk-pump-guide .rk-pump-grid-3,
    #rk-pump-guide .rk-pump-source-grid,
    #rk-pump-guide .rk-pump-author-facts {
      grid-template-columns: 1fr;
    }

    #rk-pump-guide .rk-pump-control-grid,
    #rk-pump-guide .rk-pump-formula,
    #rk-pump-guide .rk-pump-author-layout {
      grid-template-columns: 1fr;
    }

    #rk-pump-guide .rk-pump-author-side {
      max-width: 430px;
    }

    #rk-pump-guide .rk-pump-field-grid-3,
    #rk-pump-guide .rk-pump-hydraulic-grid {
      grid-template-columns: 1fr;
    }
  }

  @media (max-width: 700px) {
    #rk-pump-guide .rk-pump-section,
    #rk-pump-guide .rk-pump-author {
      border-radius: 22px;
    }

    #rk-pump-guide .rk-pump-grid-2,
    #rk-pump-guide .rk-pump-grid-4,
    #rk-pump-guide .rk-pump-flow-grid,
    #rk-pump-guide .rk-pump-spec-grid,
    #rk-pump-guide .rk-pump-steps,
    #rk-pump-guide .rk-pump-mistakes,
    #rk-pump-guide .rk-pump-checklist,
    #rk-pump-guide .rk-pump-chain {
      grid-template-columns: 1fr;
    }

    #rk-pump-guide .rk-pump-field-grid,
    #rk-pump-guide .rk-pump-result-grid {
      grid-template-columns: 1fr;
    }

    #rk-pump-guide .rk-pump-table-row,
    #rk-pump-guide .rk-pump-diagnostic-table .rk-pump-table-row {
      display: block;
      padding: 8px 0;
      border-top: 8px solid var(--rk-pump-soft);
    }

    #rk-pump-guide .rk-pump-table-row:first-child {
      display: none;
    }

    #rk-pump-guide .rk-pump-table-row > div {
      display: grid;
      grid-template-columns: minmax(104px, 0.42fr) minmax(0, 1fr);
      gap: 10px;
      padding: 12px 15px;
      border: 0;
    }

    #rk-pump-guide .rk-pump-table-row > div::before {
      content: attr(data-label);
      color: var(--rk-pump-navy);
      font-size: 0.76rem;
      font-weight: 900;
      line-height: 1.45;
    }

    #rk-pump-guide .rk-pump-table-label {
      background: #eef4f6;
    }

    #rk-pump-guide .rk-pump-loop-row {
      grid-template-columns: minmax(0, 1fr) minmax(100px, 0.6fr) auto;
    }
  }

  @media (max-width: 520px) {
    #rk-pump-guide {
      font-size: 16px;
    }

    #rk-pump-guide .rk-pump-hero {
      padding: 34px 22px;
      border-radius: 20px;
    }

    #rk-pump-guide .rk-pump-hero-title {
      font-size: clamp(2.25rem, 12vw, 3.5rem);
      letter-spacing: -0.05em;
    }

    #rk-pump-guide .rk-pump-hero-lead {
      margin-top: 23px;
    }

    #rk-pump-guide .rk-pump-hero-tag {
      min-height: 38px;
      padding: 7px 12px;
      font-size: 0.75rem;
    }

    #rk-pump-guide .rk-pump-byline {
      display: grid;
      gap: 7px;
    }

    #rk-pump-guide .rk-pump-hero-metric {
      padding: 19px;
    }

    #rk-pump-guide .rk-pump-shortcuts {
      padding: 17px;
      border-radius: 18px;
    }

    #rk-pump-guide .rk-pump-shortcuts a {
      font-size: 0.72rem;
    }

    #rk-pump-guide .rk-pump-section,
    #rk-pump-guide .rk-pump-author {
      padding: 28px 19px;
    }

    #rk-pump-guide .rk-pump-answer,
    #rk-pump-guide .rk-pump-card,
    #rk-pump-guide .rk-pump-flow-step {
      padding: 20px;
    }

    #rk-pump-guide .rk-pump-tool-head,
    #rk-pump-guide .rk-pump-tool-body {
      padding: 22px 17px;
    }

    #rk-pump-guide .rk-pump-segmented {
      grid-template-columns: 1fr;
    }

    #rk-pump-guide .rk-pump-state-summary {
      grid-template-columns: 1fr;
    }

    #rk-pump-guide .rk-pump-state-dot {
      width: 44px;
      height: 44px;
    }

    #rk-pump-guide .rk-pump-step {
      padding: 66px 19px 19px;
    }

    #rk-pump-guide .rk-pump-step::before {
      top: 19px;
      left: 19px;
    }

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

    #rk-pump-guide .rk-pump-table-row > div {
      grid-template-columns: 1fr;
      gap: 4px;
    }

    #rk-pump-guide .rk-pump-loop-row,
    #rk-pump-guide .rk-pump-curve-row {
      grid-template-columns: 1fr;
      padding: 13px;
      border: 1px solid var(--rk-pump-line);
      border-radius: 14px;
      background: #ffffff;
    }

    #rk-pump-guide .rk-pump-remove-loop {
      width: 100%;
    }

    #rk-pump-guide .rk-pump-chart-wrap svg {
      min-height: 260px;
    }

    #rk-pump-guide .rk-pump-break-row {
      grid-template-columns: 1fr auto;
    }

    #rk-pump-guide .rk-pump-break-track {
      grid-column: 1 / -1;
      grid-row: 2;
    }
  }

  @media print {
    #rk-pump-guide .rk-pump-shortcuts,
    #rk-pump-guide .rk-pump-control-grid {
      display: none !important;
    }

    #rk-pump-guide .rk-pump-section,
    #rk-pump-guide .rk-pump-author,
    #rk-pump-guide .rk-pump-hero {
      break-inside: avoid;
      box-shadow: none;
    }

    #rk-pump-guide .rk-pump-faq details {
      break-inside: avoid;
    }

    #rk-pump-guide .rk-pump-faq details:not([open]) .rk-pump-faq-answer {
      display: block;
    }
  }

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

<article id="rk-pump-guide" aria-labelledby="rk-pump-visual-title">
  <div class="rk-pump-shell">
    <header class="rk-pump-hero">
      <div class="rk-pump-hero-inner">
        <span class="rk-pump-kicker">Hydraulika podłogówki · aktualizacja 2026</span>
        <div class="rk-pump-hero-title" id="rk-pump-visual-title">Dobierz punkt pracy pompy — <span>bez zgadywania</span></div>
        <p class="rk-pump-hero-lead">Pompy obiegowej nie dobiera się po metrażu domu ani wyłącznie po długości najdalszej pętli. Potrzebne są dwa wyniki: całkowity przepływ Q oraz strata ciśnienia krytycznej drogi H. Dopiero ich położenie na charakterystyce konkretnego urządzenia pozwala ocenić dobór.</p>

        <div class="rk-pump-hero-tags" aria-label="Zakres poradnika">
          <span class="rk-pump-hero-tag">przepływ Q</span>
          <span class="rk-pump-hero-tag">wysokość H</span>
          <span class="rk-pump-hero-tag">pętla krytyczna</span>
          <span class="rk-pump-hero-tag">krzywa pompy</span>
          <span class="rk-pump-hero-tag">CP, PP i AUTO</span>
        </div>

        <div class="rk-pump-byline">
          <span>Autor: <strong>Robert Kucharski</strong></span>
          <span>Czas czytania: około 28 minut</span>
          <span>Aktualizacja techniczna: 10 września 2026 r.</span>
        </div>

        <div class="rk-pump-hero-metrics" aria-label="Trzy etapy doboru pompy obiegowej">
          <div class="rk-pump-hero-metric">
            <b>Przepływ całkowity</b>
            <span>To suma projektowych przepływów pętli obsługiwanych przez dany obieg, a nie wynik przyjęty z powierzchni domu.</span>
          </div>
          <div class="rk-pump-hero-metric">
            <b>Wysokość podnoszenia</b>
            <span>Wynika z oporów krytycznej drogi i odcinków wspólnych. Nie jest sumą oporów wszystkich równoległych pętli.</span>
          </div>
          <div class="rk-pump-hero-metric">
            <b>Końcowy dobór</b>
            <span>Wymagany punkt Q/H trzeba porównać z aktualną charakterystyką pompy i warunkami pracy całego układu.</span>
          </div>
        </div>
      </div>
    </header>

    <nav class="rk-pump-shortcuts" aria-label="Na skróty — wszystkie sekcje artykułu">
      <span class="rk-pump-shortcuts-label">Na skróty</span>
      <a href="#rk-pump-answer">Krótka odpowiedź</a>
      <a href="#rk-pump-point">Q, H i punkt pracy</a>
      <a href="#rk-pump-graphic">Grafika interaktywna</a>
      <a href="#rk-pump-flow">Przepływ Q</a>
      <a href="#rk-pump-head">Wysokość H</a>
      <a href="#rk-pump-calculator">Kalkulator i wykres</a>
      <a href="#rk-pump-curve">Krzywa konkretnej pompy</a>
      <a href="#rk-pump-modes">CP, PP i AUTO</a>
      <a href="#rk-pump-integrated">Pompa w źródle ciepła</a>
      <a href="#rk-pump-installation">Miejsce i montaż</a>
      <a href="#rk-pump-commissioning">Uruchomienie</a>
      <a href="#rk-pump-diagnostics">Diagnostyka</a>
      <a href="#rk-pump-example">Przykład obliczeniowy</a>
      <a href="#rk-pump-energy">Energia i EEI</a>
      <a href="#rk-pump-checklist">Lista kontrolna</a>
      <a href="#rk-pump-conclusions">Wnioski</a>
      <a href="#rk-pump-sources">Źródła</a>
      <a href="#rk-pump-faq">FAQ</a>
      <a href="#rk-pump-author">Autor</a>
    </nav>

    <section class="rk-pump-section" id="rk-pump-answer">
      <span class="rk-pump-eyebrow">Odpowiedź w 30 sekund</span>
      <h2 class="rk-pump-section-title">Jak dobrać pompę obiegową do ogrzewania podłogowego?</h2>
      <div class="rk-pump-answer">
        <span class="rk-pump-answer-label">Najkrótsza poprawna odpowiedź</span>
        <p><strong>Najpierw wyznacza się wymagany przepływ Q dla obiegu, następnie sumuje straty ciśnienia wzdłuż najbardziej niekorzystnej drogi hydraulicznej, przelicza je na H i sprawdza, czy charakterystyka konkretnej pompy obejmuje wymagany punkt pracy. Metraż domu, samo oznaczenie 25-40 lub 25-60 i długość najdłuższej pętli nie wystarczają.</strong></p>
      </div>

      <div class="rk-pump-grid-4">
        <article class="rk-pump-card">
          <span class="rk-pump-card-number">1</span>
          <h3>Policz zapotrzebowanie</h3>
          <p>Punktem wyjścia są obciążenia pomieszczeń, a nie powierzchnia użytkowa. Zobacz, czym jest <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne OZC</a>.</p>
        </article>
        <article class="rk-pump-card">
          <span class="rk-pump-card-number">2</span>
          <h3>Rozdziel przepływy</h3>
          <p>Każda pętla otrzymuje przepływ wynikający z przypisanej mocy i projektowego ΔT. Kontrolę nastaw ułatwia poprawny odczyt <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrów na rozdzielaczu</a>.</p>
        </article>
        <article class="rk-pump-card">
          <span class="rk-pump-card-number">3</span>
          <h3>Znajdź drogę krytyczną</h3>
          <p>Sprawdza się pętlę, odcinki wspólne i armaturę tworzące największą stratę ciśnienia. Najdłuższa pętla nie musi być najbardziej niekorzystna.</p>
        </article>
        <article class="rk-pump-card">
          <span class="rk-pump-card-number">4</span>
          <h3>Porównaj krzywe</h3>
          <p>Punkt instalacji trzeba odnieść do wykresu producenta. Dopiero wtedy można ocenić konkretną pompę i wybraną nastawę.</p>
        </article>
      </div>

      <div class="rk-pump-callout"><strong>Kluczowe rozróżnienie:</strong> wydajność Q mówi, ile wody pompa ma przetłoczyć w jednostce czasu. Wysokość podnoszenia H mówi, jaką różnicę ciśnienia ma wytworzyć przy tym przepływie. Pompa powinna spełnić oba warunki jednocześnie.</div>
    </section>

    <section class="rk-pump-section rk-pump-section-soft" id="rk-pump-point">
      <span class="rk-pump-eyebrow">Trzy wielkości, jedna decyzja</span>
      <h2 class="rk-pump-section-title">Czym są Q, H i punkt pracy pompy?</h2>
      <p class="rk-pump-lead">Parametry pompy nie są stałą obietnicą producenta. Rzeczywisty przepływ powstaje w miejscu przecięcia charakterystyki urządzenia z charakterystyką oporów konkretnej instalacji.</p>

      <div class="rk-pump-grid-3">
        <article class="rk-pump-card">
          <h3>Q — wymagany przepływ</h3>
          <p>Wynika z mocy przekazywanej przez wodę i przyjętej różnicy temperatur zasilania oraz powrotu. W rozdzielaczu przepływy czynnych pętli sumują się.</p>
        </article>
        <article class="rk-pump-card">
          <h3>H — wymagana różnica ciśnień</h3>
          <p>Obejmuje stratę krytycznej pętli, wspólnego zasilania i powrotu oraz elementów takich jak rozdzielacz, zawory, wymiennik, filtr czy separator.</p>
        </article>
        <article class="rk-pump-card">
          <h3>Punkt pracy</h3>
          <p>To para Q/H, przy której układ i pompa osiągają równowagę. Zmiana nastawy, zamknięcie strefy albo zabrudzenie elementu może przesunąć ten punkt.</p>
        </article>
      </div>

      <div class="rk-pump-formula">
        <div class="rk-pump-formula-box">
          <div>
            <strong class="rk-pump-equation">punkt pracy = przecięcie krzywych</strong>
            <span>charakterystyka instalacji + charakterystyka pompy</span>
          </div>
        </div>
        <div class="rk-pump-formula-copy">
          <h3>Co oznacza maksymalna wartość na pudełku?</h3>
          <p>Maksymalny przepływ jest zwykle osiągany przy bardzo małej wysokości podnoszenia, a maksymalne H przy przepływie bliskim zeru. Nie wolno traktować obu maksymalnych wartości jako jednego dostępnego punktu.</p>
          <p>Oznaczenie klasy pompy pomaga ją rozpoznać, ale nie zastępuje pełnej charakterystyki dla wybranego trybu i nastawy.</p>
        </div>
      </div>

      <div class="rk-pump-note"><strong>W zamkniętym, napełnionym obiegu grzewczym pompa cyrkulacyjna pokonuje przede wszystkim straty przepływu.</strong> Nie dodaje się do H różnicy poziomów między kotłownią a najwyższą kondygnacją tak, jak w układzie podnoszenia wody z otwartego zbiornika. Ciśnienie statyczne pozostaje jednak ważne dla napełnienia, odpowietrzenia i bezpiecznej pracy instalacji.</div>
    </section>

    <section class="rk-pump-section" id="rk-pump-graphic">
      <span class="rk-pump-eyebrow">Interaktywna grafika edukacyjna</span>
      <h2 class="rk-pump-section-title">Dlaczego przepływy się sumują, a oporów pętli nie dodaje się razem?</h2>
      <p class="rk-pump-lead">Wybierz, co chcesz prześledzić. Moduły pokazują inną logikę dla przepływu całkowitego, wymaganej różnicy ciśnień i instalacji z zamykanymi strefami. Grafika jest schematem zasad, a nie symulatorem konkretnego rozdzielacza.</p>

      <div class="rk-pump-tool" id="rk-pump-hydraulic-tool">
        <div class="rk-pump-tool-head">
          <span class="rk-pump-eyebrow">Co naprawdę „widzi” pompa?</span>
          <h3>Prześledź wodę od pompy do pętli krytycznej i z powrotem</h3>
          <p>Każdy widok odpowiada na inne pytanie. W obliczeniach projektowych oba wyniki — Q oraz H — muszą zostać zestawione w jednym punkcie.</p>
        </div>
        <div class="rk-pump-tool-body">
          <div class="rk-pump-graphic-controls" role="group" aria-label="Wybierz sposób analizy instalacji">
            <button type="button" data-rk-pump-view="q" aria-pressed="true">Śledź przepływ Q</button>
            <button type="button" data-rk-pump-view="h" aria-pressed="false">Śledź opory Δp</button>
            <button type="button" data-rk-pump-view="zones" aria-pressed="false">Zamknij część stref</button>
          </div>

          <div class="rk-pump-hydraulic-grid">
            <article class="rk-pump-hydraulic-card is-active" data-rk-pump-hydro-card="supply">
              <span class="rk-pump-hydraulic-number">1</span>
              <h3>Wspólne zasilanie</h3>
              <span class="rk-pump-hydraulic-value" data-rk-pump-hydro-value="">Suma przepływów</span>
              <p data-rk-pump-hydro-copy="">Przed rozdzielaczem płynie suma projektowych przepływów wszystkich otwartych pętli.</p>
            </article>
            <article class="rk-pump-hydraulic-card is-active" data-rk-pump-hydro-card="manifold">
              <span class="rk-pump-hydraulic-number">2</span>
              <h3>Rozdzielacz i zawory</h3>
              <span class="rk-pump-hydraulic-value" data-rk-pump-hydro-value="">Podział strumienia</span>
              <p data-rk-pump-hydro-copy="">Rozdzielacz dzieli przepływ między czynne gałęzie zgodnie z nastawami i ich oporami.</p>
            </article>
            <article class="rk-pump-hydraulic-card is-active" data-rk-pump-hydro-card="parallel">
              <span class="rk-pump-hydraulic-number">3</span>
              <h3>Pętle równoległe</h3>
              <span class="rk-pump-hydraulic-value" data-rk-pump-hydro-value="">q₁ + q₂ + q₃…</span>
              <p data-rk-pump-hydro-copy="">Przepływy pętli sumują się po stronie wspólnej. Każda gałąź ma jednak własną wartość q.</p>
            </article>
            <article class="rk-pump-hydraulic-card is-active" data-rk-pump-hydro-card="critical">
              <span class="rk-pump-hydraulic-number">4</span>
              <h3>Pętla krytyczna</h3>
              <span class="rk-pump-hydraulic-value" data-rk-pump-hydro-value="">Jedna z wielu gałęzi</span>
              <p data-rk-pump-hydro-copy="">Jej przepływ jest częścią sumy. O tym, czy jest krytyczna, decyduje pełna strata drogi, a nie tylko długość.</p>
            </article>
            <article class="rk-pump-hydraulic-card is-active" data-rk-pump-hydro-card="return">
              <span class="rk-pump-hydraulic-number">5</span>
              <h3>Wspólny powrót</h3>
              <span class="rk-pump-hydraulic-value" data-rk-pump-hydro-value="">Ponowna suma</span>
              <p data-rk-pump-hydro-copy="">Po połączeniu gałęzi przez przewód wspólny wraca suma strumieni otwartych pętli.</p>
            </article>
            <article class="rk-pump-hydraulic-card is-active" data-rk-pump-hydro-card="pump">
              <span class="rk-pump-hydraulic-number">6</span>
              <h3>Pompa obiegowa</h3>
              <span class="rk-pump-hydraulic-value" data-rk-pump-hydro-value="">Q całkowite</span>
              <p data-rk-pump-hydro-copy="">Pompa ma zapewnić sumaryczny przepływ Q przy wymaganej różnicy ciśnień H.</p>
            </article>
          </div>

          <div class="rk-pump-graphic-result" aria-live="polite">
            <strong id="rk-pump-graphic-title">Przepływ: dodaj strumienie otwartych pętli</strong>
            <p id="rk-pump-graphic-copy">Jeżeli trzy pętle wymagają odpowiednio 1,2; 1,6 i 1,4 l/min, wspólny przewód przenosi łącznie 4,2 l/min. Tę zasadę stosuje się do wszystkich pętli obsługiwanych przez dany obieg.</p>
          </div>

          <div class="rk-pump-tool-disclaimer"><strong>Granica grafiki:</strong> zamknięcie stref zmienia charakterystykę instalacji, ale skala zmiany zależy od zaworów, równoważenia, przewodów wspólnych, nastawy i charakterystyki konkretnej pompy. Moduł nie przypisuje uniwersalnych wartości ciśnienia ani poboru mocy.</div>
        </div>
      </div>
    </section>

    <section class="rk-pump-section rk-pump-section-soft" id="rk-pump-flow">
      <span class="rk-pump-eyebrow">Pierwsza współrzędna punktu pracy</span>
      <h2 class="rk-pump-section-title">Jak obliczyć wymagany przepływ Q?</h2>
      <p class="rk-pump-lead">Woda przenosi moc cieplną dzięki swojemu strumieniowi i różnicy temperatur. Dlatego przepływ musi wynikać z bilansu cieplnego, a nie z samej długości rur, liczby metrów kwadratowych albo zakresu skali rotametru.</p>

      <div class="rk-pump-formula">
        <div class="rk-pump-formula-box">
          <div>
            <strong class="rk-pump-equation">V̇ = Φ ÷ (ρ × c<sub>p</sub> × ΔT)</strong>
            <span>V̇ — przepływ, Φ — moc, ρ — gęstość, c<sub>p</sub> — ciepło właściwe</span>
          </div>
        </div>
        <div class="rk-pump-formula-copy">
          <h3>Dwie prawidłowe drogi do Q</h3>
          <p><strong>Na etapie projektu:</strong> przepływ całego obiegu można obliczyć z sumarycznej mocy obsługiwanych pomieszczeń i projektowego ΔT.</p>
          <p><strong>Gdy masz tabelę nastaw:</strong> dodaj projektowe przepływy wszystkich pętli, które mogą pracować jednocześnie. Nie zastępuj ich przypadkowymi odczytami z niezrównoważonego rozdzielacza.</p>
        </div>
      </div>

      <div class="rk-pump-grid-3">
        <article class="rk-pump-card">
          <h3>Projektowe ΔT</h3>
          <p>Różnica temperatur zasilania i powrotu jest założeniem projektowym. Wartość 5 K jest często spotykana, ale nie stanowi jedynej poprawnej nastawy. Zobacz poradnik o <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">różnicy temperatur ΔT</a>.</p>
        </article>
        <article class="rk-pump-card">
          <h3>Przepływy pętli</h3>
          <p>Dwie pętle tej samej długości mogą wymagać innych przepływów, jeżeli obsługują pomieszczenia o innym obciążeniu. Rozkład obiegów opisuje poradnik o <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">planowaniu pętli grzewczych</a>.</p>
        </article>
        <article class="rk-pump-card">
          <h3>Zakres obsługiwany przez pompę</h3>
          <p>Jeżeli pompa zasila tylko obieg za wymiennikiem, buforem albo zestawem mieszającym, do jej Q wlicza się ten obieg — nie automatycznie całe zapotrzebowanie budynku.</p>
        </article>
      </div>

      <div class="rk-pump-warning"><strong>Woda i roztwór glikolu nie są tym samym medium.</strong> Zmiana gęstości, ciepła właściwego i lepkości wpływa zarówno na przepływ wynikający z mocy, jak i na straty ciśnienia. Kalkulator w tym artykule jest przeznaczony dla wody. Dla mieszanin korzystaj z aktualnych danych producenta medium i urządzeń; szerszy kontekst znajdziesz w poradniku o <a href="https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/">glikolu w ogrzewaniu podłogowym</a>.</div>
    </section>

    <section class="rk-pump-section" id="rk-pump-head">
      <span class="rk-pump-eyebrow">Druga współrzędna punktu pracy</span>
      <h2 class="rk-pump-section-title">Jak obliczyć wysokość podnoszenia H?</h2>
      <p class="rk-pump-lead">Wymagane H powstaje z sumy strat ciśnienia wzdłuż jednej kompletnej, najbardziej niekorzystnej drogi: od tłoczenia pompy, przez elementy wspólne i wybraną pętlę, aż do powrotu do pompy.</p>

      <div class="rk-pump-chain" aria-label="Składniki krytycznej drogi hydraulicznej">
        <div class="rk-pump-chain-item"><strong>Wspólne zasilanie</strong><span>przepływ całkowity Q</span></div>
        <div class="rk-pump-chain-item"><strong>Armatura</strong><span>zawory, filtr, wymiennik</span></div>
        <div class="rk-pump-chain-item"><strong>Rozdzielacz</strong><span>strata przy przepływie projektowym</span></div>
        <div class="rk-pump-chain-item"><strong>Pętla krytyczna</strong><span>jej własny przepływ q</span></div>
        <div class="rk-pump-chain-item"><strong>Wspólny powrót</strong><span>przepływ całkowity Q</span></div>
      </div>

      <div class="rk-pump-answer">
        <span class="rk-pump-answer-label">Zależność obliczeniowa</span>
        <p><strong>Δp<sub>całk.</sub> = Δp<sub>zasilania</sub> + Δp<sub>armatury</sub> + Δp<sub>rozdzielacza</sub> + Δp<sub>pętli krytycznej</sub> + Δp<sub>powrotu</sub>. Następnie H = Δp ÷ (ρ × g).</strong></p>
      </div>

      <div class="rk-pump-grid-3">
        <article class="rk-pump-card">
          <h3>Dlaczego najdłuższa nie zawsze znaczy krytyczna?</h3>
          <p>Strata zależy również od przepływu, średnicy wewnętrznej, temperatury i elementów na danej drodze. Problem nadmiernej długości omawia poradnik <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/">za długa pętla podłogówki</a>.</p>
        </article>
        <article class="rk-pump-card">
          <h3>Dlaczego nie wolno sumować pętli?</h3>
          <p>Pętle są połączone równolegle. Wysokość podnoszenia nie jest sumą strat pętli A, B i C. Do obliczenia wybiera się najbardziej niekorzystną gałąź i dodaje jej odcinki wspólne.</p>
        </article>
        <article class="rk-pump-card">
          <h3>Dlaczego średnica magistrali ma znaczenie?</h3>
          <p>W odcinku wspólnym płynie całe Q, dlatego mała średnica może wytworzyć dużą prędkość i stratę. Pomocniczo sprawdź <a href="https://projekt-ogrzewania.pl/jaka-srednica-rury-zasilajacej-rozdzielacz-w-ukladzie-ogrzewania-podlogowego-kalkulator/">średnicę rury zasilającej rozdzielacz</a>.</p>
        </article>
      </div>

      <div class="rk-pump-callout"><strong>Nie przyjmujemy jednego oporu liniowego dla każdej instalacji.</strong> Spadek ciśnienia w rurze zmienia się nieliniowo wraz z przepływem i zależy od średnicy wewnętrznej. Straty zaworów, rozdzielacza, wymiennika i separatora należy odczytać dla projektowego przepływu z dokumentacji konkretnych elementów.</div>
    </section>

    <section class="rk-pump-section rk-pump-section-dark" id="rk-pump-calculator">
      <span class="rk-pump-eyebrow">Kalkulator wraz z dynamicznym wykresem</span>
      <h2 class="rk-pump-section-title">Oblicz wymagany punkt pracy pompy obiegowej Q/H</h2>
      <p class="rk-pump-lead">Najpierw wybierz sposób wyznaczenia przepływu. Następnie uzupełnij parametry krytycznej drogi. Wynik pokazuje wymaganie instalacji — nie automatyczny wybór handlowego modelu.</p>

      <div class="rk-pump-tool" id="rk-pump-calculator-tool">
        <div class="rk-pump-tool-head">
          <span class="rk-pump-eyebrow">Woda · obieg zamknięty</span>
          <h3>Kalkulator przepływu, strat ciśnienia i wysokości podnoszenia</h3>
          <p>Obliczenia strat rur wykorzystują równanie Darcy’ego–Weisbacha i zależną od liczby Reynoldsa wartość współczynnika tarcia. Straty urządzeń wpisujesz z ich aktualnej dokumentacji dla projektowego przepływu.</p>
        </div>

        <div class="rk-pump-tool-body">
          <div class="rk-pump-calc-layout">
            <div>
              <div class="rk-pump-tool-tabs" role="tablist" aria-label="Sposób wyznaczenia przepływu">
                <button type="button" role="tab" id="rk-pump-tab-power" data-rk-pump-flow-tab="power" aria-selected="true" aria-controls="rk-pump-panel-power">Z mocy i ΔT</button>
                <button type="button" role="tab" id="rk-pump-tab-loops" data-rk-pump-flow-tab="loops" aria-selected="false" aria-controls="rk-pump-panel-loops">Z przepływów pętli</button>
              </div>

              <div class="rk-pump-panel" id="rk-pump-panel-power" role="tabpanel" aria-labelledby="rk-pump-tab-power">
                <div class="rk-pump-field-grid">
                  <div class="rk-pump-field">
                    <label for="rk-pump-power">Moc obsługiwana przez obieg [kW]</label>
                    <input id="rk-pump-power" type="number" min="0.1" max="100" step="0.1" value="8.0" inputmode="decimal">
                    <span class="rk-pump-field-help">Suma projektowych mocy pomieszczeń zasilanych przez tę pompę.</span>
                  </div>
                  <div class="rk-pump-field">
                    <label for="rk-pump-delta-t">Projektowa różnica temperatur ΔT [K]</label>
                    <input id="rk-pump-delta-t" type="number" min="1" max="20" step="0.5" value="5" inputmode="decimal">
                    <span class="rk-pump-field-help">Założenie projektowe, nie uniwersalna nastawa dla każdego domu.</span>
                  </div>
                </div>
              </div>

              <div class="rk-pump-panel" id="rk-pump-panel-loops" role="tabpanel" aria-labelledby="rk-pump-tab-loops" hidden="">
                <div class="rk-pump-loop-editor">
                  <span class="rk-pump-field-label">Projektowe przepływy pętli pracujących jednocześnie</span>
                  <div id="rk-pump-loop-rows">
                    <div class="rk-pump-loop-row">
                      <div class="rk-pump-loop-cell"><label>Nazwa pętli</label><input type="text" value="Salon 1" data-rk-pump-loop-name=""></div>
                      <div class="rk-pump-loop-cell"><label>Przepływ [l/min]</label><input type="number" min="0" max="10" step="0.1" value="1.8" data-rk-pump-loop-flow="" inputmode="decimal"></div>
                      <button class="rk-pump-remove-loop" type="button" data-rk-pump-remove-loop="" aria-label="Usuń pętlę">×</button>
                    </div>
                    <div class="rk-pump-loop-row">
                      <div class="rk-pump-loop-cell"><label>Nazwa pętli</label><input type="text" value="Salon 2" data-rk-pump-loop-name=""></div>
                      <div class="rk-pump-loop-cell"><label>Przepływ [l/min]</label><input type="number" min="0" max="10" step="0.1" value="1.7" data-rk-pump-loop-flow="" inputmode="decimal"></div>
                      <button class="rk-pump-remove-loop" type="button" data-rk-pump-remove-loop="" aria-label="Usuń pętlę">×</button>
                    </div>
                    <div class="rk-pump-loop-row">
                      <div class="rk-pump-loop-cell"><label>Nazwa pętli</label><input type="text" value="Kuchnia" data-rk-pump-loop-name=""></div>
                      <div class="rk-pump-loop-cell"><label>Przepływ [l/min]</label><input type="number" min="0" max="10" step="0.1" value="1.4" data-rk-pump-loop-flow="" inputmode="decimal"></div>
                      <button class="rk-pump-remove-loop" type="button" data-rk-pump-remove-loop="" aria-label="Usuń pętlę">×</button>
                    </div>
                    <div class="rk-pump-loop-row">
                      <div class="rk-pump-loop-cell"><label>Nazwa pętli</label><input type="text" value="Łazienka" data-rk-pump-loop-name=""></div>
                      <div class="rk-pump-loop-cell"><label>Przepływ [l/min]</label><input type="number" min="0" max="10" step="0.1" value="1.6" data-rk-pump-loop-flow="" inputmode="decimal"></div>
                      <button class="rk-pump-remove-loop" type="button" data-rk-pump-remove-loop="" aria-label="Usuń pętlę">×</button>
                    </div>
                    <div class="rk-pump-loop-row">
                      <div class="rk-pump-loop-cell"><label>Nazwa pętli</label><input type="text" value="Sypialnia" data-rk-pump-loop-name=""></div>
                      <div class="rk-pump-loop-cell"><label>Przepływ [l/min]</label><input type="number" min="0" max="10" step="0.1" value="1.2" data-rk-pump-loop-flow="" inputmode="decimal"></div>
                      <button class="rk-pump-remove-loop" type="button" data-rk-pump-remove-loop="" aria-label="Usuń pętlę">×</button>
                    </div>
                    <div class="rk-pump-loop-row">
                      <div class="rk-pump-loop-cell"><label>Nazwa pętli</label><input type="text" value="Pozostałe pętle" data-rk-pump-loop-name=""></div>
                      <div class="rk-pump-loop-cell"><label>Przepływ [l/min]</label><input type="number" min="0" max="30" step="0.1" value="6.0" data-rk-pump-loop-flow="" inputmode="decimal"></div>
                      <button class="rk-pump-remove-loop" type="button" data-rk-pump-remove-loop="" aria-label="Usuń pętlę">×</button>
                    </div>
                  </div>
                  <button class="rk-pump-add-loop" type="button" id="rk-pump-add-loop">+ Dodaj kolejną pętlę</button>
                </div>
              </div>

              <div class="rk-pump-tool-subtitle">Dane medium i pętli krytycznej</div>
              <div class="rk-pump-field-grid rk-pump-field-grid-3">
                <div class="rk-pump-field">
                  <label for="rk-pump-water-temp">Średnia temperatura wody [°C]</label>
                  <input id="rk-pump-water-temp" type="number" min="5" max="90" step="1" value="35" inputmode="decimal">
                  <span class="rk-pump-field-help">Wpływa na gęstość i lepkość przy obliczaniu oporów rur.</span>
                </div>
                <div class="rk-pump-field">
                  <label for="rk-pump-loop-flow">Przepływ pętli krytycznej [l/min]</label>
                  <input id="rk-pump-loop-flow" type="number" min="0.1" max="10" step="0.1" value="1.8" inputmode="decimal">
                  <span class="rk-pump-field-help">Wartość projektowa tej pętli, nie całego rozdzielacza.</span>
                </div>
                <div class="rk-pump-field">
                  <label for="rk-pump-loop-length">Długość pętli krytycznej [m]</label>
                  <input id="rk-pump-loop-length" type="number" min="1" max="300" step="1" value="90" inputmode="decimal">
                  <span class="rk-pump-field-help">Pełna długość przewodu zasilającego i powrotnego w obrębie pętli.</span>
                </div>
                <div class="rk-pump-field">
                  <label for="rk-pump-loop-diameter">Średnica wewnętrzna pętli [mm]</label>
                  <input id="rk-pump-loop-diameter" type="number" min="5" max="40" step="0.1" value="12" inputmode="decimal">
                  <span class="rk-pump-field-help">Dla rury 16 × 2 mm wynosi nominalnie około 12 mm.</span>
                </div>
              </div>

              <div class="rk-pump-tool-subtitle">Wspólne przewody i elementy instalacji</div>
              <div class="rk-pump-field-grid">
                <div class="rk-pump-field">
                  <label for="rk-pump-supply-length">Wspólne zasilanie — długość [m]</label>
                  <input id="rk-pump-supply-length" type="number" min="0" max="500" step="1" value="12" inputmode="decimal">
                </div>
                <div class="rk-pump-field">
                  <label for="rk-pump-supply-diameter">Zasilanie — średnica wewnętrzna [mm]</label>
                  <input id="rk-pump-supply-diameter" type="number" min="5" max="100" step="0.1" value="32" inputmode="decimal">
                </div>
                <div class="rk-pump-field">
                  <label for="rk-pump-return-length">Wspólny powrót — długość [m]</label>
                  <input id="rk-pump-return-length" type="number" min="0" max="500" step="1" value="12" inputmode="decimal">
                </div>
                <div class="rk-pump-field">
                  <label for="rk-pump-return-diameter">Powrót — średnica wewnętrzna [mm]</label>
                  <input id="rk-pump-return-diameter" type="number" min="5" max="100" step="0.1" value="32" inputmode="decimal">
                </div>
                <div class="rk-pump-field">
                  <label for="rk-pump-manifold-loss">Rozdzielacz i zawory regulacyjne [kPa]</label>
                  <input id="rk-pump-manifold-loss" type="number" min="0" max="200" step="0.1" value="3.0" inputmode="decimal">
                  <span class="rk-pump-field-help">Wpisz stratę dla przepływu projektowego z dokumentacji.</span>
                </div>
                <div class="rk-pump-field">
                  <label for="rk-pump-component-loss">Pozostałe elementy krytycznej drogi [kPa]</label>
                  <input id="rk-pump-component-loss" type="number" min="0" max="500" step="0.1" value="4.0" inputmode="decimal">
                  <span class="rk-pump-field-help">Np. wymiennik, mieszacz, zawór zwrotny, filtr i separator.</span>
                </div>
                <div class="rk-pump-field">
                  <label for="rk-pump-margin">Jawny zapas obliczeniowy [%]</label>
                  <input id="rk-pump-margin" type="number" min="0" max="50" step="1" value="0" inputmode="decimal">
                  <span class="rk-pump-field-help">Domyślnie 0%. Dodawaj tylko świadomie i nie zastępuj nim brakujących danych.</span>
                </div>
              </div>
            </div>

            <div class="rk-pump-results">
              <div class="rk-pump-result-grid" aria-live="polite">
                <div class="rk-pump-result"><span>Wymagany przepływ całkowity Q</span><strong id="rk-pump-result-q">1,39 m³/h</strong></div>
                <div class="rk-pump-result"><span>Suma przepływów</span><strong id="rk-pump-result-lmin">23,1 l/min</strong></div>
                <div class="rk-pump-result"><span>Strata krytycznej drogi Δp</span><strong id="rk-pump-result-dp">19,73 kPa</strong></div>
                <div class="rk-pump-result"><span>Wymagana wysokość H</span><strong id="rk-pump-result-h">2,02 m</strong></div>
              </div>

              <div class="rk-pump-breakdown" aria-label="Rozkład strat ciśnienia">
                <span class="rk-pump-breakdown-title">Składniki krytycznej drogi</span>
                <div class="rk-pump-break-row"><span>Pętla krytyczna</span><span class="rk-pump-break-track"><i class="rk-pump-break-fill" data-rk-pump-break="loop"></i></span><strong data-rk-pump-break-value="loop">—</strong></div>
                <div class="rk-pump-break-row"><span>Zasilanie wspólne</span><span class="rk-pump-break-track"><i class="rk-pump-break-fill" data-rk-pump-break="supply"></i></span><strong data-rk-pump-break-value="supply">—</strong></div>
                <div class="rk-pump-break-row"><span>Powrót wspólny</span><span class="rk-pump-break-track"><i class="rk-pump-break-fill" data-rk-pump-break="return"></i></span><strong data-rk-pump-break-value="return">—</strong></div>
                <div class="rk-pump-break-row"><span>Rozdzielacz</span><span class="rk-pump-break-track"><i class="rk-pump-break-fill" data-rk-pump-break="manifold"></i></span><strong data-rk-pump-break-value="manifold">—</strong></div>
                <div class="rk-pump-break-row"><span>Inne elementy</span><span class="rk-pump-break-track"><i class="rk-pump-break-fill" data-rk-pump-break="components"></i></span><strong data-rk-pump-break-value="components">—</strong></div>
                <div class="rk-pump-break-row"><span>Zapas</span><span class="rk-pump-break-track"><i class="rk-pump-break-fill" data-rk-pump-break="margin"></i></span><strong data-rk-pump-break-value="margin">—</strong></div>
              </div>

              <div class="rk-pump-callout" id="rk-pump-hydraulic-note" aria-live="polite"><strong>Kontrola prędkości:</strong> wartości zostaną obliczone po uruchomieniu narzędzia.</div>

              <div class="rk-pump-chart-card" style="margin-top:16px;">
                <div class="rk-pump-chart-title">Wymagany punkt i krzywa instalacji</div>
                <div class="rk-pump-chart-wrap">
                  <svg id="rk-pump-chart" viewBox="0 0 760 410" role="img" aria-labelledby="rk-pump-chart-svg-title rk-pump-chart-svg-desc">
                    <title id="rk-pump-chart-svg-title">Wykres przepływu Q i wysokości podnoszenia H</title>
                    <desc id="rk-pump-chart-svg-desc">Dynamiczny wykres pokazujący krzywą oporów instalacji, wymagany punkt projektowy oraz opcjonalną krzywą pompy wprowadzoną przez użytkownika.</desc>
                    <g id="rk-pump-chart-grid"></g>
                    <line class="rk-pump-chart-axis" x1="68" y1="350" x2="728" y2="350"></line>
                    <line class="rk-pump-chart-axis" x1="68" y1="350" x2="68" y2="26"></line>
                    <path class="rk-pump-system-path" id="rk-pump-system-path" d=""></path>
                    <path class="rk-pump-device-path" id="rk-pump-device-path" d="" hidden=""></path>
                    <circle class="rk-pump-design-point" id="rk-pump-design-point" cx="0" cy="0" r="8"></circle>
                    <circle class="rk-pump-operating-point" id="rk-pump-operating-point" cx="0" cy="0" r="8" hidden=""></circle>
                    <text class="rk-pump-chart-label" x="398" y="394" text-anchor="middle">Przepływ Q [m³/h]</text>
                    <text class="rk-pump-chart-label" x="17" y="190" text-anchor="middle" transform="rotate(-90 17 190)">Wysokość H [m]</text>
                  </svg>
                </div>
                <div class="rk-pump-legend" aria-hidden="true">
                  <span><i></i>krzywa instalacji</span>
                  <span class="is-pump"><i></i>krzywa wpisanej pompy</span>
                  <span class="is-point"><i></i>wymagany punkt Q/H</span>
                </div>
              </div>

              <div class="rk-pump-curve-editor">
                <span class="rk-pump-field-label">Opcjonalnie: wpisz cztery punkty z krzywej konkretnej pompy</span>
                <span class="rk-pump-field-help">Wartości muszą pochodzić z jednej charakterystyki, dla tego samego trybu i tej samej nastawy. Pozostaw pola puste, jeżeli chcesz wyznaczyć tylko wymaganie instalacji.</span>
                <div class="rk-pump-curve-row">
                  <strong>1</strong>
                  <div class="rk-pump-curve-cell"><label>Q [m³/h]</label><input type="number" min="0" max="100" step="0.01" placeholder="np. 0" data-rk-pump-curve-q="" inputmode="decimal"></div>
                  <div class="rk-pump-curve-cell"><label>H [m]</label><input type="number" min="0" max="50" step="0.01" placeholder="np. 5,8" data-rk-pump-curve-h="" inputmode="decimal"></div>
                </div>
                <div class="rk-pump-curve-row">
                  <strong>2</strong>
                  <div class="rk-pump-curve-cell"><label>Q [m³/h]</label><input type="number" min="0" max="100" step="0.01" placeholder="np. 1" data-rk-pump-curve-q="" inputmode="decimal"></div>
                  <div class="rk-pump-curve-cell"><label>H [m]</label><input type="number" min="0" max="50" step="0.01" placeholder="np. 5,2" data-rk-pump-curve-h="" inputmode="decimal"></div>
                </div>
                <div class="rk-pump-curve-row">
                  <strong>3</strong>
                  <div class="rk-pump-curve-cell"><label>Q [m³/h]</label><input type="number" min="0" max="100" step="0.01" placeholder="np. 2" data-rk-pump-curve-q="" inputmode="decimal"></div>
                  <div class="rk-pump-curve-cell"><label>H [m]</label><input type="number" min="0" max="50" step="0.01" placeholder="np. 4,0" data-rk-pump-curve-h="" inputmode="decimal"></div>
                </div>
                <div class="rk-pump-curve-row">
                  <strong>4</strong>
                  <div class="rk-pump-curve-cell"><label>Q [m³/h]</label><input type="number" min="0" max="100" step="0.01" placeholder="np. 3" data-rk-pump-curve-q="" inputmode="decimal"></div>
                  <div class="rk-pump-curve-cell"><label>H [m]</label><input type="number" min="0" max="50" step="0.01" placeholder="np. 2,1" data-rk-pump-curve-h="" inputmode="decimal"></div>
                </div>
              </div>

              <div class="rk-pump-status" id="rk-pump-status" aria-live="polite">Wyznaczono wymagany punkt instalacji. Wpisz co najmniej dwa kompletne punkty z jednej krzywej producenta, aby wykonać orientacyjne porównanie.</div>
            </div>
          </div>

          <div class="rk-pump-tool-disclaimer"><strong>Zakres kalkulatora:</strong> wynik jest obliczeniem edukacyjnym dla wody i założeń wpisanych przez użytkownika. Nie identyfikuje automatycznie pętli krytycznej, nie zna współczynników lokalnych ani charakterystyk urządzeń, których nie podano, i nie zastępuje dokumentacji projektowej. Krzywa instalacji ma model H ∝ Q² dla niezmienionego układu; zawory regulacyjne i zmieniające się strefy mogą modyfikować jej rzeczywisty przebieg.</div>
        </div>
      </div>

      <aside class="rk-pump-cta" aria-label="Projekt ogrzewania podłogowego z obliczonym punktem pracy pompy">
        <div class="rk-pump-cta-title">Masz punkt Q/H. Teraz trzeba sprawdzić cały układ hydrauliczny.</div>
        <p>Kalkulator wyznacza wymagany przepływ i opór krytycznej drogi, ale nie zastępuje projektu pętli, rozdziału przepływów między pomieszczenia ani sprawdzenia armatury i charakterystyki konkretnej pompy. W projekcie łączymy te dane od obciążenia cieplnego aż po nastawy rotametrów.</p>
        <a class="rk-pump-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt podłogówki z obliczonym punktem pracy pompy</a>
        <small class="rk-pump-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </aside>
    </section>

    <section class="rk-pump-section" id="rk-pump-curve">
      <span class="rk-pump-eyebrow">Od wymagania instalacji do konkretnego urządzenia</span>
      <h2 class="rk-pump-section-title">Jak czytać krzywą pompy i sprawdzić punkt pracy?</h2>
      <p class="rk-pump-lead">Kalkulator wyznacza punkt wymagany. Krzywa producenta odpowiada na inne pytanie: jaką wysokość H konkretna pompa może wytworzyć przy określonym Q w danym trybie i na danej nastawie.</p>

      <div class="rk-pump-steps">
        <article class="rk-pump-step"><h3>Wybierz właściwą charakterystykę</h3><p>Porównuj dane dla dokładnego modelu, średnicy przyłącza, trybu regulacji i poziomu nastawy. Nie łącz punktów z kilku różnych krzywych.</p></article>
        <article class="rk-pump-step"><h3>Zaznacz wymagane Q/H</h3><p>Przenieś na wykres jednocześnie przepływ i wysokość. Sprawdzenie tylko jednej osi nie potwierdza doboru.</p></article>
        <article class="rk-pump-step"><h3>Sprawdź przecięcie z krzywą instalacji</h3><p>Rzeczywisty punkt ustala się tam, gdzie dostępna wysokość pompy odpowiada oporom układu przy tym samym przepływie.</p></article>
        <article class="rk-pump-step"><h3>Zweryfikuj dopuszczalny obszar pracy</h3><p>Uwzględnij zalecenia producenta, minimalny przepływ, hałas, pobór mocy, wymagania źródła oraz regulację przy częściowym obciążeniu.</p></article>
        <article class="rk-pump-step"><h3>Sprawdź stan skrajny</h3><p>Oceń pracę przy wszystkich czynnych pętlach oraz przy zamknięciu części stref, jeżeli automatyka ma zmieniać czynny przepływ.</p></article>
        <article class="rk-pump-step"><h3>Potwierdź wynik na uruchomieniu</h3><p>Zweryfikuj projektowe przepływy, temperatury, odgłosy, sygnały sterujące i dane diagnostyczne konkretnego urządzenia.</p></article>
      </div>

      <div class="rk-pump-warning"><strong>Pompa „25-60” nie zapewnia zawsze 6 m przy dowolnym przepływie.</strong> Pierwsza część oznaczenia zwykle odnosi się do wielkości przyłącza, a druga do klasy maksymalnej wysokości. Do doboru nadal potrzebna jest pełna krzywa. Nie zamieniaj automatycznie urządzenia na „mocniejsze”, dopóki nie sprawdzisz nastaw, równoważenia, drożności oraz rzeczywistych oporów.</div>
    </section>

    <section class="rk-pump-section rk-pump-section-soft" id="rk-pump-modes">
      <span class="rk-pump-eyebrow">Regulacja bez uniwersalnego zwycięzcy</span>
      <h2 class="rk-pump-section-title">CP, PP, stała krzywa czy AUTO — jaki tryb pracy wybrać?</h2>
      <p class="rk-pump-lead">Tryb nie naprawia złego doboru hydraulicznego. Powinien odpowiadać architekturze instalacji, zachowaniu zaworów, liczbie zmiennych stref i zaleceniom producenta pompy oraz źródła ciepła.</p>

      <div class="rk-pump-grid-4">
        <article class="rk-pump-card">
          <span class="rk-pump-card-number">CP</span>
          <h3>Stała różnica ciśnień</h3>
          <p>Pompa dąży do utrzymania zadanej różnicy ciśnień w swoim zakresie pracy. Może być odpowiednia dla rozdzielacza, na którym część zaworów się zamyka, ale wartość nastawy nadal trzeba dobrać do wymaganych przepływów.</p>
        </article>
        <article class="rk-pump-card">
          <span class="rk-pump-card-number">PP</span>
          <h3>Proporcjonalna różnica ciśnień</h3>
          <p>Wraz ze spadkiem przepływu obniża dostępne ciśnienie według charakterystyki trybu. Może pasować do określonych układów dystrybucyjnych, lecz wymaga sprawdzenia, czy otwarte pętle nadal uzyskują projektowe przepływy.</p>
        </article>
        <article class="rk-pump-card">
          <span class="rk-pump-card-number">n</span>
          <h3>Stała prędkość lub krzywa</h3>
          <p>Może być uzasadniona w stabilnym obiegu o małej zmienności, prawidłowo zrównoważonym i zgodnym z wymaganiami urządzeń. Nie oznacza automatycznie pracy na maksymalnym biegu.</p>
        </article>
        <article class="rk-pump-card">
          <span class="rk-pump-card-number">A</span>
          <h3>Tryb automatyczny</h3>
          <p>Algorytm konkretnego modelu dobiera parametry według własnej logiki. Nie jest ani gwarancją poprawnej pracy, ani z definicji pułapką. Wynik trzeba zweryfikować na przepływach i zachowaniu źródła.</p>
        </article>
      </div>

      <div class="rk-pump-compare-table" role="table" aria-label="Dobór trybu pompy obiegowej">
        <div class="rk-pump-table-row rk-pump-table-head" role="row">
          <div role="columnheader">Pytanie</div>
          <div role="columnheader">Co sprawdzić</div>
          <div role="columnheader">Dlaczego to ważne</div>
        </div>
        <div class="rk-pump-table-row" role="row">
          <div class="rk-pump-table-label" data-label="Pytanie" role="rowheader">Czy strefy się zamykają?</div>
          <div data-label="Co sprawdzić" role="cell">Zakres liczby otwartych pętli, siłowniki, bypass i wymagany minimalny przepływ.</div>
          <div data-label="Dlaczego" role="cell">Charakterystyka instalacji zmienia się wraz ze stanem zaworów.</div>
        </div>
        <div class="rk-pump-table-row" role="row">
          <div class="rk-pump-table-label" data-label="Pytanie" role="rowheader">Czy przepływ jest stabilny?</div>
          <div data-label="Co sprawdzić" role="cell">Projektowe nastawy, równoważenie i tryb pracy źródła.</div>
          <div data-label="Dlaczego" role="cell">Układ stały może wymagać innej regulacji niż rozdzielacz z wieloma strefami.</div>
        </div>
        <div class="rk-pump-table-row" role="row">
          <div class="rk-pump-table-label" data-label="Pytanie" role="rowheader">Czy źródło wymaga minimalnego Q?</div>
          <div data-label="Co sprawdzić" role="cell">Dokumentację kotła, pompy ciepła, wymiennika i układu rozdzielenia hydraulicznego.</div>
          <div data-label="Dlaczego" role="cell">Prawidłowy komfort w strefach nie zawsze oznacza spełnienie wymagań źródła.</div>
        </div>
        <div class="rk-pump-table-row" role="row">
          <div class="rk-pump-table-label" data-label="Pytanie" role="rowheader">Czy są dane z uruchomienia?</div>
          <div data-label="Co sprawdzić" role="cell">Przepływy, temperatury, hałas, kody pracy i zachowanie przy zamykaniu pętli.</div>
          <div data-label="Dlaczego" role="cell">Nastawa jest hipotezą do potwierdzenia, a nie celem samym w sobie.</div>
        </div>
      </div>

      <p>Wpływ zamykanych obiegów opisują także poradniki o <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">siłownikach termoelektrycznych</a> i o tym, <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">czy warto stosować sterowanie strefowe</a>.</p>
    </section>

    <section class="rk-pump-section" id="rk-pump-integrated">
      <span class="rk-pump-eyebrow">Nie metraż, lecz dostępne Q/H</span>
      <h2 class="rk-pump-section-title">Czy pompa wbudowana w pompę ciepła lub kocioł wystarczy?</h2>
      <p class="rk-pump-lead">Nie da się tego rozstrzygnąć progiem 100, 120 ani 150 m². Trzeba porównać dostępne ciśnienie dyspozycyjne wbudowanej pompy z wymaganym punktem całej drogi, którą ma ona obsłużyć.</p>

      <div class="rk-pump-grid-3">
        <article class="rk-pump-card">
          <h3>Sprawdź, co już znajduje się wewnątrz urządzenia</h3>
          <p>Wymiennik, zawór, filtr i przewody wewnętrzne zużywają część dostępnego sprężu. Korzystaj z charakterystyki ciśnienia dostępnego dla instalacji, jeżeli producent ją podaje, a nie wyłącznie z krzywej samego zespołu pompowego.</p>
        </article>
        <article class="rk-pump-card">
          <h3>Określ granicę obiegu</h3>
          <p>Przy bezpośrednim zasilaniu podłogówki pompa może obsługiwać cały obieg. Przy <a href="https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/">sprzęgle hydraulicznym</a>, buforze czterokróćcowym lub wymienniku powstają osobne obiegi o osobnych punktach Q/H.</p>
        </article>
        <article class="rk-pump-card">
          <h3>Uwzględnij minimalny przepływ i zład</h3>
          <p>Zwłaszcza przy pompie ciepła trzeba sprawdzić wymagania dla ogrzewania, odszraniania i stanów z zamkniętymi strefami. Pomocny jest poradnik o <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">buforze w ogrzewaniu podłogowym</a>.</p>
        </article>
      </div>

      <div class="rk-pump-answer">
        <span class="rk-pump-answer-label">Reguła oceny</span>
        <p><strong>Wbudowana pompa wystarczy wtedy, gdy przy wymaganym przepływie zapewnia dostępne ciśnienie większe lub równe stratom obsługiwanego obiegu oraz spełnia wymagania producenta źródła w całym przewidzianym zakresie pracy. Powierzchnia budynku jest tylko pośrednim opisem problemu.</strong></p>
      </div>

      <p>Szersze zależności między źródłem i instalacją omawia artykuł <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projekt ogrzewania podłogowego z pompą ciepła</a>.</p>
    </section>

    <section class="rk-pump-section rk-pump-section-soft" id="rk-pump-installation">
      <span class="rk-pump-eyebrow">Schemat układu jest ważniejszy niż slogan</span>
      <h2 class="rk-pump-section-title">Gdzie zamontować pompę obiegową i jak ustawić jej wał?</h2>
      <p class="rk-pump-lead">Nie istnieje jedno miejsce obowiązkowe dla wszystkich podłogówek. Lokalizacja pompy wynika z tego, jaki obieg ma obsługiwać, gdzie znajdują się punkty odniesienia ciśnienia oraz czy instalacja posiada mieszanie albo rozdzielenie hydrauliczne.</p>

      <div class="rk-pump-grid-3">
        <article class="rk-pump-card">
          <h3>Układ bezpośredni</h3>
          <p>Niskotemperaturowe źródło może zasilać rozdzielacz bez dodatkowego mieszacza, jeżeli pozwalają na to projekt, automatyka i wymagania producenta. Nie należy wtedy dodawać grupy mieszająco-pompowej tylko dlatego, że instalacja jest podłogowa.</p>
        </article>
        <article class="rk-pump-card">
          <h3>Układ mieszający</h3>
          <p>To zawór mieszający lub inny układ regulacji kształtuje temperaturę zasilania obiegu. Pompa wymusza przepływ w wyznaczonym obiegu — sama nie obniża temperatury wody.</p>
        </article>
        <article class="rk-pump-card">
          <h3>Obieg rozdzielony</h3>
          <p>Sprzęgło, bufor albo wymiennik może rozdzielić obieg źródła od obiegu odbiorczego. Każdą pompę dobiera się wtedy do własnej drogi hydraulicznej i warunków sterowania.</p>
        </article>
      </div>

      <div class="rk-pump-spec-grid">
        <div class="rk-pump-spec"><span class="rk-pump-spec-mark">1</span><div><strong>Pozycja wału</strong><span>W popularnych pompach bezdławnicowych oś wału powinna być pozioma, ale dopuszczone pozycje i kierunek skrzynki elektroniki trzeba potwierdzić w instrukcji konkretnego modelu.</span></div></div>
        <div class="rk-pump-spec"><span class="rk-pump-spec-mark">2</span><div><strong>Kierunek przepływu</strong><span>Strzałka na korpusie musi odpowiadać kierunkowi zaprojektowanemu w obiegu. Nie należy wnioskować wyłącznie z położenia silnika.</span></div></div>
        <div class="rk-pump-spec"><span class="rk-pump-spec-mark">3</span><div><strong>Serwis i odcięcie</strong><span>Zapewnij dostęp oraz rozwiązanie umożliwiające bezpieczną obsługę zgodnie ze schematem. Zakres spuszczania wody zależy od miejsca pompy, zaworów i objętości obiegu.</span></div></div>
        <div class="rk-pump-spec"><span class="rk-pump-spec-mark">4</span><div><strong>Izolacja i kondensacja</strong><span>Nie zakrywaj elektroniki materiałem izolacyjnym, jeżeli zabrania tego producent. Przy chłodzeniu uwzględnij kondensację i dopuszczenie pompy do takich warunków.</span></div></div>
        <div class="rk-pump-spec"><span class="rk-pump-spec-mark">5</span><div><strong>Ciśnienie po stronie ssawnej</strong><span>Instalacja musi zapewniać warunki ograniczające ryzyko kawitacji zgodnie z temperaturą, ciśnieniem statycznym i wymaganiami konkretnej pompy.</span></div></div>
        <div class="rk-pump-spec"><span class="rk-pump-spec-mark">6</span><div><strong>Połączenie elektryczne</strong><span>Zasilanie, zabezpieczenia, sygnał sterujący i komunikację wykonuje się według instrukcji oraz przez osobę posiadającą wymagane kwalifikacje.</span></div></div>
      </div>
    </section>

    <section class="rk-pump-section" id="rk-pump-commissioning">
      <span class="rk-pump-eyebrow">Dobór trzeba potwierdzić na instalacji</span>
      <h2 class="rk-pump-section-title">Napełnianie, odpowietrzanie i uruchomienie pompy krok po kroku</h2>
      <p class="rk-pump-lead">Współczesne pompy różnią się konstrukcją i procedurą startu. Nie każda ma śrubę czołową, a funkcja odpowietrzania nie zastępuje właściwego napełnienia pętli i usunięcia powietrza z instalacji.</p>

      <div class="rk-pump-steps">
        <article class="rk-pump-step"><h3>Sprawdź projekt i kierunki przepływu</h3><p>Potwierdź granicę obiegu, położenie zaworów, miejsce pompy, przepływy pętli oraz punkty napełniania i odpowietrzania.</p></article>
        <article class="rk-pump-step"><h3>Wypłucz instalację</h3><p>Usuń pozostałości montażowe zgodnie z przyjętą procedurą. Czystość zładu i jakość wody powinny odpowiadać materiałom oraz wymaganiom urządzeń.</p></article>
        <article class="rk-pump-step"><h3>Napełniaj pętle kontrolowanie</h3><p>Postępuj zgodnie z projektem i instrukcjami. Praktyczne zależności opisuje poradnik o tym, <a href="https://projekt-ogrzewania.pl/czym-napelnic-instalacje-ogrzewania-podlogowego/">czym napełnić podłogówkę</a>.</p></article>
        <article class="rk-pump-step"><h3>Odpowietrz obieg</h3><p>Nie uruchamiaj pompy na sucho. Zastosuj procedurę producenta urządzenia, rozdzielacza i źródła; diagnostykę ułatwia poradnik o <a href="https://projekt-ogrzewania.pl/objawy-zapowietrzenia-ogrzewania-podlogowego/">objawach zapowietrzenia</a>.</p></article>
        <article class="rk-pump-step"><h3>Ustaw wstępną charakterystykę</h3><p>Wybierz tryb wynikający z projektu, a nie zawsze najwyższą nastawę. Otwórz pętle wymagane dla przyjętej procedury równoważenia.</p></article>
        <article class="rk-pump-step"><h3>Ustaw przepływy projektowe</h3><p>Reguluj pętle według tabeli nastaw. Zmiana jednej gałęzi może wpływać na pozostałe, dlatego kontrolę należy powtarzać.</p></article>
        <article class="rk-pump-step"><h3>Przetestuj stany częściowe</h3><p>Jeżeli strefy mogą się zamykać, sprawdź minimalną i typową liczbę czynnych pętli oraz zachowanie pompy i źródła ciepła.</p></article>
        <article class="rk-pump-step"><h3>Zapisz wyniki odbioru</h3><p>Udokumentuj końcowy tryb, nastawę, przepływy, temperatury, ciśnienie instalacji i obserwacje akustyczne. Ułatwi to późniejszy <a href="https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/">serwis ogrzewania podłogowego</a>.</p></article>
      </div>

      <div class="rk-pump-warning"><strong>Nie odkręcaj elementów pompy i nie podawaj zasilania „na próbę” bez sprawdzenia instrukcji.</strong> Niektóre modele mają procedury automatycznego odpowietrzania lub odblokowania, inne wymagają odmiennej obsługi. Prace elektryczne i serwisowe powinny wykonywać osoby posiadające odpowiednie kwalifikacje.</div>
    </section>

    <section class="rk-pump-section rk-pump-section-soft" id="rk-pump-diagnostics">
      <span class="rk-pump-eyebrow">Objaw nie jest jeszcze diagnozą</span>
      <h2 class="rk-pump-section-title">Najczęstsze problemy z pompą obiegową i kolejność diagnostyki</h2>
      <p class="rk-pump-lead">Hałas, brak przepływu albo wysoki pobór mocy może mieć kilka przyczyn. Zamiast od razu wymieniać pompę, trzeba przejść od prostych kontroli do pomiarów i danych projektowych.</p>

      <div class="rk-pump-diagnostic-table" role="table" aria-label="Diagnostyka pompy obiegowej">
        <div class="rk-pump-table-row rk-pump-table-head" role="row">
          <div role="columnheader">Objaw</div>
          <div role="columnheader">Możliwe przyczyny</div>
          <div role="columnheader">Co sprawdzić najpierw</div>
        </div>
        <div class="rk-pump-table-row" role="row">
          <div class="rk-pump-table-label" data-label="Objaw" role="rowheader">Pompa pracuje, ale brak przepływu</div>
          <div data-label="Możliwe przyczyny" role="cell">Zamknięte zawory, powietrze, zablokowany wirnik, niedrożność, błędny kierunek albo brak otwartej drogi.</div>
          <div data-label="Sprawdź" role="cell">Stany zaworów, odpowietrzenie, kod urządzenia, kierunek strzałki i drożność zgodnie z procedurą serwisową.</div>
        </div>
        <div class="rk-pump-table-row" role="row">
          <div class="rk-pump-table-label" data-label="Objaw" role="rowheader">Nie osiąga się przepływów na rotametrach</div>
          <div data-label="Możliwe przyczyny" role="cell">Za mały spręż, błędne równoważenie, zła średnica magistrali, duże straty armatury, powietrze lub zabrudzenie.</div>
          <div data-label="Sprawdź" role="cell">Wymagane Q/H, nastawę pompy, przepływy innych pętli, zawory, filtr i krytyczną drogę.</div>
        </div>
        <div class="rk-pump-table-row" role="row">
          <div class="rk-pump-table-label" data-label="Objaw" role="rowheader">Szum na zaworach lub rozdzielaczu</div>
          <div data-label="Możliwe przyczyny" role="cell">Nadmierna różnica ciśnień, duża prędkość, zdławione zawory, błędny tryb lub powietrze.</div>
          <div data-label="Sprawdź" role="cell">Nastawę, tryb, otwarte strefy, prędkości w przewodach i równoważenie — bez pochopnego nazywania każdego szumu kawitacją.</div>
        </div>
        <div class="rk-pump-table-row" role="row">
          <div class="rk-pump-table-label" data-label="Objaw" role="rowheader">Pompa często zmienia moc lub obroty</div>
          <div data-label="Możliwe przyczyny" role="cell">Zmienne położenia zaworów, tryb automatyczny, sygnał zewnętrzny albo niestabilna praca źródła.</div>
          <div data-label="Sprawdź" role="cell">Logikę sterowania, siłowniki, wymagany minimalny przepływ i historię pracy urządzeń.</div>
        </div>
        <div class="rk-pump-table-row" role="row">
          <div class="rk-pump-table-label" data-label="Objaw" role="rowheader">Pompa nie uruchamia się po postoju</div>
          <div data-label="Możliwe przyczyny" role="cell">Brak zasilania lub sygnału, alarm, zablokowanie, uszkodzenie albo aktywna funkcja ochronna.</div>
          <div data-label="Sprawdź" role="cell">Zasilanie i komunikaty zgodnie z instrukcją. Nie rozbieraj urządzenia pod napięciem.</div>
        </div>
        <div class="rk-pump-table-row" role="row">
          <div class="rk-pump-table-label" data-label="Objaw" role="rowheader">Jedne pomieszczenia grzeją, inne nie</div>
          <div data-label="Możliwe przyczyny" role="cell">Brak równoważenia, błędne przepływy projektowe, siłowniki, powietrze albo niewłaściwy podział pętli.</div>
          <div data-label="Sprawdź" role="cell">Mapę pętli, obciążenia pomieszczeń, nastawy rotametrów i automatykę — nie tylko samą pompę.</div>
        </div>
      </div>

      <div class="rk-pump-callout"><strong>Wyświetlana moc nie jest pełnym pomiarem hydraulicznym.</strong> Stabilna liczba watów i brak drgań nie potwierdzają jeszcze, że instalacja osiąga projektowy punkt. Potrzebne są przepływy, temperatury, konfiguracja zaworów i odniesienie do danych urządzenia.</div>
    </section>

    <section class="rk-pump-section" id="rk-pump-example">
      <span class="rk-pump-eyebrow">Jawne założenia zamiast historii bez danych</span>
      <h2 class="rk-pump-section-title">Przykład obliczeniowy punktu Q/H dla podłogówki</h2>
      <p class="rk-pump-lead">Poniższy przykład pokazuje tok postępowania na danych wpisanych domyślnie do kalkulatora. Nie opisuje uniwersalnego domu ani gotowego doboru pompy.</p>

      <div class="rk-pump-grid-3">
        <article class="rk-pump-card">
          <span class="rk-pump-card-number">A</span>
          <h3>Dane cieplne</h3>
          <p>Moc obsługiwana przez obieg: <strong>8,0 kW</strong>. Projektowe ΔT: <strong>5 K</strong>. Średnia temperatura wody: <strong>35°C</strong>.</p>
        </article>
        <article class="rk-pump-card">
          <span class="rk-pump-card-number">B</span>
          <h3>Droga krytyczna</h3>
          <p>Pętla 90 m, średnica wewnętrzna 12 mm i przepływ 1,8 l/min. Wspólne zasilanie i powrót po 12 m, średnica wewnętrzna 32 mm.</p>
        </article>
        <article class="rk-pump-card">
          <span class="rk-pump-card-number">C</span>
          <h3>Elementy miejscowe</h3>
          <p>Rozdzielacz i zawory: 3,0 kPa. Pozostałe elementy na drodze: 4,0 kPa. Jawny zapas: 0%.</p>
        </article>
      </div>

      <div class="rk-pump-compare-table" role="table" aria-label="Przykład obliczenia punktu pracy">
        <div class="rk-pump-table-row rk-pump-table-head" role="row">
          <div role="columnheader">Etap</div>
          <div role="columnheader">Wynik przykładu</div>
          <div role="columnheader">Interpretacja</div>
        </div>
        <div class="rk-pump-table-row" role="row">
          <div class="rk-pump-table-label" data-label="Etap" role="rowheader">Przepływ całkowity</div>
          <div data-label="Wynik" role="cell">Około 1,39 m³/h, czyli 23,1 l/min.</div>
          <div data-label="Interpretacja" role="cell">Taki strumień musi przejść przez odcinki wspólne przy założonym obciążeniu i ΔT.</div>
        </div>
        <div class="rk-pump-table-row" role="row">
          <div class="rk-pump-table-label" data-label="Etap" role="rowheader">Pętla krytyczna</div>
          <div data-label="Wynik" role="cell">Około 10,5 kPa straty samej rury.</div>
          <div data-label="Interpretacja" role="cell">Wynik zależy od przepływu 1,8 l/min, średnicy wewnętrznej, temperatury i przyjętego modelu tarcia.</div>
        </div>
        <div class="rk-pump-table-row" role="row">
          <div class="rk-pump-table-label" data-label="Etap" role="rowheader">Przewody wspólne</div>
          <div data-label="Wynik" role="cell">Około 2,2 kPa łącznie dla zasilania i powrotu.</div>
          <div data-label="Interpretacja" role="cell">Przy średnicy wewnętrznej 32 mm strata jest mała, ale nadal należy do krytycznej drogi.</div>
        </div>
        <div class="rk-pump-table-row" role="row">
          <div class="rk-pump-table-label" data-label="Etap" role="rowheader">Cała droga</div>
          <div data-label="Wynik" role="cell">Około 19,7 kPa i 2,02 m słupa wody.</div>
          <div data-label="Interpretacja" role="cell">To wymagany punkt instalacji. Dopiero krzywa konkretnej pompy pozwala ocenić model i nastawę.</div>
        </div>
      </div>

      <div class="rk-pump-warning"><strong>Wartości mogą się nieznacznie zmienić po zmianie modelu obliczeniowego i parametrów wody.</strong> Jeżeli dokumentacja rozdzielacza, zaworu lub wymiennika podaje inne straty, należy je wprowadzić. Brak danych nie oznacza straty równej zeru.</div>
    </section>

    <section class="rk-pump-section rk-pump-section-soft" id="rk-pump-energy">
      <span class="rk-pump-eyebrow">Sprawność urządzenia i sprawność całego układu</span>
      <h2 class="rk-pump-section-title">Ile prądu zużywa pompa obiegowa i co oznacza EEI?</h2>
      <p class="rk-pump-lead">Rzeczywisty pobór zależy od punktu pracy, trybu regulacji, czasu działania, stanu zaworów i konstrukcji urządzenia. Nie można zagwarantować jednej wartości w watach wyłącznie na podstawie oznaczenia EEI.</p>

      <div class="rk-pump-grid-3">
        <article class="rk-pump-card">
          <h3>EEI opisuje efektywność według metody regulacyjnej</h3>
          <p>Wymagania ekoprojektu obejmują pompy bezdławnicowe objęte zakresem przepisów. Wskaźnik służy do oceny energetycznej produktu, ale nie jest prognozą poboru w każdej instalacji.</p>
        </article>
        <article class="rk-pump-card">
          <h3>Punkt pracy zmienia moc</h3>
          <p>Ta sama pompa może pobierać inną moc przy różnych przepływach, wysokościach, nastawach i stanach zaworów. Wyświetlacz może prezentować wartość obliczaną przez elektronikę, a nie laboratoryjny pomiar przepływu.</p>
        </article>
        <article class="rk-pump-card">
          <h3>Przewymiarowanie to nie tylko waty</h3>
          <p>Nadmierna dostępna różnica ciśnień może zwiększać hałas i utrudniać regulację. Zbyt mała może uniemożliwić uzyskanie przepływów projektowych. Celem jest prawidłowy punkt, nie największy model.</p>
        </article>
      </div>

      <div class="rk-pump-formula">
        <div class="rk-pump-formula-box">
          <div>
            <strong class="rk-pump-equation">E = P × t ÷ 1000</strong>
            <span>E — energia [kWh], P — pobór [W], t — czas pracy [h]</span>
          </div>
        </div>
        <div class="rk-pump-formula-copy">
          <h3>Jak uczciwie policzyć koszt pracy?</h3>
          <p>Zapisz rzeczywisty lub wiarygodnie oszacowany profil mocy w sezonie, liczbę godzin oraz cenę energii. Pomnożenie jednej chwilowej wartości z wyświetlacza przez 8760 godzin zwykle nie opisuje rzeczywistej pracy regulowanej pompy.</p>
          <p>Największy efekt daje połączenie sprawnego urządzenia z poprawnym doborem Q/H, równoważeniem i właściwym sterowaniem.</p>
        </div>
      </div>
    </section>

    <section class="rk-pump-section" id="rk-pump-checklist">
      <span class="rk-pump-eyebrow">Lista do projektu, zakupu i odbioru</span>
      <h2 class="rk-pump-section-title">Co sprawdzić przed wyborem pompy obiegowej?</h2>
      <p class="rk-pump-lead">Dobrze dobrana pompa jest wynikiem uporządkowanych danych. Jeżeli któregoś elementu brakuje, trzeba zaznaczyć niepewność zamiast ukrywać ją w dużym zapasie.</p>

      <div class="rk-pump-checklist">
        <div class="rk-pump-checklist-item"><span>✓</span><div><strong>Zakres obiegu</strong><br>Które rozdzielacze, pętle i urządzenia hydrauliczne obsługuje ta pompa?</div></div>
        <div class="rk-pump-checklist-item"><span>✓</span><div><strong>Projektowe obciążenia</strong><br>Czy moc wynika z obliczeń pomieszczeń, a nie tylko z powierzchni domu?</div></div>
        <div class="rk-pump-checklist-item"><span>✓</span><div><strong>Projektowe ΔT</strong><br>Jaka różnica temperatur została przyjęta i czy jest spójna z przepływami?</div></div>
        <div class="rk-pump-checklist-item"><span>✓</span><div><strong>Przepływ całkowity Q</strong><br>Czy odpowiada sumie przepływów pętli pracujących w stanie projektowym?</div></div>
        <div class="rk-pump-checklist-item"><span>✓</span><div><strong>Pętla krytyczna</strong><br>Czy wybrano ją na podstawie pełnej straty, a nie wyłącznie długości?</div></div>
        <div class="rk-pump-checklist-item"><span>✓</span><div><strong>Średnice wewnętrzne</strong><br>Czy obliczenia używają rzeczywistych średnic przewodów wspólnych i pętli?</div></div>
        <div class="rk-pump-checklist-item"><span>✓</span><div><strong>Straty przewodów</strong><br>Czy policzono je przy odpowiednich przepływach i właściwościach medium?</div></div>
        <div class="rk-pump-checklist-item"><span>✓</span><div><strong>Rozdzielacz i zawory</strong><br>Czy uwzględniono dane katalogowe dla przepływu projektowego?</div></div>
        <div class="rk-pump-checklist-item"><span>✓</span><div><strong>Wymiennik, filtr i separator</strong><br>Czy wszystkie elementy drogi krytycznej znalazły się w bilansie Δp?</div></div>
        <div class="rk-pump-checklist-item"><span>✓</span><div><strong>Medium</strong><br>Czy obliczenia odpowiadają wodzie albo rzeczywistym parametrom zastosowanego roztworu?</div></div>
        <div class="rk-pump-checklist-item"><span>✓</span><div><strong>Krzywa konkretnej pompy</strong><br>Czy wymagany punkt porównano z właściwym trybem i nastawą?</div></div>
        <div class="rk-pump-checklist-item"><span>✓</span><div><strong>Ciśnienie dostępne urządzenia</strong><br>Czy dla pompy wbudowanej uwzględniono wewnętrzne opory źródła?</div></div>
        <div class="rk-pump-checklist-item"><span>✓</span><div><strong>Stany częściowe</strong><br>Co dzieje się po zamknięciu części siłowników i przy minimalnym czynnym przepływie?</div></div>
        <div class="rk-pump-checklist-item"><span>✓</span><div><strong>Tryb regulacji</strong><br>Czy CP, PP, stała krzywa albo AUTO wynika z zachowania układu?</div></div>
        <div class="rk-pump-checklist-item"><span>✓</span><div><strong>Warunki montażu</strong><br>Czy kierunek, wał, dostęp serwisowy, zasilanie i izolacja są zgodne z instrukcją?</div></div>
        <div class="rk-pump-checklist-item"><span>✓</span><div><strong>Dokumentacja uruchomienia</strong><br>Czy zapisano końcowe przepływy, tryb, nastawę i wyniki kontroli?</div></div>
      </div>

      <p>Kompletny zakres dokumentacji znajdziesz również w poradniku <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">jak powinien wyglądać profesjonalny projekt podłogówki</a>.</p>
    </section>

    <section class="rk-pump-section rk-pump-section-soft" id="rk-pump-conclusions">
      <span class="rk-pump-eyebrow">Wnioski projektanta</span>
      <h2 class="rk-pump-section-title">Jak dobrać pompę bez kosztownego przewymiarowania i niedoboru przepływu?</h2>
      <p class="rk-pump-lead">Dobór pompy obiegowej nie kończy się na wyborze urządzenia. To połączenie bilansu cieplnego, hydrauliki pętli, przewodów wspólnych, armatury, charakterystyki pompy i regulacji całej instalacji.</p>

      <div class="rk-pump-grid-3">
        <article class="rk-pump-card">
          <h3>Najpierw policz Q</h3>
          <p>Wyznacz przepływy z obciążeń i ΔT albo zsumuj wartości z projektu. Nie używaj jednego przedziału l/min dla każdej pętli.</p>
        </article>
        <article class="rk-pump-card">
          <h3>Następnie policz H</h3>
          <p>Dodaj straty pełnej krytycznej drogi przy właściwych przepływach. Nie sumuj oporów równoległych pętli i nie dodawaj wysokości budynku.</p>
        </article>
        <article class="rk-pump-card">
          <h3>Na końcu wybierz urządzenie i nastawę</h3>
          <p>Porównaj punkt Q/H z dokumentacją, sprawdź stan pełnego i częściowego obciążenia, a wynik potwierdź podczas równoważenia.</p>
        </article>
      </div>

      <div class="rk-pump-answer">
        <span class="rk-pump-answer-label">Reguła końcowa</span>
        <p><strong>Nie kupuj pompy „na zapas” i nie odrzucaj urządzenia tylko na podstawie metrażu. Najpierw wyznacz wymagany punkt Q/H całego obsługiwanego obiegu, a potem sprawdź konkretną krzywą i rzeczywiste zachowanie instalacji.</strong></p>
      </div>

      <div class="rk-pump-cta">
        <div class="rk-pump-cta-title">Zaprojektuj przepływy, opory i pompę jako jeden układ</div>
        <p>Projekt ogrzewania podłogowego łączy obciążenia pomieszczeń, powierzchnie czynne, rozstaw rur, długości pętli, średnice przewodów, przepływy, opory, nastawy rozdzielacza oraz warunki pracy źródła ciepła. Dzięki temu pompa nie jest wybierana dopiero po wykonaniu instalacji.</p>
        <a class="rk-pump-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów kompletny projekt ogrzewania podłogowego</a>
        <small class="rk-pump-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </div>
    </section>

    <section class="rk-pump-section" id="rk-pump-sources">
      <span class="rk-pump-eyebrow">Podstawa techniczna i granice obliczeń</span>
      <h2 class="rk-pump-section-title">Źródła oficjalne i zakres odpowiedzialności</h2>
      <p class="rk-pump-lead">Normy dotyczące systemów płaszczyznowych opisują ich wydajność, projektowanie i wymiarowanie, natomiast regulacje ekoprojektu określają wymagania dla objętych nimi pomp obiegowych. Nie ustanawiają jednej straty liniowej, przepływu pętli, trybu regulacji ani mocy elektrycznej dla każdego domu.</p>

      <div class="rk-pump-source-grid">
        <article class="rk-pump-source-card">
          <a href="https://www.iso.org/standard/74683.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-2:2021 — określanie mocy systemów płaszczyznowych</a>
          <p>Oficjalna karta normy opisującej procedury wyznaczania strumienia ciepła i parametrów cieplnych wodnych systemów powierzchniowych.</p>
        </article>
        <article class="rk-pump-source-card">
          <a href="https://www.iso.org/standard/74684.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-3:2021 — projektowanie i wymiarowanie</a>
          <p>Oficjalna karta normy ustanawiającej metodę projektowania i wymiarowania wbudowanych systemów ogrzewania i chłodzenia płaszczyznowego.</p>
        </article>
        <article class="rk-pump-source-card">
          <a href="https://energy-efficient-products.ec.europa.eu/product-list/circulators_en" target="_blank" rel="nofollow noopener noreferrer">Komisja Europejska — pompy obiegowe i wymagania ekoprojektu</a>
          <p>Oficjalna strona opisująca zakres regulacji, pompy samodzielne i zintegrowane oraz wymagania dotyczące efektywności i informacji produktowej.</p>
        </article>
        <article class="rk-pump-source-card">
          <a href="https://eur-lex.europa.eu/eli/reg/2009/641/oj" target="_blank" rel="nofollow noopener noreferrer">Rozporządzenie Komisji (WE) nr 641/2009</a>
          <p>Oficjalny akt prawny dotyczący wymogów ekoprojektu dla pomp cyrkulacyjnych bezdławnicowych, z uwzględnieniem późniejszych zmian.</p>
        </article>
      </div>

      <div class="rk-pump-responsibility">
        <p><strong>Zakres odpowiedzialności:</strong> artykuł, kalkulator i grafika mają charakter edukacyjny. Nie są projektem wykonawczym, dokumentacją doborową producenta, pomiarem instalacji ani ekspertyzą serwisową. Wynik zależy od poprawności danych użytkownika i nie obejmuje elementów, których strat nie wpisano.</p>
        <p><strong>Wymagane dane:</strong> rzeczywiste średnice wewnętrzne, charakterystyki armatury, krzywa konkretnej pompy, właściwości medium oraz wymagania źródła należy każdorazowo sprawdzić w aktualnej dokumentacji. Montaż, prace elektryczne i serwis wykonują osoby posiadające odpowiednie kwalifikacje.</p>
      </div>
    </section>

    <section class="rk-pump-section rk-pump-section-soft" id="rk-pump-faq">
      <span class="rk-pump-eyebrow">Najczęstsze pytania inwestorów i wykonawców</span>
      <h2 class="rk-pump-section-title">FAQ — pompa obiegowa do ogrzewania podłogowego</h2>

      <div class="rk-pump-faq">
        <details>
          <summary>Jak obliczyć wydajność pompy obiegowej do podłogówki?</summary>
          <div class="rk-pump-faq-answer"><p>Wymagany przepływ można wyznaczyć z mocy cieplnej obsługiwanej przez obieg, właściwości medium i projektowej różnicy temperatur albo przez zsumowanie projektowych przepływów wszystkich pętli pracujących jednocześnie. Nie należy dobierać Q wyłącznie z powierzchni domu.</p></div>
        </details>
        <details>
          <summary>Jak obliczyć wysokość podnoszenia pompy obiegowej?</summary>
          <div class="rk-pump-faq-answer"><p>Należy zsumować straty ciśnienia wspólnego zasilania, armatury, rozdzielacza, pętli krytycznej i wspólnego powrotu przy właściwych przepływach. Wynik Δp przelicza się na wysokość H zależnością H = Δp ÷ (ρ × g).</p></div>
        </details>
        <details>
          <summary>Czy do wysokości podnoszenia dodaje się wysokość budynku?</summary>
          <div class="rk-pump-faq-answer"><p>W prawidłowo napełnionym, zamkniętym obiegu cyrkulacyjnym pompa pokonuje przede wszystkim straty przepływu, dlatego nie dodaje się różnicy kondygnacji tak jak w otwartym układzie podnoszenia wody. Ciśnienie statyczne nadal musi zapewniać poprawne napełnienie i warunki pracy.</p></div>
        </details>
        <details>
          <summary>Czy najdłuższa pętla zawsze jest pętlą krytyczną?</summary>
          <div class="rk-pump-faq-answer"><p>Nie. O stracie decydują również przepływ pętli, średnica wewnętrzna, właściwości medium, armatura i wspólne odcinki należące do danej drogi. Najdłuższa pętla jest kandydatem do sprawdzenia, ale nie automatycznym wynikiem.</p></div>
        </details>
        <details>
          <summary>CP czy PP — jaki tryb pompy jest lepszy do podłogówki?</summary>
          <div class="rk-pump-faq-answer"><p>Nie ma jednego trybu najlepszego dla wszystkich instalacji. CP może być właściwy przy zmiennej liczbie otwartych pętli, PP może odpowiadać innym układom dystrybucyjnym, a stała krzywa stabilnemu obiegowi. Wybór trzeba potwierdzić przepływami, zachowaniem zaworów i instrukcją urządzenia.</p></div>
        </details>
        <details>
          <summary>Czy pompa wbudowana w pompę ciepła wystarczy do ogrzewania podłogowego?</summary>
          <div class="rk-pump-faq-answer"><p>Może wystarczyć, jeżeli jej dostępna charakterystyka po uwzględnieniu oporów wewnętrznych urządzenia obejmuje wymagany punkt Q/H całego obsługiwanego obiegu. Nie można tego ocenić wyłącznie z powierzchni budynku.</p></div>
        </details>
        <details>
          <summary>Pompa 25-40 czy 25-60 — którą wybrać?</summary>
          <div class="rk-pump-faq-answer"><p>Samo oznaczenie nie wystarcza. Trzeba porównać wymagany punkt Q/H z pełnymi charakterystykami konkretnych modeli dla przewidzianego trybu i nastawy. Większa wartość maksymalna nie oznacza automatycznie lepszego doboru.</p></div>
        </details>
        <details>
          <summary>Dlaczego pompa obiegowa lub instalacja hałasuje?</summary>
          <div class="rk-pump-faq-answer"><p>Możliwe przyczyny to powietrze, zbyt duża różnica ciśnień, wysoka prędkość, zdławione zawory, zabrudzenie, nieprawidłowe ciśnienie statyczne albo problem mechaniczny. Nie każdy szum w rozdzielaczu jest kawitacją pompy.</p></div>
        </details>
        <details>
          <summary>Jak sprawdzić, czy pompa pracuje w prawidłowym punkcie?</summary>
          <div class="rk-pump-faq-answer"><p>Trzeba zestawić projektowe Q/H z charakterystyką pompy, a podczas uruchomienia potwierdzić przepływy pętli, temperatury, stan zaworów, tryb regulacji i zachowanie źródła. Sam pobór mocy z wyświetlacza nie potwierdza hydrauliki.</p></div>
        </details>
        <details>
          <summary>Czy kalkulator można stosować do instalacji z glikolem?</summary>
          <div class="rk-pump-faq-answer"><p>Nie w tej wersji. Kalkulator modeluje wodę. Roztwór glikolu ma inną gęstość, ciepło właściwe i lepkość, dlatego zmienia wymagany przepływ oraz straty. Należy użyć aktualnych właściwości konkretnej mieszaniny i danych urządzeń.</p></div>
        </details>
      </div>
    </section>

    <section class="rk-pump-author" id="rk-pump-author">
      <span class="rk-pump-eyebrow">Opracowanie eksperckie</span>
      <h2 class="rk-pump-author-title">Autor i weryfikacja merytoryczna</h2>

      <div class="rk-pump-author-layout">
        <aside class="rk-pump-author-side">
          <div class="rk-pump-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="400" height="400" loading="lazy" decoding="async">
          </div>
          <div class="rk-pump-author-name"><a href="https://projekt-ogrzewania.pl/author/admin3399/">Robert Kucharski</a></div>
          <p class="rk-pump-author-role">Projektant instalacji sanitarnych<br>specjalista HVAC i ogrzewania podłogowego</p>
          <div class="rk-pump-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-pump-author-main">
          <div class="rk-pump-author-quote">„Pompa nie jest dobierana do metrażu. Jest dobierana do punktu Q/H, który powstaje z przepływów pętli i strat całej krytycznej drogi hydraulicznej.”</div>
          <p>Robert Kucharski opracowuje projekty ogrzewania podłogowego, obliczenia cieplne i hydrauliczne oraz materiały techniczne dla inwestorów i wykonawców. W pracy projektowej łączy obciążenia pomieszczeń, temperaturę wody, rozstaw rur, długości pętli, przepływy, średnice, opory oraz wymagania źródła ciepła.</p>
          <p>Ten artykuł został zweryfikowany pod kątem rozdzielenia wymaganej wydajności pompy od jej maksymalnych wartości katalogowych. Usunięto uniwersalne przedziały przepływów, stały opór liniowy, automatyczny zapas i regułę doboru na podstawie powierzchni.</p>
          <p>Kalkulator pokazuje model obliczeniowy dla wody, a opcjonalne porównanie z pompą działa wyłącznie na punktach wprowadzonych z jej dokumentacji. Dzięki temu narzędzie nie udaje aktualnej bazy urządzeń i jasno pokazuje granicę odpowiedzialności.</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-pump-author-facts">
            <div class="rk-pump-author-fact"><strong>Zakres</strong>ogrzewanie podłogowe, hydraulika i dobór urządzeń</div>
            <div class="rk-pump-author-fact"><strong>Metoda pracy</strong>obciążenia pomieszczeń, przepływy, opory i charakterystyki urządzeń</div>
            <div class="rk-pump-author-fact"><strong>Aktualizacja</strong>stan techniczny materiału sprawdzony 10 września 2026 r.</div>
          </div>
        </div>
      </div>
    </section>

  </div>
</article>

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

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

  var flowMode = "power";
  var svgNS = "http://www.w3.org/2000/svg";
  var chartLeft = 68;
  var chartRight = 728;
  var chartTop = 26;
  var chartBottom = 350;

  function numberValue(id, fallback) {
    var element = document.getElementById(id);
    var parsed;
    if (!element) {
      return fallback;
    }
    parsed = parseFloat(String(element.value).replace(",", "."));
    if (!isFinite(parsed)) {
      return fallback;
    }
    return parsed;
  }

  function formatNumber(value, digits) {
    if (!isFinite(value)) {
      return "—";
    }
    return value.toFixed(digits).replace(".", ",");
  }

  function waterDensity(temperature) {
    var numerator = temperature + 288.9414;
    var denominator = 508929.2 * (temperature + 68.12963);
    var correction = numerator / denominator * Math.pow(temperature - 3.9863, 2);
    return 1000 * (1 - correction);
  }

  function waterViscosity(temperature) {
    return 2.414e-5 * Math.pow(10, 247.8 / (temperature + 133.15));
  }

  function log10(value) {
    return Math.log(value) / Math.LN10;
  }

  function pipeLoss(lengthM, diameterMm, flowLMin, density, viscosity) {
    var diameterM;
    var flowM3S;
    var area;
    var velocity;
    var reynolds;
    var friction;
    var roughnessM = 0.000007;
    var pressurePa;

    if (lengthM < 0) {
      return null;
    }
    if (diameterMm <= 0) {
      return null;
    }
    if (flowLMin < 0) {
      return null;
    }

    diameterM = diameterMm / 1000;
    flowM3S = flowLMin / 60000;
    area = Math.PI * diameterM * diameterM / 4;
    velocity = flowM3S / area;
    reynolds = density * velocity * diameterM / viscosity;

    if (flowLMin === 0) {
      return { kpa: 0, velocity: 0, reynolds: 0, friction: 0 };
    }

    if (reynolds < 2300) {
      friction = 64 / reynolds;
    } else {
      friction = 0.25 / Math.pow(log10(roughnessM / (3.7 * diameterM) + 5.74 / Math.pow(reynolds, 0.9)), 2);
    }

    pressurePa = friction * lengthM / diameterM * density * velocity * velocity / 2;
    return {
      kpa: pressurePa / 1000,
      velocity: velocity,
      reynolds: reynolds,
      friction: friction
    };
  }

  function setFlowTab(mode) {
    var buttons = root.querySelectorAll("[data-rk-pump-flow-tab]");
    var powerPanel = document.getElementById("rk-pump-panel-power");
    var loopsPanel = document.getElementById("rk-pump-panel-loops");
    var i;

    flowMode = mode;
    for (i = 0; i < buttons.length; i += 1) {
      if (buttons[i].getAttribute("data-rk-pump-flow-tab") === mode) {
        buttons[i].setAttribute("aria-selected", "true");
      } else {
        buttons[i].setAttribute("aria-selected", "false");
      }
    }

    if (mode === "power") {
      powerPanel.removeAttribute("hidden");
      loopsPanel.setAttribute("hidden", "hidden");
    } else {
      loopsPanel.removeAttribute("hidden");
      powerPanel.setAttribute("hidden", "hidden");
    }
    calculate();
  }

  function sumLoopFlows() {
    var inputs = root.querySelectorAll("[data-rk-pump-loop-flow]");
    var total = 0;
    var value;
    var i;
    for (i = 0; i < inputs.length; i += 1) {
      value = parseFloat(String(inputs[i].value).replace(",", "."));
      if (isFinite(value)) {
        if (value > 0) {
          total += value;
        }
      }
    }
    return total;
  }

  function addLoopRow() {
    var container = document.getElementById("rk-pump-loop-rows");
    var currentRows = container.querySelectorAll(".rk-pump-loop-row");
    var row;
    var index;
    if (currentRows.length >= 20) {
      return;
    }
    index = currentRows.length + 1;
    row = document.createElement("div");
    row.className = "rk-pump-loop-row";
    row.innerHTML = '<div class="rk-pump-loop-cell"><label>Nazwa pętli</label><input type="text" value="Pętla ' + index + '" data-rk-pump-loop-name></div>' +
      '<div class="rk-pump-loop-cell"><label>Przepływ [l/min]</label><input type="number" min="0" max="10" step="0.1" value="1.0" data-rk-pump-loop-flow inputmode="decimal"></div>' +
      '<button class="rk-pump-remove-loop" type="button" data-rk-pump-remove-loop aria-label="Usuń pętlę">×</button>';
    container.appendChild(row);
    calculate();
  }

  function removeLoopRow(button) {
    var row;
    var rows = root.querySelectorAll(".rk-pump-loop-row");
    if (rows.length <= 1) {
      return;
    }
    row = button.closest(".rk-pump-loop-row");
    if (row) {
      row.parentNode.removeChild(row);
      calculate();
    }
  }

  function getPumpPoints() {
    var qInputs = root.querySelectorAll("[data-rk-pump-curve-q]");
    var hInputs = root.querySelectorAll("[data-rk-pump-curve-h]");
    var points = [];
    var q;
    var h;
    var i;

    for (i = 0; i < qInputs.length; i += 1) {
      q = parseFloat(String(qInputs[i].value).replace(",", "."));
      h = parseFloat(String(hInputs[i].value).replace(",", "."));
      if (isFinite(q)) {
        if (isFinite(h)) {
          if (q >= 0) {
            if (h >= 0) {
              points.push({ q: q, h: h });
            }
          }
        }
      }
    }

    points.sort(function (a, b) {
      return a.q - b.q;
    });

    var unique = [];
    for (i = 0; i < points.length; i += 1) {
      if (unique.length === 0) {
        unique.push(points[i]);
      } else {
        if (Math.abs(points[i].q - unique[unique.length - 1].q) > 0.0001) {
          unique.push(points[i]);
        } else {
          unique[unique.length - 1] = points[i];
        }
      }
    }
    return unique;
  }

  function interpolatePump(points, q) {
    var i;
    var a;
    var b;
    var fraction;
    if (points.length < 2) {
      return null;
    }
    if (q < points[0].q) {
      return null;
    }
    if (q > points[points.length - 1].q) {
      return null;
    }
    for (i = 0; i < points.length - 1; i += 1) {
      a = points[i];
      b = points[i + 1];
      if (q >= a.q) {
        if (q <= b.q) {
          fraction = (q - a.q) / (b.q - a.q);
          return a.h + fraction * (b.h - a.h);
        }
      }
    }
    return null;
  }

  function systemHead(q, designQ, designH) {
    if (designQ <= 0) {
      return 0;
    }
    return designH * Math.pow(q / designQ, 2);
  }

  function findIntersection(points, designQ, designH) {
    var start;
    var end;
    var steps = 500;
    var previousQ;
    var previousPump;
    var previousDiff;
    var q;
    var pump;
    var diff;
    var fraction;
    var crossingQ;
    var i;

    if (points.length < 2) {
      return null;
    }
    start = points[0].q;
    end = points[points.length - 1].q;
    previousQ = start;
    previousPump = interpolatePump(points, previousQ);
    previousDiff = previousPump - systemHead(previousQ, designQ, designH);

    for (i = 1; i <= steps; i += 1) {
      q = start + (end - start) * i / steps;
      pump = interpolatePump(points, q);
      diff = pump - systemHead(q, designQ, designH);
      if (previousDiff * diff <= 0) {
        if (Math.abs(previousDiff - diff) < 0.000001) {
          crossingQ = q;
        } else {
          fraction = previousDiff / (previousDiff - diff);
          crossingQ = previousQ + (q - previousQ) * fraction;
        }
        return {
          q: crossingQ,
          h: systemHead(crossingQ, designQ, designH)
        };
      }
      previousQ = q;
      previousDiff = diff;
    }
    return null;
  }

  function chartX(q, maxQ) {
    return chartLeft + q / maxQ * (chartRight - chartLeft);
  }

  function chartY(h, maxH) {
    return chartBottom - h / maxH * (chartBottom - chartTop);
  }

  function renderGrid(maxQ, maxH) {
    var group = document.getElementById("rk-pump-chart-grid");
    var fragment = document.createDocumentFragment();
    var line;
    var textElement;
    var qValue;
    var hValue;
    var x;
    var y;
    var i;

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

    for (i = 0; i <= 5; i += 1) {
      qValue = maxQ * i / 5;
      x = chartX(qValue, maxQ);
      line = document.createElementNS(svgNS, "line");
      line.setAttribute("class", "rk-pump-chart-grid-line");
      line.setAttribute("x1", x);
      line.setAttribute("x2", x);
      line.setAttribute("y1", chartTop);
      line.setAttribute("y2", chartBottom);
      fragment.appendChild(line);

      textElement = document.createElementNS(svgNS, "text");
      textElement.setAttribute("class", "rk-pump-chart-tick");
      textElement.setAttribute("x", x);
      textElement.setAttribute("y", 370);
      textElement.setAttribute("text-anchor", "middle");
      textElement.textContent = formatNumber(qValue, maxQ < 2 ? 2 : 1);
      fragment.appendChild(textElement);

      hValue = maxH * i / 5;
      y = chartY(hValue, maxH);
      line = document.createElementNS(svgNS, "line");
      line.setAttribute("class", "rk-pump-chart-grid-line");
      line.setAttribute("x1", chartLeft);
      line.setAttribute("x2", chartRight);
      line.setAttribute("y1", y);
      line.setAttribute("y2", y);
      fragment.appendChild(line);

      textElement = document.createElementNS(svgNS, "text");
      textElement.setAttribute("class", "rk-pump-chart-tick");
      textElement.setAttribute("x", 57);
      textElement.setAttribute("y", y + 4);
      textElement.setAttribute("text-anchor", "end");
      textElement.textContent = formatNumber(hValue, 1);
      fragment.appendChild(textElement);
    }
    group.appendChild(fragment);
  }

  function renderChart(designQ, designH, points) {
    var systemPath = document.getElementById("rk-pump-system-path");
    var devicePath = document.getElementById("rk-pump-device-path");
    var designPoint = document.getElementById("rk-pump-design-point");
    var operatingPoint = document.getElementById("rk-pump-operating-point");
    var maxPointQ = 0;
    var maxPointH = 0;
    var maxQ;
    var maxH;
    var path = "";
    var pumpPath = "";
    var q;
    var h;
    var x;
    var y;
    var intersection;
    var i;

    for (i = 0; i < points.length; i += 1) {
      if (points[i].q > maxPointQ) {
        maxPointQ = points[i].q;
      }
      if (points[i].h > maxPointH) {
        maxPointH = points[i].h;
      }
    }

    maxQ = Math.max(1, designQ * 1.75, maxPointQ * 1.12);
    maxH = Math.max(2, designH * 1.55, maxPointH * 1.12);
    renderGrid(maxQ, maxH);

    for (i = 0; i <= 90; i += 1) {
      q = maxQ * i / 90;
      h = systemHead(q, designQ, designH);
      x = chartX(q, maxQ);
      if (h > maxH) {
        h = maxH;
      }
      y = chartY(h, maxH);
      if (i === 0) {
        path = "M " + x.toFixed(2) + " " + y.toFixed(2);
      } else {
        path += " L " + x.toFixed(2) + " " + y.toFixed(2);
      }
      if (h === maxH) {
        break;
      }
    }
    systemPath.setAttribute("d", path);

    designPoint.setAttribute("cx", chartX(designQ, maxQ));
    designPoint.setAttribute("cy", chartY(designH, maxH));

    if (points.length >= 2) {
      for (i = 0; i < points.length; i += 1) {
        x = chartX(points[i].q, maxQ);
        y = chartY(points[i].h, maxH);
        if (i === 0) {
          pumpPath = "M " + x.toFixed(2) + " " + y.toFixed(2);
        } else {
          pumpPath += " L " + x.toFixed(2) + " " + y.toFixed(2);
        }
      }
      devicePath.setAttribute("d", pumpPath);
      devicePath.removeAttribute("hidden");
      intersection = findIntersection(points, designQ, designH);
      if (intersection) {
        operatingPoint.setAttribute("cx", chartX(intersection.q, maxQ));
        operatingPoint.setAttribute("cy", chartY(intersection.h, maxH));
        operatingPoint.removeAttribute("hidden");
      } else {
        operatingPoint.setAttribute("hidden", "hidden");
      }
    } else {
      devicePath.setAttribute("hidden", "hidden");
      operatingPoint.setAttribute("hidden", "hidden");
      intersection = null;
    }
    return intersection;
  }

  function renderBreakdown(values, total) {
    var i;
    var fill;
    var valueElement;
    var percent;
    for (i = 0; i < values.length; i += 1) {
      fill = root.querySelector('[data-rk-pump-break="' + values[i].key + '"]');
      valueElement = root.querySelector('[data-rk-pump-break-value="' + values[i].key + '"]');
      percent = total > 0 ? values[i].value / total * 100 : 0;
      if (fill) {
        fill.style.width = Math.max(0, Math.min(100, percent)).toFixed(1) + "%";
      }
      if (valueElement) {
        valueElement.textContent = formatNumber(values[i].value, 2) + " kPa";
      }
    }
  }

  function setStatus(tone, textValue) {
    var status = document.getElementById("rk-pump-status");
    status.classList.remove("is-warning");
    status.classList.remove("is-bad");
    status.classList.remove("is-good");
    if (tone) {
      status.classList.add(tone);
    }
    status.textContent = textValue;
  }

  function renderCurveAssessment(designQ, designH, points, intersection, loopFlow, totalLMin) {
    var pumpHead;
    var prefix = "";
    if (loopFlow > totalLMin) {
      prefix = "Uwaga: przepływ pętli krytycznej jest większy od przepływu całkowitego. Sprawdź dane. ";
    }

    if (points.length < 2) {
      setStatus(prefix ? "is-warning" : "", prefix + "Wyznaczono wymagany punkt instalacji. Wpisz co najmniej dwa kompletne punkty z jednej krzywej producenta, aby wykonać orientacyjne porównanie.");
      return;
    }

    if (designQ < points[0].q) {
      setStatus("is-warning", prefix + "Wymagany przepływ znajduje się poza zakresem wpisanych punktów krzywej. Dodaj dane obejmujące Q = " + formatNumber(designQ, 2) + " m³/h.");
      return;
    }
    if (designQ > points[points.length - 1].q) {
      setStatus("is-warning", prefix + "Wymagany przepływ znajduje się poza zakresem wpisanych punktów krzywej. Dodaj dane obejmujące Q = " + formatNumber(designQ, 2) + " m³/h.");
      return;
    }

    pumpHead = interpolatePump(points, designQ);
    if (pumpHead >= designH) {
      if (intersection) {
        setStatus("is-good", prefix + "Wpisana krzywa osiąga przy wymaganym Q około " + formatNumber(pumpHead, 2) + " m, czyli nie mniej niż wymagane " + formatNumber(designH, 2) + " m. Orientacyjne przecięcie krzywych: Q = " + formatNumber(intersection.q, 2) + " m³/h, H = " + formatNumber(intersection.h, 2) + " m. Potwierdź dopuszczalny obszar pracy i nastawę w dokumentacji.");
      } else {
        setStatus("is-warning", prefix + "Wpisana krzywa osiąga wymagane H przy projektowym Q, ale nie znaleziono przecięcia w podanym zakresie punktów. Uzupełnij pełniejszy fragment charakterystyki.");
      }
    } else {
      setStatus("is-bad", prefix + "Przy wymaganym Q wpisana krzywa daje około " + formatNumber(pumpHead, 2) + " m, czyli mniej niż wymagane " + formatNumber(designH, 2) + " m. Ta krzywa lub nastawa nie obejmuje wymaganego punktu.");
    }
  }

  function showInvalid(message) {
    document.getElementById("rk-pump-result-q").textContent = "—";
    document.getElementById("rk-pump-result-lmin").textContent = "—";
    document.getElementById("rk-pump-result-dp").textContent = "—";
    document.getElementById("rk-pump-result-h").textContent = "—";
    setStatus("is-bad", message);
  }

  function calculate() {
    var temperature = numberValue("rk-pump-water-temp", 35);
    var density = waterDensity(temperature);
    var viscosity = waterViscosity(temperature);
    var specificHeat = 4180;
    var qTotalM3H;
    var totalLMin;
    var power;
    var deltaT;
    var loopFlow = numberValue("rk-pump-loop-flow", -1);
    var loopLength = numberValue("rk-pump-loop-length", -1);
    var loopDiameter = numberValue("rk-pump-loop-diameter", -1);
    var supplyLength = numberValue("rk-pump-supply-length", -1);
    var supplyDiameter = numberValue("rk-pump-supply-diameter", -1);
    var returnLength = numberValue("rk-pump-return-length", -1);
    var returnDiameter = numberValue("rk-pump-return-diameter", -1);
    var manifoldLoss = numberValue("rk-pump-manifold-loss", -1);
    var componentLoss = numberValue("rk-pump-component-loss", -1);
    var marginPercent = numberValue("rk-pump-margin", -1);
    var loopResult;
    var supplyResult;
    var returnResult;
    var baseLoss;
    var marginLoss;
    var totalLoss;
    var headM;
    var points;
    var intersection;
    var breakdown;
    var note;

    if (temperature < 5) {
      showInvalid("Podaj temperaturę wody z zakresu obsługiwanego przez kalkulator.");
      return;
    }
    if (temperature > 90) {
      showInvalid("Podaj temperaturę wody z zakresu obsługiwanego przez kalkulator.");
      return;
    }

    if (flowMode === "power") {
      power = numberValue("rk-pump-power", -1);
      deltaT = numberValue("rk-pump-delta-t", -1);
      if (power <= 0) {
        showInvalid("Moc obsługiwana przez obieg musi być większa od zera.");
        return;
      }
      if (deltaT <= 0) {
        showInvalid("Projektowa różnica temperatur ΔT musi być większa od zera.");
        return;
      }
      qTotalM3H = power * 1000 / (density * specificHeat * deltaT) * 3600;
      totalLMin = qTotalM3H * 1000 / 60;
    } else {
      totalLMin = sumLoopFlows();
      qTotalM3H = totalLMin * 0.06;
      if (totalLMin <= 0) {
        showInvalid("Suma projektowych przepływów pętli musi być większa od zera.");
        return;
      }
    }

    if (loopFlow <= 0) {
      showInvalid("Podaj dodatni przepływ pętli krytycznej.");
      return;
    }
    if (loopLength < 0) {
      showInvalid("Długość pętli krytycznej nie może być ujemna.");
      return;
    }
    if (loopDiameter <= 0) {
      showInvalid("Średnica wewnętrzna pętli musi być większa od zera.");
      return;
    }
    if (supplyLength < 0) {
      showInvalid("Długość wspólnego zasilania nie może być ujemna.");
      return;
    }
    if (returnLength < 0) {
      showInvalid("Długość wspólnego powrotu nie może być ujemna.");
      return;
    }
    if (supplyDiameter <= 0) {
      showInvalid("Średnica wewnętrzna wspólnego zasilania musi być większa od zera.");
      return;
    }
    if (returnDiameter <= 0) {
      showInvalid("Średnica wewnętrzna wspólnego powrotu musi być większa od zera.");
      return;
    }
    if (manifoldLoss < 0) {
      showInvalid("Strata rozdzielacza nie może być ujemna.");
      return;
    }
    if (componentLoss < 0) {
      showInvalid("Strata pozostałych elementów nie może być ujemna.");
      return;
    }
    if (marginPercent < 0) {
      showInvalid("Zapas obliczeniowy nie może być ujemny.");
      return;
    }

    loopResult = pipeLoss(loopLength, loopDiameter, loopFlow, density, viscosity);
    supplyResult = pipeLoss(supplyLength, supplyDiameter, totalLMin, density, viscosity);
    returnResult = pipeLoss(returnLength, returnDiameter, totalLMin, density, viscosity);

    if (!loopResult) {
      showInvalid("Nie można obliczyć straty pętli dla podanych danych.");
      return;
    }
    if (!supplyResult) {
      showInvalid("Nie można obliczyć straty wspólnego zasilania dla podanych danych.");
      return;
    }
    if (!returnResult) {
      showInvalid("Nie można obliczyć straty wspólnego powrotu dla podanych danych.");
      return;
    }

    baseLoss = loopResult.kpa + supplyResult.kpa + returnResult.kpa + manifoldLoss + componentLoss;
    marginLoss = baseLoss * marginPercent / 100;
    totalLoss = baseLoss + marginLoss;
    headM = totalLoss * 1000 / (density * 9.80665);

    document.getElementById("rk-pump-result-q").textContent = formatNumber(qTotalM3H, 2) + " m³/h";
    document.getElementById("rk-pump-result-lmin").textContent = formatNumber(totalLMin, 1) + " l/min";
    document.getElementById("rk-pump-result-dp").textContent = formatNumber(totalLoss, 2) + " kPa";
    document.getElementById("rk-pump-result-h").textContent = formatNumber(headM, 2) + " m";

    breakdown = [
      { key: "loop", value: loopResult.kpa },
      { key: "supply", value: supplyResult.kpa },
      { key: "return", value: returnResult.kpa },
      { key: "manifold", value: manifoldLoss },
      { key: "components", value: componentLoss },
      { key: "margin", value: marginLoss }
    ];
    renderBreakdown(breakdown, totalLoss);

    note = document.getElementById("rk-pump-hydraulic-note");
    note.innerHTML = "<strong>Kontrola obliczenia:</strong> prędkość w pętli krytycznej ≈ " + formatNumber(loopResult.velocity, 2) + " m/s; we wspólnym zasilaniu ≈ " + formatNumber(supplyResult.velocity, 2) + " m/s; we wspólnym powrocie ≈ " + formatNumber(returnResult.velocity, 2) + " m/s. Interpretuj je według projektu, materiału rur, armatury i wymagań akustycznych.";

    points = getPumpPoints();
    intersection = renderChart(qTotalM3H, headM, points);
    renderCurveAssessment(qTotalM3H, headM, points, intersection, loopFlow, totalLMin);
  }

  var tabButtons = root.querySelectorAll("[data-rk-pump-flow-tab]");
  var i;
  for (i = 0; i < tabButtons.length; i += 1) {
    tabButtons[i].addEventListener("click", function () {
      setFlowTab(this.getAttribute("data-rk-pump-flow-tab"));
    });
  }

  root.addEventListener("input", function (event) {
    var target = event.target;
    if (target.tagName === "INPUT") {
      calculate();
    }
  });

  root.addEventListener("click", function (event) {
    var target = event.target;
    if (target.id === "rk-pump-add-loop") {
      addLoopRow();
      return;
    }
    if (target.hasAttribute("data-rk-pump-remove-loop")) {
      removeLoopRow(target);
    }
  });

  var graphicStates = {
    q: {
      title: "Przepływ: dodaj strumienie otwartych pętli",
      copy: "Jeżeli trzy pętle wymagają odpowiednio 1,2; 1,6 i 1,4 l/min, wspólny przewód przenosi łącznie 4,2 l/min. Tę zasadę stosuje się do wszystkich pętli obsługiwanych przez dany obieg.",
      cards: {
        supply: { value: "Suma przepływów", copy: "Przed rozdzielaczem płynie suma projektowych przepływów wszystkich otwartych pętli.", active: true },
        manifold: { value: "Podział strumienia", copy: "Rozdzielacz dzieli przepływ między czynne gałęzie zgodnie z nastawami i ich oporami.", active: true },
        parallel: { value: "q₁ + q₂ + q₃…", copy: "Przepływy pętli sumują się po stronie wspólnej. Każda gałąź ma jednak własną wartość q.", active: true },
        critical: { value: "Jedna z wielu gałęzi", copy: "Jej przepływ jest częścią sumy. O tym, czy jest krytyczna, decyduje pełna strata drogi.", active: true },
        return: { value: "Ponowna suma", copy: "Po połączeniu gałęzi przez przewód wspólny wraca suma strumieni otwartych pętli.", active: true },
        pump: { value: "Q całkowite", copy: "Pompa ma zapewnić sumaryczny przepływ Q przy wymaganej różnicy ciśnień H.", active: true }
      }
    },
    h: {
      title: "Wysokość H: przejdź jedną najbardziej niekorzystną drogą",
      copy: "Do straty pętli krytycznej dodaj wspólne zasilanie, rozdzielacz, armaturę i wspólny powrót. Nie dodawaj do siebie strat pętli połączonych równolegle.",
      cards: {
        supply: { value: "Δp przy całym Q", copy: "Strata wspólnego zasilania powstaje przy przepływie całego obsługiwanego obiegu.", active: true },
        manifold: { value: "Δp armatury", copy: "Uwzględnij stratę rozdzielacza i zaworów przy warunkach projektowych.", active: true },
        parallel: { value: "Nie sumuj gałęzi", copy: "Opory pozostałych równoległych pętli nie są dodawane do oporu pętli krytycznej.", active: false },
        critical: { value: "Największa pełna droga", copy: "Wybierz gałąź tworzącą największą sumę strat razem z jej odcinkami wspólnymi.", active: true },
        return: { value: "Δp przy całym Q", copy: "Wspólny powrót także należy do krytycznej drogi i przenosi przepływ całkowity.", active: true },
        pump: { value: "H z całej drogi", copy: "Pompa wytwarza różnicę ciśnień potrzebną do pokonania sumy oporów tej drogi.", active: true }
      }
    },
    zones: {
      title: "Zamknięte strefy: zmienia się przepływ i charakterystyka instalacji",
      copy: "Po zamknięciu części siłowników całkowity Q spada, a dostępna różnica ciśnień zależy od trybu pompy. Trzeba sprawdzić przepływy otwartych pętli oraz minimalne wymagania źródła.",
      cards: {
        supply: { value: "Mniejsze Q", copy: "W przewodzie wspólnym płynie suma tylko tych gałęzi, które pozostają otwarte.", active: true },
        manifold: { value: "Zmieniony układ zaworów", copy: "Pozycje siłowników zmieniają opór zastępczy całego rozdzielacza.", active: true },
        parallel: { value: "Część gałęzi zamknięta", copy: "Zamknięte pętle nie uczestniczą w czynnym przepływie, lecz wpływają na warunki pracy pozostałych.", active: false },
        critical: { value: "Nowy stan pracy", copy: "Otwarta droga musi nadal otrzymać wymagany przepływ bez nadmiernej różnicy ciśnień.", active: true },
        return: { value: "Mniejsza suma", copy: "Powrót przenosi sumę przepływów pętli, które pozostają czynne.", active: true },
        pump: { value: "Przesunięty punkt", copy: "Regulacja CP, PP, stała krzywa lub AUTO reaguje zgodnie z charakterystyką konkretnej pompy.", active: true }
      }
    }
  };

  function renderGraphic(mode) {
    var buttons = root.querySelectorAll("[data-rk-pump-view]");
    var cards = root.querySelectorAll("[data-rk-pump-hydro-card]");
    var state = graphicStates[mode];
    var key;
    var model;
    var valueElement;
    var copyElement;
    var i;

    if (!state) {
      return;
    }

    for (i = 0; i < buttons.length; i += 1) {
      if (buttons[i].getAttribute("data-rk-pump-view") === mode) {
        buttons[i].setAttribute("aria-pressed", "true");
      } else {
        buttons[i].setAttribute("aria-pressed", "false");
      }
    }

    for (i = 0; i < cards.length; i += 1) {
      key = cards[i].getAttribute("data-rk-pump-hydro-card");
      model = state.cards[key];
      cards[i].classList.remove("is-active");
      cards[i].classList.remove("is-muted");
      if (model.active) {
        cards[i].classList.add("is-active");
      } else {
        cards[i].classList.add("is-muted");
      }
      valueElement = cards[i].querySelector("[data-rk-pump-hydro-value]");
      copyElement = cards[i].querySelector("[data-rk-pump-hydro-copy]");
      valueElement.textContent = model.value;
      copyElement.textContent = model.copy;
    }

    document.getElementById("rk-pump-graphic-title").textContent = state.title;
    document.getElementById("rk-pump-graphic-copy").textContent = state.copy;
  }

  var graphicButtons = root.querySelectorAll("[data-rk-pump-view]");
  for (i = 0; i < graphicButtons.length; i += 1) {
    graphicButtons[i].addEventListener("click", function () {
      renderGraphic(this.getAttribute("data-rk-pump-view"));
    });
  }

  renderGraphic("q");
  calculate();
}());
</script>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "inLanguage": "pl-PL",
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt Ogrzewania",
      "url": "https://projekt-ogrzewania.pl/",
      "logo": {
        "@id": "https://projekt-ogrzewania.pl/#logo"
      },
      "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": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/#logo",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-ogrzewania-logo-1.jpg",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-ogrzewania-logo-1.jpg",
      "caption": "Projekt Ogrzewania"
    },
    {
      "@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",
      "worksFor": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "knowsAbout": [
        "ogrzewanie podłogowe",
        "pompy obiegowe",
        "hydraulika instalacji grzewczych",
        "dobór punktu pracy Q/H",
        "projektowe obciążenie cieplne",
        "pompy ciepła"
      ],
      "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/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#primaryimage",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/12/Pompa-obiegowa-w-instalacji-ogrzewania-podlogowego-1.webp",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/12/Pompa-obiegowa-w-instalacji-ogrzewania-podlogowego-1.webp",
      "width": 1050,
      "height": 1050,
      "caption": "Pompa obiegowa w instalacji ogrzewania podłogowego",
      "representativeOfPage": true,
      "inLanguage": "pl-PL"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Projekt Ogrzewania",
          "item": "https://projekt-ogrzewania.pl/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Poradniki",
          "item": "https://projekt-ogrzewania.pl/blog/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Pompa obiegowa do ogrzewania podłogowego",
          "item": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#webpage",
      "url": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/",
      "name": "Pompa obiegowa do ogrzewania podłogowego – jak dobrać przepływ Q i wysokość podnoszenia H?",
      "description": "Jak dobrać pompę obiegową do ogrzewania podłogowego? Oblicz wymagany przepływ Q i wysokość podnoszenia H oraz sprawdź punkt pracy na wykresie.",
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/#website"
      },
      "breadcrumb": {
        "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#primaryimage"
      },
      "mainEntity": {
        "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#article"
      },
      "datePublished": "2025-12-15T10:42:46+00:00",
      "dateModified": "2026-09-10",
      "inLanguage": "pl-PL"
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#article",
      "mainEntityOfPage": {
        "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#webpage"
      },
      "headline": "Pompa obiegowa do ogrzewania podłogowego – jak dobrać przepływ Q i wysokość podnoszenia H?",
      "alternativeHeadline": "Dobór punktu pracy Q/H, krzywej pompy i trybu regulacji podłogówki",
      "description": "Techniczny poradnik o obliczaniu wymaganego przepływu, krytycznej drogi hydraulicznej, wysokości podnoszenia, punkcie pracy, krzywych pomp oraz trybach CP, PP i AUTO.",
      "image": {
        "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#primaryimage"
      },
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "datePublished": "2025-12-15T10:42:46+00:00",
      "dateModified": "2026-09-10",
      "inLanguage": "pl-PL",
      "timeRequired": "PT28M",
      "wordCount": 4809,
      "isAccessibleForFree": true,
      "copyrightYear": 2026,
      "copyrightHolder": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "articleSection": [
        "Dobór pompy obiegowej",
        "Przepływ Q",
        "Wysokość podnoszenia H",
        "Pętla krytyczna",
        "Kalkulator punktu pracy",
        "Krzywa pompy",
        "Tryby CP, PP i AUTO",
        "Montaż i uruchomienie",
        "Diagnostyka",
        "Efektywność energetyczna",
        "FAQ"
      ],
      "keywords": [
        "pompa obiegowa do ogrzewania podłogowego",
        "jaka pompa do podłogówki",
        "wydajność pompy obiegowej Q",
        "wysokość podnoszenia pompy H",
        "punkt pracy pompy",
        "kalkulator pompy obiegowej",
        "krzywa pompy",
        "pętla krytyczna",
        "pompa 25-40 czy 25-60",
        "CP czy PP"
      ],
      "about": [
        {
          "@type": "Thing",
          "name": "Pompa obiegowa ogrzewania podłogowego"
        },
        {
          "@type": "Thing",
          "name": "Punkt pracy Q/H"
        },
        {
          "@type": "Thing",
          "name": "Hydraulika instalacji grzewczej"
        }
      ],
      "mentions": [
        {
          "@type": "Thing",
          "name": "Krzywa oporów instalacji"
        },
        {
          "@type": "Thing",
          "name": "Rozdzielacz ogrzewania podłogowego"
        },
        {
          "@type": "Thing",
          "name": "Pompa ciepła"
        },
        {
          "@type": "Thing",
          "name": "Równoważenie hydrauliczne"
        }
      ],
      "citation": [
        "https://www.iso.org/standard/74683.html",
        "https://www.iso.org/standard/74684.html",
        "https://energy-efficient-products.ec.europa.eu/product-list/circulators_en",
        "https://eur-lex.europa.eu/eli/reg/2009/641/oj"
      ],
      "speakable": {
        "@type": "SpeakableSpecification",
        "cssSelector": [
          "#rk-pump-answer .rk-pump-answer",
          "#rk-pump-flow .rk-pump-formula-copy",
          "#rk-pump-conclusions .rk-pump-answer"
        ]
      },
      "hasPart": [
        {
          "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#calculator"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#hydraulic-graphic"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#howto"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#checklist"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#faq"
        }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#calculator",
      "name": "Kalkulator punktu pracy pompy obiegowej Q/H",
      "description": "Kalkulator wyznaczający przepływ z mocy i różnicy temperatur lub sumy przepływów pętli, straty krytycznej drogi, wysokość podnoszenia i orientacyjne przecięcie z krzywą pompy wpisaną przez użytkownika.",
      "url": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#rk-pump-calculator",
      "applicationCategory": "UtilitiesApplication",
      "applicationSubCategory": "HVAC calculator",
      "operatingSystem": "Any",
      "browserRequirements": "Przeglądarka internetowa z obsługą JavaScript i SVG",
      "softwareVersion": "1.0",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "creator": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#article"
      },
      "featureList": [
        "Obliczenie przepływu Q z mocy i projektowego ΔT",
        "Sumowanie projektowych przepływów pętli",
        "Obliczenie oporu pętli i przewodów wspólnych metodą Darcy’ego–Weisbacha",
        "Jawne dodawanie strat rozdzielacza i urządzeń",
        "Przeliczenie Δp na wysokość H",
        "Dynamiczna krzywa oporów instalacji",
        "Opcjonalne wprowadzenie czterech punktów krzywej pompy",
        "Orientacyjne wyznaczenie przecięcia krzywych"
      ],
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "PLN"
      }
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#hydraulic-graphic",
      "name": "Dlaczego przepływy się sumują, a oporów pętli nie dodaje się razem?",
      "description": "Interaktywna grafika edukacyjna pokazująca przepływ całkowity, krytyczną drogę hydrauliczną i zmianę warunków po zamknięciu części stref.",
      "url": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#rk-pump-graphic",
      "applicationCategory": "EducationalApplication",
      "applicationSubCategory": "HVAC",
      "operatingSystem": "Any",
      "browserRequirements": "Przeglądarka internetowa z obsługą JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "creator": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#article"
      },
      "featureList": [
        "Śledzenie sumy przepływów Q",
        "Wskazanie krytycznej drogi Δp",
        "Wyjaśnienie połączenia równoległego pętli",
        "Scenariusz zamknięcia części stref",
        "Responsywny układ modułowy"
      ],
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "PLN"
      }
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#howto",
      "name": "Jak dobrać punkt pracy pompy obiegowej do ogrzewania podłogowego",
      "description": "Kolejność wyznaczania przepływu Q, krytycznej drogi, wysokości H i sprawdzania charakterystyki konkretnej pompy.",
      "inLanguage": "pl-PL",
      "supply": [
        {
          "@type": "HowToSupply",
          "name": "Projektowe obciążenia cieplne pomieszczeń"
        },
        {
          "@type": "HowToSupply",
          "name": "Tabela pętli i przepływów projektowych"
        },
        {
          "@type": "HowToSupply",
          "name": "Dokumentacja rozdzielacza, armatury, źródła i pompy"
        }
      ],
      "tool": [
        {
          "@type": "HowToTool",
          "name": "Kalkulator punktu pracy Q/H w artykule"
        },
        {
          "@type": "HowToTool",
          "name": "Charakterystyka Q/H konkretnej pompy"
        }
      ],
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Określ zakres obiegu",
          "text": "Ustal, które rozdzielacze, pętle i urządzenia ma obsługiwać dobierana pompa.",
          "url": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#rk-pump-answer"
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Wyznacz wymagany przepływ Q",
          "text": "Oblicz Q z mocy i projektowej różnicy temperatur albo zsumuj przepływy czynnych pętli.",
          "url": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#rk-pump-flow"
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Znajdź krytyczną drogę hydrauliczną",
          "text": "Porównaj pełne drogi przez pętle wraz z odcinkami wspólnymi i wybierz drogę o największej stracie.",
          "url": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#rk-pump-head"
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Zsumuj straty ciśnienia",
          "text": "Dodaj straty pętli krytycznej, zasilania, powrotu, rozdzielacza, zaworów, wymiennika, filtra i pozostałych elementów tej drogi.",
          "url": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#rk-pump-calculator"
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Przelicz Δp na H",
          "text": "Wyznacz wymaganą wysokość podnoszenia przy użyciu gęstości medium i przyspieszenia grawitacyjnego.",
          "url": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#rk-pump-calculator"
        },
        {
          "@type": "HowToStep",
          "position": 6,
          "name": "Sprawdź krzywą konkretnej pompy",
          "text": "Porównaj punkt Q/H z charakterystyką właściwego modelu, trybu i nastawy, a następnie potwierdź przepływy podczas uruchomienia.",
          "url": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#rk-pump-curve"
        }
      ]
    },
    {
      "@type": "ItemList",
      "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#checklist",
      "name": "Lista kontrolna doboru pompy obiegowej",
      "numberOfItems": 16,
      "itemListOrder": "https://schema.org/ItemListOrderAscending",
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Zakres obiegu obsługiwanego przez pompę" },
        { "@type": "ListItem", "position": 2, "name": "Projektowe obciążenia cieplne" },
        { "@type": "ListItem", "position": 3, "name": "Projektowa różnica temperatur ΔT" },
        { "@type": "ListItem", "position": 4, "name": "Przepływ całkowity Q" },
        { "@type": "ListItem", "position": 5, "name": "Pętla i droga krytyczna" },
        { "@type": "ListItem", "position": 6, "name": "Średnice wewnętrzne rur" },
        { "@type": "ListItem", "position": 7, "name": "Straty ciśnienia przewodów" },
        { "@type": "ListItem", "position": 8, "name": "Straty rozdzielacza i zaworów" },
        { "@type": "ListItem", "position": 9, "name": "Straty wymiennika, filtra i separatora" },
        { "@type": "ListItem", "position": 10, "name": "Właściwości medium" },
        { "@type": "ListItem", "position": 11, "name": "Krzywa konkretnej pompy" },
        { "@type": "ListItem", "position": 12, "name": "Dostępne ciśnienie pompy wbudowanej" },
        { "@type": "ListItem", "position": 13, "name": "Praca przy zamkniętych strefach" },
        { "@type": "ListItem", "position": 14, "name": "Tryb regulacji CP, PP, stały lub AUTO" },
        { "@type": "ListItem", "position": 15, "name": "Warunki montażu" },
        { "@type": "ListItem", "position": 16, "name": "Dokumentacja uruchomienia" }
      ],
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#article"
      }
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#faq",
      "url": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#rk-pump-faq",
      "inLanguage": "pl-PL",
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#webpage"
      },
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Jak obliczyć wydajność pompy obiegowej do podłogówki?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Wymagany przepływ można wyznaczyć z mocy cieplnej obsługiwanej przez obieg, właściwości medium i projektowej różnicy temperatur albo przez zsumowanie projektowych przepływów wszystkich pętli pracujących jednocześnie. Nie należy dobierać Q wyłącznie z powierzchni domu."
          }
        },
        {
          "@type": "Question",
          "name": "Jak obliczyć wysokość podnoszenia pompy obiegowej?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Należy zsumować straty ciśnienia wspólnego zasilania, armatury, rozdzielacza, pętli krytycznej i wspólnego powrotu przy właściwych przepływach. Wynik Δp przelicza się na wysokość H zależnością H = Δp ÷ (ρ × g)."
          }
        },
        {
          "@type": "Question",
          "name": "Czy do wysokości podnoszenia dodaje się wysokość budynku?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "W prawidłowo napełnionym, zamkniętym obiegu cyrkulacyjnym pompa pokonuje przede wszystkim straty przepływu, dlatego nie dodaje się różnicy kondygnacji tak jak w otwartym układzie podnoszenia wody. Ciśnienie statyczne nadal musi zapewniać poprawne napełnienie i warunki pracy."
          }
        },
        {
          "@type": "Question",
          "name": "Czy najdłuższa pętla zawsze jest pętlą krytyczną?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie. O stracie decydują również przepływ pętli, średnica wewnętrzna, właściwości medium, armatura i wspólne odcinki należące do danej drogi. Najdłuższa pętla jest kandydatem do sprawdzenia, ale nie automatycznym wynikiem."
          }
        },
        {
          "@type": "Question",
          "name": "CP czy PP — jaki tryb pompy jest lepszy do podłogówki?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie ma jednego trybu najlepszego dla wszystkich instalacji. CP może być właściwy przy zmiennej liczbie otwartych pętli, PP może odpowiadać innym układom dystrybucyjnym, a stała krzywa stabilnemu obiegowi. Wybór trzeba potwierdzić przepływami, zachowaniem zaworów i instrukcją urządzenia."
          }
        },
        {
          "@type": "Question",
          "name": "Czy pompa wbudowana w pompę ciepła wystarczy do ogrzewania podłogowego?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Może wystarczyć, jeżeli jej dostępna charakterystyka po uwzględnieniu oporów wewnętrznych urządzenia obejmuje wymagany punkt Q/H całego obsługiwanego obiegu. Nie można tego ocenić wyłącznie z powierzchni budynku."
          }
        },
        {
          "@type": "Question",
          "name": "Pompa 25-40 czy 25-60 — którą wybrać?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Samo oznaczenie nie wystarcza. Trzeba porównać wymagany punkt Q/H z pełnymi charakterystykami konkretnych modeli dla przewidzianego trybu i nastawy. Większa wartość maksymalna nie oznacza automatycznie lepszego doboru."
          }
        },
        {
          "@type": "Question",
          "name": "Dlaczego pompa obiegowa lub instalacja hałasuje?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Możliwe przyczyny to powietrze, zbyt duża różnica ciśnień, wysoka prędkość, zdławione zawory, zabrudzenie, nieprawidłowe ciśnienie statyczne albo problem mechaniczny. Nie każdy szum w rozdzielaczu jest kawitacją pompy."
          }
        },
        {
          "@type": "Question",
          "name": "Jak sprawdzić, czy pompa pracuje w prawidłowym punkcie?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Trzeba zestawić projektowe Q/H z charakterystyką pompy, a podczas uruchomienia potwierdzić przepływy pętli, temperatury, stan zaworów, tryb regulacji i zachowanie źródła. Sam pobór mocy z wyświetlacza nie potwierdza hydrauliki."
          }
        },
        {
          "@type": "Question",
          "name": "Czy kalkulator można stosować do instalacji z glikolem?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie w tej wersji. Kalkulator modeluje wodę. Roztwór glikolu ma inną gęstość, ciepło właściwe i lepkość, dlatego zmienia wymagany przepływ oraz straty. Należy użyć aktualnych właściwości konkretnej mieszaniny i danych urządzeń."
          }
        }
      ]
    }
  ]
}
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">Pompa obiegowa w instalacji ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Drewno na ogrzewanie podłogowe – tabela gatunków i analizator deski.</title>
		<link>https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 14 Oct 2025 11:21:47 +0000</pubDate>
				<category><![CDATA[Drewno]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Podłogi drewniane]]></category>
		<category><![CDATA[Podłogi w domu]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki domowe]]></category>
		<category><![CDATA[Poradniki inwestora]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[dąb]]></category>
		<category><![CDATA[deska warstwowa]]></category>
		<category><![CDATA[drewna egzotyczne]]></category>
		<category><![CDATA[drewno na ogrzewanie podłogowe]]></category>
		<category><![CDATA[montaż podłogi drewnianej]]></category>
		<category><![CDATA[ogrzewanie podłogowe a drewno]]></category>
		<category><![CDATA[podłoga na podłogówce]]></category>
		<category><![CDATA[poradnik budowlany]]></category>
		<category><![CDATA[rodzaje drewna]]></category>
		<category><![CDATA[stabilność drewna]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2807</guid>

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

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

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

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

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

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

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

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

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

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

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

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

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

  #rk-wood-guide .rk-wood-kicker::before {
    background: var(--rk-orange);
    border-radius: 50%;
    box-shadow: 0 0 0 6px rgba(237, 123, 47, 0.14);
    content: "";
    height: 9px;
    width: 9px;
  }

  #rk-wood-guide .rk-wood-hero-title {
    color: var(--rk-white);
    font-size: clamp(2.25rem, 7.5vw, 5.15rem);
    font-weight: 950;
    letter-spacing: -0.065em;
    line-height: 0.98;
    margin: 0 0 21px;
    max-width: 1030px;
  }

  #rk-wood-guide .rk-wood-hero-title span {
    color: #67e7f5;
  }

  #rk-wood-guide .rk-wood-hero-lead {
    color: #e2f2f5;
    font-size: clamp(1rem, 2.2vw, 1.3rem);
    line-height: 1.55;
    margin: 0 0 24px;
    max-width: 960px;
  }

  #rk-wood-guide .rk-wood-hero-tags,
  #rk-wood-guide .rk-wood-byline {
    display: flex;
    flex-wrap: wrap;
    gap: 9px 12px;
  }

  #rk-wood-guide .rk-wood-hero-tag {
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 999px;
    color: var(--rk-white);
    font-size: 0.67rem;
    font-weight: 850;
    line-height: 1.2;
    padding: 8px 13px;
  }

  #rk-wood-guide .rk-wood-byline {
    color: #cae0e6;
    font-size: 0.68rem;
    font-weight: 720;
    margin-top: 27px;
  }

  #rk-wood-guide .rk-wood-byline strong {
    color: var(--rk-white);
  }

  #rk-wood-guide .rk-wood-hero-metrics {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 28px;
  }

  #rk-wood-guide .rk-wood-hero-metric {
    background: rgba(255, 255, 255, 0.065);
    border: 1px solid rgba(255, 255, 255, 0.17);
    border-radius: 14px;
    min-width: 0;
    padding: 17px;
  }

  #rk-wood-guide .rk-wood-hero-metric b {
    color: var(--rk-white);
    display: block;
    font-size: 0.73rem;
    margin-bottom: 4px;
  }

  #rk-wood-guide .rk-wood-hero-metric span {
    color: #c8e0e6;
    display: block;
    font-size: 0.64rem;
    line-height: 1.48;
  }

  #rk-wood-guide .rk-wood-shortcuts {
    align-items: center;
    background: #eef6f8;
    border-bottom: 1px solid var(--rk-line);
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    padding: 18px clamp(16px, 4vw, 52px);
  }

  #rk-wood-guide .rk-wood-shortcuts-label {
    color: var(--rk-navy);
    font-size: 0.79rem;
    font-weight: 850;
    letter-spacing: 0.06em;
    margin-right: 4px;
    text-transform: uppercase;
  }

  #rk-wood-guide .rk-wood-shortcuts a {
    background: var(--rk-white);
    border: 1px solid #c9dce3;
    border-radius: 999px;
    color: var(--rk-navy);
    display: inline-flex;
    font-size: 0.78rem;
    font-weight: 730;
    line-height: 1.25;
    padding: 8px 12px;
    text-decoration: none;
  }

  #rk-wood-guide .rk-wood-shortcuts a:hover {
    background: var(--rk-navy);
    border-color: var(--rk-navy);
    color: var(--rk-white);
  }

  #rk-wood-guide .rk-wood-section {
    padding: clamp(46px, 7vw, 86px) clamp(20px, 6vw, 82px);
    scroll-margin-top: 22px;
  }

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

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

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

  #rk-wood-guide .rk-wood-section-dark strong,
  #rk-wood-guide .rk-wood-section-dark .rk-wood-section-title {
    color: var(--rk-white);
  }

  #rk-wood-guide .rk-wood-section-dark .rk-wood-lead {
    color: #d9edf2;
  }

  #rk-wood-guide .rk-wood-section-dark > p a {
    color: #7fe1ec;
    font-weight: 700;
  }

  #rk-wood-guide .rk-wood-section-dark > p a:hover {
    color: #ffffff;
  }

  #rk-wood-guide .rk-wood-section-dark .rk-wood-card,
  #rk-wood-guide .rk-wood-section-dark .rk-wood-card p {
    color: #42535e;
  }

  #rk-wood-guide .rk-wood-section-dark .rk-wood-card strong {
    color: var(--rk-navy);
  }

  #rk-wood-guide .rk-wood-section-dark .rk-wood-card a {
    color: #056c91;
    font-weight: 700;
  }

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

  #rk-wood-guide .rk-wood-section-title,
  #rk-wood-guide .rk-wood-author-title {
    color: var(--rk-navy);
    font-size: clamp(1.62rem, 3.4vw, 2.65rem);
    letter-spacing: -0.035em;
    line-height: 1.14;
    margin: 0 0 18px;
  }

  #rk-wood-guide .rk-wood-lead {
    color: var(--rk-muted);
    font-size: 1.08rem;
    max-width: 930px;
  }

  #rk-wood-guide .rk-wood-answer {
    background: linear-gradient(135deg, #effafc, #ffffff);
    border: 1px solid #bce3ea;
    border-left: 6px solid var(--rk-cyan);
    border-radius: var(--rk-radius);
    box-shadow: 0 12px 30px rgba(16, 45, 66, 0.07);
    margin-top: 24px;
    padding: clamp(22px, 4vw, 36px);
  }

  #rk-wood-guide .rk-wood-answer-label {
    color: var(--rk-blue);
    display: block;
    font-size: 0.76rem;
    font-weight: 850;
    letter-spacing: 0.09em;
    margin-bottom: 9px;
    text-transform: uppercase;
  }

  #rk-wood-guide .rk-wood-answer p {
    font-size: 1.11rem;
    margin: 0;
  }

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

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

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

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

  #rk-wood-guide .rk-wood-card {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    box-shadow: 0 8px 24px rgba(16, 45, 66, 0.055);
    min-width: 0;
    padding: 23px;
  }

  #rk-wood-guide .rk-wood-card-number {
    align-items: center;
    background: var(--rk-blue-soft);
    border-radius: 50%;
    color: var(--rk-blue);
    display: inline-flex;
    font-size: 0.84rem;
    font-weight: 850;
    height: 36px;
    justify-content: center;
    margin-bottom: 13px;
    width: 36px;
  }

  #rk-wood-guide .rk-wood-card h3,
  #rk-wood-guide .rk-wood-tool h3,
  #rk-wood-guide .rk-wood-result-card h3 {
    color: var(--rk-navy);
    font-size: 1.17rem;
    line-height: 1.32;
    margin: 0 0 10px;
  }

  #rk-wood-guide .rk-wood-card p:last-child {
    margin-bottom: 0;
  }

  #rk-wood-guide .rk-wood-callout {
    background: var(--rk-orange-soft);
    border: 1px solid #f2c8a8;
    border-radius: 16px;
    color: #693515;
    margin-top: 24px;
    padding: 19px 21px;
  }

  #rk-wood-guide .rk-wood-callout strong {
    color: #7f3e14;
  }

  #rk-wood-guide .rk-wood-note {
    background: var(--rk-blue-soft);
    border: 1px solid #bddfe8;
    border-radius: 16px;
    color: #17495b;
    margin-top: 22px;
    padding: 18px 20px;
  }

  #rk-wood-guide .rk-wood-list {
    margin: 18px 0 0;
    padding: 0;
  }

  #rk-wood-guide .rk-wood-list li {
    list-style: none;
    margin: 10px 0;
    padding-left: 28px;
    position: relative;
  }

  #rk-wood-guide .rk-wood-list li::before {
    align-items: center;
    background: var(--rk-green-soft);
    border-radius: 50%;
    color: var(--rk-green);
    content: "✓";
    display: flex;
    font-size: 0.75rem;
    font-weight: 900;
    height: 19px;
    justify-content: center;
    left: 0;
    position: absolute;
    top: 0.33em;
    width: 19px;
  }

  #rk-wood-guide .rk-wood-tool {
    background: linear-gradient(180deg, #ffffff 0%, #f6fbfc 100%);
    border: 1px solid #bddce4;
    border-radius: 25px;
    box-shadow: var(--rk-shadow);
    margin-top: 30px;
    overflow: hidden;
  }

  #rk-wood-guide .rk-wood-tool-head {
    background: linear-gradient(135deg, var(--rk-navy), var(--rk-navy-2));
    color: var(--rk-white);
    padding: clamp(24px, 4vw, 38px);
  }

  #rk-wood-guide .rk-wood-tool-head .rk-wood-eyebrow {
    color: #8ee8f1;
  }

  #rk-wood-guide .rk-wood-tool-head h3 {
    color: var(--rk-white);
    font-size: clamp(1.35rem, 3vw, 2rem);
    margin-bottom: 10px;
  }

  #rk-wood-guide .rk-wood-tool-head p {
    color: #dcecf1;
    margin: 0;
    max-width: 900px;
  }

  #rk-wood-guide .rk-wood-tool-body {
    padding: clamp(20px, 4vw, 38px);
  }

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

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

  #rk-wood-guide .rk-wood-field label,
  #rk-wood-guide .rk-wood-fieldset legend {
    color: var(--rk-navy);
    display: block;
    font-size: 0.86rem;
    font-weight: 780;
    line-height: 1.35;
    margin-bottom: 7px;
  }

  #rk-wood-guide .rk-wood-field small {
    color: var(--rk-muted);
    display: block;
    font-size: 0.75rem;
    line-height: 1.45;
    margin-top: 5px;
  }

  #rk-wood-guide .rk-wood-field input,
  #rk-wood-guide .rk-wood-field select {
    appearance: none;
    background-color: var(--rk-white);
    border: 1px solid #b6cbd3;
    border-radius: 11px;
    color: var(--rk-ink);
    font: inherit;
    min-height: 48px;
    padding: 10px 12px;
    width: 100%;
  }

  #rk-wood-guide .rk-wood-field select {
    background-image:
      linear-gradient(45deg, transparent 50%, var(--rk-navy) 50%),
      linear-gradient(135deg, var(--rk-navy) 50%, transparent 50%);
    background-position:
      calc(100% - 17px) 21px,
      calc(100% - 12px) 21px;
    background-repeat: no-repeat;
    background-size: 5px 5px, 5px 5px;
    padding-right: 34px;
  }

  #rk-wood-guide .rk-wood-field input:disabled {
    background: #edf2f4;
    color: #71808a;
    cursor: not-allowed;
  }

  #rk-wood-guide .rk-wood-field-wide {
    grid-column: 1 / -1;
  }

  #rk-wood-guide .rk-wood-help {
    background: var(--rk-yellow-soft);
    border: 1px solid #ead79b;
    border-radius: 13px;
    color: #624d18;
    font-size: 0.87rem;
    margin-top: 18px;
    padding: 14px 16px;
  }

  #rk-wood-guide .rk-wood-compare-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 25px;
  }

  #rk-wood-guide .rk-wood-species-card {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 19px;
    box-shadow: 0 10px 28px rgba(16, 45, 66, 0.075);
    min-width: 0;
    overflow: hidden;
  }

  #rk-wood-guide .rk-wood-species-head {
    background:
      repeating-linear-gradient(8deg, transparent 0, transparent 11px, rgba(255,255,255,.06) 12px, rgba(255,255,255,.06) 13px),
      linear-gradient(135deg, #173e58, #0e7187);
    color: var(--rk-white);
    min-height: 148px;
    padding: 22px;
  }

  #rk-wood-guide .rk-wood-species-head h4 {
    color: var(--rk-white);
    font-size: 1.42rem;
    line-height: 1.2;
    margin: 0 0 7px;
  }

  #rk-wood-guide .rk-wood-species-head p {
    color: #d9eef2;
    font-size: 0.79rem;
    line-height: 1.45;
    margin: 0;
  }

  #rk-wood-guide .rk-wood-species-body {
    padding: 20px;
  }

  #rk-wood-guide .rk-wood-metrics {
    display: grid;
    gap: 9px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 19px;
  }

  #rk-wood-guide .rk-wood-metric {
    background: var(--rk-soft);
    border-radius: 11px;
    min-width: 0;
    padding: 11px;
  }

  #rk-wood-guide .rk-wood-metric span {
    color: var(--rk-muted);
    display: block;
    font-size: 0.68rem;
    line-height: 1.25;
    text-transform: uppercase;
  }

  #rk-wood-guide .rk-wood-metric strong {
    display: block;
    font-size: 1rem;
    margin-top: 3px;
  }

  #rk-wood-guide .rk-wood-tag {
    background: var(--rk-blue-soft);
    border: 1px solid #b8dfe8;
    border-radius: 999px;
    color: var(--rk-blue);
    display: inline-flex;
    font-size: 0.73rem;
    font-weight: 800;
    line-height: 1.25;
    margin: 0 5px 8px 0;
    padding: 6px 9px;
  }

  #rk-wood-guide .rk-wood-tag-warn {
    background: var(--rk-yellow-soft);
    border-color: #e6d393;
    color: #76560a;
  }

  #rk-wood-guide .rk-wood-species-detail {
    border-top: 1px solid var(--rk-line);
    margin-top: 10px;
    padding-top: 13px;
  }

  #rk-wood-guide .rk-wood-species-detail dt {
    color: var(--rk-navy);
    font-size: 0.77rem;
    font-weight: 820;
    margin-top: 12px;
  }

  #rk-wood-guide .rk-wood-species-detail dd {
    color: #42535e;
    font-size: 0.85rem;
    line-height: 1.55;
    margin: 3px 0 0;
  }

  #rk-wood-guide .rk-wood-data-note {
    color: var(--rk-muted);
    font-size: 0.79rem;
    line-height: 1.55;
    margin: 18px 0 0;
  }

  #rk-wood-guide .rk-wood-form-grid {
    display: grid;
    gap: 17px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

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

  #rk-wood-guide .rk-wood-button {
    align-items: center;
    background: var(--rk-orange);
    border: 0;
    border-radius: 12px;
    color: var(--rk-white);
    cursor: pointer;
    display: inline-flex;
    font-size: 0.95rem;
    font-weight: 820;
    justify-content: center;
    min-height: 48px;
    padding: 11px 20px;
  }

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

  #rk-wood-guide .rk-wood-button-secondary {
    background: #dfecef;
    color: var(--rk-navy);
  }

  #rk-wood-guide .rk-wood-button-secondary:hover {
    background: #cbdfe5;
  }

  #rk-wood-guide .rk-wood-result {
    border-top: 1px solid var(--rk-line);
    margin-top: 28px;
    padding-top: 28px;
  }

  #rk-wood-guide .rk-wood-result-status {
    align-items: flex-start;
    background: var(--rk-blue-soft);
    border: 1px solid #b9dde5;
    border-radius: 17px;
    display: flex;
    gap: 14px;
    margin-bottom: 20px;
    padding: 18px;
  }

  #rk-wood-guide .rk-wood-status-icon {
    align-items: center;
    background: var(--rk-blue);
    border-radius: 50%;
    color: var(--rk-white);
    display: flex;
    flex: 0 0 auto;
    font-weight: 900;
    height: 38px;
    justify-content: center;
    width: 38px;
  }

  #rk-wood-guide .rk-wood-result-status strong {
    display: block;
    font-size: 1.1rem;
    margin-bottom: 3px;
  }

  #rk-wood-guide .rk-wood-result-status p {
    color: #315562;
    font-size: 0.88rem;
    margin: 0;
  }

  #rk-wood-guide .rk-wood-status-good {
    background: var(--rk-green-soft);
    border-color: #b7dfd0;
  }

  #rk-wood-guide .rk-wood-status-good .rk-wood-status-icon {
    background: var(--rk-green);
  }

  #rk-wood-guide .rk-wood-status-warn {
    background: var(--rk-yellow-soft);
    border-color: #e7d28e;
  }

  #rk-wood-guide .rk-wood-status-warn .rk-wood-status-icon {
    background: var(--rk-yellow);
  }

  #rk-wood-guide .rk-wood-status-alert {
    background: var(--rk-red-soft);
    border-color: #e8bbb7;
  }

  #rk-wood-guide .rk-wood-status-alert .rk-wood-status-icon {
    background: var(--rk-red);
  }

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

  #rk-wood-guide .rk-wood-result-card {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    min-width: 0;
    padding: 20px;
  }

  #rk-wood-guide .rk-wood-result-card ul {
    margin: 12px 0 0;
    padding-left: 19px;
  }

  #rk-wood-guide .rk-wood-result-card li {
    font-size: 0.86rem;
    margin: 8px 0;
  }

  #rk-wood-guide .rk-wood-result-number {
    color: var(--rk-blue);
    font-size: 1.55rem;
    font-weight: 880;
    line-height: 1.2;
  }

  #rk-wood-guide .rk-wood-result-caption {
    color: var(--rk-muted);
    font-size: 0.76rem;
    line-height: 1.4;
    margin-top: 4px;
  }

  #rk-wood-guide .rk-wood-check {
    align-items: flex-start;
    border-bottom: 1px solid #edf1f3;
    display: flex;
    font-size: 0.84rem;
    gap: 8px;
    padding: 8px 0;
  }

  #rk-wood-guide .rk-wood-check:last-child {
    border: 0;
  }

  #rk-wood-guide .rk-wood-check-mark {
    align-items: center;
    border-radius: 50%;
    color: var(--rk-white);
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 0.7rem;
    font-weight: 900;
    height: 20px;
    justify-content: center;
    margin-top: 2px;
    width: 20px;
  }

  #rk-wood-guide .rk-wood-check-ok {
    background: var(--rk-green);
  }

  #rk-wood-guide .rk-wood-check-missing {
    background: var(--rk-yellow);
  }

  #rk-wood-guide .rk-wood-check-alert {
    background: var(--rk-red);
  }

  #rk-wood-guide .rk-wood-layer-module {
    background: #f7fafb;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    margin-top: 20px;
    padding: 20px;
  }

  #rk-wood-guide .rk-wood-layer-module h4 {
    color: var(--rk-navy);
    font-size: 1.04rem;
    margin: 0 0 14px;
  }

  #rk-wood-guide .rk-wood-layers {
    display: grid;
    gap: 9px;
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  #rk-wood-guide .rk-wood-layer {
    border-radius: 13px;
    min-width: 0;
    padding: 14px;
  }

  #rk-wood-guide .rk-wood-layer span {
    display: block;
    font-size: 0.67rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }

  #rk-wood-guide .rk-wood-layer strong {
    display: block;
    font-size: 0.9rem;
    line-height: 1.3;
    margin-top: 4px;
  }

  #rk-wood-guide .rk-wood-layer small {
    display: block;
    font-size: 0.71rem;
    line-height: 1.35;
    margin-top: 4px;
  }

  #rk-wood-guide .rk-wood-layer-1 {
    background: #ddbd8a;
  }

  #rk-wood-guide .rk-wood-layer-2 {
    background: #ead3ad;
  }

  #rk-wood-guide .rk-wood-layer-3 {
    background: #dce9ec;
  }

  #rk-wood-guide .rk-wood-layer-4 {
    background: #c9d0d3;
  }

  #rk-wood-guide .rk-wood-layer-5 {
    background: #d5eef3;
  }

  #rk-wood-guide .rk-wood-rbar-wrap {
    margin-top: 20px;
  }

  #rk-wood-guide .rk-wood-rbar-labels {
    display: flex;
    font-size: 0.75rem;
    justify-content: space-between;
    margin-bottom: 6px;
  }

  #rk-wood-guide .rk-wood-rbar {
    background: #d9e5e9;
    border-radius: 999px;
    display: flex;
    height: 18px;
    overflow: hidden;
  }

  #rk-wood-guide .rk-wood-rbar-product {
    background: var(--rk-orange);
    min-width: 0;
    transition: width 250ms ease;
  }

  #rk-wood-guide .rk-wood-rbar-underlay {
    background: var(--rk-cyan);
    min-width: 0;
    transition: width 250ms ease;
  }

  #rk-wood-guide .rk-wood-rbar-note {
    color: var(--rk-muted);
    font-size: 0.75rem;
    line-height: 1.5;
    margin: 8px 0 0;
  }

  #rk-wood-guide .rk-wood-cta {
    background:
      radial-gradient(circle at 90% 10%, rgba(48, 183, 201, 0.23), transparent 28%),
      linear-gradient(135deg, #102d42, #17435d);
    border-radius: 24px;
    color: #eaf5f7;
    margin-top: 31px;
    padding: clamp(25px, 5vw, 44px);
  }

  #rk-wood-guide .rk-wood-cta-title {
    color: var(--rk-white);
    font-size: clamp(1.28rem, 2.7vw, 1.85rem);
    font-weight: 850;
    line-height: 1.25;
    margin-bottom: 10px;
  }

  #rk-wood-guide .rk-wood-cta p {
    color: #dcebef;
    margin-bottom: 19px;
    max-width: 900px;
  }

  #rk-wood-guide .rk-wood-cta-button {
    background: var(--rk-orange);
    border-radius: 12px;
    color: var(--rk-white);
    display: inline-flex;
    font-weight: 850;
    line-height: 1.3;
    padding: 13px 19px;
    text-decoration: none;
  }

  #rk-wood-guide .rk-wood-cta-button:hover {
    background: #ff954e;
    color: var(--rk-white);
  }

  #rk-wood-guide .rk-wood-link-disclosure {
    color: #b9d3da;
    display: block;
    font-size: 0.72rem;
    line-height: 1.5;
    margin-top: 12px;
  }

  #rk-wood-guide .rk-wood-compare-table {
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    margin-top: 25px;
    overflow: hidden;
  }

  #rk-wood-guide .rk-wood-table-row {
    display: grid;
    grid-template-columns: minmax(170px, 0.85fr) repeat(2, minmax(0, 1fr));
  }

  #rk-wood-guide .rk-wood-table-row > div {
    border-bottom: 1px solid var(--rk-line);
    min-width: 0;
    padding: 16px;
  }

  #rk-wood-guide .rk-wood-table-row:last-child > div {
    border-bottom: 0;
  }

  #rk-wood-guide .rk-wood-table-row > div + div {
    border-left: 1px solid var(--rk-line);
  }

  #rk-wood-guide .rk-wood-table-head {
    background: var(--rk-navy);
    color: var(--rk-white);
    font-weight: 820;
  }

  #rk-wood-guide .rk-wood-table-label {
    background: var(--rk-soft);
    color: var(--rk-navy);
    font-weight: 820;
  }

  #rk-wood-guide .rk-wood-steps {
    counter-reset: rk-step;
    display: grid;
    gap: 15px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 26px;
  }

  #rk-wood-guide .rk-wood-step {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    counter-increment: rk-step;
    padding: 21px;
  }

  #rk-wood-guide .rk-wood-step::before {
    align-items: center;
    background: var(--rk-orange);
    border-radius: 50%;
    color: var(--rk-white);
    content: counter(rk-step);
    display: flex;
    font-size: 0.82rem;
    font-weight: 900;
    height: 34px;
    justify-content: center;
    margin-bottom: 12px;
    width: 34px;
  }

  #rk-wood-guide .rk-wood-step h3 {
    color: var(--rk-navy);
    font-size: 1.05rem;
    margin: 0 0 7px;
  }

  #rk-wood-guide .rk-wood-step p {
    color: var(--rk-muted);
    font-size: 0.87rem;
    margin: 0;
  }

  #rk-wood-guide .rk-wood-mistakes {
    display: grid;
    gap: 13px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 25px;
  }

  #rk-wood-guide .rk-wood-mistake {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 15px;
    display: grid;
    gap: 12px;
    grid-template-columns: 37px minmax(0, 1fr);
    padding: 18px;
  }

  #rk-wood-guide .rk-wood-mistake-icon {
    align-items: center;
    background: var(--rk-red-soft);
    border-radius: 50%;
    color: var(--rk-red);
    display: flex;
    font-weight: 900;
    height: 37px;
    justify-content: center;
    width: 37px;
  }

  #rk-wood-guide .rk-wood-mistake strong {
    display: block;
    margin-bottom: 3px;
  }

  #rk-wood-guide .rk-wood-mistake p {
    color: var(--rk-muted);
    font-size: 0.86rem;
    margin: 0;
  }

  #rk-wood-guide .rk-wood-checklist {
    display: grid;
    gap: 11px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 25px;
  }

  #rk-wood-guide .rk-wood-checklist-item {
    align-items: flex-start;
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 13px;
    display: flex;
    gap: 11px;
    padding: 15px;
  }

  #rk-wood-guide .rk-wood-checklist-item span {
    align-items: center;
    background: var(--rk-green-soft);
    border-radius: 50%;
    color: var(--rk-green);
    display: flex;
    flex: 0 0 auto;
    font-size: 0.75rem;
    font-weight: 900;
    height: 24px;
    justify-content: center;
    margin-top: 2px;
    width: 24px;
  }

  #rk-wood-guide .rk-wood-source-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 26px;
  }

  #rk-wood-guide .rk-wood-source-card {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    padding: 20px;
  }

  #rk-wood-guide .rk-wood-source-card a {
    color: var(--rk-navy);
    font-weight: 820;
  }

  #rk-wood-guide .rk-wood-source-card p {
    color: var(--rk-muted);
    font-size: 0.84rem;
    margin: 8px 0 0;
  }

  #rk-wood-guide .rk-wood-responsibility {
    background: var(--rk-yellow-soft);
    border: 1px solid #e9d699;
    border-radius: 16px;
    margin-top: 21px;
    padding: 19px 21px;
  }

  #rk-wood-guide .rk-wood-responsibility p {
    color: #5e4c1d;
    font-size: 0.85rem;
    margin: 0;
  }

  #rk-wood-guide .rk-wood-faq {
    display: grid;
    gap: 11px;
    margin-top: 24px;
  }

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

  #rk-wood-guide .rk-wood-faq summary {
    color: var(--rk-navy);
    cursor: pointer;
    font-weight: 820;
    list-style: none;
    padding: 18px 50px 18px 19px;
    position: relative;
  }

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

  #rk-wood-guide .rk-wood-faq summary::after {
    color: var(--rk-orange);
    content: "+";
    font-size: 1.5rem;
    font-weight: 500;
    position: absolute;
    right: 20px;
    top: 12px;
  }

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

  #rk-wood-guide .rk-wood-faq-answer {
    border-top: 1px solid var(--rk-line);
    color: #465761;
    padding: 17px 19px 18px;
  }

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

  #rk-wood-guide .rk-wood-author {
    background: linear-gradient(135deg, #eef7f9, #ffffff);
    border-top: 1px solid var(--rk-line);
    padding: clamp(46px, 7vw, 86px) clamp(20px, 6vw, 82px);
    scroll-margin-top: 22px;
  }

  #rk-wood-guide .rk-wood-author-layout {
    display: grid;
    gap: clamp(25px, 5vw, 48px);
    grid-template-columns: minmax(190px, 0.48fr) minmax(0, 1.52fr);
    margin-top: 27px;
  }

  #rk-wood-guide .rk-wood-author-side {
    text-align: center;
  }

  #rk-wood-guide .rk-wood-author-photo {
    border: 6px solid var(--rk-white);
    border-radius: 50%;
    box-shadow: 0 12px 30px rgba(16, 45, 66, 0.16);
    margin: 0 auto 16px;
    max-width: 180px;
    overflow: hidden;
  }

  #rk-wood-guide .rk-wood-author-photo img {
    display: block;
    height: auto;
    width: 100%;
  }

  #rk-wood-guide .rk-wood-author-name a {
    color: var(--rk-navy);
    font-size: 1.22rem;
    font-weight: 880;
  }

  #rk-wood-guide .rk-wood-author-role {
    color: var(--rk-muted);
    font-size: 0.82rem;
    line-height: 1.5;
    margin-top: 5px;
  }

  #rk-wood-guide .rk-wood-author-social {
    display: flex;
    gap: 8px;
    justify-content: center;
    margin-top: 14px;
  }

  #rk-wood-guide .rk-wood-author-social a {
    align-items: center;
    background: var(--rk-navy);
    border-radius: 50%;
    color: var(--rk-white);
    display: flex;
    font-size: 0.82rem;
    font-weight: 850;
    height: 35px;
    justify-content: center;
    text-decoration: none;
    width: 35px;
  }

  #rk-wood-guide .rk-wood-author-quote {
    border-left: 5px solid var(--rk-orange);
    color: var(--rk-navy);
    font-size: 1.16rem;
    font-weight: 750;
    line-height: 1.55;
    margin-bottom: 21px;
    padding-left: 18px;
  }

  #rk-wood-guide .rk-wood-author-main > p {
    color: #455762;
  }

  #rk-wood-guide .rk-wood-author-facts {
    display: grid;
    gap: 11px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 21px;
  }

  #rk-wood-guide .rk-wood-author-fact {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 13px;
    color: var(--rk-muted);
    font-size: 0.77rem;
    line-height: 1.45;
    padding: 14px;
  }

  #rk-wood-guide .rk-wood-author-fact strong {
    display: block;
    font-size: 0.79rem;
    margin-bottom: 3px;
  }

  #rk-wood-guide .rk-wood-visually-hidden {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    white-space: nowrap;
    width: 1px;
  }

  @media (max-width: 1050px) {
    #rk-wood-guide .rk-wood-grid-4 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

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

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

  @media (max-width: 820px) {
    #rk-wood-guide {
      font-size: 16px;
    }

    #rk-wood-guide .rk-wood-hero-metrics,
    #rk-wood-guide .rk-wood-grid-3,
    #rk-wood-guide .rk-wood-compare-grid,
    #rk-wood-guide .rk-wood-result-grid,
    #rk-wood-guide .rk-wood-steps {
      grid-template-columns: 1fr;
    }

    #rk-wood-guide .rk-wood-fields {
      grid-template-columns: 1fr;
    }

    #rk-wood-guide .rk-wood-table-row {
      border-bottom: 1px solid var(--rk-line);
      display: block;
      padding: 0;
    }

    #rk-wood-guide .rk-wood-table-row:last-child {
      border-bottom: 0;
    }

    #rk-wood-guide .rk-wood-table-row > div {
      border: 0;
      padding: 13px 15px;
    }

    #rk-wood-guide .rk-wood-table-row > div + div {
      border-left: 0;
      border-top: 1px dashed var(--rk-line);
    }

    #rk-wood-guide .rk-wood-table-head > div:not(:first-child)::before {
      color: #b8d4dc;
      content: "Wariant: ";
      font-size: 0.68rem;
      text-transform: uppercase;
    }

    #rk-wood-guide .rk-wood-table-row:not(.rk-wood-table-head) > div:nth-child(2)::before {
      color: var(--rk-muted);
      content: "Deska lita: ";
      display: block;
      font-size: 0.68rem;
      font-weight: 800;
      text-transform: uppercase;
    }

    #rk-wood-guide .rk-wood-table-row:not(.rk-wood-table-head) > div:nth-child(3)::before {
      color: var(--rk-muted);
      content: "Deska warstwowa: ";
      display: block;
      font-size: 0.68rem;
      font-weight: 800;
      text-transform: uppercase;
    }

    #rk-wood-guide .rk-wood-author-layout {
      grid-template-columns: 1fr;
    }
  }

  @media (max-width: 640px) {
    #rk-wood-guide .rk-wood-shell {
      border-left: 0;
      border-radius: 0;
      border-right: 0;
    }

    #rk-wood-guide .rk-wood-shortcuts {
      align-items: stretch;
    }

    #rk-wood-guide .rk-wood-shortcuts-label {
      flex: 1 0 100%;
    }

    #rk-wood-guide .rk-wood-shortcuts a {
      flex: 1 1 calc(50% - 9px);
      justify-content: center;
      text-align: center;
    }

    #rk-wood-guide .rk-wood-grid-2,
    #rk-wood-guide .rk-wood-grid-4,
    #rk-wood-guide .rk-wood-form-grid,
    #rk-wood-guide .rk-wood-mistakes,
    #rk-wood-guide .rk-wood-checklist,
    #rk-wood-guide .rk-wood-source-grid,
    #rk-wood-guide .rk-wood-author-facts,
    #rk-wood-guide .rk-wood-layers {
      grid-template-columns: 1fr;
    }

    #rk-wood-guide .rk-wood-field-wide {
      grid-column: auto;
    }

    #rk-wood-guide .rk-wood-actions,
    #rk-wood-guide .rk-wood-button,
    #rk-wood-guide .rk-wood-cta-button {
      width: 100%;
    }

    #rk-wood-guide .rk-wood-actions {
      display: grid;
    }

    #rk-wood-guide .rk-wood-cta-button {
      justify-content: center;
      text-align: center;
    }
  }

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

<article id="rk-wood-guide" aria-labelledby="rk-wood-visual-title">
  <div class="rk-wood-shell">
    <header class="rk-wood-hero">
      <div class="rk-wood-hero-inner">
        <span class="rk-wood-kicker">Drewniana podłoga · aktualizacja 2026</span>
        <div class="rk-wood-hero-title" id="rk-wood-visual-title">Drewno na ogrzewanie podłogowe — <span>dobór bez zgadywania</span></div>
        <p class="rk-wood-hero-lead">Sam gatunek drewna nie przesądza, czy podłoga będzie dobrze współpracowała z ogrzewaniem podłogowym. Sprawdź kurczliwość, konstrukcję deski, opór cieplny, sposób montażu, limit temperatury oraz warunki wilgotnościowe konkretnego produktu.</p>

        <div class="rk-wood-hero-tags" aria-label="Zakres poradnika">
          <span class="rk-wood-hero-tag">15 gatunków drewna</span>
          <span class="rk-wood-hero-tag">deska lita i warstwowa</span>
          <span class="rk-wood-hero-tag">opór cieplny R</span>
          <span class="rk-wood-hero-tag">montaż klejony i pływający</span>
          <span class="rk-wood-hero-tag">pompa ciepła</span>
        </div>

        <div class="rk-wood-byline">
          <span>Autor: <strong>Robert Kucharski</strong></span>
          <span>Czas czytania: około 20 minut</span>
          <span>Aktualizacja techniczna: 10 września 2026 r.</span>
        </div>

        <div class="rk-wood-hero-metrics" aria-label="Najważniejsze zasady doboru">
          <div class="rk-wood-hero-metric"><b>Gatunek drewna</b><span>Pokazuje materiałową tendencję do zmian wymiarowych, ale nie kwalifikuje gotowej deski.</span></div>
          <div class="rk-wood-hero-metric"><b>Konkretna deska</b><span>Konstrukcja, grubość, szerokość, opór R i sposób montażu decydują o rzeczywistych warunkach pracy.</span></div>
          <div class="rk-wood-hero-metric"><b>Projekt podłogówki</b><span>Musi połączyć opór podłogi z obciążeniem pomieszczenia, powierzchnią czynną, temperaturą wody i hydrauliką.</span></div>
        </div>
      </div>
    </header>

    <nav class="rk-wood-shortcuts" aria-label="Na skróty — wszystkie sekcje artykułu">
      <span class="rk-wood-shortcuts-label">Na skróty</span>
      <a href="#rk-wood-answer">Krótka odpowiedź</a>
      <a href="#rk-wood-decision">Co naprawdę wybierasz</a>
      <a href="#rk-wood-comparator">Porównywarka gatunków</a>
      <a href="#rk-wood-parameters">Jak czytać parametry</a>
      <a href="#rk-wood-construction">Lita czy warstwowa</a>
      <a href="#rk-wood-analyzer">Analizator deski</a>
      <a href="#rk-wood-resistance">Opór cieplny</a>
      <a href="#rk-wood-installation">Klejona czy pływająca</a>
      <a href="#rk-wood-climate">Temperatura i wilgotność</a>
      <a href="#rk-wood-design">Moc i hydraulika</a>
      <a href="#rk-wood-heat-pump">Pompa ciepła i przeszklenia</a>
      <a href="#rk-wood-substrate">Jastrych i montaż</a>
      <a href="#rk-wood-mistakes">Najczęstsze błędy</a>
      <a href="#rk-wood-checklist">Lista przed zakupem</a>
      <a href="#rk-wood-conclusions">Wnioski projektanta</a>
      <a href="#rk-wood-sources">Źródła</a>
      <a href="#rk-wood-faq">FAQ</a>
      <a href="#rk-wood-author">Autor</a>
    </nav>

    <section class="rk-wood-section" id="rk-wood-answer">
      <span class="rk-wood-eyebrow">Odpowiedź w 30 sekund</span>
      <h2 class="rk-wood-section-title">Czy drewno nadaje się na ogrzewanie podłogowe?</h2>
      <div class="rk-wood-answer">
        <span class="rk-wood-answer-label">Najkrótsza poprawna odpowiedź</span>
        <p><strong>Tak — jeżeli producent dopuścił konkretny produkt do takiego zastosowania, znamy jego deklarowany opór cieplny, przestrzegamy wymagań montażowych i klimatycznych, a projekt podłogówki potwierdza wymaganą moc w pomieszczeniu.</strong> Nazwa gatunku sama nie wystarcza. Dąb może występować jako cienka deska warstwowa i jako szeroka deska lita; dla instalacji są to dwa różne przypadki.</p>
      </div>
      <div class="rk-wood-grid-4">
        <article class="rk-wood-card"><span class="rk-wood-card-number">1</span><h3>Produkt</h3><p>Sprawdź konstrukcję, wymiary, przeznaczenie i dokumentację konkretnej deski, a nie wyłącznie nazwę drewna.</p></article>
        <article class="rk-wood-card"><span class="rk-wood-card-number">2</span><h3>Opór R</h3><p>Uwzględnij opór całej warstwy wykończeniowej. Zobacz, czym jest <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">opór cieplny R w ogrzewaniu podłogowym</a>.</p></article>
        <article class="rk-wood-card"><span class="rk-wood-card-number">3</span><h3>Warunki</h3><p>Temperatura powierzchni i zakres wilgotności względnej muszą odpowiadać instrukcji podłogi, kleju i systemu grzewczego.</p></article>
        <article class="rk-wood-card"><span class="rk-wood-card-number">4</span><h3>Projekt</h3><p>Wykończenie trzeba połączyć ze stratą ciepła, powierzchnią czynną, rozstawem rur i temperaturą wody.</p></article>
      </div>
      <div class="rk-wood-callout"><strong>Ważne:</strong> nie istnieje gatunek, który automatycznie gwarantuje bezproblemową pracę, ani jedna wartość R lub temperatury będąca samodzielnym „certyfikatem bezpieczeństwa” dla każdej podłogi i każdego budynku.</div>
    </section>

    <section class="rk-wood-section rk-wood-section-soft" id="rk-wood-decision">
      <span class="rk-wood-eyebrow">Hierarchia decyzji</span>
      <h2 class="rk-wood-section-title">Gatunek to początek analizy, nie gotowa odpowiedź</h2>
      <p class="rk-wood-lead">Gatunek pomaga przewidzieć, jak drewno reaguje na zmianę wilgotności i jak łatwo może się wgniatać. Nie opisuje jednak budowy gotowej deski, jakości suszenia, układu słojów, zamków, klejenia warstw ani warunków gwarancji.</p>
      <div class="rk-wood-grid-3">
        <article class="rk-wood-card"><h3>1. Czy produkt jest dopuszczony?</h3><p>Najpierw szukaj jednoznacznej informacji o ogrzewaniu podłogowym, dopuszczonym sposobie montażu, granicznej temperaturze i wymaganym mikroklimacie.</p></article>
        <article class="rk-wood-card"><h3>2. Czy parametry da się policzyć?</h3><p>Potrzebny jest deklarowany opór cieplny produktu i — przy montażu pływającym — podkładu. Sama przewodność gatunku jest tylko danymi pomocniczymi.</p></article>
        <article class="rk-wood-card"><h3>3. Czy pomieszczenie ma bilans?</h3><p>Ta sama deska może działać bez problemu w pokoju o małym obciążeniu i wymagać innych parametrów w strefie o dużej stracie ciepła.</p></article>
      </div>
      <p>Dlatego wpływ okładziny trzeba rozpatrywać razem z instalacją. Szerzej wyjaśnia to poradnik o tym, <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">jak rodzaj okładziny wpływa na wydajność podłogówki</a>.</p>
    </section>

    <section class="rk-wood-section" id="rk-wood-comparator">
      <span class="rk-wood-eyebrow">Narzędzie 1 z 2</span>
      <h2 class="rk-wood-section-title">Interaktywne porównanie 15 gatunków drewna</h2>
      <p class="rk-wood-lead">Wybierz maksymalnie trzy gatunki. Narzędzie zestawia wielkości materiałowe i ryzyka, ale celowo nie tworzy rankingu „najlepsze–najgorsze”: gotowa podłoga zależy od konstrukcji produktu i jego dokumentacji.</p>

      <div class="rk-wood-tool" id="rk-wood-comparator-tool">
        <div class="rk-wood-tool-head">
          <span class="rk-wood-eyebrow">Porównywarka materiałowa</span>
          <h3>Dąb, merbau, iroko, jesion, klon, robinia, dwa orzechy, sosna, modrzew, teak, buk, doussie, jatoba i wenge</h3>
          <p>Wartości reprezentatywne służą do porównania tendencji. Naturalne drewno wykazuje zmienność zależną m.in. od pochodzenia, przyrostu, wilgotności i kierunku anatomicznego.</p>
        </div>
        <div class="rk-wood-tool-body">
          <div class="rk-wood-fields">
            <div class="rk-wood-field">
              <label for="rk-wood-species-a">Pierwszy gatunek</label>
              <select id="rk-wood-species-a" data-rk-wood-compare="0"></select>
            </div>
            <div class="rk-wood-field">
              <label for="rk-wood-species-b">Drugi gatunek</label>
              <select id="rk-wood-species-b" data-rk-wood-compare="1"></select>
            </div>
            <div class="rk-wood-field">
              <label for="rk-wood-species-c">Trzeci gatunek</label>
              <select id="rk-wood-species-c" data-rk-wood-compare="2"></select>
            </div>
          </div>
          <div class="rk-wood-help"><strong>Jak czytać wynik:</strong> niższa kurczliwość i mniejsza różnica między kierunkiem stycznym a promieniowym mogą ograniczać tendencję do zmian wymiarowych, ale nie zastępują oceny szerokości, przekroju, wilgotności początkowej i konstrukcji deski.</div>
          <div class="rk-wood-compare-grid" id="rk-wood-compare-results" aria-live="polite"></div>
          <p class="rk-wood-data-note">Gęstość, całkowity skurcz promieniowy i styczny, współczynnik anizotropii, przewodność cieplna oraz twardość są wartościami reprezentatywnymi zestawionymi na podstawie kart CIRAD Tropix i USDA Forest Products Laboratory. Nie są deklaracją właściwości konkretnej partii ani konkretnego wyrobu.</p>
          <div class="rk-wood-callout"><strong>Ocena gatunku nie jest potwierdzeniem przydatności konkretnej podłogi.</strong> Ostateczna decyzja zależy od konstrukcji deski, całkowitego oporu R, sposobu montażu i warunków podanych w dokumentacji produktu.</div>
        </div>
      </div>
    </section>

    <section class="rk-wood-section rk-wood-section-soft" id="rk-wood-parameters">
      <span class="rk-wood-eyebrow">Cztery wielkości, cztery różne znaczenia</span>
      <h2 class="rk-wood-section-title">Jak czytać kurczliwość, anizotropię, gęstość i przewodność drewna?</h2>
      <p class="rk-wood-lead">W tabelach technicznych łatwo pomylić parametr materiału z oceną gotowej podłogi. Każda z poniższych wartości odpowiada na inne pytanie i żadna samodzielnie nie przesądza o przydatności deski.</p>
      <div class="rk-wood-grid-2">
        <article class="rk-wood-card">
          <h3>Skurcz promieniowy i styczny</h3>
          <p>Opisuje całkowitą zmianę wymiaru od stanu nasycenia włókien do stanu suchego w dwóch kierunkach anatomicznych. To nie jest prognoza szczeliny w milimetrach w Twoim salonie. W eksploatacji podłoga pracuje w znacznie węższym zakresie wilgotności, a wynik zależy też od sposobu przetarcia deski.</p>
        </article>
        <article class="rk-wood-card">
          <h3>Stosunek T/R, czyli anizotropia</h3>
          <p>Porównuje skurcz styczny z promieniowym. Większa różnica może sprzyjać paczeniu przekroju, lecz o zachowaniu gotowego elementu nadal decydują szerokość, grubość, układ słojów, konstrukcja i mocowanie.</p>
        </article>
        <article class="rk-wood-card">
          <h3>Gęstość i odporność na wgniecenia</h3>
          <p>Gęstość często koreluje z twardością, ale nie jest tym samym parametrem. Twarde drewno może dobrze znosić punktowe obciążenia, a jednocześnie wyraźnie reagować na zmianę wilgotności. Odporność użytkowa nie oznacza automatycznie stabilności wymiarowej.</p>
        </article>
        <article class="rk-wood-card">
          <h3>Przewodność λ a opór R</h3>
          <p>Przewodność cieplna λ jest właściwością materiału. Opór cieplny warstwy zależy także od grubości: w uproszczeniu R = d/λ. Dla deski warstwowej potrzebne są właściwości całego produktu, nie tylko warstwy wierzchniej.</p>
        </article>
      </div>
      <div class="rk-wood-note"><strong>Praktyczna konsekwencja:</strong> dwie deski z tego samego dębu mogą mieć różny R i inaczej reagować na mikroklimat, jeśli różnią się grubością, szerokością, układem warstw oraz montażem. Przy porównywaniu alternatyw pomocne jest również zestawienie <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/">podłogi drewnianej i paneli laminowanych</a> oraz wyjaśnienie, <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/">czy na podłogówkę nadają się tylko płytki</a>.</div>
    </section>

    <section class="rk-wood-section" id="rk-wood-construction">
      <span class="rk-wood-eyebrow">Budowa gotowego wyrobu</span>
      <h2 class="rk-wood-section-title">Deska lita czy warstwowa na ogrzewanie podłogowe?</h2>
      <p class="rk-wood-lead">Konstrukcja warstwowa może ograniczać część zmian geometrycznych dzięki krzyżowemu ułożeniu lub stabilizującemu podkładowi. Nie oznacza to stałej procentowej przewagi ani automatycznej zgody na każdą temperaturę. Liczy się projekt konkretnego wyrobu.</p>
      <div class="rk-wood-compare-table" role="table" aria-label="Porównanie deski litej i warstwowej">
        <div class="rk-wood-table-row rk-wood-table-head" role="row">
          <div role="columnheader">Kryterium</div>
          <div role="columnheader">Deska lita</div>
          <div role="columnheader">Deska warstwowa</div>
        </div>
        <div class="rk-wood-table-row" role="row">
          <div class="rk-wood-table-label" role="rowheader">Reakcja na wilgotność</div>
          <div role="cell">Element pracuje jako jeden przekrój drewna; znaczenie mają szerokość i kierunek słojów.</div>
          <div role="cell">Warstwy mogą stabilizować geometrię, lecz skuteczność zależy od ich materiału, układu i jakości klejenia.</div>
        </div>
        <div class="rk-wood-table-row" role="row">
          <div class="rk-wood-table-label" role="rowheader">Opór cieplny</div>
          <div role="cell">Można go wstępnie oszacować z grubości i λ, ale dokument wyrobu jest pewniejszy.</div>
          <div role="cell">Nie należy liczyć R wyłącznie z λ warstwy użytkowej; potrzebna jest wartość dla całego produktu.</div>
        </div>
        <div class="rk-wood-table-row" role="row">
          <div class="rk-wood-table-label" role="rowheader">Szerokość elementu</div>
          <div role="cell">Większa szerokość zwiększa widoczny skutek tej samej procentowej zmiany wymiaru.</div>
          <div role="cell">Konstrukcja może ograniczać zmianę, ale szerokie formaty nadal wymagają sprawdzenia instrukcji.</div>
        </div>
        <div class="rk-wood-table-row" role="row">
          <div class="rk-wood-table-label" role="rowheader">Decyzja zakupowa</div>
          <div role="cell">Wybór warunkowy: dopuszczenie produktu, wymiary, montaż i mikroklimat muszą być spójne.</div>
          <div role="cell">Zwykle łatwiej znaleźć wyrób zaprojektowany do podłogówki, ale potwierdzenie producenta nadal jest konieczne.</div>
        </div>
      </div>
      <div class="rk-wood-callout"><strong>Nie używaj skrótu „warstwowa zawsze dobra, lita zawsze zła”.</strong> Lepsza reguła brzmi: wybieraj produkt z kompletną dokumentacją, możliwie przewidywalną konstrukcją i parametrami pasującymi do obliczonej podłogówki.</div>
    </section>

    <section class="rk-wood-section rk-wood-section-soft" id="rk-wood-analyzer">
      <span class="rk-wood-eyebrow">Narzędzie 2 z 2</span>
      <h2 class="rk-wood-section-title">Analizator konkretnej deski na ogrzewanie podłogowe</h2>
      <p class="rk-wood-lead">Przepisz dane z karty produktu i założeń pomieszczenia. Wynik oddzieli przepływ ciepła, ryzyko eksploatacyjne i kompletność dokumentacji. To analiza warunków, nie rekomendacja zakupowa.</p>

      <div class="rk-wood-tool" id="rk-wood-board-tool">
        <div class="rk-wood-tool-head">
          <span class="rk-wood-eyebrow">Analiza konkretnego wyrobu</span>
          <h3>Co wiadomo o desce, czego brakuje i co trzeba przeliczyć w projekcie?</h3>
          <p>Wypełnij pola zgodnie z dokumentacją produktu. Jeśli producent nie podaje wartości, pozostaw pole puste — brak danych jest ważnym wynikiem, a nie powodem do zgadywania.</p>
        </div>
        <div class="rk-wood-tool-body">
          <form id="rk-wood-board-form">
            <div class="rk-wood-form-grid">
              <div class="rk-wood-field">
                <label for="rk-wood-board-species">Gatunek drewna</label>
                <select id="rk-wood-board-species" name="species"></select>
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-construction-input">Konstrukcja produktu</label>
                <select id="rk-wood-construction-input" name="construction">
                  <option value="solid">deska lita</option>
                  <option value="two" selected="">deska dwuwarstwowa</option>
                  <option value="three">deska trójwarstwowa</option>
                </select>
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-thickness">Grubość całkowita [mm]</label>
                <input id="rk-wood-thickness" name="thickness" type="number" min="6" max="35" step="0.5" value="14" inputmode="decimal">
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-width">Szerokość elementu [mm]</label>
                <input id="rk-wood-width" name="width" type="number" min="50" max="400" step="1" value="180" inputmode="numeric">
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-r-declared">Deklarowany R produktu [m²K/W]</label>
                <input id="rk-wood-r-declared" name="rDeclared" type="number" min="0.01" max="0.40" step="0.001" value="0.090" inputmode="decimal">
                <small>Wartość dla całej deski, nie samo λ drewna.</small>
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-install">Sposób montażu</label>
                <select id="rk-wood-install" name="installation">
                  <option value="glued" selected="">klejenie do podłoża</option>
                  <option value="floating">montaż pływający</option>
                </select>
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-underlay-r">R podkładu [m²K/W]</label>
                <input id="rk-wood-underlay-r" name="underlayR" type="number" min="0" max="0.30" step="0.001" value="0" inputmode="decimal" disabled="">
                <small>Aktywne dla montażu pływającego. Dla kleju sprawdź dane systemu klejowego.</small>
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-approval">Deklaracja do podłogówki</label>
                <select id="rk-wood-approval" name="approval">
                  <option value="yes" selected="">tak, potwierdzona</option>
                  <option value="unknown">brak informacji</option>
                  <option value="no">producent nie dopuszcza</option>
                </select>
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-max-temp">Maks. temperatura powierzchni [°C]</label>
                <input id="rk-wood-max-temp" name="maxTemp" type="number" min="20" max="40" step="0.5" value="27" inputmode="decimal">
                <small>Przepisz limit produktu; 27°C nie jest automatycznie wartością dla każdej deski.</small>
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-rh-min">Minimalna RH w pomieszczeniu [%]</label>
                <input id="rk-wood-rh-min" name="rhMin" type="number" min="20" max="70" step="1" value="40" inputmode="numeric">
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-rh-max">Maksymalna RH w pomieszczeniu [%]</label>
                <input id="rk-wood-rh-max" name="rhMax" type="number" min="30" max="85" step="1" value="60" inputmode="numeric">
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-load">Obciążenie cieplne pomieszczenia [W/m²]</label>
                <input id="rk-wood-load" name="heatLoad" type="number" min="10" max="180" step="1" value="55" inputmode="numeric">
                <small>Wartość z obliczeń dla aktywnej powierzchni grzewczej, nie ze średniej dla całego domu.</small>
              </div>
            </div>
            <div class="rk-wood-actions">
              <button class="rk-wood-button" type="submit">Przeanalizuj deskę</button>
              <button class="rk-wood-button rk-wood-button-secondary" id="rk-wood-example-reset" type="button">Przywróć przykład</button>
            </div>
          </form>

          <div class="rk-wood-result" id="rk-wood-analysis-result" aria-live="polite" aria-atomic="true">
            <div class="rk-wood-result-status">
              <span class="rk-wood-status-icon" aria-hidden="true">i</span>
              <div><strong>Wprowadź parametry i uruchom analizę</strong><p>Narzędzie nie zastępuje dokumentacji produktu ani obliczeń mocy podłogi.</p></div>
            </div>
          </div>
        </div>
      </div>

      <aside class="rk-wood-cta" aria-label="Projekt ogrzewania podłogowego pod wybraną deskę">
        <div class="rk-wood-cta-title">Analizator uporządkuje parametry deski. Projekt odpowie, czy podłoga dostarczy potrzebne ciepło.</div>
        <p>Opór wykończenia trzeba połączyć ze stratą ciepła każdego pomieszczenia, powierzchnią czynną, rozstawem rur, temperaturą wody, długościami pętli i przepływami. Dopiero taki zestaw pozwala ocenić wybraną podłogę w konkretnym budynku.</p>
        <a class="rk-wood-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Sprawdź wybraną podłogę w projekcie ogrzewania</a>
        <small class="rk-wood-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </aside>
    </section>

    <section class="rk-wood-section" id="rk-wood-resistance">
      <span class="rk-wood-eyebrow">Droga przepływu ciepła</span>
      <h2 class="rk-wood-section-title">Opór cieplny drewnianej podłogi: liczy się suma warstw</h2>
      <p class="rk-wood-lead">Dla jednorodnej warstwy przybliżenie ma postać R = d/λ, gdzie d to grubość w metrach, a λ — przewodność cieplna w W/(m·K). W gotowej desce warstwowej najlepszą daną jest R zadeklarowane dla całego produktu.</p>
      <div class="rk-wood-grid-3">
        <article class="rk-wood-card"><h3>Produkt drewniany</h3><p>Uwzględnij wszystkie warstwy, powłoki i geometrię wyrobu. Szacunek z gatunku jest tylko zastępstwem, gdy brakuje deklaracji.</p></article>
        <article class="rk-wood-card"><h3>Klej lub podkład</h3><p>Montaż pływający dodaje opór podkładu. W systemie klejonym trzeba stosować kompatybilny zestaw i przestrzegać grubości warstwy kleju.</p></article>
        <article class="rk-wood-card"><h3>Cały emiter</h3><p>Jastrych, rozstaw rur, temperatura wody i warunki brzegowe tworzą dalszą część modelu. Zasada działania została opisana w poradniku <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/">jak działa ogrzewanie podłogowe</a>.</p></article>
      </div>
      <div class="rk-wood-callout"><strong>Wartość 0,15 m²K/W nie jest uniwersalną gwarancją ani samodzielnym zakazem.</strong> Większy R zwykle wymaga większej różnicy temperatur, aby przekazać tę samą moc, lecz ostateczny wynik zależy od całego układu i obciążenia pomieszczenia. Zasady projektowania systemów płaszczyznowych porządkuje <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">omówienie PN-EN 1264</a>.</div>
    </section>

    <section class="rk-wood-section rk-wood-section-soft" id="rk-wood-installation">
      <span class="rk-wood-eyebrow">Warstwa montażowa ma znaczenie</span>
      <h2 class="rk-wood-section-title">Podłoga klejona czy pływająca?</h2>
      <div class="rk-wood-grid-2">
        <article class="rk-wood-card">
          <h3>Klejenie do przygotowanego podłoża</h3>
          <ul class="rk-wood-list">
            <li>zwykle eliminuje osobny podkład o istotnym oporze cieplnym;</li>
            <li>wymaga zgodności deski, kleju, gruntu i jastrychu;</li>
            <li>stawia wysokie wymagania równości, wytrzymałości i wilgotności podłoża;</li>
            <li>musi respektować dylatacje konstrukcyjne oraz instrukcję systemu.</li>
          </ul>
        </article>
        <article class="rk-wood-card">
          <h3>Montaż pływający</h3>
          <ul class="rk-wood-list">
            <li>dodaje do bilansu opór cieplny podkładu;</li>
            <li>wymaga dopuszczenia zamków i całego produktu do podłogówki;</li>
            <li>musi uwzględniać pola dylatacyjne i geometrię pomieszczeń;</li>
            <li>nie każdy „podkład do podłogówki” ma ten sam R.</li>
          </ul>
        </article>
      </div>
      <p>Nie wybieraj metody wyłącznie na podstawie hasła „lepiej przewodzi”. Porównaj kompletną instrukcję, możliwość przygotowania podłoża, akustykę, naprawialność i łączny opór warstw.</p>
    </section>

    <section class="rk-wood-section" id="rk-wood-climate">
      <span class="rk-wood-eyebrow">Warunki eksploatacji</span>
      <h2 class="rk-wood-section-title">Temperatura powierzchni i wilgotność powietrza przy drewnie</h2>
      <p class="rk-wood-lead">Drewno jest materiałem higroskopijnym: oddaje lub pobiera wilgoć, gdy zmieniają się warunki otoczenia. Ogrzewanie może przyspieszać odpowiedź materiału, ale źródłem zmian jest bilans wilgoci i temperatury, nie samo istnienie rur w posadzce.</p>
      <div class="rk-wood-grid-2">
        <article class="rk-wood-card"><h3>Limit z dokumentacji produktu</h3><p>Często spotykane 27°C należy traktować jako wartość wymagającą potwierdzenia dla konkretnej deski, a nie uniwersalny limit wynikający automatycznie z jednej normy. Czujnik podłogowy może wspierać ochronę powierzchni; zobacz, <a href="https://projekt-ogrzewania.pl/czujnik-podlogowy/">jak działa czujnik podłogowy</a>.</p></article>
        <article class="rk-wood-card"><h3>Zakres RH i spokojne zmiany</h3><p>Przestrzegaj zakresu wilgotności podanego przez producenta przez cały rok. Sama instalacja nie kontroluje RH. Pomocne są pomiar, wentylacja i świadome reagowanie na warunki sezonowe.</p></article>
      </div>
      <p>Temperatura powierzchni nie jest tym samym co <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalna temperatura zasilania podłogówki</a>. W praktyce dąży się do możliwie niskiej, ale wystarczającej temperatury wody; więcej w analizie <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/">optymalnej temperatury ogrzewania podłogowego</a>. Stabilniejszą pracę może wspierać <a href="https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/">sterowanie pogodowe</a>, jeśli jest prawidłowo ustawione.</p>
      <div class="rk-wood-note">Przeczytaj także, <a href="https://projekt-ogrzewania.pl/jak-ogrzewanie-podlogowe-wplywa-na-wilgotnosc-powietrza-w-domu/">jak ogrzewanie podłogowe wiąże się z wilgotnością w domu</a> oraz <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/">czy podłogówka „wysusza” powietrze</a>. To dwa różne pytania: pierwsze dotyczy fizyki wilgoci, drugie — odczuć i eksploatacji budynku.</div>
    </section>


    <section class="rk-wood-section rk-wood-section-dark" id="rk-wood-design">
      <span class="rk-wood-eyebrow">Od deski do parametrów instalacji</span>
      <h2 class="rk-wood-section-title">Jak drewniana podłoga wpływa na moc i hydraulikę podłogówki?</h2>
      <p class="rk-wood-lead">Drewno nie zwiększa strat ciepła budynku. Zwiększony opór wykończenia może natomiast ograniczyć moc oddawaną do pomieszczenia przy tych samych temperaturach wody i tej samej geometrii instalacji. To różnica między zapotrzebowaniem budynku a zdolnością emitera.</p>
      <div class="rk-wood-grid-3">
        <article class="rk-wood-card">
          <h3>1. Policz obciążenie</h3>
          <p>Podstawą jest <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne OZC</a> i podział wyniku na pomieszczenia. Zobacz również, <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">jak oblicza się straty ciepła</a>.</p>
        </article>
        <article class="rk-wood-card">
          <h3>2. Sprawdź powierzchnię czynną</h3>
          <p>Moc na metr kwadratowy trzeba odnieść do rzeczywiście ogrzewanej powierzchni. Dopiero wtedy dobiera się geometrię, w tym <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstaw rur 10 czy 15 cm</a>.</p>
        </article>
        <article class="rk-wood-card">
          <h3>3. Domknij hydraulikę</h3>
          <p>Przepływ wynika z mocy i przyjętej różnicy temperatur. Gatunek drewna nie narzuca „przyspieszenia wody”. Kontroluje się <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">długości pętli</a>, opory i nastawy <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrów na rozdzielaczu</a>.</p>
        </article>
      </div>
      <p>Nie ma jednej poprawnej długości pętli ani jednego rozstawu dla każdego domu. Układ wynika z powierzchni, średnicy rur, wymaganej mocy, oporów i dopuszczalnych temperatur. Punkt wyjścia pokazuje poradnik o tym, <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">jak zaplanować rozmieszczenie pętli grzewczych</a>.</p>
    </section>

    <section class="rk-wood-section" id="rk-wood-heat-pump">
      <span class="rk-wood-eyebrow">Sytuacje wymagające dokładniejszej kontroli</span>
      <h2 class="rk-wood-section-title">Drewno, pompa ciepła i duże przeszklenia</h2>
      <p class="rk-wood-lead">Przy pompie ciepła korzystna jest niska temperatura wody, a drewniana okładzina dodaje opór po stronie odbiornika. To nie jest sprzeczność, lecz warunek do wspólnego przeliczenia. Im większe obciążenie na metr aktywnej podłogi, tym mniej miejsca pozostaje na decyzje o wysokim R.</p>
      <div class="rk-wood-grid-2">
        <article class="rk-wood-card">
          <h3>Współpraca z pompą ciepła</h3>
          <p>Projekt powinien potwierdzić, czy podłoga pokryje obciążenie przy parametrach korzystnych dla źródła. Osobny poradnik omawia <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projekt podłogówki z pompą ciepła</a>.</p>
        </article>
        <article class="rk-wood-card">
          <h3>Strefy przy dużych oknach</h3>
          <p>Nie stosuj stałego narzutu mocy ani obowiązkowej szerokości pasa bez obliczeń. Wymaganie zależy od strat, geometrii i powierzchni czynnej; zobacz analizę <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/">podłogówki przy dużych przeszkleniach</a>.</p>
        </article>
      </div>
      <div class="rk-wood-callout"><strong>Sygnał do ponownego przeliczenia:</strong> wysokie obciążenie pomieszczenia, mała powierzchnia aktywna, gruba podłoga warstwowa, podkład o istotnym R albo niski limit temperatury produktu. Każdy z tych warunków zmniejsza margines, ale nie powinien być oceniany w oderwaniu od pozostałych.</div>
    </section>

    <section class="rk-wood-section rk-wood-section-soft" id="rk-wood-substrate">
      <span class="rk-wood-eyebrow">Przed ułożeniem pierwszej deski</span>
      <h2 class="rk-wood-section-title">Jastrych, protokół wygrzewania i przygotowanie montażu</h2>
      <p class="rk-wood-lead">Nawet dobrze dobrana podłoga może zostać uszkodzona przez wilgotne lub słabe podłoże, brak procedury uruchomienia albo montaż niezgodny z instrukcjami. Wartości graniczne i czas czynności trzeba brać z dokumentacji jastrychu, systemu grzewczego, kleju i podłogi.</p>
      <div class="rk-wood-steps">
        <article class="rk-wood-step"><h3>Zweryfikuj konstrukcję</h3><p>Ustal rodzaj podkładu i wymagania wykonawcze. Pomaga w tym <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">przewodnik po wylewkach na podłogówkę</a>.</p></article>
        <article class="rk-wood-step"><h3>Sprawdź grubość i pola</h3><p>Grubość nie jest jedną liczbą dla wszystkich mieszanek. Zobacz zasady doboru <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/">grubości wylewki betonowej</a>.</p></article>
        <article class="rk-wood-step"><h3>Rozplanuj dylatacje</h3><p>Przeniesienie i wykończenie szczelin musi być skoordynowane z okładziną; przeczytaj o <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacji brzegowej i dylatacjach</a>.</p></article>
        <article class="rk-wood-step"><h3>Wykonaj próbę i rozruch</h3><p>Przed zakryciem instalacji potrzebne są odbiory przewidziane dla systemu, a później kontrolowany protokół uruchomienia jastrychu.</p></article>
        <article class="rk-wood-step"><h3>Zmierz podłoże</h3><p>Metoda pomiaru i dopuszczalny wynik muszą odpowiadać rodzajowi jastrychu, kleju i podłogi. Sam termin „suche” jest niewystarczający.</p></article>
        <article class="rk-wood-step"><h3>Połącz instrukcje</h3><p>Inaczej przygotowuje się niektóre układy mokre i suche. Porównaj <a href="https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/">system mokry i suchy</a>, a następnie stosuj dokumentację konkretnego rozwiązania.</p></article>
      </div>
    </section>

    <section class="rk-wood-section" id="rk-wood-mistakes">
      <span class="rk-wood-eyebrow">Co najczęściej psuje dobrą decyzję</span>
      <h2 class="rk-wood-section-title">Najczęstsze błędy przy wyborze drewna na podłogówkę</h2>
      <div class="rk-wood-mistakes">
        <article class="rk-wood-mistake"><span class="rk-wood-mistake-icon">!</span><div><strong>Zakup po nazwie gatunku</strong><p>„Dąb” nie mówi jeszcze, czy deska jest lita czy warstwowa, ile ma milimetrów, jaki ma R i czy producent dopuszcza ją do ogrzewania.</p></div></article>
        <article class="rk-wood-mistake"><span class="rk-wood-mistake-icon">!</span><div><strong>Traktowanie 0,15 m²K/W jak certyfikatu</strong><p>Jedna wartość nie uwzględnia obciążenia pomieszczenia, powierzchni czynnej ani parametrów wody.</p></div></article>
        <article class="rk-wood-mistake"><span class="rk-wood-mistake-icon">!</span><div><strong>Pomijanie R podkładu</strong><p>W montażu pływającym warstwa pod deską może stanowić zauważalną część oporu wykończenia.</p></div></article>
        <article class="rk-wood-mistake"><span class="rk-wood-mistake-icon">!</span><div><strong>Uniwersalne 27°C bez karty produktu</strong><p>Limit powierzchni trzeba odczytać dla wybranego wyrobu i zestawić z wymaganiami cieplnymi pomieszczenia.</p></div></article>
        <article class="rk-wood-mistake"><span class="rk-wood-mistake-icon">!</span><div><strong>Brak planu kontroli wilgotności</strong><p>Drewno będzie reagowało na sezonowy mikroklimat również wtedy, gdy instalacja została wykonana poprawnie.</p></div></article>
        <article class="rk-wood-mistake"><span class="rk-wood-mistake-icon">!</span><div><strong>Sztywny rozstaw dla całego domu</strong><p>Różne pomieszczenia mają inne straty, powierzchnie czynne i ograniczenia temperatury.</p></div></article>
        <article class="rk-wood-mistake"><span class="rk-wood-mistake-icon">!</span><div><strong>Brak koordynacji wykonawców</strong><p>Projektant, wykonawca ogrzewania, posadzkarz i parkieciarz muszą pracować na zgodnych danych o warstwach.</p></div></article>
        <article class="rk-wood-mistake"><span class="rk-wood-mistake-icon">!</span><div><strong>Uruchamianie „na wyczucie”</strong><p>Procedury wygrzewania, montażu i pierwszego rozruchu należy wykonać zgodnie z dokumentacją zastosowanych materiałów.</p></div></article>
      </div>
    </section>

    <section class="rk-wood-section rk-wood-section-soft" id="rk-wood-checklist">
      <span class="rk-wood-eyebrow">Lista do sklepu i dla projektanta</span>
      <h2 class="rk-wood-section-title">Co sprawdzić przed zakupem drewnianej podłogi?</h2>
      <p class="rk-wood-lead">Poproś o dokumenty przed złożeniem zamówienia. Jeśli odpowiedź istnieje tylko w rozmowie handlowej, poproś o wskazanie jej w karcie technicznej, instrukcji montażu lub warunkach gwarancji.</p>
      <div class="rk-wood-checklist">
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Dopuszczenie produktu</strong><br>Czy dokładny symbol deski jest przeznaczony do wodnego ogrzewania podłogowego?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Deklarowany opór R</strong><br>Czy wartość dotyczy całego produktu o wybranej grubości?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Konstrukcja i wymiary</strong><br>Czy dokument obejmuje wybraną liczbę warstw, szerokość i format?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Metoda montażu</strong><br>Czy dopuszczono klejenie, montaż pływający albo oba warianty?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Podkład lub klej</strong><br>Czy znasz R podkładu i kompatybilny system klejowy?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Temperatura powierzchni</strong><br>Jaki dokładnie limit podaje producent podłogi?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Zakres wilgotności RH</strong><br>Jakie warunki trzeba utrzymywać w sezonie grzewczym i poza nim?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Wymagania dla jastrychu</strong><br>Jaką metodą mierzy się wilgotność i jaki wynik jest wymagany?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Protokół rozruchu</strong><br>Czy wymagane są dokumenty z wygrzewania oraz pomiarów podłoża?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Powłoka i konserwacja</strong><br>Czy olej, lakier i środki pielęgnacyjne mają osobne ograniczenia?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Obciążenie pomieszczenia</strong><br>Czy projektant zna stratę ciepła i rzeczywistą powierzchnię aktywną?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Warunki gwarancji</strong><br>Czy zapisano obowiązki dotyczące temperatury, RH, dylatacji i montażu?</div></div>
      </div>
    </section>

    <section class="rk-wood-section" id="rk-wood-conclusions">
      <span class="rk-wood-eyebrow">Decyzja bez fałszywej pewności</span>
      <h2 class="rk-wood-section-title">Wnioski projektanta: jaka podłoga drewniana będzie rozsądnym wyborem?</h2>
      <p class="rk-wood-lead">Najbardziej przewidywalny wariant to nie „magiczny” gatunek, lecz produkt, którego parametry można połączyć z obliczeniami i warunkami użytkowania.</p>
      <div class="rk-wood-grid-3">
        <article class="rk-wood-card"><h3>Dobry punkt wyjścia</h3><p>Jednoznaczne dopuszczenie do podłogówki, deklarowany R, znany limit temperatury, opisany zakres RH i metoda montażu.</p></article>
        <article class="rk-wood-card"><h3>Wybór warunkowy</h3><p>Brak jednej danej, szeroki format, deska lita lub większy R nie muszą przekreślać produktu, ale wymagają uzupełnienia dokumentacji albo przeliczenia.</p></article>
        <article class="rk-wood-card"><h3>Podwyższone ryzyko</h3><p>Brak dopuszczenia, sprzeczne instrukcje, nieznane warstwy, oczekiwanie wysokiej mocy z małej powierzchni lub brak kontroli mikroklimatu.</p></article>
      </div>
      <div class="rk-wood-answer">
        <span class="rk-wood-answer-label">Reguła końcowa</span>
        <p><strong>Najpierw wybierz konkretny produkt i zbierz jego dane. Następnie sprawdź łączny R i warunki montażu. Na końcu potwierdź w projekcie, że przy dopuszczalnej temperaturze powierzchni podłoga pokryje obciążenie każdego pomieszczenia.</strong></p>
      </div>

      <div class="rk-wood-cta">
        <div class="rk-wood-cta-title">Zaprojektuj podłogówkę pod wybraną podłogę drewnianą</div>
        <p>Projekt łączy obciążenia pomieszczeń, warstwy podłogi, powierzchnie czynne, rozstaw rur, temperaturę wody, długości pętli, przepływy i nastawy. Dzięki temu decyzja o drewnie staje się częścią policzonego systemu, a nie osobnym założeniem.</p>
        <a class="rk-wood-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego pod drewno</a>
        <small class="rk-wood-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </div>
    </section>

    <section class="rk-wood-section rk-wood-section-soft" id="rk-wood-sources">
      <span class="rk-wood-eyebrow">Podstawa danych i granice narzędzi</span>
      <h2 class="rk-wood-section-title">Źródła oficjalne i zakres odpowiedzialności</h2>
      <p class="rk-wood-lead">Parametry gatunków są wartościami reprezentatywnymi z instytucjonalnych opracowań technicznych. Nie zastępują deklaracji konkretnej deski. Źródła projektowe opisują metodę obliczeń ogrzewania płaszczyznowego, a nie zgodę na zastosowanie dowolnego produktu.</p>
      <div class="rk-wood-source-grid">
        <article class="rk-wood-source-card"><a href="https://www.fpl.fs.usda.gov/documnts/fplgtr/fplgtr190/chapter_04.pdf" target="_blank" rel="nofollow noopener noreferrer">USDA Forest Products Laboratory — Moisture Relations and Physical Properties of Wood</a><p>Oficjalny rozdział Wood Handbook opisujący higroskopijność, kierunkową zmianę wymiarów, zmienność danych, gęstość i właściwości cieplne drewna.</p></article>
        <article class="rk-wood-source-card"><a href="https://tropix.cirad.fr/en/technical-sheets-available" target="_blank" rel="nofollow noopener noreferrer">CIRAD Tropix — oficjalne karty techniczne gatunków</a><p>Katalog instytutu badawczego zawierający m.in. gęstość, skurcz promieniowy i styczny, twardość oraz przewodność cieplną wielu gatunków.</p></article>
        <article class="rk-wood-source-card"><a href="https://www.iso.org/standard/74683.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-2:2021 — określanie mocy systemów płaszczyznowych</a><p>Oficjalna karta normy dotyczącej wyznaczania projektowej mocy ogrzewania i chłodzenia płaszczyznowego.</p></article>
        <article class="rk-wood-source-card"><a href="https://www.iso.org/standard/74684.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-3:2021 — projektowanie i wymiarowanie</a><p>Oficjalna karta normy dotyczącej projektowania i wymiarowania wbudowanych wodnych systemów ogrzewania oraz chłodzenia płaszczyznowego.</p></article>
      </div>
      <div class="rk-wood-responsibility"><p><strong>Zakres odpowiedzialności:</strong> artykuł, porównywarka i analizator mają charakter edukacyjny. Nie są aprobatą konkretnego produktu, projektem ogrzewania, instrukcją montażu, ekspertyzą parkieciarską ani podstawą roszczeń gwarancyjnych. Przed zakupem i montażem obowiązują aktualne dokumenty producenta podłogi, kleju lub podkładu, wymagania systemu jastrychowego, projekt instalacji oraz pomiary na budowie. Dane drewna wykazują naturalną zmienność; wartości w narzędziu zostały zaokrąglone, aby nie tworzyć pozornej dokładności.</p></div>
    </section>

    <section class="rk-wood-section" id="rk-wood-faq">
      <span class="rk-wood-eyebrow">Pytania przed zakupem i montażem</span>
      <h2 class="rk-wood-section-title">FAQ — drewno na ogrzewanie podłogowe</h2>
      <div class="rk-wood-faq">
        <details><summary>Jakie drewno jest najlepsze na ogrzewanie podłogowe?</summary><div class="rk-wood-faq-answer"><p>Nie ma jednego najlepszego gatunku dla każdego produktu i budynku. Szukaj konkretnej deski dopuszczonej do podłogówki, z deklarowanym oporem cieplnym, instrukcją montażu, limitem temperatury i zakresem wilgotności. Gatunek pomaga ocenić tendencję materiału, ale nie zastępuje tych danych.</p></div></details>
        <details><summary>Czy dąb nadaje się na ogrzewanie podłogowe?</summary><div class="rk-wood-faq-answer"><p>Na rynku występują dębowe produkty przeznaczone do podłogówki, ale sama nazwa „dąb” nie potwierdza przydatności. Trzeba sprawdzić konstrukcję, grubość, szerokość, R, montaż i dokumentację dokładnego modelu.</p></div></details>
        <details><summary>Czy merbau, iroko i teak są stabilniejsze od buku?</summary><div class="rk-wood-faq-answer"><p>Reprezentatywne dane materiałowe wskazują zwykle mniejszy skurcz dla merbau, iroko i teaku niż dla buku. Nie jest to jednak ranking gotowych podłóg. Budowa deski, suszenie, format, klejenie, wilgotność oraz instrukcja produktu mogą zmienić praktyczną ocenę.</p></div></details>
        <details><summary>Czy deska warstwowa jest zawsze lepsza od litej?</summary><div class="rk-wood-faq-answer"><p>Nie zawsze, choć prawidłowo zaprojektowana konstrukcja warstwowa może ograniczać zmiany geometryczne. Nie istnieje stała procentowa przewaga wspólna dla wszystkich produktów. Oba warianty wymagają potwierdzenia zastosowania, właściwego montażu i kontroli mikroklimatu.</p></div></details>
        <details><summary>Jaki opór cieplny drewna jest dopuszczalny?</summary><div class="rk-wood-faq-answer"><p>Nie należy traktować pojedynczej wartości jako uniwersalnej zgody lub zakazu. Suma oporu deski i warstwy montażowej wpływa na wymaganą różnicę temperatur, dlatego trzeba ją zestawić z obciążeniem pomieszczenia, powierzchnią czynną oraz projektem systemu.</p></div></details>
        <details><summary>Czy 27°C to zawsze maksymalna temperatura drewnianej podłogi?</summary><div class="rk-wood-faq-answer"><p>Nie należy przyjmować 27°C automatycznie dla każdego produktu. Trzeba stosować limit podany przez producenta konkretnej deski oraz uwzględnić wymagania komfortu, projektu ogrzewania, kleju i pozostałych warstw.</p></div></details>
        <details><summary>Czy pod drewnem lepiej kleić, czy układać podłogę pływającą?</summary><div class="rk-wood-faq-answer"><p>Klejenie zwykle eliminuje osobny podkład, ale wymaga kompatybilnego systemu i bardzo dobrze przygotowanego jastrychu. Montaż pływający dodaje R podkładu i wymaga dopuszczenia zamków. Wybór wynika z dokumentacji całego zestawu, nie z jednej ogólnej reguły.</p></div></details>
        <details><summary>Czy ogrzewanie podłogowe rozsycha drewno?</summary><div class="rk-wood-faq-answer"><p>Drewno reaguje na zmiany wilgotności równowagowej i temperatury. Ryzyko szczelin lub odkształceń rośnie przy warunkach poza zakresem produktu, gwałtownym rozruchu albo błędnym montażu. Poprawny projekt i stała kontrola mikroklimatu ograniczają ryzyko, lecz go nie zerują.</p></div></details>
        <details><summary>Czy grubsza deska oznacza gorszą podłogówkę?</summary><div class="rk-wood-faq-answer"><p>Większa grubość tego samego materiału zwiększa opór cieplny, ale o wyniku decyduje cały produkt i pomieszczenie. Grubsza deska nie jest automatycznie zakazana; może natomiast wymagać ponownego przeliczenia mocy i temperatur.</p></div></details>
        <details><summary>Jakie dokumenty powinien przekazać sprzedawca podłogi?</summary><div class="rk-wood-faq-answer"><p>Najważniejsze są karta techniczna dokładnego produktu, instrukcja montażu i użytkowania, warunki gwarancji, deklarowany R, dopuszczone metody układania, limit temperatury powierzchni oraz wymagany zakres wilgotności. Dla systemu montażowego potrzebne są również dokumenty kleju lub podkładu.</p></div></details>
      </div>
    </section>

    <section class="rk-wood-author" id="rk-wood-author">
      <span class="rk-wood-eyebrow">Opracowanie eksperckie</span>
      <h2 class="rk-wood-author-title">Autor i weryfikacja merytoryczna</h2>
      <div class="rk-wood-author-layout">
        <aside class="rk-wood-author-side">
          <div class="rk-wood-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji sanitarnych" width="400" height="400" loading="lazy" decoding="async"></div>
          <div class="rk-wood-author-name"><a href="https://projekt-ogrzewania.pl/author/admin3399/">Robert Kucharski</a></div>
          <p class="rk-wood-author-role">Projektant instalacji sanitarnych<br>specjalista HVAC i ogrzewania podłogowego</p>
          <div class="rk-wood-author-social" aria-label="Profile autora">
            <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="nofollow noopener noreferrer me" aria-label="LinkedIn Roberta Kucharskiego">in</a>
            <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Facebook Projekt Ogrzewania">f</a>
            <a href="https://x.com/Projekt_HVAC" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Profil Projekt HVAC w serwisie X">X</a>
          </div>
        </aside>
        <div class="rk-wood-author-main">
          <div class="rk-wood-author-quote">„Przy podłodze drewnianej nie projektujemy osobno deski i osobno rur. Opór wykończenia, dopuszczalna temperatura, moc pomieszczenia i hydraulika muszą spotkać się w jednym obliczeniu.”</div>
          <p>Robert Kucharski opracowuje projekty ogrzewania podłogowego, obliczenia cieplne i hydrauliczne oraz materiały edukacyjne dla inwestorów i wykonawców. W pracy projektowej łączy straty ciepła pomieszczeń, rzeczywiste powierzchnie grzewcze, konstrukcję podłogi, parametry wody, rozstaw rur, długości pętli, przepływy i nastawy.</p>
          <p>Ten poradnik został zweryfikowany pod kątem rozdzielenia właściwości gatunku od parametrów gotowego produktu, poprawnego znaczenia R i λ, wpływu warstw na moc emitera oraz ograniczeń uproszczonej analizy. Narzędzia celowo nie wydają kategorycznego werdyktu zakupowego.</p>
          <p>Treść nie promuje producenta ani konkretnej marki podłogi. Jej celem jest pokazanie, jakie dane inwestor powinien uzyskać przed zakupem i które z nich muszą wrócić do projektanta, parkieciarza oraz wykonawcy ogrzewania.</p>
          <p>Autor publikuje również w portalach <a href="https://remont.biz.pl/" target="_blank" rel="nofollow noopener noreferrer">Remont.biz.pl</a> i <a href="https://sobir.pl/" target="_blank" rel="nofollow noopener noreferrer">Sobir.pl</a>. <a href="https://projekt-ogrzewania.pl/author/admin3399/">Zobacz pozostałe artykuły Roberta Kucharskiego w serwisie Projekt-Ogrzewania.pl</a>.</p>
          <div class="rk-wood-author-facts">
            <div class="rk-wood-author-fact"><strong>Zakres</strong>ogrzewanie podłogowe, bilanse cieplne i hydraulika instalacji</div>
            <div class="rk-wood-author-fact"><strong>Metoda pracy</strong>obliczenia, dokumentacja materiałów i weryfikacja warunków rzeczywistych</div>
            <div class="rk-wood-author-fact"><strong>Aktualizacja</strong>stan techniczny materiału sprawdzony 10 września 2026 r.</div>
          </div>
        </div>
      </div>
    </section>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "inLanguage": "pl-PL",
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt Ogrzewania",
      "url": "https://projekt-ogrzewania.pl/",
      "logo": {
        "@type": "ImageObject",
        "@id": "https://projekt-ogrzewania.pl/#logo",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-ogrzewania-logo-1.jpg",
        "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-ogrzewania-logo-1.jpg"
      },
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/"
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/"
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp"
      },
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "worksFor": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "affiliation": [
        {
          "@id": "https://remont.biz.pl/#organization"
        },
        {
          "@id": "https://sobir.pl/#organization"
        }
      ],
      "knowsAbout": [
        "ogrzewanie podłogowe",
        "obliczenia obciążenia cieplnego",
        "hydraulika instalacji grzewczych",
        "projektowanie pętli grzewczych",
        "opór cieplny okładzin",
        "współpraca ogrzewania podłogowego z pompą ciepła",
        "temperatura powierzchni podłogi",
        "dobór przepływów i nastaw rozdzielacza"
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#primaryimage",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/10/Wybor-idealnego-drewna-do-ogrzewania-podlogowego-%E2%80%93-kompletna-tabela-i-poradnik.webp",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/10/Wybor-idealnego-drewna-do-ogrzewania-podlogowego-%E2%80%93-kompletna-tabela-i-poradnik.webp",
      "width": 945,
      "height": 945,
      "caption": "Drewno na ogrzewanie podłogowe — porównanie gatunków i dobór deski",
      "creditText": "Robert Kucharski"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Projekt Ogrzewania",
          "item": "https://projekt-ogrzewania.pl/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Drewno na ogrzewanie podłogowe",
          "item": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#webpage",
      "url": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/",
      "name": "Drewno na ogrzewanie podłogowe – tabela gatunków i analizator deski",
      "description": "Drewno na ogrzewanie podłogowe: porównaj 15 gatunków, sprawdź opór cieplny i przeanalizuj konkretną deskę przed zakupem oraz zaprojektowaniem podłogówki.",
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/#website"
      },
      "primaryImageOfPage": {
        "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#primaryimage"
      },
      "breadcrumb": {
        "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#breadcrumb"
      },
      "mainEntity": {
        "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#article"
      },
      "inLanguage": "pl-PL",
      "datePublished": "2025-10-14",
      "dateModified": "2026-09-10"
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#article",
      "url": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/",
      "headline": "Drewno na ogrzewanie podłogowe – tabela gatunków i analizator deski",
      "alternativeHeadline": "Jak wybrać gatunek, konstrukcję i opór cieplny drewnianej podłogi",
      "description": "Techniczny poradnik z porównaniem 15 gatunków drewna i analizatorem konkretnej deski na wodne ogrzewanie podłogowe.",
      "datePublished": "2025-10-14",
      "dateModified": "2026-09-10",
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "mainEntityOfPage": {
        "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#webpage"
      },
      "image": {
        "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#primaryimage"
      },
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "articleSection": [
        "Czy drewno nadaje się na ogrzewanie podłogowe",
        "Porównanie gatunków drewna",
        "Kurczliwość i stabilność wymiarowa",
        "Deska lita a warstwowa",
        "Analizator konkretnej deski",
        "Opór cieplny drewnianej podłogi",
        "Montaż klejony i pływający",
        "Temperatura powierzchni i wilgotność",
        "Moc oraz hydraulika podłogówki",
        "Jastrych i przygotowanie montażu"
      ],
      "keywords": [
        "drewno na ogrzewanie podłogowe",
        "deska na ogrzewanie podłogowe",
        "dąb na podłogówkę",
        "merbau na ogrzewanie podłogowe",
        "buk na ogrzewanie podłogowe",
        "deska lita czy warstwowa",
        "opór cieplny drewnianej podłogi",
        "podłoga klejona czy pływająca",
        "temperatura drewnianej podłogi",
        "gatunki drewna na podłogówkę"
      ],
      "about": [
        {
          "@type": "Thing",
          "name": "Drewniane okładziny podłogowe"
        },
        {
          "@type": "Thing",
          "name": "Wodne ogrzewanie podłogowe"
        },
        {
          "@type": "Thing",
          "name": "Opór cieplny warstw podłogi"
        }
      ],
      "citation": [
        "https://www.fpl.fs.usda.gov/documnts/fplgtr/fplgtr190/chapter_04.pdf",
        "https://tropix.cirad.fr/en/technical-sheets-available",
        "https://www.iso.org/standard/74683.html",
        "https://www.iso.org/standard/74684.html"
      ],
      "hasPart": [
        {
          "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#species-dataset"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#species-comparator"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#board-analyzer"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#selection-howto"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#faq-schema"
        }
      ]
    },
    {
      "@type": "Dataset",
      "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#species-dataset",
      "name": "Porównanie właściwości 15 gatunków drewna stosowanych na podłogi",
      "description": "Zestaw reprezentatywnych wartości gęstości, całkowitego skurczu promieniowego i stycznego, stosunku T/R, przewodności cieplnej oraz opisowej odporności na wgniecenia.",
      "url": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#rk-wood-comparator",
      "inLanguage": "pl-PL",
      "license": "https://creativecommons.org/licenses/by/4.0/",
      "creator": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "dateModified": "2026-09-10",
      "keywords": [
        "gęstość drewna",
        "skurcz promieniowy drewna",
        "skurcz styczny drewna",
        "anizotropia T/R",
        "przewodność cieplna drewna",
        "twardość drewna",
        "drewno podłogowe"
      ],
      "measurementTechnique": "Zestawienie wartości reprezentatywnych z kart CIRAD Tropix oraz USDA Forest Products Laboratory; wartości zaokrąglone, odnoszone do kierunku anatomicznego i warunków opisanych przez źródło.",
      "variableMeasured": [
        {
          "@type": "PropertyValue",
          "name": "Gęstość reprezentatywna",
          "unitText": "kg/m³"
        },
        {
          "@type": "PropertyValue",
          "name": "Całkowity skurcz promieniowy",
          "unitText": "%"
        },
        {
          "@type": "PropertyValue",
          "name": "Całkowity skurcz styczny",
          "unitText": "%"
        },
        {
          "@type": "PropertyValue",
          "name": "Stosunek skurczu stycznego do promieniowego",
          "unitText": "T/R"
        },
        {
          "@type": "PropertyValue",
          "name": "Przewodność cieplna reprezentatywna",
          "unitText": "W/(m·K)"
        },
        {
          "@type": "PropertyValue",
          "name": "Odporność na wgniecenia",
          "unitText": "ocena opisowa"
        }
      ],
      "mainEntity": {
        "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#species-list"
      },
      "isBasedOn": [
        "https://www.fpl.fs.usda.gov/documnts/fplgtr/fplgtr190/chapter_04.pdf",
        "https://tropix.cirad.fr/en/technical-sheets-available"
      ]
    },
    {
      "@type": "ItemList",
      "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#species-list",
      "name": "Gatunki drewna uwzględnione w porównaniu",
      "numberOfItems": 15,
      "itemListOrder": "https://schema.org/ItemListUnordered",
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Dąb europejski" },
        { "@type": "ListItem", "position": 2, "name": "Merbau" },
        { "@type": "ListItem", "position": 3, "name": "Iroko" },
        { "@type": "ListItem", "position": 4, "name": "Jesion europejski" },
        { "@type": "ListItem", "position": 5, "name": "Klon jawor" },
        { "@type": "ListItem", "position": 6, "name": "Robinia akacjowa" },
        { "@type": "ListItem", "position": 7, "name": "Orzech europejski" },
        { "@type": "ListItem", "position": 8, "name": "Orzech amerykański" },
        { "@type": "ListItem", "position": 9, "name": "Sosna zwyczajna" },
        { "@type": "ListItem", "position": 10, "name": "Modrzew europejski" },
        { "@type": "ListItem", "position": 11, "name": "Teak" },
        { "@type": "ListItem", "position": 12, "name": "Buk europejski" },
        { "@type": "ListItem", "position": 13, "name": "Doussie / afzelia" },
        { "@type": "ListItem", "position": 14, "name": "Jatoba" },
        { "@type": "ListItem", "position": 15, "name": "Wenge" }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#species-comparator",
      "name": "Porównywarka gatunków drewna na ogrzewanie podłogowe",
      "url": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#rk-wood-comparator",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Any",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "creator": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "description": "Interaktywne porównanie reprezentatywnej gęstości, skurczu, anizotropii, przewodności, odporności na wgniecenia i ryzyk dla 15 gatunków drewna."
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#board-analyzer",
      "name": "Analizator konkretnej deski na ogrzewanie podłogowe",
      "url": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#rk-wood-analyzer",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Any",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "creator": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "description": "Narzędzie rozdzielające analizę oporu cieplnego, stabilności eksploatacyjnej i kompletności dokumentacji konkretnego produktu drewnianego."
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#selection-howto",
      "name": "Jak wybrać drewnianą podłogę na ogrzewanie podłogowe",
      "description": "Sześć etapów od dokumentacji produktu do potwierdzenia parametrów ogrzewania.",
      "inLanguage": "pl-PL",
      "totalTime": "PT45M",
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Potwierdź zastosowanie",
          "text": "Sprawdź, czy producent dopuszcza dokładny produkt do wodnego ogrzewania podłogowego i wybranej metody montażu."
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Zbierz parametry produktu",
          "text": "Zapisz konstrukcję, grubość, szerokość, deklarowany opór cieplny, limit temperatury oraz zakres wilgotności względnej."
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Dodaj warstwę montażową",
          "text": "Dla montażu pływającego dodaj opór podkładu, a dla klejenia zweryfikuj zgodność kompletnego systemu klejowego."
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Sprawdź warunki podłoża",
          "text": "Połącz wymagania jastrychu, procedury rozruchu, pomiaru wilgotności, równości i dylatacji."
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Porównaj z obciążeniem pomieszczenia",
          "text": "Zestaw opór wykończenia i dopuszczalną temperaturę z obciążeniem cieplnym oraz aktywną powierzchnią podłogi."
        },
        {
          "@type": "HowToStep",
          "position": 6,
          "name": "Przelicz instalację",
          "text": "Dobierz rozstaw rur, temperaturę wody, podział pętli, przepływy i nastawy bez stosowania jednej reguły dla całego domu."
        }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#faq-schema",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Jakie drewno jest najlepsze na ogrzewanie podłogowe?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie ma jednego najlepszego gatunku dla każdego produktu i budynku. Należy wybrać konkretną deskę dopuszczoną do podłogówki, z deklarowanym oporem cieplnym, instrukcją montażu, limitem temperatury i zakresem wilgotności. Gatunek pomaga ocenić tendencję materiału, ale nie zastępuje tych danych."
          }
        },
        {
          "@type": "Question",
          "name": "Czy dąb nadaje się na ogrzewanie podłogowe?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Na rynku występują dębowe produkty przeznaczone do podłogówki, ale sama nazwa dąb nie potwierdza przydatności. Trzeba sprawdzić konstrukcję, grubość, szerokość, opór cieplny, montaż i dokumentację dokładnego modelu."
          }
        },
        {
          "@type": "Question",
          "name": "Czy merbau, iroko i teak są stabilniejsze od buku?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Reprezentatywne dane materiałowe wskazują zwykle mniejszy skurcz dla merbau, iroko i teaku niż dla buku. Nie jest to jednak ranking gotowych podłóg. Budowa deski, suszenie, format, klejenie, wilgotność oraz instrukcja produktu mogą zmienić praktyczną ocenę."
          }
        },
        {
          "@type": "Question",
          "name": "Czy deska warstwowa jest zawsze lepsza od litej?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie zawsze, choć prawidłowo zaprojektowana konstrukcja warstwowa może ograniczać zmiany geometryczne. Nie istnieje stała procentowa przewaga wspólna dla wszystkich produktów. Oba warianty wymagają potwierdzenia zastosowania, właściwego montażu i kontroli mikroklimatu."
          }
        },
        {
          "@type": "Question",
          "name": "Jaki opór cieplny drewna jest dopuszczalny?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie należy traktować pojedynczej wartości jako uniwersalnej zgody lub zakazu. Suma oporu deski i warstwy montażowej wpływa na wymaganą różnicę temperatur, dlatego trzeba ją zestawić z obciążeniem pomieszczenia, powierzchnią czynną oraz projektem systemu."
          }
        },
        {
          "@type": "Question",
          "name": "Czy 27°C to zawsze maksymalna temperatura drewnianej podłogi?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie należy przyjmować 27°C automatycznie dla każdego produktu. Trzeba stosować limit podany przez producenta konkretnej deski oraz uwzględnić wymagania komfortu, projektu ogrzewania, kleju i pozostałych warstw."
          }
        },
        {
          "@type": "Question",
          "name": "Czy pod drewnem lepiej kleić, czy układać podłogę pływającą?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Klejenie zwykle eliminuje osobny podkład, ale wymaga kompatybilnego systemu i dobrze przygotowanego jastrychu. Montaż pływający dodaje opór podkładu i wymaga dopuszczenia zamków. Wybór wynika z dokumentacji całego zestawu, nie z jednej ogólnej reguły."
          }
        },
        {
          "@type": "Question",
          "name": "Czy ogrzewanie podłogowe rozsycha drewno?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Drewno reaguje na zmiany wilgotności równowagowej i temperatury. Ryzyko szczelin lub odkształceń rośnie przy warunkach poza zakresem produktu, gwałtownym rozruchu albo błędnym montażu. Poprawny projekt i kontrola mikroklimatu ograniczają ryzyko, lecz go nie zerują."
          }
        },
        {
          "@type": "Question",
          "name": "Czy grubsza deska oznacza gorszą podłogówkę?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Większa grubość tego samego materiału zwiększa opór cieplny, ale o wyniku decyduje cały produkt i pomieszczenie. Grubsza deska nie jest automatycznie zakazana; może natomiast wymagać ponownego przeliczenia mocy i temperatur."
          }
        },
        {
          "@type": "Question",
          "name": "Jakie dokumenty powinien przekazać sprzedawca podłogi?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Najważniejsze są karta techniczna dokładnego produktu, instrukcja montażu i użytkowania, warunki gwarancji, deklarowany opór cieplny, dopuszczone metody układania, limit temperatury powierzchni oraz wymagany zakres wilgotności. Dla systemu montażowego potrzebne są również dokumenty kleju lub podkładu."
          }
        }
      ]
    }
  ]
}
</script>

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

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

  var speciesData = [
    {
      id: "oak",
      name: "Dąb europejski",
      botanical: "Quercus robur / Quercus petraea — wartości reprezentatywne",
      density: 740,
      radial: 4.5,
      tangential: 9.7,
      ratio: 2.2,
      lambda: 0.24,
      hardness: "średnia (4,2 Monnina)",
      movement: "umiarkowana; wyższa anizotropia",
      movementLevel: 2,
      movementNote: "Skurcz styczny jest wyraźnie większy od promieniowego. Znaczenie ma sposób przetarcia oraz szerokość elementu.",
      solid: "Wybór warunkowy. Sprawdź szerokość, grubość, wilgotność początkową, układ słojów i jednoznaczne dopuszczenie produktu.",
      engineered: "Częsty wariant konstrukcyjny, ale oceniaj liczbę warstw, materiał podkładu, całkowity R i instrukcję konkretnej deski.",
      risk: "Szeroka deska lita może wyraźniej pokazać zmianę wymiaru; sama nazwa handlowa nie opisuje konstrukcji.",
      verify: "R całego produktu, limit temperatury, zakres RH, dopuszczony montaż i maksymalny format.",
      source: "CIRAD Tropix; właściwości drewna uzupełnione zasadami USDA FPL"
    },
    {
      id: "merbau",
      name: "Merbau",
      botanical: "Intsia spp. — wartości reprezentatywne",
      density: 830,
      radial: 2.7,
      tangential: 4.4,
      ratio: 1.6,
      lambda: 0.27,
      hardness: "bardzo wysoka (8,8 Monnina)",
      movement: "niższa tendencja materiałowa",
      movementLevel: 1,
      movementNote: "Reprezentatywny skurcz całkowity jest relatywnie mały, lecz gotowy wyrób nadal reaguje na mikroklimat.",
      solid: "Parametry gatunku są obiecujące, ale format, suszenie, montaż i dokumentacja produktu pozostają rozstrzygające.",
      engineered: "Konstrukcja może dodatkowo ograniczać zmiany geometryczne; nie zastępuje to deklaracji R i warunków producenta.",
      risk: "Duża gęstość oraz substancje ekstrakcyjne wymagają zgodnego systemu klejenia; ważne jest legalne i udokumentowane pochodzenie.",
      verify: "Kompatybilność kleju, R wyrobu, zakres RH, ograniczenia powierzchni oraz dokumenty pochodzenia.",
      source: "CIRAD Tropix"
    },
    {
      id: "iroko",
      name: "Iroko",
      botanical: "Milicia spp. — wartości reprezentatywne",
      density: 640,
      radial: 3.5,
      tangential: 5.4,
      ratio: 1.5,
      lambda: 0.22,
      hardness: "średnia (4,1 Monnina)",
      movement: "niższa tendencja materiałowa",
      movementLevel: 1,
      movementNote: "Niski stosunek T/R i umiarkowany skurcz sprzyjają przewidywalności materiału, ale nie gwarantują zachowania deski.",
      solid: "Możliwy wybór warunkowy przy kontrolowanym formacie, właściwym suszeniu i potwierdzeniu przez producenta.",
      engineered: "Może łączyć korzystne cechy gatunku ze stabilizującą konstrukcją; sprawdź budowę całego wyrobu.",
      risk: "Substancje ekstrakcyjne i zmienny układ włókien mogą wpływać na obróbkę, klejenie i wykończenie.",
      verify: "Zalecany klej i grunt, konstrukcję, R, temperaturę powierzchni i zakres mikroklimatu.",
      source: "CIRAD Tropix"
    },
    {
      id: "ash",
      name: "Jesion europejski",
      botanical: "Fraxinus excelsior — wartości reprezentatywne",
      density: 680,
      radial: 5.7,
      tangential: 9.6,
      ratio: 1.7,
      lambda: 0.23,
      hardness: "wysoka (5,1 Monnina)",
      movement: "umiarkowana–wyższa",
      movementLevel: 3,
      movementNote: "Całkowity skurcz jest wyraźny. Twardość użytkowa nie oznacza automatycznie małej pracy wilgotnościowej.",
      solid: "Szczególnej kontroli wymagają szerokość, kierunek słojów i zakres RH; nie zakładaj przydatności bez dokumentu produktu.",
      engineered: "Konstrukcja warstwowa może ograniczać geometrię zmian, ale musi być przeznaczona do podłogówki.",
      risk: "Mylenie wysokiej twardości z wysoką stabilnością wymiarową.",
      verify: "Dopuszczony format, konstrukcję, RH, limit temperatury, R i sposób montażu.",
      source: "CIRAD Tropix"
    },
    {
      id: "maple",
      name: "Klon jawor",
      botanical: "Acer pseudoplatanus — w handlu również jako jawor",
      density: 640,
      radial: 4.5,
      tangential: 7.8,
      ratio: 1.7,
      lambda: 0.22,
      hardness: "średnia (4,7 Monnina)",
      movement: "umiarkowana",
      movementLevel: 2,
      movementNote: "Parametry wskazują umiarkowaną pracę, lecz jasne drewno może mocno ujawniać szczeliny i zmiany wizualne.",
      solid: "Wybór warunkowy zależny od szerokości, sposobu przetarcia i dyscypliny mikroklimatu.",
      engineered: "Może być bardziej przewidywalny geometrycznie, jeśli cała konstrukcja została przebadana i opisana.",
      risk: "Nazwa „klon” może obejmować różne gatunki o innych wartościach; trzeba znać dokładne oznaczenie.",
      verify: "Gatunek botaniczny, konstrukcję, R, zakres RH, format i limit temperatury.",
      source: "CIRAD Tropix — karta great maple"
    },
    {
      id: "robinia",
      name: "Robinia akacjowa",
      botanical: "Robinia pseudoacacia — handlowo często nazywana akacją",
      density: 740,
      radial: 4.4,
      tangential: 6.9,
      ratio: 1.6,
      lambda: 0.24,
      hardness: "bardzo wysoka (9,5 Monnina)",
      movement: "niższa–umiarkowana",
      movementLevel: 2,
      movementNote: "Stosunek T/R jest umiarkowany, ale naturalna zmienność i układ włókien mogą wpływać na element.",
      solid: "Możliwy wariant przy dobrze przygotowanym materiale, kontrolowanym formacie i pełnej instrukcji.",
      engineered: "Konstrukcja może pomóc w kontroli geometrii; nie należy wnioskować wyłącznie z twardości gatunku.",
      risk: "Bardzo wysoka twardość komplikuje obróbkę, a określenie „akacja” bywa używane nieprecyzyjnie.",
      verify: "Łacińską nazwę gatunku, sposób suszenia, R, system klejenia i wymagany mikroklimat.",
      source: "CIRAD Tropix — black locust"
    },
    {
      id: "walnut-eu",
      name: "Orzech europejski",
      botanical: "Juglans regia — wartości reprezentatywne",
      density: 660,
      radial: 5.5,
      tangential: 7.5,
      ratio: 1.4,
      lambda: 0.22,
      hardness: "średnia (3,2 Monnina)",
      movement: "umiarkowana; równomierniejsza",
      movementLevel: 2,
      movementNote: "Niższy stosunek T/R oznacza bardziej zbliżoną zmianę w obu kierunkach, lecz skurcz całkowity nadal jest istotny.",
      solid: "Wybór warunkowy; kontroluj szerokość, wilgotność i sposób przetarcia.",
      engineered: "Może być przewidywalnym wariantem, gdy karta wyrobu potwierdza zastosowanie i parametry.",
      risk: "Nazwa „orzech” nie rozróżnia orzecha europejskiego od amerykańskiego ani budowy produktu.",
      verify: "Dokładny gatunek, konstrukcję, R, format, temperaturę oraz zakres RH.",
      source: "CIRAD Tropix"
    },
    {
      id: "walnut-us",
      name: "Orzech amerykański",
      botanical: "Juglans nigra — wartości reprezentatywne",
      density: 610,
      radial: 5.5,
      tangential: 7.8,
      ratio: 1.4,
      lambda: 0.17,
      hardness: "średnia; dane zależne od metody",
      movement: "umiarkowana; równomierniejsza",
      movementLevel: 2,
      movementNote: "Relatywnie niski stosunek T/R nie usuwa zmian wymiarowych; liczą się wilgotność i rozmiar elementu.",
      solid: "Możliwy po sprawdzeniu formatu, wilgotności i pisemnego dopuszczenia konkretnej deski.",
      engineered: "Konstrukcja warstwowa może ograniczyć widoczne zmiany, lecz wynik zależy od podkładu i klejenia warstw.",
      risk: "Przenoszenie danych z orzecha europejskiego lub innego źródła bez sprawdzenia gatunku i metody pomiaru.",
      verify: "Nazwę botaniczną, R produktu, konstrukcję, dopuszczony montaż, RH i temperaturę.",
      source: "USDA Forest Products Laboratory; wartości cieplne reprezentatywne"
    },
    {
      id: "pine",
      name: "Sosna zwyczajna",
      botanical: "Pinus sylvestris — wartości reprezentatywne",
      density: 550,
      radial: 5.2,
      tangential: 8.3,
      ratio: 1.6,
      lambda: 0.19,
      hardness: "niższa (2,6 Monnina)",
      movement: "umiarkowana",
      movementLevel: 2,
      movementNote: "Parametry ruchu są umiarkowane, lecz układ słojów, sęki i różnice między drewnem wczesnym a późnym zwiększają zmienność.",
      solid: "Wymaga świadomej akceptacji większej podatności na wgniecenia oraz sprawdzenia szerokości i jakości materiału.",
      engineered: "Może ograniczać zmiany geometrii, ale cienka warstwa użytkowa nie zmienia wymagań dokumentacyjnych.",
      risk: "Wgniecenia, sęki, żywica oraz duża zmienność wizualna i materiałowa.",
      verify: "Klasę jakości, konstrukcję, R, limit temperatury, montaż i zakres RH.",
      source: "CIRAD Tropix"
    },
    {
      id: "larch",
      name: "Modrzew europejski",
      botanical: "Larix decidua — wartości reprezentatywne",
      density: 600,
      radial: 4.2,
      tangential: 8.2,
      ratio: 2.0,
      lambda: 0.20,
      hardness: "średnia (3,8 Monnina)",
      movement: "umiarkowana; wyższa anizotropia",
      movementLevel: 2,
      movementNote: "Stosunek T/R wskazuje większą różnicę między kierunkami, dlatego układ słojów i szerokość są ważne.",
      solid: "Wybór warunkowy, szczególnie przy szerokich elementach; sprawdź wilgotność, przekrój i instrukcję.",
      engineered: "Może ograniczać efekt anizotropii, jeżeli konstrukcja i klejenie warstw są prawidłowo zaprojektowane.",
      risk: "Żywica, sęki i różnica pracy w kierunkach mogą wpływać na wygląd i montaż.",
      verify: "Format, selekcję materiału, R, kompatybilność wykończenia, RH i temperaturę.",
      source: "CIRAD Tropix"
    },
    {
      id: "teak",
      name: "Teak",
      botanical: "Tectona grandis — wartości reprezentatywne",
      density: 670,
      radial: 2.6,
      tangential: 4.7,
      ratio: 1.8,
      lambda: 0.22,
      hardness: "średnia (4,2 Monnina)",
      movement: "niższa tendencja materiałowa",
      movementLevel: 1,
      movementNote: "Niski skurcz całkowity jest korzystną cechą materiałową, ale nie jest zgodą na dowolną deskę lub montaż.",
      solid: "Możliwy przy kontrolowanym formacie i pisemnym dopuszczeniu; wymaga właściwego przygotowania do klejenia.",
      engineered: "Może tworzyć przewidywalny wyrób, jeśli warstwy, spoiwa i parametry cieplne są udokumentowane.",
      risk: "Naturalne oleje mogą utrudniać klejenie i wykończenie; ważne jest legalne, udokumentowane pochodzenie.",
      verify: "Technologię klejenia, R, zakres RH, limit temperatury, format i dokumenty pochodzenia.",
      source: "CIRAD Tropix"
    },
    {
      id: "beech",
      name: "Buk europejski",
      botanical: "Fagus sylvatica — wartości reprezentatywne",
      density: 710,
      radial: 5.7,
      tangential: 11.6,
      ratio: 2.0,
      lambda: 0.24,
      hardness: "średnia (4,2 Monnina)",
      movement: "wyższa tendencja materiałowa",
      movementLevel: 3,
      movementNote: "Wysoki skurcz styczny i wyraźna anizotropia zwiększają znaczenie konstrukcji, formatu oraz stabilnego mikroklimatu.",
      solid: "Podwyższone ryzyko dla szerokich elementów. Decyzja wymaga szczególnie mocnego potwierdzenia produktu i warunków.",
      engineered: "Konstrukcja może ograniczać zmiany, ale nie usuwa cech gatunku ani obowiązku przestrzegania RH i temperatury.",
      risk: "Zbyt szeroki format, wahania wilgotności i przyjęcie, że twardość równa się stabilności.",
      verify: "Jednoznaczne dopuszczenie, konstrukcję, maksymalną szerokość, R, RH i temperaturę.",
      source: "CIRAD Tropix"
    },
    {
      id: "afzelia",
      name: "Doussie / afzelia",
      botanical: "Afzelia spp. — doussie to nazwa handlowa",
      density: 800,
      radial: 3.0,
      tangential: 4.4,
      ratio: 1.5,
      lambda: 0.26,
      hardness: "wysoka (7,7 Monnina)",
      movement: "niższa tendencja materiałowa",
      movementLevel: 1,
      movementNote: "Niski skurcz i stosunek T/R są korzystne w porównaniu materiałowym, lecz produkt nadal musi mieć pełne dane.",
      solid: "Możliwy po sprawdzeniu wymiarów, suszenia, klejenia i dopuszczenia dokładnej deski.",
      engineered: "Może łączyć korzystne dane gatunku z kontrolą geometrii, o ile cała konstrukcja jest udokumentowana.",
      risk: "Substancje ekstrakcyjne, duża gęstość, zmienność handlowych nazw i pochodzenie materiału.",
      verify: "Nazwę botaniczną, system klejenia, R, temperaturę, RH oraz dokumenty pochodzenia.",
      source: "CIRAD Tropix"
    },
    {
      id: "jatoba",
      name: "Jatoba",
      botanical: "Hymenaea spp. — wartości reprezentatywne",
      density: 940,
      radial: 3.9,
      tangential: 7.5,
      ratio: 1.9,
      lambda: 0.30,
      hardness: "bardzo wysoka (10,5 Monnina)",
      movement: "umiarkowana",
      movementLevel: 2,
      movementNote: "Skurcz promieniowy jest umiarkowany, styczny większy; wysoka gęstość nie oznacza braku pracy wilgotnościowej.",
      solid: "Wymaga kontroli szerokości, wilgotności, obróbki oraz zgodnego systemu montażowego.",
      engineered: "Może ograniczać geometrię zmian, ale wysoka gęstość warstwy użytkowej nadal wpływa na obróbkę i klejenie.",
      risk: "Mylenie bardzo wysokiej twardości ze stabilnością oraz nieuwzględnienie wymagań klejenia gęstego drewna.",
      verify: "Klej i przygotowanie powierzchni, R, wymiary, zakres RH, limit temperatury i pochodzenie.",
      source: "CIRAD Tropix"
    },
    {
      id: "wenge",
      name: "Wenge",
      botanical: "Millettia laurentii — wartości reprezentatywne",
      density: 870,
      radial: 5.9,
      tangential: 9.1,
      ratio: 1.5,
      lambda: 0.28,
      hardness: "bardzo wysoka (9,1 Monnina)",
      movement: "wyższa w wartościach bezwzględnych",
      movementLevel: 3,
      movementNote: "Stosunek T/R jest umiarkowany, lecz całkowite wartości skurczu pozostają wysokie; oba aspekty trzeba czytać razem.",
      solid: "Podwyższone wymagania dla formatu, suszenia, jakości elementu i kontroli mikroklimatu.",
      engineered: "Może ograniczyć zmiany geometryczne, ale nie eliminuje ryzyka pęknięć ani wymagań montażowych.",
      risk: "Kruchość, drzazgi, pęknięcia, duża gęstość i konieczność udokumentowanego pochodzenia.",
      verify: "Konstrukcję, jakość selekcji, system klejenia, R, RH, temperaturę i dokumenty pochodzenia.",
      source: "CIRAD Tropix"
    }
  ];

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

  function findSpecies(id) {
    var found = speciesData[0];
    speciesData.forEach(function (item) {
      if (item.id === id) {
        found = item;
      }
    });
    return found;
  }

  function createSpeciesOptions(select, selectedId) {
    select.innerHTML = "";
    speciesData.forEach(function (item) {
      var option = document.createElement("option");
      option.value = item.id;
      option.textContent = item.name;
      if (item.id === selectedId) {
        option.selected = true;
      }
      select.appendChild(option);
    });
  }

  var compareSelects = root.querySelectorAll("[data-rk-wood-compare]");
  var compareDefaults = ["oak", "merbau", "beech"];

  Array.prototype.forEach.call(compareSelects, function (select, index) {
    createSpeciesOptions(select, compareDefaults[index]);
  });

  function refreshDisabledOptions() {
    var chosen = [];
    Array.prototype.forEach.call(compareSelects, function (select) {
      chosen.push(select.value);
    });
    Array.prototype.forEach.call(compareSelects, function (select) {
      Array.prototype.forEach.call(select.options, function (option) {
        option.disabled = false;
        if (option.value !== select.value) {
          if (chosen.indexOf(option.value) !== -1) {
            option.disabled = true;
          }
        }
      });
    });
  }

  function renderSpeciesCard(item) {
    var html = "";
    html += '<article class="rk-wood-species-card">';
    html += '<div class="rk-wood-species-head"><h4>' + item.name + '</h4><p>' + item.botanical + '</p></div>';
    html += '<div class="rk-wood-species-body">';
    html += '<div class="rk-wood-metrics">';
    html += '<div class="rk-wood-metric"><span>Gęstość</span><strong>' + item.density + ' kg/m³</strong></div>';
    html += '<div class="rk-wood-metric"><span>Przewodność λ</span><strong>' + formatNumber(item.lambda, 2) + ' W/(m·K)</strong></div>';
    html += '<div class="rk-wood-metric"><span>Skurcz promieniowy</span><strong>' + formatNumber(item.radial, 1) + '%</strong></div>';
    html += '<div class="rk-wood-metric"><span>Skurcz styczny</span><strong>' + formatNumber(item.tangential, 1) + '%</strong></div>';
    html += '<div class="rk-wood-metric"><span>Stosunek T/R</span><strong>' + formatNumber(item.ratio, 1) + '</strong></div>';
    html += '<div class="rk-wood-metric"><span>Wgniecenia</span><strong>' + item.hardness + '</strong></div>';
    html += '</div>';
    html += '<span class="rk-wood-tag">Ruch: ' + item.movement + '</span>';
    html += '<span class="rk-wood-tag rk-wood-tag-warn">Brak automatycznej kwalifikacji</span>';
    html += '<dl class="rk-wood-species-detail">';
    html += '<dt>Jak czytać ruch wilgotnościowy?</dt><dd>' + item.movementNote + '</dd>';
    html += '<dt>Deska lita</dt><dd>' + item.solid + '</dd>';
    html += '<dt>Deska warstwowa</dt><dd>' + item.engineered + '</dd>';
    html += '<dt>Kluczowe ryzyko</dt><dd>' + item.risk + '</dd>';
    html += '<dt>Co sprawdzić w dokumentacji?</dt><dd>' + item.verify + '</dd>';
    html += '<dt>Podstawa danych</dt><dd>' + item.source + '</dd>';
    html += '</dl></div></article>';
    return html;
  }

  function renderComparison() {
    var result = document.getElementById("rk-wood-compare-results");
    if (!result) {
      return;
    }
    var html = "";
    Array.prototype.forEach.call(compareSelects, function (select) {
      html += renderSpeciesCard(findSpecies(select.value));
    });
    result.innerHTML = html;
    refreshDisabledOptions();
  }

  Array.prototype.forEach.call(compareSelects, function (select) {
    select.addEventListener("change", renderComparison);
  });

  var boardSpecies = document.getElementById("rk-wood-board-species");
  createSpeciesOptions(boardSpecies, "oak");

  var installation = document.getElementById("rk-wood-install");
  var underlayInput = document.getElementById("rk-wood-underlay-r");
  var form = document.getElementById("rk-wood-board-form");
  var resultBox = document.getElementById("rk-wood-analysis-result");
  var resetButton = document.getElementById("rk-wood-example-reset");

  function syncInstallation() {
    if (installation.value === "floating") {
      underlayInput.disabled = false;
      if (Number(underlayInput.value) === 0) {
        underlayInput.value = "0.030";
      }
    } else {
      underlayInput.value = "0";
      underlayInput.disabled = true;
    }
  }

  function numberOrNull(id) {
    var field = document.getElementById(id);
    var raw = field.value.trim();
    if (raw === "") {
      return null;
    }
    var value = Number(raw.replace(",", "."));
    if (isFinite(value)) {
      return value;
    }
    return null;
  }

  function checkLine(type, text) {
    var symbol = "?";
    if (type === "ok") {
      symbol = "✓";
    }
    if (type === "alert") {
      symbol = "!";
    }
    return '<div class="rk-wood-check"><span class="rk-wood-check-mark rk-wood-check-' + type + '">' + symbol + '</span><span>' + text + '</span></div>';
  }

  function renderInputMessage(title, text) {
    resultBox.innerHTML = '<div class="rk-wood-result-status rk-wood-status-warn"><span class="rk-wood-status-icon" aria-hidden="true">!</span><div><strong>' + title + '</strong><p>' + text + '</p></div></div>';
  }

  function analyzeBoard(event) {
    if (event) {
      event.preventDefault();
    }

    var species = findSpecies(boardSpecies.value);
    var construction = document.getElementById("rk-wood-construction-input").value;
    var approval = document.getElementById("rk-wood-approval").value;
    var thickness = numberOrNull("rk-wood-thickness");
    var width = numberOrNull("rk-wood-width");
    var declaredR = numberOrNull("rk-wood-r-declared");
    var maxTemp = numberOrNull("rk-wood-max-temp");
    var rhMin = numberOrNull("rk-wood-rh-min");
    var rhMax = numberOrNull("rk-wood-rh-max");
    var heatLoad = numberOrNull("rk-wood-load");
    var underlayR = 0;

    if (!form.checkValidity()) {
      form.reportValidity();
      return;
    }

    if (installation.value === "floating") {
      underlayR = numberOrNull("rk-wood-underlay-r");
      if (underlayR === null) {
        underlayR = 0;
      }
    }

    if (rhMin !== null) {
      if (rhMax !== null) {
        if (rhMin > rhMax) {
          renderInputMessage("Popraw zakres wilgotności", "Minimalna wilgotność względna nie może być większa od wartości maksymalnej.");
          return;
        }
      }
    }

    var productR = declaredR;
    var rSource = "wartość zadeklarowana dla całego produktu";
    var rEstimated = false;

    if (productR === null) {
      if (thickness !== null) {
        productR = (thickness / 1000) / species.lambda;
        rEstimated = true;
        rSource = "orientacyjny szacunek d/λ z danych gatunku";
      }
    }

    var totalR = null;
    if (productR !== null) {
      totalR = productR + underlayR;
    }

    var missingCount = 0;
    var documentHtml = "";

    if (approval === "yes") {
      documentHtml += checkLine("ok", "Dopuszczenie produktu do ogrzewania zostało oznaczone jako potwierdzone.");
    }
    if (approval === "unknown") {
      missingCount += 1;
      documentHtml += checkLine("missing", "Brakuje jednoznacznego potwierdzenia zastosowania na podłogówce.");
    }
    if (approval === "no") {
      documentHtml += checkLine("alert", "Producent nie dopuszcza produktu — wpisane parametry nie zmieniają tego ograniczenia.");
    }

    if (declaredR !== null) {
      documentHtml += checkLine("ok", "Wpisano deklarowany opór cieplny całego produktu.");
    } else {
      missingCount += 1;
      documentHtml += checkLine("missing", "Brakuje deklarowanego R. Narzędzie może pokazać tylko orientacyjny szacunek.");
    }

    if (maxTemp !== null) {
      documentHtml += checkLine("ok", "Wpisano limit temperatury powierzchni: " + formatNumber(maxTemp, 1) + "°C.");
    } else {
      missingCount += 1;
      documentHtml += checkLine("missing", "Brakuje limitu temperatury powierzchni z dokumentacji produktu.");
    }

    var rhKnown = false;
    if (rhMin !== null) {
      if (rhMax !== null) {
        rhKnown = true;
      }
    }
    if (rhKnown) {
      documentHtml += checkLine("ok", "Wpisano zakres mikroklimatu: " + formatNumber(rhMin, 0) + "–" + formatNumber(rhMax, 0) + "% RH.");
    } else {
      missingCount += 1;
      documentHtml += checkLine("missing", "Brakuje pełnego zakresu wilgotności względnej wymaganego przez producenta.");
    }

    if (installation.value === "floating") {
      documentHtml += checkLine("ok", "Do bilansu dodano opór podkładu dla montażu pływającego.");
    } else {
      documentHtml += checkLine("ok", "Wybrano klejenie; zgodność kleju, gruntu i jastrychu trzeba potwierdzić poza kalkulacją R.");
    }

    var stabilityPoints = species.movementLevel;
    var stabilityNotes = [];

    if (construction === "solid") {
      stabilityPoints += 1;
      stabilityNotes.push("Deska lita przenosi reakcję jednego przekroju drewna; szerokość i układ słojów mają duże znaczenie.");
    } else {
      stabilityPoints -= 1;
      stabilityNotes.push("Konstrukcja warstwowa może ograniczać część zmian geometrycznych, jeśli warstwy i spoiwa są prawidłowo zaprojektowane.");
    }

    if (width !== null) {
      if (width >= 180) {
        stabilityPoints += 1;
        stabilityNotes.push("Format " + formatNumber(width, 0) + " mm wymaga sprawdzenia ograniczeń szerokości w instrukcji produktu.");
      } else {
        stabilityNotes.push("Mniejsza szerokość ogranicza bezwzględny wymiar zmiany, ale nie usuwa pracy drewna.");
      }
      if (width >= 220) {
        stabilityPoints += 1;
        stabilityNotes.push("Bardzo szeroki element zwiększa widoczny skutek tej samej procentowej zmiany wilgotnościowej.");
      }
    } else {
      missingCount += 1;
      stabilityNotes.push("Brak szerokości uniemożliwia pełniejszą ocenę formatu.");
    }

    if (rhKnown) {
      var rhSpan = rhMax - rhMin;
      if (rhMin < 35) {
        stabilityPoints += 1;
        stabilityNotes.push("Dolna wartość RH jest niska; potwierdź, że mieści się w instrukcji i że budynek może ją utrzymać.");
      }
      if (rhMax > 65) {
        stabilityPoints += 1;
        stabilityNotes.push("Górna wartość RH jest wysoka; sprawdź warunki gwarancji i wentylację.");
      }
      if (rhSpan > 25) {
        stabilityPoints += 1;
        stabilityNotes.push("Szeroki zakres RH oznacza większą zmianę wilgotności równowagowej drewna.");
      }
    } else {
      stabilityPoints += 1;
      stabilityNotes.push("Bez zakresu RH nie da się ocenić zgodności planowanego mikroklimatu z dokumentacją.");
    }

    if (stabilityPoints < 0) {
      stabilityPoints = 0;
    }

    var stabilityLabel = "umiarkowana kontrola warunków";
    if (stabilityPoints <= 1) {
      stabilityLabel = "niższe ryzyko w zakresie wpisanych danych";
    }
    if (stabilityPoints >= 3) {
      stabilityLabel = "wybór wymagający dodatkowej kontroli";
    }
    if (stabilityPoints >= 5) {
      stabilityLabel = "podwyższone ryzyko eksploatacyjne";
    }

    var thermalLevel = "brak pełnych danych";
    var thermalNote = "Uzupełnij R produktu, aby obliczyć sumę wykończenia.";
    var requiresProject = false;

    if (totalR !== null) {
      thermalLevel = "niższy opór w tym modelu";
      thermalNote = "Wynik nadal trzeba połączyć z mocą wymaganą w pomieszczeniu.";
      if (totalR > 0.10) {
        thermalLevel = "opór istotny dla obliczeń";
        thermalNote = "Nie oceniaj go bez powierzchni czynnej, temperatury wody i obciążenia pomieszczenia.";
      }
      if (totalR > 0.15) {
        thermalLevel = "wysoki opór wymagający weryfikacji";
        thermalNote = "To sygnał do ponownego przeliczenia, a nie automatyczny zakaz produktu.";
        requiresProject = true;
      }
    }

    if (heatLoad === null) {
      missingCount += 1;
      requiresProject = true;
    } else {
      if (heatLoad > 75) {
        requiresProject = true;
      }
    }

    var overall = "Parametry potwierdzone w zakresie wpisanych danych";
    var overallText = "Nie widać wyraźnego sygnału alarmowego, ale ostateczne potwierdzenie wymaga karty produktu, kontroli podłoża i obliczenia mocy podłogi.";
    var statusClass = "rk-wood-status-good";
    var statusSymbol = "✓";

    if (missingCount > 0) {
      overall = "Wybór warunkowy";
      overallText = "Część informacji jest niepełna lub opiera się na szacunku. Uzupełnij dokumentację przed decyzją.";
      statusClass = "rk-wood-status-warn";
      statusSymbol = "?";
    }
    if (missingCount >= 3) {
      overall = "Brak danych";
      overallText = "Liczba braków nie pozwala uznać parametrów za potwierdzone. Poproś o kartę techniczną i instrukcję dokładnego produktu.";
    }
    if (requiresProject) {
      overall = "Parametr wymagający przeliczenia projektowego";
      overallText = "Opór wykończenia lub obciążenie pomieszczenia wymaga sprawdzenia razem z powierzchnią czynną, temperaturą wody i geometrią instalacji.";
      statusClass = "rk-wood-status-warn";
      statusSymbol = "↗";
    }
    if (stabilityPoints >= 5) {
      overall = "Podwyższone ryzyko";
      overallText = "Połączenie gatunku, konstrukcji, formatu lub warunków RH wymaga dodatkowej weryfikacji dokumentacji i wykonania.";
      statusClass = "rk-wood-status-alert";
      statusSymbol = "!";
    }
    if (approval === "no") {
      overall = "Podwyższone ryzyko";
      overallText = "Producent nie dopuszcza produktu do ogrzewania podłogowego. Nie zastępuj tej informacji wynikiem uproszczonego obliczenia.";
      statusClass = "rk-wood-status-alert";
      statusSymbol = "!";
    }

    var productRDisplay = "brak";
    var totalRDisplay = "brak";
    if (productR !== null) {
      productRDisplay = formatNumber(productR, 3);
    }
    if (totalR !== null) {
      totalRDisplay = formatNumber(totalR, 3);
    }

    var loadText = "Brak obciążenia cieplnego z obliczeń.";
    if (heatLoad !== null) {
      loadText = "Wpisane obciążenie: " + formatNumber(heatLoad, 0) + " W/m² aktywnej podłogi.";
      if (heatLoad > 75) {
        loadText += " To poziom wymagający uważnej weryfikacji mocy przy dopuszczalnej temperaturze powierzchni.";
      }
    }

    var constructionLabel = "deska lita";
    var supportLabel = "jeden przekrój drewna";
    if (construction === "two") {
      constructionLabel = "deska dwuwarstwowa";
      supportLabel = "warstwa nośna produktu";
    }
    if (construction === "three") {
      constructionLabel = "deska trójwarstwowa";
      supportLabel = "krzyżowe warstwy nośne";
    }

    var installationLabel = "klej do jastrychu";
    if (installation.value === "floating") {
      installationLabel = "podkład podłogowy";
    }

    var stabilityList = "";
    stabilityNotes.forEach(function (note) {
      stabilityList += "<li>" + note + "</li>";
    });

    var estimateWarning = "";
    if (rEstimated) {
      estimateWarning = "<li>R produktu jest szacunkiem z grubości i λ. Dla deski warstwowej może różnić się od wartości całego wyrobu.</li>";
    }

    var heatList = "";
    heatList += "<li>R produktu: " + productRDisplay + " m²K/W — " + rSource + ".</li>";
    heatList += "<li>R podkładu uwzględniony w modelu: " + formatNumber(underlayR, 3) + " m²K/W.</li>";
    heatList += "<li>" + loadText + "</li>";
    heatList += estimateWarning;

    var productShare = 0;
    var underlayShare = 0;
    if (totalR !== null) {
      if (totalR > 0) {
        productShare = (productR / totalR) * 100;
        underlayShare = (underlayR / totalR) * 100;
      }
    }

    var layerProductText = constructionLabel + ", " + (thickness === null ? "grubość niepodana" : formatNumber(thickness, 1) + " mm");
    var maxTempText = maxTemp === null ? "limit temperatury: brak danych" : "limit: " + formatNumber(maxTemp, 1) + "°C";

    var html = "";
    html += '<div class="rk-wood-result-status ' + statusClass + '"><span class="rk-wood-status-icon" aria-hidden="true">' + statusSymbol + '</span><div><strong>' + overall + '</strong><p>' + overallText + '</p></div></div>';
    html += '<div class="rk-wood-result-grid">';
    html += '<article class="rk-wood-result-card"><h3>1. Przepływ ciepła</h3><div class="rk-wood-result-number">' + totalRDisplay + ' m²K/W</div><div class="rk-wood-result-caption">suma R produktu i podkładu uwzględniona w narzędziu</div><p><strong>' + thermalLevel + '.</strong> ' + thermalNote + '</p><ul>' + heatList + '</ul></article>';
    html += '<article class="rk-wood-result-card"><h3>2. Stabilność eksploatacyjna</h3><div class="rk-wood-result-number">' + species.name + '</div><div class="rk-wood-result-caption">' + stabilityLabel + '</div><ul>' + stabilityList + '</ul></article>';
    html += '<article class="rk-wood-result-card"><h3>3. Kompletność dokumentacji</h3>' + documentHtml + '<p class="rk-wood-result-caption">Dodatkowo sprawdź instrukcję przygotowania jastrychu, dylatacje, aklimatyzację, powłokę i warunki gwarancji.</p></article>';
    html += '</div>';
    html += '<div class="rk-wood-layer-module"><h4>Modułowa droga ciepła — warstwy do wspólnego sprawdzenia</h4>';
    html += '<div class="rk-wood-layers">';
    html += '<div class="rk-wood-layer rk-wood-layer-1"><span>1. Wierzch</span><strong>' + species.name + '</strong><small>' + maxTempText + '</small></div>';
    html += '<div class="rk-wood-layer rk-wood-layer-2"><span>2. Produkt</span><strong>' + supportLabel + '</strong><small>' + layerProductText + '</small></div>';
    html += '<div class="rk-wood-layer rk-wood-layer-3"><span>3. Montaż</span><strong>' + installationLabel + '</strong><small>zgodność systemu i opór warstwy</small></div>';
    html += '<div class="rk-wood-layer rk-wood-layer-4"><span>4. Jastrych</span><strong>podłoże grzewcze</strong><small>wilgotność, równość, dylatacje i rozruch</small></div>';
    html += '<div class="rk-wood-layer rk-wood-layer-5"><span>5. Instalacja</span><strong>rury i izolacja</strong><small>rozstaw, temperatura, przepływ i powierzchnia czynna</small></div>';
    html += '</div>';
    html += '<div class="rk-wood-rbar-wrap"><div class="rk-wood-rbar-labels"><span>Produkt: ' + formatNumber(productShare, 0) + '%</span><span>Podkład: ' + formatNumber(underlayShare, 0) + '%</span></div>';
    html += '<div class="rk-wood-rbar" aria-label="Udział produktu i podkładu w sumie oporu wykończenia"><span class="rk-wood-rbar-product" style="width:' + productShare + '%"></span><span class="rk-wood-rbar-underlay" style="width:' + underlayShare + '%"></span></div>';
    html += '<p class="rk-wood-rbar-note">Pasek pokazuje wyłącznie udział produktu i podkładu w obliczonej sumie R wykończenia. Jastrych, rury, izolacja i warunki wymiany ciepła nie są częścią tego paska, lecz muszą wejść do projektu całego emitera.</p></div></div>';

    resultBox.innerHTML = html;
  }

  installation.addEventListener("change", function () {
    syncInstallation();
  });

  form.addEventListener("submit", analyzeBoard);

  resetButton.addEventListener("click", function () {
    form.reset();
    syncInstallation();
    analyzeBoard();
  });

  renderComparison();
  syncInstallation();
  analyzeBoard();
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/">Drewno na ogrzewanie podłogowe – tabela gatunków i analizator deski.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Czy ogrzewanie podłogowe nadaje się do drewnianego stropu?</title>
		<link>https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 08 Jun 2025 09:29:23 +0000</pubDate>
				<category><![CDATA[Drewniane podłogi]]></category>
		<category><![CDATA[Drewniane stropy]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Modernizacja domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Porady budowlane]]></category>
		<category><![CDATA[Remont domu]]></category>
		<category><![CDATA[Systemy grzewcze]]></category>
		<category><![CDATA[budownictwo ekologiczne]]></category>
		<category><![CDATA[drewniana podłoga]]></category>
		<category><![CDATA[drewniany strop]]></category>
		<category><![CDATA[instalacja grzewcza]]></category>
		<category><![CDATA[izolacja termiczna]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[system suchy]]></category>
		<category><![CDATA[wodne ogrzewanie]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2632</guid>

					<description><![CDATA[<p>Planujesz montaż ogrzewania podłogowego w domu z drewnianym stropem? Dowiedz się, jak połączyć komfort cieplny z estetyką drewna. Czy ogrzewanie podłogowe nadaje się do drewnianego stropu? Tak, ale wymaga precyzyjnego projektu i odpowiednich materiałów, takich jak system suchy. Poznaj zalety, wyzwania i praktyczne porady, które pomogą Ci stworzyć ciepłe i piękne wnętrze, zachowując trwałość drewnianej konstrukcji przez wiele lat.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/">Czy ogrzewanie podłogowe nadaje się do drewnianego stropu?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-timber-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-timber-guide,
  #rk-timber-guide * {
    box-sizing: border-box;
  }

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

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

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

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

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

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

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

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

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

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

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

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-progress-track {
    position: sticky;
    z-index: 40;
    top: 0;
    width: 100%;
    height: 5px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.88);
  }

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-hero::before,
  #rk-timber-guide .rk-timber-hero::after {
    content: "";
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    pointer-events: none;
  }

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

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-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-timber-guide .rk-timber-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-timber-guide .rk-timber-hero h2 span {
    color: #83edf5;
  }

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-hook p,
  #rk-timber-guide .rk-timber-hook strong,
  #rk-timber-guide .rk-timber-hero-lead {
    color: var(--rk-white);
  }

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

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

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

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

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-author-strip b,
  #rk-timber-guide .rk-timber-author-strip small {
    display: block;
  }

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

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

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

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

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

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

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

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

  #rk-timber-guide .rk-timber-no,
  #rk-timber-guide .rk-timber-card-icon,
  #rk-timber-guide .rk-timber-error-no,
  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-learn-card h4,
  #rk-timber-guide .rk-timber-learn-card p,
  #rk-timber-guide .rk-timber-card h4,
  #rk-timber-guide .rk-timber-card p,
  #rk-timber-guide .rk-timber-error h4,
  #rk-timber-guide .rk-timber-error p,
  #rk-timber-guide .rk-timber-check h4,
  #rk-timber-guide .rk-timber-check p {
    margin: 0;
  }

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

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

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

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-nav a:hover {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

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

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

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

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-answer,
  #rk-timber-guide .rk-timber-truth,
  #rk-timber-guide .rk-timber-warning,
  #rk-timber-guide .rk-timber-note,
  #rk-timber-guide .rk-timber-formula {
    margin: 24px 0;
    padding: 24px;
    border-radius: 20px;
  }

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

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

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

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

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

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

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

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

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

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

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-table-wrap {
    margin: 24px 0;
  }

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-table th,
  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-table th:last-child,
  #rk-timber-guide .rk-timber-table td:last-child {
    border-right: 0;
  }

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

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

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

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

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-flow-step:hover,
  #rk-timber-guide .rk-timber-flow-step.is-active {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

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

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

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

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

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-architectures {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 15px;
    margin: 25px 0;
  }

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-nodes {
    display: grid;
    gap: 8px;
    margin: 17px 0;
  }

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-node + .rk-timber-node::before {
    content: "↓";
    position: absolute;
    top: -16px;
    left: 50%;
    color: var(--rk-orange);
    font-size: 1rem;
    transform: translateX(-50%);
  }

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-lab-head {
    padding: 25px;
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-dark), var(--rk-navy));
  }

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

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

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-preset:hover,
  #rk-timber-guide .rk-timber-preset.is-active {
    color: var(--rk-dark);
    border-color: var(--rk-cyan);
    background: var(--rk-cyan);
  }

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

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

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

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-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-timber-guide .rk-timber-control input[type="range"] {
    width: 100%;
    margin: 0;
    accent-color: var(--rk-orange);
    cursor: pointer;
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-disclaimer {
    padding: 0 25px 24px;
    color: var(--rk-muted);
    font-size: 0.72rem;
    line-height: 1.55;
  }

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-number-input:focus-visible,
  #rk-timber-guide button:focus-visible,
  #rk-timber-guide a:focus-visible,
  #rk-timber-guide summary:focus-visible {
    outline: 3px solid rgba(40, 201, 218, 0.42);
    outline-offset: 3px;
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-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-timber-guide .rk-timber-howto-step h3,
  #rk-timber-guide .rk-timber-howto-step p {
    margin: 0;
  }

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

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

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-faq summary::-webkit-details-marker {
    display: none;
  }

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-faq[open] summary::after {
    content: "−";
  }

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

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-sources > strong {
    display: block;
    margin-bottom: 8px;
  }

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-cta h3,
  #rk-timber-guide .rk-timber-cta p,
  #rk-timber-guide .rk-timber-cta strong {
    color: var(--rk-white);
  }

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-cta-link:hover {
    color: var(--rk-white) !important;
    filter: brightness(1.06);
    transform: translateY(-1px);
  }

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

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-author-head h3,
  #rk-timber-guide .rk-timber-author-head p {
    margin: 0;
    color: var(--rk-white);
  }

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-author-main {
    display: grid;
    grid-template-columns: 310px minmax(0, 1fr);
  }

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-author-profile h4 {
    margin: 18px 0 7px;
    font-size: 1.36rem;
  }

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-author-content {
    min-width: 0;
    padding: 32px;
  }

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

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

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-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-timber-guide .rk-timber-tab-button:last-child {
    border-right: 0;
  }

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

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

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

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

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-portals a:hover {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    #rk-timber-guide .rk-timber-table td,
    #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-table td:last-child {
      border-bottom: 0;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-program-button:hover,
  #rk-timber-guide .rk-timber-program-button.is-active {
    color: var(--rk-dark);
    border-color: var(--rk-cyan);
    background: var(--rk-cyan);
  }

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-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-timber-guide .rk-timber-control-note {
    display: block;
    margin-top: 6px;
    color: var(--rk-muted);
    font-size: 0.66rem;
    line-height: 1.5;
  }

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-estimate span,
  #rk-timber-guide .rk-timber-estimate strong,
  #rk-timber-guide .rk-timber-estimate small {
    display: block;
    color: var(--rk-white);
  }

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

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

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

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

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

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

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

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

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

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

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

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-status-list li.is-alert::before {
    content: "!";
    background: var(--rk-orange);
  }

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-example-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 24px 0;
  }

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-example:nth-child(2) {
    border-top-color: var(--rk-orange);
  }

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

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

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-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-timber-guide .rk-timber-verdict h3,
  #rk-timber-guide .rk-timber-verdict p {
    margin: 0;
  }

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-example-grid,
    #rk-timber-guide .rk-timber-verdict {
      grid-template-columns: 1fr;
    }
  }

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

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

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

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

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

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-lab-grid {
    grid-template-columns: minmax(300px, 0.88fr) minmax(0, 1.5fr);
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  #rk-timber-guide .rk-timber-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-timber-guide .rk-timber-protocol-step h3,
  #rk-timber-guide .rk-timber-protocol-step p {
    margin: 0;
  }

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

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

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

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

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

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

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

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

<article id="rk-timber-guide" itemscope itemtype="https://schema.org/TechArticle">
  <meta itemprop="mainEntityOfPage" content="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/">
  <meta itemprop="inLanguage" content="pl-PL">
  <meta itemprop="dateModified" content="2026-08-25">

  <div class="rk-timber-shell">
    <div class="rk-timber-progress-track" aria-hidden="true"><div class="rk-timber-progress"></div></div>

    <header class="rk-timber-hero">
      <div class="rk-timber-badge">Drewniany strop • analiza konstrukcyjna i cieplna</div>
      <h2 itemprop="headline">Czy ogrzewanie podłogowe nadaje się do drewnianego stropu? <span>System suchy, ciężar i poprawne warstwy</span></h2>
      <div class="rk-timber-hook">
        <p><strong>Tak — wodne ogrzewanie podłogowe można wykonać na drewnianym stropie, ale nie wolno traktować samego słowa „system suchy” jak potwierdzenia bezpieczeństwa.</strong> Najpierw trzeba sprawdzić konstrukcję, dopuszczalne dodatkowe obciążenie stałe, ugięcia i drgania, a równolegle policzyć wymaganą moc grzewczą, opór okładziny oraz hydraulikę pętli.</p>
      </div>
      <p class="rk-timber-hero-lead" itemprop="description">Ten poradnik oddziela trzy różne zagadnienia: drewnianą konstrukcję stropu, warstwy suchej podłogówki oraz drewniane wykończenie podłogi. Pokazuje warianty montażu nad poszyciem i między belkami, porównuje ich masę z mokrym jastrychem, wyjaśnia wymagania akustyczne i wilgotnościowe oraz udostępnia interaktywne laboratorium do wstępnej kontroli ciężaru i bilansu mocy.</p>
      <div class="rk-timber-hero-meta">
        <span>Autor: Robert Kucharski</span>
        <span>Aktualizacja: 25 sierpnia 2026 r.</span>
        <span>Bez obietnic „pasuje do każdego stropu”</span>
      </div>
      <div class="rk-timber-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 i specjalista HVAC" width="54" height="54" loading="eager" itemprop="image">
        <div>
          <b itemprop="name">Robert Kucharski</b>
          <small itemprop="jobTitle">CEO • specjalista HVAC i ogrzewania podłogowego</small>
        </div>
      </div>
    </header>

    <div class="rk-timber-content">
      <div class="rk-timber-warning">
        <p><strong>Granica odpowiedzialności:</strong> ten materiał pomaga uporządkować decyzje, ale nie ocenia konkretnego stropu. Nośność, stan drewna, ugięcie, drgania, połączenia, podpory oraz dopuszczalny przyrost obciążenia musi sprawdzić konstruktor na podstawie inwentaryzacji i obliczeń. Projektant instalacji weryfikuje natomiast moc podłogi, temperaturę wody, rozstaw, długość pętli, przepływy i opory hydrauliczne.</p>
      </div>

      <div class="rk-timber-learn" aria-label="Zakres artykułu">
        <strong>Po lekturze będziesz wiedzieć:</strong>
        <div class="rk-timber-learn-grid">
          <div class="rk-timber-learn-card"><div class="rk-timber-no">01</div><div><h4>Co musi sprawdzić konstruktor</h4><p>Dlaczego rozpiętość, przekrój i rozstaw belek nie wystarczą bez oceny drewna, podparcia, ugięć i drgań.</p></div></div>
          <div class="rk-timber-learn-card"><div class="rk-timber-no">02</div><div><h4>Który wariant warstw ma sens</h4><p>Kiedy rozważać system suchy nad poszyciem, montaż między belkami albo cięższy układ mokry.</p></div></div>
          <div class="rk-timber-learn-card"><div class="rk-timber-no">03</div><div><h4>Czy podłoga odda potrzebną moc</h4><p>Jak połączyć obciążenie cieplne pomieszczenia, opór wykończenia i deklarowaną wydajność systemu.</p></div></div>
          <div class="rk-timber-learn-card"><div class="rk-timber-no">04</div><div><h4>Jak uniknąć skrzypienia i pęknięć</h4><p>Co łączy sztywność poszycia, akustykę, szczeliny, wilgotność drewna i poprawne przejścia rur.</p></div></div>
        </div>
      </div>

      <nav class="rk-timber-nav" aria-label="Nawigacja po artykule">
        <strong>Przejdź do sekcji</strong>
        <div class="rk-timber-nav-links">
          <a href="#rk-timber-odpowiedz">Szybka odpowiedź</a>
          <a href="#rk-timber-konstrukcja">Konstrukcja stropu</a>
          <a href="#rk-timber-warianty">Trzy warianty</a>
          <a href="#rk-timber-ciezar">Ciężar warstw</a>
          <a href="#rk-timber-laboratorium">Laboratorium</a>
          <a href="#rk-timber-moc">Moc cieplna</a>
          <a href="#rk-timber-okladzina">Okładzina</a>
          <a href="#rk-timber-akustyka">Akustyka i wilgoć</a>
          <a href="#rk-timber-hydraulika">Hydraulika</a>
          <a href="#rk-timber-pomieszczenia">Pomieszczenia</a>
          <a href="#rk-timber-kroki">Krok po kroku</a>
          <a href="#rk-timber-bledy">Błędy</a>
          <a href="#rk-timber-faq">FAQ</a>
        </div>
      </nav>

      <section class="rk-timber-section" id="rk-timber-odpowiedz" aria-labelledby="rk-timber-h2-1">
        <div class="rk-timber-section-head">
          <div class="rk-timber-section-no">01</div>
          <div><h2 id="rk-timber-h2-1">Czy ogrzewanie podłogowe nadaje się do drewnianego stropu? Najkrótsza poprawna odpowiedź</h2><p>Tak, jeśli konstrukcja i instalacja zostaną sprawdzone jako jeden układ.</p></div>
        </div>

        <div class="rk-timber-answer">
          <p><strong>Ogrzewanie podłogowe na drewnianym stropie jest rozwiązaniem technicznie możliwym zarówno w nowym budynku, jak i podczas modernizacji.</strong> Najczęściej wybiera się lekki system suchy, ponieważ ogranicza dodatkową masę i nie wymaga wykonywania tradycyjnego jastrychu. Nie oznacza to jednak, że można ułożyć dowolne płyty na dowolnych belkach. O powodzeniu decydują nośność i użytkowalność stropu, sztywność podłoża, poprawne rozprowadzenie ciepła, dopuszczalna temperatura okładziny, akustyka oraz projekt hydrauliczny.</p>
        </div>

        <div class="rk-timber-card-grid three">
          <div class="rk-timber-card"><div class="rk-timber-card-icon">K</div><h4>Konstrukcja</h4><p>Konstruktor określa, czy strop może bezpiecznie przejąć ciężar nowych warstw oraz czy ugięcia i drgania pozostaną dopuszczalne.</p></div>
          <div class="rk-timber-card"><div class="rk-timber-card-icon">T</div><h4>Termika</h4><p>Projektant sprawdza, czy powierzchnia podłogi przy założonej temperaturze wody pokryje obciążenie cieplne pomieszczenia.</p></div>
          <div class="rk-timber-card"><div class="rk-timber-card-icon">W</div><h4>Warstwy</h4><p>Poszycie, elementy rozprowadzające ciepło, płyty suchego jastrychu i okładzina muszą tworzyć kompatybilny system.</p></div>
        </div>

        <div class="rk-timber-verdict">
          <div><h3>Najważniejszy wniosek dla inwestora</h3><p>„Sucha podłogówka” opisuje sposób budowy warstwy grzejnej, a nie stan techniczny drewnianego stropu. Lekki układ może być bardzo dobrym wyborem, lecz bezpieczeństwo potwierdza dopiero sprawdzenie konstrukcji i dokumentacji całego zestawu.</p></div>
          <div class="rk-timber-verdict-mark">System suchy często pomaga — nie zwalnia z obliczeń</div>
        </div>
      </section>

      <section class="rk-timber-section" id="rk-timber-konstrukcja" aria-labelledby="rk-timber-h2-2">
        <div class="rk-timber-section-head">
          <div class="rk-timber-section-no">02</div>
          <div><h2 id="rk-timber-h2-2">Drewniany strop, drewniana podłoga i system suchy to trzy różne rzeczy</h2><p>Ich pomieszanie prowadzi do pozornie prostych, ale błędnych porad.</p></div>
        </div>

        <div class="rk-timber-term-grid">
          <div class="rk-timber-term"><b>Drewniany strop</b><p>Konstrukcja nośna z belek, żeber albo elementów inżynierskich, oparta na ścianach lub podciągach. Musi przenieść obciążenia i zachować wymaganą sztywność.</p></div>
          <div class="rk-timber-term"><b>System suchej podłogówki</b><p>Warstwa grzejna bez tradycyjnego mokrego jastrychu: rury, płyty profilowane lub frezowane, elementy przewodzące ciepło i suche płyty rozkładające obciążenie.</p></div>
          <div class="rk-timber-term"><b>Drewniane wykończenie</b><p>Parkiet, deska lub warstwa drewnopochodna leżąca nad systemem. Jej opór cieplny, wilgotność i dopuszczalna temperatura są osobnym zagadnieniem.</p></div>
        </div>

        <h3>Co konstruktor powinien zweryfikować?</h3>
        <div class="rk-timber-check-grid">
          <div class="rk-timber-check"><div class="rk-timber-check-no">1</div><div><h4>Geometrię i schemat statyczny</h4><p>Przekrój, rozstaw i rzeczywistą rozpiętość belek, rodzaj podparcia, ciągłość elementów, otwory oraz strefy osłabień.</p></div></div>
          <div class="rk-timber-check"><div class="rk-timber-check-no">2</div><div><h4>Materiał i stan techniczny</h4><p>Gatunek lub klasa drewna, wilgotność, spękania, ubytki, korozję biologiczną, stan połączeń i ewentualne wcześniejsze przeróbki.</p></div></div>
          <div class="rk-timber-check"><div class="rk-timber-check-no">3</div><div><h4>Obciążenia stałe i użytkowe</h4><p>Istniejące warstwy, ścianki, instalacje i sufit oraz ciężar nowego systemu, wykończenia i wyposażenia.</p></div></div>
          <div class="rk-timber-check"><div class="rk-timber-check-no">4</div><div><h4>Ugięcia i drgania</h4><p>Strop może spełniać warunek wytrzymałości, a nadal być zbyt podatny dla kruchej okładziny albo odczuwalnie drgać podczas chodzenia.</p></div></div>
        </div>

        <p>Projektowanie konstrukcji drewnianych obejmuje nie tylko graniczny stan nośności, lecz także użytkowalność. Pomocnym punktem odniesienia jest <a href="https://eurocodes.jrc.ec.europa.eu/publications/manual-design-timber-buildings-structures-eurocode-5" target="_blank" rel="noopener noreferrer">podręcznik JRC do projektowania konstrukcji drewnianych według Eurokodu 5</a>. W istniejącym domu obliczenia powinny być poprzedzone odkrywkami i pomiarami, a nie oparte na domniemaniu, że belki mają przekrój widoczny na starym rysunku.</p>

        <div class="rk-timber-truth"><p><strong>Nie wycinaj ani nie przewiercaj belek pod rury bez rozwiązania konstrukcyjnego.</strong> Trasy zasilania i powrotu trzeba zaplanować tak, aby nie osłabić elementów nośnych. Dopuszczalne otwory zależą od rodzaju belki, miejsca na jej długości, rozmiaru otworu i zaleceń projektanta konstrukcji.</p></div>
      </section>

      <section class="rk-timber-section" id="rk-timber-warianty" aria-labelledby="rk-timber-h2-3">
        <div class="rk-timber-section-head">
          <div class="rk-timber-section-no">03</div>
          <div><h2 id="rk-timber-h2-3">Trzy warianty ogrzewania podłogowego na drewnianym stropie</h2><p>Różnią się wysokością, masą, bezwładnością i wymaganiami wobec podłoża.</p></div>
        </div>

        <div class="rk-timber-architectures">
          <div class="rk-timber-architecture">
            <span>Wariant A • najczęstszy</span>
            <h3>System suchy nad poszyciem</h3>
            <div class="rk-timber-nodes" aria-label="Warstwy systemu suchego nad poszyciem">
              <div class="rk-timber-node">Okładzina podłogowa</div>
              <div class="rk-timber-node">Płyta rozkładająca obciążenie</div>
              <div class="rk-timber-node">Rura i element przewodzący ciepło</div>
              <div class="rk-timber-node">Sztywne poszycie konstrukcyjne</div>
              <div class="rk-timber-node">Belki stropowe</div>
            </div>
            <p><strong>Zalety:</strong> mała masa, niewielka bezwładność i czytelna ciągłość warstw. <strong>Warunek:</strong> odpowiednio sztywne, równe i stabilne poszycie.</p>
          </div>

          <div class="rk-timber-architecture">
            <span>Wariant B • niska zabudowa</span>
            <h3>Rury między belkami lub legarami</h3>
            <div class="rk-timber-nodes" aria-label="Warstwy ogrzewania między belkami">
              <div class="rk-timber-node">Posadzka i warstwa nośna</div>
              <div class="rk-timber-node">Elementy rozpraszające ciepło</div>
              <div class="rk-timber-node">Rury w przestrzeni między belkami</div>
              <div class="rk-timber-node">Izolacja pod rurami</div>
              <div class="rk-timber-node">Sufit niższej kondygnacji</div>
            </div>
            <p><strong>Podłogówka między belkami stropowymi</strong> ogranicza przyrost wysokości. <strong>Ryzyko:</strong> trudniejszy serwis, mostki cieplne, nierównomierne przekazywanie ciepła i kolizje z konstrukcją.</p>
          </div>

          <div class="rk-timber-architecture">
            <span>Wariant C • tylko po sprawdzeniu</span>
            <h3>Lekki układ mokry lub jastrych</h3>
            <div class="rk-timber-nodes" aria-label="Warstwy systemu z mokrym jastrychem">
              <div class="rk-timber-node">Okładzina</div>
              <div class="rk-timber-node">Jastrych grzejny</div>
              <div class="rk-timber-node">Rury ogrzewania podłogowego</div>
              <div class="rk-timber-node">Warstwa rozdzielająca i izolacja</div>
              <div class="rk-timber-node">Poszycie na belkach</div>
            </div>
            <p><strong>Zalety:</strong> duża masa i równomierne rozprowadzanie ciepła. <strong>Ryzyko:</strong> wysoki ciężar, wilgoć technologiczna i odmienna praca drewna oraz jastrychu.</p>
          </div>
        </div>

        <h3>Schematy przekrojów — jak czytać układ warstw?</h3>
        <div class="rk-timber-example-grid">
          <div class="rk-timber-example">
            <h3>A. Nad poszyciem</h3>
            <svg class="rk-timber-cross" viewBox="0 0 360 250" role="img" aria-labelledby="rk-svg-a-title rk-svg-a-desc">
              <title id="rk-svg-a-title">Sucha podłogówka nad poszyciem drewnianego stropu</title>
              <desc id="rk-svg-a-desc">Schemat pokazuje okładzinę, suche płyty, rurę z elementem przewodzącym, poszycie i belki.</desc>
              <rect x="22" y="24" width="316" height="22" rx="4" fill="#d8c0a1"></rect>
              <rect x="22" y="49" width="316" height="33" rx="4" fill="#d9e3e7"></rect>
              <rect x="22" y="85" width="316" height="48" rx="4" fill="#eafcff" stroke="#28c9da"></rect>
              <path d="M38 110 H322" stroke="#ff6238" stroke-width="9" stroke-linecap="round"></path>
              <rect x="22" y="136" width="316" height="25" rx="3" fill="#b87b45"></rect>
              <rect x="42" y="164" width="38" height="66" fill="#9c6235"></rect><rect x="161" y="164" width="38" height="66" fill="#9c6235"></rect><rect x="280" y="164" width="38" height="66" fill="#9c6235"></rect>
              <text x="180" y="39" text-anchor="middle">okładzina</text><text x="180" y="70" text-anchor="middle">płyty suche</text><text x="180" y="103" text-anchor="middle">system grzejny</text><text x="180" y="154" text-anchor="middle">poszycie</text><text x="180" y="207" text-anchor="middle">belki</text>
            </svg>
            <p>Najłatwiej kontrolować ciągłość warstw i rozkład obciążeń, lecz trzeba uwzględnić wzrost poziomu podłogi.</p>
          </div>

          <div class="rk-timber-example">
            <h3>B. Między belkami</h3>
            <svg class="rk-timber-cross" viewBox="0 0 360 250" role="img" aria-labelledby="rk-svg-b-title rk-svg-b-desc">
              <title id="rk-svg-b-title">Ogrzewanie podłogowe między belkami stropowymi</title>
              <desc id="rk-svg-b-desc">Schemat pokazuje posadzkę i poszycie nad rurami umieszczonymi między belkami z izolacją od dołu.</desc>
              <rect x="22" y="25" width="316" height="22" rx="4" fill="#d8c0a1"></rect>
              <rect x="22" y="50" width="316" height="29" rx="3" fill="#b87b45"></rect>
              <rect x="36" y="82" width="38" height="128" fill="#9c6235"></rect><rect x="161" y="82" width="38" height="128" fill="#9c6235"></rect><rect x="286" y="82" width="38" height="128" fill="#9c6235"></rect>
              <path d="M85 107 H150 M210 107 H275" stroke="#8faab5" stroke-width="17" stroke-linecap="round"></path>
              <path d="M85 107 H150 M210 107 H275" stroke="#ff6238" stroke-width="8" stroke-linecap="round"></path>
              <rect x="77" y="126" width="80" height="76" fill="#eafcff" stroke="#28c9da"></rect><rect x="202" y="126" width="80" height="76" fill="#eafcff" stroke="#28c9da"></rect>
              <rect x="22" y="213" width="316" height="20" rx="3" fill="#d9e3e7"></rect>
              <text x="180" y="41" text-anchor="middle">okładzina</text><text x="180" y="70" text-anchor="middle">poszycie</text><text x="180" y="103" text-anchor="middle">rury i lamele</text><text x="180" y="170" text-anchor="middle">izolacja</text><text x="180" y="228" text-anchor="middle">sufit</text>
            </svg>
            <p>Ogranicza wysokość zabudowy, ale wymaga szczególnie dobrego kontaktu cieplnego i bezpiecznych tras bez naruszania belek.</p>
          </div>

          <div class="rk-timber-example">
            <h3>C. Układ mokry</h3>
            <svg class="rk-timber-cross" viewBox="0 0 360 250" role="img" aria-labelledby="rk-svg-c-title rk-svg-c-desc">
              <title id="rk-svg-c-title">Mokry system ogrzewania podłogowego na stropie drewnianym</title>
              <desc id="rk-svg-c-desc">Schemat pokazuje ciężki jastrych z rurą nad izolacją i poszyciem opartym na belkach.</desc>
              <rect x="22" y="23" width="316" height="20" rx="4" fill="#d8c0a1"></rect>
              <rect x="22" y="46" width="316" height="83" rx="3" fill="#c9d1d5"></rect>
              <circle cx="180" cy="96" r="14" fill="#ff6238" stroke="#fff" stroke-width="4"></circle>
              <rect x="22" y="132" width="316" height="32" fill="#eafcff" stroke="#28c9da"></rect>
              <rect x="22" y="167" width="316" height="23" fill="#b87b45"></rect>
              <rect x="42" y="193" width="38" height="40" fill="#9c6235"></rect><rect x="161" y="193" width="38" height="40" fill="#9c6235"></rect><rect x="280" y="193" width="38" height="40" fill="#9c6235"></rect>
              <text x="180" y="38" text-anchor="middle">okładzina</text><text x="180" y="75" text-anchor="middle">jastrych</text><text x="203" y="101">rura</text><text x="180" y="153" text-anchor="middle">izolacja</text><text x="180" y="184" text-anchor="middle">poszycie</text><text x="180" y="222" text-anchor="middle">belki</text>
            </svg>
            <p>Nie jest zakazany z definicji, ale wymaga sprawdzenia masy, wilgoci technologicznej, ugięć i połączenia materiałów o różnej pracy.</p>
          </div>
        </div>

        <p>Jeżeli potrzebujesz ogólnego porównania technologii, przeczytaj osobno: <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">czym jest system suchy w wodnym ogrzewaniu podłogowym</a> oraz <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-wodne-bez-wylewki/">jak działa wodne ogrzewanie podłogowe bez wylewki</a>. Niniejszy artykuł pozostaje skupiony na wymaganiach drewnianego stropu.</p>
      </section>

      <section class="rk-timber-section" id="rk-timber-ciezar" aria-labelledby="rk-timber-h2-4">
        <div class="rk-timber-section-head">
          <div class="rk-timber-section-no">04</div>
          <div><h2 id="rk-timber-h2-4">Ile waży podłogówka na drewnianym stropie?</h2><p>Najważniejsza jest suma wszystkich dodawanych warstw, nie masa samej rury.</p></div>
        </div>

        <div class="rk-timber-formula">
          <p><strong>Bilans dodatkowego obciążenia stałego:</strong></p>
          <code>gₖ,dod = gₖ,systemu grzejnego + gₖ,płyt + gₖ,okładziny + gₖ,warstw pomocniczych</code>
          <p><strong>Dla warstwy mokrej:</strong> masa na 1 m² = grubość [m] × gęstość [kg/m³]. Przykładowo 60 mm materiału o gęstości 2000 kg/m³ daje około 120 kg/m², zanim doliczy się okładzinę i pozostałe warstwy.</p>
        </div>

        <div class="rk-timber-table-wrap">
          <table class="rk-timber-table">
            <thead><tr><th>Składnik</th><th>Co trzeba ustalić</th><th>Dlaczego nie podaję jednej masy</th><th>Dokument źródłowy</th></tr></thead>
            <tbody>
              <tr><td data-label="Składnik"><strong>System grzejny</strong></td><td data-label="Ustalenie">Płyty profilowane, lamele, rura, elementy mocujące</td><td data-label="Dlaczego">Masa zależy od materiału, grubości i udziału metalu</td><td data-label="Dokument">Karta techniczna zestawu</td></tr>
              <tr><td data-label="Składnik"><strong>Warstwa nośna</strong></td><td data-label="Ustalenie">Liczba, grubość i gęstość płyt, układ spoin</td><td data-label="Dlaczego">Jedna i dwie warstwy mogą różnić się masą oraz sztywnością</td><td data-label="Dokument">Projekt warstw i deklaracja płyt</td></tr>
              <tr><td data-label="Składnik"><strong>Okładzina</strong></td><td data-label="Ustalenie">Materiał, grubość, klej lub podkład</td><td data-label="Dlaczego">Płytki, deska i wykładzina mają różną masę i opór cieplny</td><td data-label="Dokument">Karta posadzki i chemii</td></tr>
              <tr><td data-label="Składnik"><strong>Warstwy pomocnicze</strong></td><td data-label="Ustalenie">Maty akustyczne, membrany, podsypki, wyrównanie</td><td data-label="Dlaczego">Drobne składniki sumują się na całej powierzchni</td><td data-label="Dokument">Zestawienie materiałów</td></tr>
              <tr><td data-label="Składnik"><strong>Wariant mokry</strong></td><td data-label="Ustalenie">Grubość, gęstość i zbrojenie jastrychu</td><td data-label="Dlaczego">Niewielka zmiana grubości daje duży przyrost masy</td><td data-label="Dokument">Projekt i karta jastrychu</td></tr>
            </tbody>
          </table>
        </div>

        <div class="rk-timber-note"><p><strong>Nie porównuj wyniku tylko z „nośnością stropu” podaną w kg/m².</strong> Konstruktor rozdziela obciążenia stałe i użytkowe, sprawdza kombinacje, ugięcia oraz drgania. Limit dodatkowego obciążenia stałego użyty w laboratorium poniżej musi pochodzić właśnie od niego.</p></div>
      </section>

      <section class="rk-timber-section" id="rk-timber-laboratorium" aria-labelledby="rk-timber-h2-5">
        <div class="rk-timber-section-head">
          <div class="rk-timber-section-no">05</div>
          <div><h2 id="rk-timber-h2-5">Laboratorium drewnianego stropu: ciężar, moc i opór okładziny</h2><p>Narzędzie porządkuje dane wejściowe — nie oblicza nośności belek.</p></div>
        </div>

        <div class="rk-timber-lab" data-rk-timber-lab>
          <div class="rk-timber-lab-head">
            <h3>Wstępna kontrola wariantu podłogi</h3>
            <p>Wybierz przykład lub ustaw własne parametry. Limit obciążenia musi pochodzić z oceny konstruktora, a wydajność cieplna z obliczeń lub wiarygodnych danych konkretnego systemu.</p>
            <div class="rk-timber-presets" aria-label="Przykładowe warianty warstw">
              <button class="rk-timber-preset is-active" type="button" data-timber-preset="dry">Suchy nad poszyciem</button>
              <button class="rk-timber-preset" type="button" data-timber-preset="between">Między belkami</button>
              <button class="rk-timber-preset" type="button" data-timber-preset="wet">Mokry — porównanie</button>
            </div>
          </div>

          <div class="rk-timber-lab-grid">
            <div class="rk-timber-controls">
              <div class="rk-timber-input-grid">
                <div class="rk-timber-control"><label for="rk-timber-area">Powierzchnia pomieszczenia <output id="rk-timber-area-out">24 m²</output></label><input id="rk-timber-area" type="range" min="6" max="100" step="1" value="24"></div>
                <div class="rk-timber-control"><label for="rk-timber-heating">Warstwa grzejna <output id="rk-timber-heating-out">10 kg/m²</output></label><input id="rk-timber-heating" type="range" min="2" max="140" step="1" value="10"></div>
                <div class="rk-timber-control"><label for="rk-timber-overlay">Płyty rozkładające obciążenie <output id="rk-timber-overlay-out">22 kg/m²</output></label><input id="rk-timber-overlay" type="range" min="0" max="80" step="1" value="22"></div>
                <div class="rk-timber-control"><label for="rk-timber-finish-weight">Okładzina z klejem lub podkładem <output id="rk-timber-finish-weight-out">12 kg/m²</output></label><input id="rk-timber-finish-weight" type="range" min="2" max="45" step="1" value="12"></div>
                <div class="rk-timber-control"><label for="rk-timber-other">Pozostałe nowe warstwy <output id="rk-timber-other-out">4 kg/m²</output></label><input id="rk-timber-other" type="range" min="0" max="50" step="1" value="4"></div>
                <div class="rk-timber-control"><label for="rk-timber-limit">Limit od konstruktora <output id="rk-timber-limit-out">65 kg/m²</output></label><input id="rk-timber-limit" type="range" min="20" max="220" step="5" value="65"><small class="rk-timber-control-note">To nie jest wartość domyślna dla stropów — wpisz limit z obliczeń konkretnej konstrukcji.</small></div>
                <div class="rk-timber-control"><label for="rk-timber-demand">Wymagana moc pomieszczenia <output id="rk-timber-demand-out">55 W/m²</output></label><input id="rk-timber-demand" type="range" min="20" max="140" step="1" value="55"></div>
                <div class="rk-timber-control"><label for="rk-timber-output">Deklarowana moc systemu <output id="rk-timber-output-out">70 W/m²</output></label><input id="rk-timber-output" type="range" min="20" max="140" step="1" value="70"></div>
                <div class="rk-timber-control"><label for="rk-timber-finish-thickness">Grubość okładziny <output id="rk-timber-finish-thickness-out">12 mm</output></label><input id="rk-timber-finish-thickness" type="range" min="3" max="30" step="1" value="12"></div>
                <div class="rk-timber-control"><label for="rk-timber-lambda">Przewodność okładziny λ <output id="rk-timber-lambda-out">0,18 W/mK</output></label><input id="rk-timber-lambda" type="range" min="0.05" max="2.50" step="0.01" value="0.18"></div>
              </div>
              <div class="rk-timber-status" id="rk-timber-lab-status" aria-live="polite">Wariant mieści się w zadanym limicie i ma dodatni bilans mocy — oba wyniki wymagają potwierdzenia dokumentacją.</div>
            </div>

            <div class="rk-timber-visual">
              <div class="rk-timber-estimate">
                <span>Łączny ciężar dodawanych warstw</span>
                <strong id="rk-timber-total-result">48 kg/m²</strong>
                <small id="rk-timber-total-room">Dla 24 m² oznacza około 1152 kg dodatkowej masy rozłożonej powierzchniowo.</small>
                <div class="rk-timber-limit-bar" role="img" aria-label="Wykorzystanie limitu dodatkowego obciążenia"><div class="rk-timber-limit-fill" id="rk-timber-limit-fill"></div></div>
              </div>

              <div class="rk-timber-results" aria-live="polite">
                <div class="rk-timber-result is-accent"><span>Rezerwa obciążenia</span><strong id="rk-timber-load-margin">17 kg/m²</strong></div>
                <div class="rk-timber-result"><span>Wykorzystanie limitu</span><strong id="rk-timber-load-use">74%</strong></div>
                <div class="rk-timber-result"><span>Opór samej okładziny</span><strong id="rk-timber-r-result">0,067 m²K/W</strong></div>
                <div class="rk-timber-result"><span>Rezerwa mocy</span><strong id="rk-timber-power-margin">15 W/m²</strong></div>
                <div class="rk-timber-result"><span>Potrzebna moc w pokoju</span><strong id="rk-timber-room-need">1,32 kW</strong></div>
                <div class="rk-timber-result"><span>Deklarowana moc w pokoju</span><strong id="rk-timber-room-output">1,68 kW</strong></div>
                <div class="rk-timber-result"><span>Porównanie z 120 kg/m²</span><strong id="rk-timber-wet-saving">72 kg/m² mniej</strong></div>
                <div class="rk-timber-result"><span>Ocena robocza</span><strong id="rk-timber-verdict-result">Do weryfikacji</strong></div>
              </div>

              <div class="rk-timber-cross-wrap">
                <div class="rk-timber-cross-card">
                  <span class="rk-timber-cross-title" id="rk-timber-cross-label">Dynamiczny przekrój: system suchy nad poszyciem</span>
                  <svg class="rk-timber-cross" viewBox="0 0 420 300" role="img" aria-labelledby="rk-timber-lab-svg-title rk-timber-lab-svg-desc">
                    <title id="rk-timber-lab-svg-title">Dynamiczny przekrój warstw ogrzewania podłogowego na stropie drewnianym</title>
                    <desc id="rk-timber-lab-svg-desc">Schemat pokazuje okładzinę, płyty, warstwę grzejną, poszycie i belki. Wysokości są poglądowe.</desc>
                    <rect id="rk-timber-svg-finish" x="34" y="34" width="352" height="28" rx="5" fill="#d8c0a1"></rect>
                    <rect id="rk-timber-svg-overlay" x="34" y="66" width="352" height="42" rx="4" fill="#d9e3e7"></rect>
                    <rect id="rk-timber-svg-heating" x="34" y="112" width="352" height="55" rx="4" fill="#eafcff" stroke="#28c9da" stroke-width="2"></rect>
                    <path id="rk-timber-svg-pipe" d="M54 140 H366" stroke="#ff6238" stroke-width="10" stroke-linecap="round"></path>
                    <rect x="34" y="171" width="352" height="28" rx="3" fill="#b87b45"></rect>
                    <rect x="55" y="203" width="46" height="65" fill="#9c6235"></rect><rect x="187" y="203" width="46" height="65" fill="#9c6235"></rect><rect x="319" y="203" width="46" height="65" fill="#9c6235"></rect>
                    <text id="rk-timber-svg-finish-text" x="210" y="53" text-anchor="middle">okładzina • 12 kg/m²</text>
                    <text id="rk-timber-svg-overlay-text" x="210" y="92" text-anchor="middle">płyty • 22 kg/m²</text>
                    <text id="rk-timber-svg-heating-text" x="210" y="132" text-anchor="middle">warstwa grzejna • 10 kg/m²</text>
                    <text x="210" y="191" text-anchor="middle">poszycie istniejące — poza bilansem</text>
                    <text x="210" y="246" text-anchor="middle">belki stropowe</text>
                  </svg>
                  <div class="rk-timber-legend"><span><i></i>płyty i poszycie</span><span class="pipe"><i></i>rura</span><span class="insulation"><i></i>warstwa systemowa</span></div>
                </div>

                <div class="rk-timber-energy-card">
                  <span class="rk-timber-energy-title">Porównanie masy [kg/m²]</span>
                  <svg class="rk-timber-energy-chart" id="rk-timber-mass-chart" viewBox="0 0 420 300" role="img" aria-label="Porównanie masy analizowanego systemu, limitu konstruktora i przykładowej masy wariantu mokrego">
                    <defs><linearGradient id="rk-timber-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-timber-axis-line" x1="48" y1="252" x2="395" y2="252"></line>
                    <line class="rk-timber-axis-line" x1="48" y1="28" x2="48" y2="252"></line>
                    <g id="rk-timber-bars"></g>
                  </svg>
                  <p class="rk-timber-small">Słupek 120 kg/m² jest wyłącznie stałym przykładem masy 60 mm materiału o gęstości 2000 kg/m³ — nie opisuje każdego systemu mokrego.</p>
                </div>
              </div>
            </div>
          </div>
          <div class="rk-timber-disclaimer"><strong>Ważne:</strong> dodatni wynik nie jest zgodą na wykonanie instalacji. Narzędzie nie zna przekrojów belek, rozpiętości, podparcia, klasy i stanu drewna, połączeń, obciążeń istniejących, ugięć ani drgań. Nie uwzględnia też temperatury powierzchni, rozstawu rur i oporu całego systemu — deklarowaną moc należy wcześniej wyznaczyć dla rzeczywistych warunków.</div>
        </div>

        <div class="rk-timber-formula"><p><strong>Jak czytać dwa najważniejsze wyniki?</strong></p><code>rezerwa obciążenia = limit konstruktora − suma nowych warstw</code><code>rezerwa mocy = deklarowana moc systemu − projektowe obciążenie cieplne</code><p>Oba warunki powinny być dodatnie, ale to dopiero filtr wstępny. Nie zastępują sprawdzenia użytkowalności stropu ani pełnego obliczenia emisji cieplnej.</p></div>
      </section>

      <section class="rk-timber-section" id="rk-timber-moc" aria-labelledby="rk-timber-h2-6">
        <div class="rk-timber-section-head">
          <div class="rk-timber-section-no">06</div>
          <div><h2 id="rk-timber-h2-6">Czy sucha podłogówka ogrzeje pomieszczenie?</h2><p>Odpowiedź wynika z bilansu mocy, a nie z samej obecności rur.</p></div>
        </div>

        <p>Najpierw oblicza się projektowe obciążenie cieplne pomieszczenia w watach. Następnie dzieli się je przez aktywną powierzchnię grzejną, czyli część podłogi, która rzeczywiście może oddawać ciepło. Dopiero wtedy dobiera się rozstaw, temperaturę zasilania, średnią temperaturę wody, opór wykończenia oraz przepływ. Podłoga pod stałą zabudową może być wyłączona z aktywnej powierzchni, co zwiększa wymaganą moc z pozostałych metrów kwadratowych.</p>

        <div class="rk-timber-formula">
          <code>qₘᵢₙ = ΦHL / Aaktywna</code>
          <p>Jeżeli pomieszczenie potrzebuje 1200 W, a aktywna powierzchnia podłogi ma 18 m², system musi średnio dostarczyć około 66,7 W/m². Wynik trzeba zestawić z wydajnością wybranego układu przy konkretnej temperaturze wody i konkretnym oporze okładziny.</p>
        </div>

        <div class="rk-timber-card-grid four">
          <div class="rk-timber-card"><div class="rk-timber-card-icon">Φ</div><h4>Straty pomieszczenia</h4><p>Wynik obliczeń dla temperatury projektowej, uwzględniający przegrody, wentylację i warunki lokalne.</p></div>
          <div class="rk-timber-card"><div class="rk-timber-card-icon">A</div><h4>Aktywna powierzchnia</h4><p>Rzeczywista powierzchnia przekazująca ciepło po odjęciu stref, w których nie prowadzi się instalacji.</p></div>
          <div class="rk-timber-card"><div class="rk-timber-card-icon">R</div><h4>Opór warstw nad rurą</h4><p>Płyty rozdzielające i okładzina mogą ograniczyć strumień ciepła oraz wymusić wyższą temperaturę wody.</p></div>
          <div class="rk-timber-card"><div class="rk-timber-card-icon">ΔT</div><h4>Temperatura robocza</h4><p>Moc rośnie wraz z różnicą między średnią temperaturą powierzchni podłogi i powietrza w pomieszczeniu.</p></div>
        </div>

        <h3>System suchy a pompa ciepła</h3>
        <p>Mała masa systemu suchego pozwala szybciej reagować, ale nie gwarantuje automatycznie niskiej temperatury zasilania. Jeżeli warstwy mają duży opór, aktywna powierzchnia jest mała albo straty budynku są wysokie, potrzebna temperatura wody może wzrosnąć. Dlatego współpracę z pompą ciepła ocenia się na podstawie obliczeń, a nie hasła marketingowego. Powiązany poradnik wyjaśnia szczegółowo <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">dobór rozstawu rur ogrzewania podłogowego przy pompie ciepła</a>.</p>

        <div class="rk-timber-truth"><p><strong>Ogrzewanie podłogowe na legarach nie może ogrzewać głównie pustki stropowej.</strong> Element rozprowadzający ciepło powinien zapewniać dobry kontakt z warstwą oddającą energię do pomieszczenia, a izolacja poniżej ma ograniczać straty w dół. Geometrię i opory cieplne trzeba analizować jako pełny przekrój.</p></div>
      </section>

      <section class="rk-timber-section" id="rk-timber-okladzina" aria-labelledby="rk-timber-h2-7">
        <div class="rk-timber-section-head">
          <div class="rk-timber-section-no">07</div>
          <div><h2 id="rk-timber-h2-7">Drewno, panele, winyl czy płytki na suchej podłogówce?</h2><p>Liczą się jednocześnie masa, opór cieplny, temperatura i sposób montażu.</p></div>
        </div>

        <div class="rk-timber-table-wrap">
          <table class="rk-timber-table">
            <thead><tr><th>Wykończenie</th><th>Atut</th><th>Co sprawdzić</th><th>Typowe ryzyko</th></tr></thead>
            <tbody>
              <tr><td data-label="Wykończenie"><strong>Płytki</strong></td><td data-label="Atut">Niski opór i dobre przekazywanie ciepła</td><td data-label="Sprawdzenie">Sztywność podłoża, kompatybilny system płyt i kleju, szczeliny</td><td data-label="Ryzyko">Pękanie fug lub okładziny na podatnym stropie</td></tr>
              <tr><td data-label="Wykończenie"><strong>Deska warstwowa</strong></td><td data-label="Atut">Stabilniejsza wymiarowo niż wiele litych desek</td><td data-label="Sprawdzenie">Opór cieplny, wilgotność, maksymalną temperaturę i sposób klejenia</td><td data-label="Ryzyko">Szczeliny, łódkowanie lub przesuszenie przy złych warunkach</td></tr>
              <tr><td data-label="Wykończenie"><strong>Panele laminowane</strong></td><td data-label="Atut">Niewielka wysokość i łatwy montaż</td><td data-label="Sprawdzenie">Dopuszczenie na podłogówkę i łączny opór panelu z podkładem</td><td data-label="Ryzyko">Zbyt izolacyjny podkład i odgłosy kroków</td></tr>
              <tr><td data-label="Wykończenie"><strong>Winyl</strong></td><td data-label="Atut">Mała grubość i potencjalnie niski opór</td><td data-label="Sprawdzenie">Równość, sztywność, temperaturę i kompatybilność kleju</td><td data-label="Ryzyko">Odznaczanie nierówności lub deformacja na niestabilnym podłożu</td></tr>
            </tbody>
          </table>
        </div>

        <div class="rk-timber-formula"><p><strong>Opór cieplny jednorodnej warstwy:</strong></p><code>R = d / λ</code><p>Dla deski o grubości 0,014 m i przewodności 0,14 W/(m·K) opór samej deski wynosi 0,10 m²K/W. Do wyniku należy doliczyć podkład, klej oraz pozostałe warstwy nad elementem grzejnym.</p></div>

        <p>Szczegółowe porównanie materiałów znajduje się w artykule <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/">podłogi drewniane a panele laminowane przy ogrzewaniu podłogowym</a>. Sam sposób liczenia wyjaśnia poradnik o tym, czym jest <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">opór cieplny R w konstrukcji podłogi</a>.</p>

        <div class="rk-timber-note"><p><strong>Nie stosuj jednej granicy temperatury jako „bezpiecznej dla każdego drewna”.</strong> Dopuszczalna temperatura powierzchni i warunki eksploatacji powinny wynikać z projektu cieplnego oraz instrukcji konkretnej okładziny, kleju i systemu grzejnego. Ochrona drewna obejmuje także stabilną wilgotność powietrza, właściwą wilgotność materiału przy montażu i łagodne uruchomienie.</p></div>
      </section>

      <section class="rk-timber-section" id="rk-timber-akustyka" aria-labelledby="rk-timber-h2-8">
        <div class="rk-timber-section-head">
          <div class="rk-timber-section-no">08</div>
          <div><h2 id="rk-timber-h2-8">Akustyka, drgania, ogień i wilgoć — cztery tematy, których nie wolno pominąć</h2><p>Poprawna termika nie naprawi błędnej konstrukcji podłogi.</p></div>
        </div>

        <div class="rk-timber-phase-grid">
          <div class="rk-timber-phase" data-step="A"><b>Dźwięki uderzeniowe</b><p>Warstwa sprężysta może ograniczać przenoszenie kroków, lecz jej ściśliwość i ułożenie muszą być zgodne z systemem. Miękki podkład nie może destabilizować płyt.</p></div>
          <div class="rk-timber-phase" data-step="B"><b>Drgania i skrzypienie</b><p>Luźne połączenia, pracujące styki i zbyt podatne poszycie mogą powodować dźwięki. Źródła nie usuwa się przez przypadkowe dokładanie miękkiej warstwy.</p></div>
          <div class="rk-timber-phase" data-step="C"><b>Odporność ogniowa</b><p>Otwory instalacyjne i przejścia nie mogą naruszać wymaganego układu zabezpieczeń. Wymagania zależą od całej przegrody, okładzin i uszczelnień.</p></div>
          <div class="rk-timber-phase" data-step="D"><b>Wilgoć</b><p>Drewno zmienia wymiary wraz ze zmianą wilgotności. Trzeba kontrolować źródła zawilgocenia, dyfuzję, szczelność instalacji i warunki podczas montażu.</p></div>
        </div>

        <h3>Dlaczego suchy system nie oznacza „braku problemu z wilgocią”?</h3>
        <p>System bez mokrego jastrychu ogranicza wilgoć technologiczną wnoszoną podczas wykonywania warstwy grzejnej. Nadal mogą jednak wystąpić przecieki, wilgoć budowlana z innych robót, kondensacja w źle zaprojektowanej przegrodzie albo zawilgocenie od strony nieogrzewanej przestrzeni. Zależność drewna od wilgotności i wynikające z niej zmiany wymiarów szeroko omawia <a href="https://research.fs.usda.gov/fpl/wood-handbook" target="_blank" rel="noopener noreferrer">Wood Handbook laboratorium USDA Forest Products</a>.</p>

        <div class="rk-timber-truth"><p><strong>Rura ma być szczelna przed zakryciem i pozostać możliwa do identyfikacji po wykonaniu podłogi.</strong> Wykonaj próbę zgodnie z dokumentacją systemu, zachowaj protokół, projekt pętli i zdjęcia z trwałymi punktami odniesienia. Zobacz także: <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próba szczelności ogrzewania podłogowego</a>.</p></div>

        <p>Jeżeli strop oddziela ogrzewane pomieszczenie od zimnej przestrzeni, układ izolacji i warstw kontrolujących przepływ powietrza oraz pary wodnej musi odpowiadać rzeczywistym warunkom brzegowym. Ogólne zasady modernizacji podwieszonych podłóg drewnianych opisuje również <a href="https://www.gov.uk/government/publications/insulating-suspended-timber-floors-best-practice" target="_blank" rel="noopener noreferrer">brytyjski poradnik dobrych praktyk dla izolowania podwieszonych stropów drewnianych</a>.</p>
      </section>

      <section class="rk-timber-section" id="rk-timber-hydraulika" aria-labelledby="rk-timber-h2-9">
        <div class="rk-timber-section-head">
          <div class="rk-timber-section-no">09</div>
          <div><h2 id="rk-timber-h2-9">Rura, długość pętli, przepływ i strata ciśnienia</h2><p>Lekka konstrukcja podłogi nie zmienia praw hydrauliki.</p></div>
        </div>

        <p>Sucha podłogówka na drewnianym stropie wymaga takiego samego bilansu energii i przepływu jak każdy wodny system powierzchniowy. Dla każdej pętli trzeba znać moc przypisaną do strefy oraz projektową różnicę temperatury wody. Następnie wyznacza się strumień masy, dobiera średnicę przewodu i oblicza stratę ciśnienia z uwzględnieniem rury, łuków, przyłączy, rozdzielacza i armatury.</p>

        <div class="rk-timber-formula">
          <code>ṁ = Φ / (cₚ × ΔT)</code>
          <p>Dla pętli oddającej 800 W i różnicy temperatury wody 5 K orientacyjny strumień wynosi około 0,038 kg/s, czyli około 137 kg/h. To pierwszy krok; o wymaganej wysokości podnoszenia decydują jeszcze opory hydrauliczne najtrudniejszego obiegu.</p>
        </div>

        <div class="rk-timber-card-grid four">
          <div class="rk-timber-card"><div class="rk-timber-card-icon">L</div><h4>Długość pętli</h4><p>Obejmuje odcinek aktywny oraz dojście od rozdzielacza. Nie ustala się jej wyłącznie według powierzchni pokoju.</p></div>
          <div class="rk-timber-card"><div class="rk-timber-card-icon">d</div><h4>Średnica wewnętrzna</h4><p>Wpływa na prędkość przepływu i stratę ciśnienia; ten sam wymiar zewnętrzny nie gwarantuje tej samej hydrauliki.</p></div>
          <div class="rk-timber-card"><div class="rk-timber-card-icon">V̇</div><h4>Przepływ</h4><p>Wynika z mocy pętli i przyjętej różnicy temperatury, a następnie podlega regulacji na rozdzielaczu.</p></div>
          <div class="rk-timber-card"><div class="rk-timber-card-icon">Δp</div><h4>Opory</h4><p>Rosną wraz z długością i przepływem. Pętle powinny mieścić się w możliwościach pompy i zaworów regulacyjnych.</p></div>
        </div>

        <h3>Czy każda pętla może mieć 100 metrów?</h3>
        <p>Nie należy traktować 100 m jako uniwersalnego limitu. Dopuszczalna długość zależy od średnicy i budowy przewodu, przepływu, temperatur, mocy, dopuszczalnej straty ciśnienia, rozdzielacza oraz pompy. W systemach suchych czasem stosuje się mniejsze przewody i inne geometrie kanałów, dlatego pętla akceptowalna w klasycznym jastrychu może nie być poprawnym wzorcem.</p>

        <div class="rk-timber-note"><p><strong>Rozdzielacza nie ustawiaj „na równe przepływy”.</strong> Każdy obieg ma inne obciążenie i długość. Nastawy powinny wynikać z obliczeń hydraulicznych oraz przypisanej mocy, a nie z próby uzyskania identycznych wskazań na wszystkich rotametrach.</p></div>
      </section>

      <section class="rk-timber-section" id="rk-timber-pomieszczenia" aria-labelledby="rk-timber-h2-10">
        <div class="rk-timber-section-head">
          <div class="rk-timber-section-no">10</div>
          <div><h2 id="rk-timber-h2-10">Łazienka, poddasze i dom szkieletowy — kiedy wymagania rosną?</h2><p>Ten sam strop może wymagać różnych rozwiązań w różnych pomieszczeniach.</p></div>
        </div>

        <div class="rk-timber-example-grid">
          <div class="rk-timber-example"><h3>Łazienka na drewnianym stropie</h3><p>Często ma wysokie zapotrzebowanie na moc i małą aktywną powierzchnię. Trzeba skoordynować hydroizolację, odpływy, sztywność pod płytki, strefy bez rur oraz dopuszczalną temperaturę.</p><code>Priorytet: moc + szczelność + sztywność podłoża</code></div>
          <div class="rk-timber-example"><h3>Ogrzewane poddasze</h3><p><strong>Podłogówka na drewnianym poddaszu</strong> wymaga obliczeń mimo zwykle mniejszej powierzchni przegród pionowych. Ważne są akustyka stropu, wysokość progów oraz przebieg pionów do rozdzielacza.</p><code>Priorytet: wysokość warstw + trasy + akustyka</code></div>
          <div class="rk-timber-example"><h3>Dom szkieletowy</h3><p>W nowym budynku konstrukcję i podłogówkę można skoordynować od początku. Nie wolno jednak przenosić typowego przekroju z domu murowanego bez analizy sztywności, wilgoci i detali.</p><code>Priorytet: wspólny projekt konstrukcji i instalacji</code></div>
        </div>

        <p>Osobne wymagania budynku lekkiego rozwija poradnik <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/">ogrzewanie podłogowe w domu szkieletowym — różnice i pułapki</a>. W łazience warto też rozważyć, czy powierzchnia podłogi sama pokryje moc projektową, czy potrzebne będzie dodatkowe źródło ciepła.</p>
      </section>

      <section class="rk-timber-section" id="rk-timber-kroki" aria-labelledby="rk-timber-h2-11">
        <div class="rk-timber-section-head">
          <div class="rk-timber-section-no">11</div>
          <div><h2 id="rk-timber-h2-11">Jak zaprojektować podłogówkę na drewnianym stropie krok po kroku?</h2><p>Właściwa kolejność ogranicza kosztowne cofanie decyzji.</p></div>
        </div>

        <ol class="rk-timber-howto">
          <li class="rk-timber-howto-step"><span>01</span><div><h3>Zinwentaryzuj strop</h3><p>Ustal geometrię, podparcie, przekroje, rozstaw, stan drewna, warstwy istniejące, miejsca osłabień i przebieg instalacji. W modernizacji wykonaj potrzebne odkrywki.</p></div></li>
          <li class="rk-timber-howto-step"><span>02</span><div><h3>Uzyskaj ocenę konstruktora</h3><p>Potwierdź nośność, ugięcia, drgania oraz dopuszczalny przyrost obciążenia stałego. Zapisz ograniczenia dotyczące otworów i wzmocnień.</p></div></li>
          <li class="rk-timber-howto-step"><span>03</span><div><h3>Policz obciążenie cieplne pomieszczeń</h3><p>Wyznacz straty w warunkach projektowych oraz aktywną powierzchnię podłogi. Nie opieraj doboru wyłącznie na metrażu domu.</p></div></li>
          <li class="rk-timber-howto-step"><span>04</span><div><h3>Porównaj warianty warstw</h3><p>Zestaw masę, wysokość, sztywność, akustykę, opór cieplny, bezwładność i możliwość przeprowadzenia rur bez naruszania belek.</p></div></li>
          <li class="rk-timber-howto-step"><span>05</span><div><h3>Oblicz moc i hydraulikę</h3><p>Dobierz rozstaw, temperaturę wody, długość pętli, przepływy i opory. Sprawdź współpracę z rozdzielaczem, pompą i automatyką.</p></div></li>
          <li class="rk-timber-howto-step"><span>06</span><div><h3>Skoordynuj okładzinę oraz detale</h3><p>Uwzględnij opór i masę posadzki, wymagania kleju, hydroizolację, szczeliny, progi, schody, drzwi, przejścia instalacyjne i ochronę ogniową.</p></div></li>
          <li class="rk-timber-howto-step"><span>07</span><div><h3>Wykonaj próbę i dokumentację powykonawczą</h3><p>Sprawdź szczelność przed zakryciem, sfotografuj przebieg pętli, zapisz długości oraz nastawy i zachowaj instrukcję uruchomienia.</p></div></li>
          <li class="rk-timber-howto-step"><span>08</span><div><h3>Uruchom układ zgodnie z dokumentacją</h3><p>Nie przyjmuj uniwersalnego tempa podnoszenia temperatury. Postępuj zgodnie z wymaganiami systemu grzejnego, płyt, kleju i okładziny.</p></div></li>
        </ol>

        <p>Pełny projekt powinien łączyć część cieplną i hydrauliczną z jednoznacznym rzutem pętli, zestawieniem długości, przepływów oraz temperatur. Sprawdź, <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">jak powinien wyglądać profesjonalny projekt ogrzewania podłogowego</a>.</p>
      </section>

      <section class="rk-timber-section" id="rk-timber-bledy" aria-labelledby="rk-timber-h2-12">
        <div class="rk-timber-section-head">
          <div class="rk-timber-section-no">12</div>
          <div><h2 id="rk-timber-h2-12">Najczęstsze błędy przy ogrzewaniu podłogowym na drewnianym stropie</h2><p>Większość powstaje przed ułożeniem pierwszego metra rury.</p></div>
        </div>

        <div class="rk-timber-error-grid">
          <div class="rk-timber-error"><div class="rk-timber-error-no">01</div><div><h4>„System jest lekki, więc strop na pewno wytrzyma”</h4><p>Bez inwentaryzacji i obliczeń nie wiadomo, jaki zapas ma konstrukcja ani czy ograniczeniem nie są ugięcia lub drgania.</p></div></div>
          <div class="rk-timber-error"><div class="rk-timber-error-no">02</div><div><h4>Liczenie tylko masy warstwy grzejnej</h4><p>Do bilansu trzeba włączyć płyty, okładzinę, klej, podkład, maty akustyczne i pozostałe nowe elementy.</p></div></div>
          <div class="rk-timber-error"><div class="rk-timber-error-no">03</div><div><h4>Wycinanie belek dla wygodnej trasy</h4><p>Otwór w złym miejscu może istotnie osłabić element. Przejścia wymagają koordynacji z konstruktorem.</p></div></div>
          <div class="rk-timber-error"><div class="rk-timber-error-no">04</div><div><h4>Brak obliczenia mocy podłogi</h4><p>Gęsty rozstaw nie gwarantuje pokrycia strat, jeśli aktywna powierzchnia jest mała albo opór warstw wysoki.</p></div></div>
          <div class="rk-timber-error"><div class="rk-timber-error-no">05</div><div><h4>Miękki podkład jako lekarstwo na akustykę</h4><p>Zbyt podatna warstwa może pogorszyć stabilność podłogi. Rozwiązanie akustyczne musi współpracować z płytami.</p></div></div>
          <div class="rk-timber-error"><div class="rk-timber-error-no">06</div><div><h4>Brak próby i zdjęć pętli</h4><p>Po zamknięciu warstw naprawa oraz bezpieczne wiercenie stają się trudniejsze. Dokumentacja powykonawcza jest elementem instalacji.</p></div></div>
          <div class="rk-timber-error"><div class="rk-timber-error-no">07</div><div><h4>Jedna temperatura dla każdego drewna</h4><p>Ograniczenia zależą od konkretnej okładziny, wilgotności, sposobu montażu i zaleceń systemowych.</p></div></div>
          <div class="rk-timber-error"><div class="rk-timber-error-no">08</div><div><h4>Brak koordynacji progu i schodów</h4><p>Zmiana wysokości podłogi wpływa na drzwi, balustrady, pierwszy i ostatni stopień oraz połączenia z sąsiednimi pomieszczeniami.</p></div></div>
        </div>
      </section>

      <section class="rk-timber-section" id="rk-timber-zrodla" aria-labelledby="rk-timber-h2-13">
        <div class="rk-timber-section-head">
          <div class="rk-timber-section-no">13</div>
          <div><h2 id="rk-timber-h2-13">Podstawa techniczna i źródła</h2><p>Źródła neutralne: normy, instytucje publiczne i opracowania naukowo-techniczne.</p></div>
        </div>

        <div class="rk-timber-sources">
          <ul>
            <li><a href="https://www.iso.org/standard/74685.html" target="_blank" rel="noopener noreferrer">ISO 11855-5:2021</a> — zasady instalacji systemów ogrzewania i chłodzenia powierzchniowego.</li>
            <li><a href="https://www.iso.org/standard/64999.html" target="_blank" rel="noopener noreferrer">ISO 11855-6:2018</a> — wymagania dotyczące sterowania systemami powierzchniowymi.</li>
            <li><a href="https://www.iso.org/standard/69830.html" target="_blank" rel="noopener noreferrer">ISO 11855-7:2019</a> — obliczenia wejścia energii do systemów ogrzewania i chłodzenia powierzchniowego.</li>
            <li><a href="https://eurocodes.jrc.ec.europa.eu/publications/manual-design-timber-buildings-structures-eurocode-5" target="_blank" rel="noopener noreferrer">JRC: Manual for the design of timber building structures to Eurocode 5</a> — projektowanie konstrukcji drewnianych.</li>
            <li><a href="https://eurocodes.jrc.ec.europa.eu/publications/fire-safety-timber-buildings" target="_blank" rel="noopener noreferrer">JRC: Fire safety in timber buildings</a> — bezpieczeństwo pożarowe budynków drewnianych.</li>
            <li><a href="https://research.fs.usda.gov/fpl/wood-handbook" target="_blank" rel="noopener noreferrer">USDA Forest Products Laboratory: Wood Handbook</a> — właściwości drewna, wilgotność i projektowanie z wykorzystaniem materiałów drzewnych.</li>
            <li><a href="https://www.gov.uk/government/publications/insulating-suspended-timber-floors-best-practice" target="_blank" rel="noopener noreferrer">GOV.UK: Insulating suspended timber floors — best practice</a> — zasady izolowania podwieszonych podłóg drewnianych.</li>
          </ul>
        </div>
        <p class="rk-timber-small">Numery i zakres norm należy zawsze zestawić z aktualnymi, właściwymi dla inwestycji dokumentami krajowymi, projektem konstrukcji oraz dokumentacją konkretnego systemu. Artykuł nie zastępuje licencjonowanego opracowania technicznego.</p>
      </section>

      <section class="rk-timber-section" id="rk-timber-faq" aria-labelledby="rk-timber-h2-14">
        <div class="rk-timber-section-head">
          <div class="rk-timber-section-no">14</div>
          <div><h2 id="rk-timber-h2-14">FAQ — ogrzewanie podłogowe na drewnianym stropie</h2><p>Krótkie odpowiedzi na pytania z długiego ogona.</p></div>
        </div>

        <div class="rk-timber-faq-list">
          <details class="rk-timber-faq"><summary>Czy ogrzewanie podłogowe nadaje się do drewnianego stropu?</summary><div class="rk-timber-faq-answer"><p>Tak, jeżeli konstruktor potwierdzi możliwość przeniesienia nowych obciążeń i spełnienie warunków użytkowalności, a projektant instalacji sprawdzi moc, temperatury, przepływy i opory. Najczęściej stosuje się lekki system suchy, ale nie jest on automatycznie bezpieczny dla każdego stropu.</p></div></details>
          <details class="rk-timber-faq"><summary>Czy sucha podłogówka na drewnianym stropie wymaga oceny konstruktora?</summary><div class="rk-timber-faq-answer"><p>Tak. Mała masa ogranicza obciążenie, lecz konstruktor nadal powinien ocenić belki, poszycie, podpory, stan drewna, połączenia, ugięcia i drgania oraz określić dopuszczalny przyrost obciążenia stałego.</p></div></details>
          <details class="rk-timber-faq"><summary>Ile waży ogrzewanie podłogowe bez wylewki?</summary><div class="rk-timber-faq-answer"><p>Nie ma jednej wartości. Należy zsumować masę płyt systemowych, elementów przewodzących, rur, suchych płyt rozkładających obciążenie, okładziny, kleju lub podkładu oraz warstw pomocniczych. Wiarygodny wynik pochodzi z kart produktów i projektu przekroju.</p></div></details>
          <details class="rk-timber-faq"><summary>Czy można zrobić tradycyjną wylewkę na stropie drewnianym?</summary><div class="rk-timber-faq-answer"><p>Nie jest to wykluczone z definicji, ale wymaga obliczeń konstrukcji, sprawdzenia dużego obciążenia stałego, ugięć, wilgoci technologicznej, szczelności warstw i pracy materiałów. W istniejącym budynku decyzji nie należy podejmować bez inwentaryzacji.</p></div></details>
          <details class="rk-timber-faq"><summary>Czy podłogówkę można ułożyć między belkami stropowymi?</summary><div class="rk-timber-faq-answer"><p>Tak, istnieją takie układy. Trzeba zapewnić dobry kontakt cieplny z podłogą, izolację od dołu, bezpieczne prowadzenie rur bez osłabiania belek oraz dostępne rozwiązanie przejść i przyłączy. Moc musi zostać obliczona dla rzeczywistego przekroju.</p></div></details>
          <details class="rk-timber-faq"><summary>Czy można ułożyć ogrzewanie podłogowe na płycie OSB?</summary><div class="rk-timber-faq-answer"><p>Można rozważyć system przeznaczony do montażu na odpowiednim poszyciu drewnopochodnym, ale sama nazwa OSB nie potwierdza nośności ani sztywności. Liczą się typ, grubość, kierunek ułożenia, podparcie krawędzi, rozstaw belek, łączniki i dokumentacja systemu.</p></div></details>
          <details class="rk-timber-faq"><summary>Czy sucha podłogówka współpracuje z pompą ciepła?</summary><div class="rk-timber-faq-answer"><p>Może współpracować bardzo dobrze, jeśli pokrywa obciążenie cieplne przy niskiej temperaturze zasilania. Trzeba policzyć wpływ aktywnej powierzchni, rozstawu rur, elementów przewodzących i oporu okładziny. Sam system suchy nie gwarantuje wysokiej sprawności pompy ciepła.</p></div></details>
          <details class="rk-timber-faq"><summary>Jaki rozstaw rur zastosować na drewnianym stropie?</summary><div class="rk-timber-faq-answer"><p>Rozstaw wynika z wymaganej mocy, temperatury wody, geometrii elementów systemowych i oporu warstw. Nie należy wybierać 10 lub 15 cm na podstawie zwyczaju. Trzeba użyć obliczeń dla danego pomieszczenia i konkretnego systemu.</p></div></details>
          <details class="rk-timber-faq"><summary>Czy drewniana podłoga ogranicza moc ogrzewania?</summary><div class="rk-timber-faq-answer"><p>Tak, jej opór cieplny może ograniczać strumień ciepła. Znaczenie mają gatunek i budowa wyrobu, grubość, przewodność, sposób mocowania, podkład oraz dopuszczalna temperatura. Parametry należy potwierdzić w dokumentacji konkretnej okładziny.</p></div></details>
          <details class="rk-timber-faq"><summary>Czy przy suchej podłogówce potrzebna jest próba szczelności?</summary><div class="rk-timber-faq-answer"><p>Tak. Próbę wykonuje się przed trwałym zakryciem przewodów zgodnie z projektem i dokumentacją systemu. Należy zachować protokół, zdjęcia przebiegu rur, długości pętli i dane dotyczące nastaw.</p></div></details>
          <details class="rk-timber-faq"><summary>Czy system suchy zawsze jest cichy?</summary><div class="rk-timber-faq-answer"><p>Nie. Skrzypienie i dźwięki uderzeniowe zależą od sztywności poszycia, podparcia płyt, połączeń, warstw sprężystych, szczelin obwodowych oraz jakości montażu. Rozwiązanie cieplne i akustyczne trzeba koordynować.</p></div></details>
          <details class="rk-timber-faq"><summary>Czy można samodzielnie policzyć nośność stropu suwakiem online?</summary><div class="rk-timber-faq-answer"><p>Nie w sposób wiarygodny. Do oceny potrzebne są dane o geometrii, podparciu, klasie i stanie drewna, połączeniach, osłabieniach, obciążeniach, ugięciach i drganiach. Laboratorium w artykule tylko sumuje ciężar warstw i porównuje go z limitem podanym przez konstruktora.</p></div></details>
        </div>
      </section>

      <div class="rk-timber-cta" aria-label="Projekt ogrzewania podłogowego">
        <h3>Potrzebujesz podłogówki policzonej dla konkretnego budynku?</h3>
        <p>Projekt określa zapotrzebowanie cieplne pomieszczeń, aktywne powierzchnie, rozstaw i przebieg pętli, temperaturę zasilania, długości, przepływy, straty ciśnienia oraz nastawy rozdzielacza. W przypadku drewnianego stropu dokumentację instalacji należy skoordynować z oceną konstruktora i wybranym układem warstw.</p>
        <a class="rk-timber-cta-link" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
        <small>To jedyne CTA sprzedażowe w artykule. Odnośnik prowadzi do strony usługi Projekt-Ogrzewania.pl należącej do autora opracowania.</small>
      </div>

      <aside class="rk-timber-author-box" aria-labelledby="rk-timber-author-title">
        <div class="rk-timber-author-head">
          <div><h3 id="rk-timber-author-title">Autor opracowania</h3><p>Praktyka projektowa, wiedza techniczna i język zrozumiały dla inwestora.</p></div>
          <div class="rk-timber-author-mark">E-E-A-T • HVAC</div>
        </div>
        <div class="rk-timber-author-main">
          <div class="rk-timber-author-profile">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" width="174" height="174" loading="lazy">
            <h4>Robert Kucharski</h4>
            <span class="rk-timber-author-role">Projektant instalacji sanitarnych • specjalista HVAC i ogrzewania podłogowego</span>
          </div>
          <div class="rk-timber-author-content">
            <div class="rk-timber-quote"><blockquote>„Na drewnianym stropie nie zaczynam od wyboru płyty systemowej. Najpierw ustalam, ile konstrukcja może bezpiecznie przyjąć, ile ciepła potrzebuje każde pomieszczenie i jak poprowadzić rury bez naruszania belek. Dopiero przecięcie tych trzech warunków daje poprawny przekrój podłogi.”</blockquote></div>
            <div class="rk-timber-tab-buttons" role="tablist" aria-label="Informacje o autorze">
              <button class="rk-timber-tab-button is-active" type="button" role="tab" aria-selected="true" data-timber-author-tab="about">O autorze</button>
              <button class="rk-timber-tab-button" type="button" role="tab" aria-selected="false" tabindex="-1" data-timber-author-tab="experience">Doświadczenie</button>
              <button class="rk-timber-tab-button" type="button" role="tab" aria-selected="false" tabindex="-1" data-timber-author-tab="portals">Portale</button>
            </div>
            <div class="rk-timber-tab-panel" role="tabpanel" data-timber-author-panel="about">
              <p>Specjalizuję się w projektowaniu wodnego ogrzewania podłogowego, obliczeniach obciążenia cieplnego oraz hydraulice instalacji. Łączę wymagania źródła ciepła, charakterystykę podłogi, przepływy i automatykę w jeden możliwy do wykonania układ.</p>
            </div>
            <div class="rk-timber-tab-panel" role="tabpanel" data-timber-author-panel="experience" hidden>
              <p>Przygotowuję techniczne opracowania dla inwestorów budujących i modernizujących domy. W analizach oddzielam dane projektowe od orientacyjnych przykładów, jasno wskazuję zakres odpowiedzialności konstruktora, projektanta instalacji i wykonawcy oraz dokumentuję powiązania właścicielskie serwisów.</p>
            </div>
            <div class="rk-timber-tab-panel" role="tabpanel" data-timber-author-panel="portals" hidden>
              <p>Jestem właścicielem i autorem publikacji w trzech serwisach branżowych. Linki są jawne i prowadzą do moich własnych portali:</p>
              <div class="rk-timber-portals">
                <a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a>
                <a href="https://remont.biz.pl/">Remont.biz.pl</a>
                <a href="https://sobir.pl/">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/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/#webpage",
      "url": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/",
      "name": "Czy ogrzewanie podłogowe nadaje się do drewnianego stropu? System suchy, ciężar i poprawne warstwy",
      "description": "Czy ogrzewanie podłogowe nadaje się do drewnianego stropu? Sprawdź system suchy, ciężar warstw, moc, akustykę, wilgoć i wymagane obliczenia.",
      "inLanguage": "pl-PL",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
      "about": [
        { "@type": "Thing", "name": "Ogrzewanie podłogowe na drewnianym stropie" },
        { "@type": "Thing", "name": "Suchy system ogrzewania podłogowego" },
        { "@type": "Thing", "name": "Konstrukcje drewniane" }
      ],
      "mainEntity": { "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/#article" },
      "dateModified": "2026-08-25",
      "potentialAction": {
        "@type": "ReadAction",
        "target": ["https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/"]
      }
    },
    {
      "@type": ["TechArticle", "Article"],
      "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/#article",
      "url": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/",
      "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/#webpage" },
      "headline": "Czy ogrzewanie podłogowe nadaje się do drewnianego stropu? System suchy, ciężar i poprawne warstwy",
      "alternativeHeadline": "Ogrzewanie podłogowe na drewnianym stropie — system suchy, nośność, moc i montaż",
      "description": "Techniczny poradnik o suchej podłogówce na stropie drewnianym: ocena konstrukcji, ciężar warstw, moc cieplna, opór okładziny, hydraulika, akustyka, wilgoć i wykonanie.",
      "inLanguage": "pl-PL",
      "dateModified": "2026-08-25",
      "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,
      "articleSection": [
        "Ogrzewanie podłogowe",
        "System suchy",
        "Drewniany strop",
        "Hydraulika instalacji",
        "Budownictwo drewniane"
      ],
      "keywords": "czy ogrzewanie podłogowe nadaje się do drewnianego stropu, ogrzewanie podłogowe na drewnianym stropie, sucha podłogówka na drewnianym stropie, ogrzewanie podłogowe na legarach, podłogówka między belkami stropowymi, ogrzewanie podłogowe na płycie OSB, ogrzewanie podłogowe bez wylewki na drewnianym stropie, warstwy podłogówki na stropie drewnianym, podłogówka na drewnianym poddaszu, pompa ciepła i sucha podłogówka",
      "proficiencyLevel": "Expert",
      "educationalLevel": "Zaawansowany poradnik techniczny dla inwestora",
      "isAccessibleForFree": true,
      "speakable": {
        "@type": "SpeakableSpecification",
        "cssSelector": ["#rk-timber-h2-1", ".rk-timber-answer", "#rk-timber-faq"]
      },
      "hasPart": [
        { "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/#howto" },
        { "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/#faq" },
        { "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/#laboratorium" }
      ],
      "citation": [
        "https://www.iso.org/standard/74685.html",
        "https://www.iso.org/standard/64999.html",
        "https://www.iso.org/standard/69830.html",
        "https://eurocodes.jrc.ec.europa.eu/publications/manual-design-timber-buildings-structures-eurocode-5",
        "https://eurocodes.jrc.ec.europa.eu/publications/fire-safety-timber-buildings",
        "https://research.fs.usda.gov/fpl/wood-handbook",
        "https://www.gov.uk/government/publications/insulating-suspended-timber-floors-best-practice"
      ],
      "about": [
        { "@type": "Thing", "name": "Wodne ogrzewanie podłogowe" },
        { "@type": "Thing", "name": "Drewniany strop" },
        { "@type": "Thing", "name": "Suchy jastrych" },
        { "@type": "Thing", "name": "Obciążenie stałe stropu" },
        { "@type": "Thing", "name": "Opór cieplny podłogi" },
        { "@type": "Thing", "name": "Hydraulika pętli grzewczych" }
      ],
      "mentions": [
        { "@type": "DefinedTerm", "name": "Eurokod 5" },
        { "@type": "DefinedTerm", "name": "ISO 11855" },
        { "@type": "DefinedTerm", "name": "Obciążenie cieplne" },
        { "@type": "DefinedTerm", "name": "Opór cieplny R" },
        { "@type": "DefinedTerm", "name": "Strata ciśnienia" },
        { "@type": "DefinedTerm", "name": "Dźwięki uderzeniowe" }
      ]
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/#howto",
      "name": "Jak zaprojektować ogrzewanie podłogowe na drewnianym stropie",
      "description": "Kolejność przygotowania bezpiecznego rozwiązania: od inwentaryzacji konstrukcji przez bilans mocy i hydraulikę po próbę szczelności oraz uruchomienie.",
      "inLanguage": "pl-PL",
      "tool": [
        { "@type": "HowToTool", "name": "Dokumentacja lub inwentaryzacja konstrukcji" },
        { "@type": "HowToTool", "name": "Obliczenia konstruktora" },
        { "@type": "HowToTool", "name": "Projekt cieplny i hydrauliczny" },
        { "@type": "HowToTool", "name": "Manometr do próby szczelności" }
      ],
      "supply": [
        { "@type": "HowToSupply", "name": "Kompatybilny system suchego ogrzewania podłogowego" },
        { "@type": "HowToSupply", "name": "Rury i elementy rozprowadzające ciepło" },
        { "@type": "HowToSupply", "name": "Płyty rozkładające obciążenie" },
        { "@type": "HowToSupply", "name": "Okładzina dopuszczona do ogrzewania podłogowego" }
      ],
      "step": [
        { "@type": "HowToStep", "position": 1, "name": "Zinwentaryzuj strop", "text": "Ustal geometrię, podparcie, stan drewna, istniejące warstwy, osłabienia i trasy instalacji." },
        { "@type": "HowToStep", "position": 2, "name": "Uzyskaj ocenę konstruktora", "text": "Potwierdź nośność, ugięcia, drgania oraz dopuszczalny przyrost obciążenia stałego." },
        { "@type": "HowToStep", "position": 3, "name": "Policz obciążenie cieplne", "text": "Wyznacz straty każdego pomieszczenia i aktywną powierzchnię podłogi." },
        { "@type": "HowToStep", "position": 4, "name": "Porównaj warianty warstw", "text": "Zestaw masę, wysokość, sztywność, akustykę, opór cieplny i możliwość bezpiecznego prowadzenia rur." },
        { "@type": "HowToStep", "position": 5, "name": "Oblicz moc i hydraulikę", "text": "Dobierz rozstaw, temperaturę wody, długości pętli, przepływy i opory hydrauliczne." },
        { "@type": "HowToStep", "position": 6, "name": "Skoordynuj okładzinę i detale", "text": "Uwzględnij opór posadzki, hydroizolację, szczeliny, progi, schody oraz przejścia instalacyjne." },
        { "@type": "HowToStep", "position": 7, "name": "Wykonaj próbę szczelności", "text": "Sprawdź instalację przed zakryciem i przygotuj dokumentację powykonawczą przebiegu pętli." },
        { "@type": "HowToStep", "position": 8, "name": "Uruchom system zgodnie z dokumentacją", "text": "Zastosuj procedurę wymaganą przez system grzejny, płyty, klej i okładzinę." }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/#faq",
      "inLanguage": "pl-PL",
      "mainEntity": [
        { "@type": "Question", "name": "Czy ogrzewanie podłogowe nadaje się do drewnianego stropu?", "acceptedAnswer": { "@type": "Answer", "text": "Tak, jeżeli konstruktor potwierdzi możliwość przeniesienia nowych obciążeń i spełnienie warunków użytkowalności, a projektant instalacji sprawdzi moc, temperatury, przepływy i opory. Najczęściej stosuje się lekki system suchy, ale nie jest on automatycznie bezpieczny dla każdego stropu." } },
        { "@type": "Question", "name": "Czy sucha podłogówka na drewnianym stropie wymaga oceny konstruktora?", "acceptedAnswer": { "@type": "Answer", "text": "Tak. Mała masa ogranicza obciążenie, lecz konstruktor nadal powinien ocenić belki, poszycie, podpory, stan drewna, połączenia, ugięcia i drgania oraz określić dopuszczalny przyrost obciążenia stałego." } },
        { "@type": "Question", "name": "Ile waży ogrzewanie podłogowe bez wylewki?", "acceptedAnswer": { "@type": "Answer", "text": "Nie ma jednej wartości. Należy zsumować masę płyt systemowych, elementów przewodzących, rur, suchych płyt rozkładających obciążenie, okładziny, kleju lub podkładu oraz warstw pomocniczych. Wiarygodny wynik pochodzi z kart produktów i projektu przekroju." } },
        { "@type": "Question", "name": "Czy można zrobić tradycyjną wylewkę na stropie drewnianym?", "acceptedAnswer": { "@type": "Answer", "text": "Nie jest to wykluczone z definicji, ale wymaga obliczeń konstrukcji, sprawdzenia dużego obciążenia stałego, ugięć, wilgoci technologicznej, szczelności warstw i pracy materiałów. W istniejącym budynku decyzji nie należy podejmować bez inwentaryzacji." } },
        { "@type": "Question", "name": "Czy podłogówkę można ułożyć między belkami stropowymi?", "acceptedAnswer": { "@type": "Answer", "text": "Tak, istnieją takie układy. Trzeba zapewnić dobry kontakt cieplny z podłogą, izolację od dołu, bezpieczne prowadzenie rur bez osłabiania belek oraz dostępne rozwiązanie przejść i przyłączy. Moc musi zostać obliczona dla rzeczywistego przekroju." } },
        { "@type": "Question", "name": "Czy można ułożyć ogrzewanie podłogowe na płycie OSB?", "acceptedAnswer": { "@type": "Answer", "text": "Można rozważyć system przeznaczony do montażu na odpowiednim poszyciu drewnopochodnym, ale sama nazwa OSB nie potwierdza nośności ani sztywności. Liczą się typ, grubość, kierunek ułożenia, podparcie krawędzi, rozstaw belek, łączniki i dokumentacja systemu." } },
        { "@type": "Question", "name": "Czy sucha podłogówka współpracuje z pompą ciepła?", "acceptedAnswer": { "@type": "Answer", "text": "Może współpracować bardzo dobrze, jeśli pokrywa obciążenie cieplne przy niskiej temperaturze zasilania. Trzeba policzyć wpływ aktywnej powierzchni, rozstawu rur, elementów przewodzących i oporu okładziny. Sam system suchy nie gwarantuje wysokiej sprawności pompy ciepła." } },
        { "@type": "Question", "name": "Jaki rozstaw rur zastosować na drewnianym stropie?", "acceptedAnswer": { "@type": "Answer", "text": "Rozstaw wynika z wymaganej mocy, temperatury wody, geometrii elementów systemowych i oporu warstw. Nie należy wybierać 10 lub 15 cm na podstawie zwyczaju. Trzeba użyć obliczeń dla danego pomieszczenia i konkretnego systemu." } },
        { "@type": "Question", "name": "Czy drewniana podłoga ogranicza moc ogrzewania?", "acceptedAnswer": { "@type": "Answer", "text": "Tak, jej opór cieplny może ograniczać strumień ciepła. Znaczenie mają budowa wyrobu, grubość, przewodność, sposób mocowania, podkład oraz dopuszczalna temperatura. Parametry należy potwierdzić w dokumentacji konkretnej okładziny." } },
        { "@type": "Question", "name": "Czy przy suchej podłogówce potrzebna jest próba szczelności?", "acceptedAnswer": { "@type": "Answer", "text": "Tak. Próbę wykonuje się przed trwałym zakryciem przewodów zgodnie z projektem i dokumentacją systemu. Należy zachować protokół, zdjęcia przebiegu rur, długości pętli i dane dotyczące nastaw." } },
        { "@type": "Question", "name": "Czy system suchy zawsze jest cichy?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Skrzypienie i dźwięki uderzeniowe zależą od sztywności poszycia, podparcia płyt, połączeń, warstw sprężystych, szczelin obwodowych oraz jakości montażu. Rozwiązanie cieplne i akustyczne trzeba koordynować." } },
        { "@type": "Question", "name": "Czy można samodzielnie policzyć nośność stropu suwakiem online?", "acceptedAnswer": { "@type": "Answer", "text": "Nie w sposób wiarygodny. Do oceny potrzebne są dane o geometrii, podparciu, klasie i stanie drewna, połączeniach, osłabieniach, obciążeniach, ugięciach i drganiach. Laboratorium w artykule tylko sumuje ciężar warstw i porównuje go z limitem podanym przez konstruktora." } }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/#laboratorium",
      "name": "Laboratorium drewnianego stropu — ciężar, moc i opór okładziny",
      "url": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/#rk-timber-laboratorium",
      "applicationCategory": "EducationalApplication",
      "applicationSubCategory": "Kalkulator techniczny ogrzewania podłogowego",
      "operatingSystem": "Dowolny system z nowoczesną przeglądarką internetową",
      "browserRequirements": "JavaScript",
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "creator": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "featureList": [
        "Sumowanie dodatkowego obciążenia stałego warstw podłogi",
        "Porównanie ciężaru z limitem podanym przez konstruktora",
        "Obliczenie oporu cieplnego okładziny",
        "Porównanie wymaganej i deklarowanej mocy powierzchniowej",
        "Dynamiczny przekrój warstw",
        "Wykres porównawczy masy systemu"
      ],
      "offers": { "@type": "Offer", "price": "0", "priceCurrency": "PLN" },
      "softwareHelp": { "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/#article" }
    },
    {
      "@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",
        "Suche systemy ogrzewania podłogowego",
        "Hydraulika instalacji grzewczych",
        "Obciążenie cieplne budynków",
        "Pompy ciepła",
        "Efektywność energetyczna budynków",
        "Koordynacja instalacji z konstrukcją budynku"
      ],
      "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 initTimberGuide() {
    var root = document.getElementById("rk-timber-guide");
    if (!root) {
      return;
    }
    if (root.getAttribute("data-rk-timber-ready") === "1") {
      return;
    }
    root.setAttribute("data-rk-timber-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, label) {
      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 label === "string") {
        element.textContent = label;
      }
      return element;
    }

    var fields = {
      area: one("#rk-timber-area"),
      heating: one("#rk-timber-heating"),
      overlay: one("#rk-timber-overlay"),
      finishWeight: one("#rk-timber-finish-weight"),
      other: one("#rk-timber-other"),
      limit: one("#rk-timber-limit"),
      demand: one("#rk-timber-demand"),
      output: one("#rk-timber-output"),
      finishThickness: one("#rk-timber-finish-thickness"),
      lambda: one("#rk-timber-lambda")
    };

    var activeVariant = "dry";
    var presets = {
      dry: {
        area: 24,
        heating: 10,
        overlay: 22,
        finishWeight: 12,
        other: 4,
        limit: 65,
        demand: 55,
        output: 70,
        finishThickness: 12,
        lambda: 0.18,
        label: "system suchy nad poszyciem"
      },
      between: {
        area: 24,
        heating: 7,
        overlay: 15,
        finishWeight: 10,
        other: 3,
        limit: 55,
        demand: 48,
        output: 58,
        finishThickness: 10,
        lambda: 0.18,
        label: "rury między belkami"
      },
      wet: {
        area: 24,
        heating: 120,
        overlay: 0,
        finishWeight: 20,
        other: 5,
        limit: 100,
        demand: 60,
        output: 90,
        finishThickness: 10,
        lambda: 1.20,
        label: "mokry wariant porównawczy"
      }
    };

    function updateCrossSection(heating, overlay, finishWeight) {
      var finish = one("#rk-timber-svg-finish");
      var overlayRect = one("#rk-timber-svg-overlay");
      var heatingRect = one("#rk-timber-svg-heating");
      var pipe = one("#rk-timber-svg-pipe");
      if (!finish) {
        return;
      }

      var finishHeight = 22 + Math.min(finishWeight, 45) / 45 * 16;
      var overlayHeight = 18 + Math.min(overlay, 80) / 80 * 38;
      var heatingHeight = 34 + Math.min(heating, 140) / 140 * 54;
      var finishY = 28;
      var overlayY = finishY + finishHeight + 4;
      var heatingY = overlayY + overlayHeight + 4;
      var pipeY = heatingY + heatingHeight / 2;

      finish.setAttribute("y", finishY.toFixed(1));
      finish.setAttribute("height", finishHeight.toFixed(1));
      if (overlayRect) {
        overlayRect.setAttribute("y", overlayY.toFixed(1));
        overlayRect.setAttribute("height", overlayHeight.toFixed(1));
      }
      if (heatingRect) {
        heatingRect.setAttribute("y", heatingY.toFixed(1));
        heatingRect.setAttribute("height", heatingHeight.toFixed(1));
      }
      if (pipe) {
        pipe.setAttribute("d", "M54 " + pipeY.toFixed(1) + " H366");
      }

      setText("#rk-timber-svg-finish-text", "okładzina • " + format(finishWeight, 0) + " kg/m²");
      setText("#rk-timber-svg-overlay-text", "płyty • " + format(overlay, 0) + " kg/m²");
      setText("#rk-timber-svg-heating-text", "warstwa grzejna • " + format(heating, 0) + " kg/m²");

      var finishText = one("#rk-timber-svg-finish-text");
      var overlayText = one("#rk-timber-svg-overlay-text");
      var heatingText = one("#rk-timber-svg-heating-text");
      if (finishText) {
        finishText.setAttribute("y", (finishY + finishHeight / 2 + 4).toFixed(1));
      }
      if (overlayText) {
        overlayText.setAttribute("y", (overlayY + overlayHeight / 2 + 4).toFixed(1));
      }
      if (heatingText) {
        heatingText.setAttribute("y", (heatingY + heatingHeight / 2 - 9).toFixed(1));
      }

      var preset = presets[activeVariant];
      if (preset) {
        setText("#rk-timber-cross-label", "Dynamiczny przekrój: " + preset.label);
      }
    }

    function updateMassChart(total, limit) {
      var group = one("#rk-timber-bars");
      var chart = one("#rk-timber-mass-chart");
      if (!group) {
        return;
      }
      while (group.firstChild) {
        group.removeChild(group.firstChild);
      }

      var values = [total, limit, 120];
      var labels = ["Nowe warstwy", "Limit", "Przykład mokry"];
      var colors = ["#28c9da", "#ff6238", "#14384d"];
      var maxValue = Math.max.apply(null, values) * 1.18;

      values.forEach(function (value, index) {
        var x = 72 + index * 112;
        var barHeight = value / maxValue * 180;
        var y = 242 - barHeight;
        group.appendChild(svgElement("rect", { x: x, y: y.toFixed(1), width: 62, height: barHeight.toFixed(1), rx: 9, fill: colors[index] }));
        group.appendChild(svgElement("text", { x: x + 31, y: y - 9, "text-anchor": "middle" }, format(value, 0)));
        group.appendChild(svgElement("text", { x: x + 31, y: 268, "text-anchor": "middle" }, labels[index]));
      });

      if (chart) {
        chart.setAttribute("aria-label", "Nowe warstwy " + format(total, 0) + " kilogramów na metr kwadratowy, limit konstruktora " + format(limit, 0) + " kilogramów na metr kwadratowy, przykład mokry 120 kilogramów na metr kwadratowy");
      }
    }

    function renderLaboratory() {
      var area = valueOf(fields.area, 24);
      var heating = valueOf(fields.heating, 10);
      var overlay = valueOf(fields.overlay, 22);
      var finishWeight = valueOf(fields.finishWeight, 12);
      var other = valueOf(fields.other, 4);
      var limit = valueOf(fields.limit, 65);
      var demand = valueOf(fields.demand, 55);
      var output = valueOf(fields.output, 70);
      var finishThickness = valueOf(fields.finishThickness, 12);
      var lambda = valueOf(fields.lambda, 0.18);

      var total = heating + overlay + finishWeight + other;
      var totalRoom = total * area;
      var loadMargin = limit - total;
      var loadUse = limit > 0 ? total / limit * 100 : 0;
      var resistance = finishThickness / 1000 / lambda;
      var powerMargin = output - demand;
      var roomNeed = area * demand / 1000;
      var roomOutput = area * output / 1000;
      var wetSaving = 120 - total;

      setText("#rk-timber-area-out", format(area, 0) + " m²");
      setText("#rk-timber-heating-out", format(heating, 0) + " kg/m²");
      setText("#rk-timber-overlay-out", format(overlay, 0) + " kg/m²");
      setText("#rk-timber-finish-weight-out", format(finishWeight, 0) + " kg/m²");
      setText("#rk-timber-other-out", format(other, 0) + " kg/m²");
      setText("#rk-timber-limit-out", format(limit, 0) + " kg/m²");
      setText("#rk-timber-demand-out", format(demand, 0) + " W/m²");
      setText("#rk-timber-output-out", format(output, 0) + " W/m²");
      setText("#rk-timber-finish-thickness-out", format(finishThickness, 0) + " mm");
      setText("#rk-timber-lambda-out", format(lambda, 2) + " W/mK");

      setText("#rk-timber-total-result", format(total, 0) + " kg/m²");
      setText("#rk-timber-total-room", "Dla " + format(area, 0) + " m² oznacza około " + format(totalRoom, 0) + " kg dodatkowej masy rozłożonej powierzchniowo.");
      setText("#rk-timber-load-margin", (loadMargin >= 0 ? "+" : "") + format(loadMargin, 0) + " kg/m²");
      setText("#rk-timber-load-use", format(loadUse, 0) + "%");
      setText("#rk-timber-r-result", format(resistance, 3) + " m²K/W");
      setText("#rk-timber-power-margin", (powerMargin >= 0 ? "+" : "") + format(powerMargin, 0) + " W/m²");
      setText("#rk-timber-room-need", format(roomNeed, 2) + " kW");
      setText("#rk-timber-room-output", format(roomOutput, 2) + " kW");
      setText("#rk-timber-wet-saving", wetSaving >= 0 ? format(wetSaving, 0) + " kg/m² mniej" : format(Math.abs(wetSaving), 0) + " kg/m² więcej");

      var fill = one("#rk-timber-limit-fill");
      if (fill) {
        var fillWidth = Math.min(Math.max(loadUse, 0), 100);
        fill.style.width = fillWidth.toFixed(1) + "%";
        if (loadUse > 100) {
          fill.style.background = "#ff6238";
        } else {
          fill.style.background = "linear-gradient(90deg, #28c9da, #078fbe)";
        }
      }

      var status = one("#rk-timber-lab-status");
      var loadOk = total <= limit;
      var powerOk = output >= demand;
      if (status) {
        if (!loadOk) {
          status.textContent = "Suma nowych warstw przekracza wpisany limit konstruktora o " + format(Math.abs(loadMargin), 0) + " kg/m². Tego wariantu nie należy akceptować bez zmiany warstw lub ponownej analizy konstrukcji.";
          status.classList.add("is-warning");
          setText("#rk-timber-verdict-result", "Przekroczony limit");
        } else if (!powerOk) {
          status.textContent = "Ciężar mieści się w wpisanym limicie, ale deklarowana moc jest niższa od wymaganej o " + format(Math.abs(powerMargin), 0) + " W/m². Trzeba skorygować system lub ograniczyć straty budynku.";
          status.classList.add("is-warning");
          setText("#rk-timber-verdict-result", "Niedobór mocy");
        } else if (resistance > 0.15) {
          status.textContent = "Bilans ciężaru i mocy jest dodatni, lecz opór samej okładziny jest wysoki. Sprawdź limit całego zestawu oraz wydajność systemu dla tej warstwy.";
          status.classList.add("is-warning");
          setText("#rk-timber-verdict-result", "Sprawdź okładzinę");
        } else {
          status.textContent = "Wariant mieści się w zadanym limicie i ma dodatni bilans mocy — oba wyniki wymagają potwierdzenia dokumentacją konstrukcji i konkretnego systemu.";
          status.classList.remove("is-warning");
          setText("#rk-timber-verdict-result", "Warunkowo dodatnia");
        }
      }

      updateCrossSection(heating, overlay, finishWeight);
      updateMassChart(total, limit);
    }

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

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

    many(".rk-timber-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-timber-author-tab]");
    var tabPanels = many("[data-timber-author-panel]");

    function activateAuthorTab(key) {
      tabButtons.forEach(function (button) {
        var active = button.getAttribute("data-timber-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-timber-author-panel") === key;
        panel.hidden = !active;
      });
    }

    tabButtons.forEach(function (button, index) {
      button.addEventListener("click", function () {
        activateAuthorTab(button.getAttribute("data-timber-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-timber-author-tab"));
        nextButton.focus();
      });
    });

    var progress = one(".rk-timber-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);
    renderLaboratory();
    activateAuthorTab("about");
    updateProgress();
  }

  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", initTimberGuide);
  } else {
    initTimberGuide();
  }
  window.setTimeout(initTimberGuide, 500);
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/">Czy ogrzewanie podłogowe nadaje się do drewnianego stropu?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Jak układać rury w ogrzewaniu ślimak, meander czy podwójny meander?</title>
		<link>https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Fri, 16 May 2025 12:48:26 +0000</pubDate>
				<category><![CDATA[Budownictwo]]></category>
		<category><![CDATA[Energooszczędność]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Technologia budowlana]]></category>
		<category><![CDATA[Układanie rur grzewczych]]></category>
		<category><![CDATA[budownictwo]]></category>
		<category><![CDATA[energooszczędność]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[meandrowy]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[podwójny meander]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[remont]]></category>
		<category><![CDATA[ślimakowy]]></category>
		<category><![CDATA[układ rur]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2603</guid>

					<description><![CDATA[<p>Planujesz instalację ogrzewania podłogowego i zastanawiasz się, który układ rur będzie najlepszy? Nasz artykuł szczegółowo porównuje układy ślimakowy, meandrowy pojedynczy i podwójny meander, podając ich zalety, wady oraz praktyczne przykłady zastosowań. Dowiedz się, jak układać rury w ogrzewaniu ślimak, meander czy podwójny meander, aby zapewnić komfort cieplny i efektywność energetyczną. Poznaj wskazówki ekspertów i skorzystaj z profesjonalnego projektu, by uniknąć kosztownych błędów!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/">Jak układać rury w ogrzewaniu ślimak, meander czy podwójny meander?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<!--
  PROJEKT-OGRZEWANIA.PL — pełny kod artykułu do bloku „Własny HTML”.
  Kod wklej POD natywnym tytułem H1 generowanym przez WordPress.

  USTAWIENIA WORDPRESS / YOAST:
  Tytuł wpisu / H1: Jak układać rury w ogrzewaniu podłogowym – ślimak, meander czy podwójny meander?
  Fraza główna: jak układać rury w ogrzewaniu podłogowym
  SEO title: Ślimak czy meander? Jak układać rury podłogówki
  Meta description: Ślimak, meander czy podwójny meander? Zobacz, jak układać rury podłogówki oraz od czego zależą rozstaw, długość, zasilanie, przepływ i hydraulika pętli.
  Slug: pozostawić bez zmian — jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander

  Data publikacji: 16 maja 2025 r.
  Aktualizacja techniczna: 12 września 2026 r.
  DOKŁADNIE DWA CTA sprzedażowe: pierwsze po praktycznej sekcji i narzędziu kontrolnym, drugie przed źródłami.
  W hero nie ma CTA. Kod nie zawiera dodatkowego H1, paska postępu ani elementu sticky.
  Górne „Na skróty” zawiera każdy H2, pokazuje wszystkie pozycje i nie przewija się poziomo.
  Linki wewnętrzne otwierają się w tej samej karcie. Linki zewnętrzne występują w źródłach
  i biogramie autora oraz mają target="_blank" i rel="nofollow noopener noreferrer".
-->

<style>
  #rk-layout-guide {
    --rk-dark: #102536;
    --rk-navy: #15384d;
    --rk-blue: #078fbe;
    --rk-cyan: #25c7d8;
    --rk-cyan-soft: #e8fafd;
    --rk-orange: #ff6a3d;
    --rk-orange-soft: #fff0ea;
    --rk-green: #16836b;
    --rk-green-soft: #eaf8f3;
    --rk-yellow: #d99b16;
    --rk-yellow-soft: #fff8df;
    --rk-red: #c7443a;
    --rk-red-soft: #fff0ee;
    --rk-purple: #6659c7;
    --rk-purple-soft: #f1efff;
    --rk-ink: #1c2d38;
    --rk-text: #465d6c;
    --rk-muted: #687f8d;
    --rk-line: #d6e5eb;
    --rk-soft: #f4f9fb;
    --rk-white: #ffffff;
    width: 100%;
    color: var(--rk-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 17px;
    line-height: 1.72;
  }

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

  #rk-layout-guide [hidden] { display: none !important; }
  #rk-layout-guide img,
  #rk-layout-guide svg { display: block; max-width: 100%; }
  #rk-layout-guide button,
  #rk-layout-guide input { font: inherit; }
  #rk-layout-guide button { -webkit-tap-highlight-color: transparent; }

  #rk-layout-guide .rk-lg-shell {
    width: min(100%, 1280px);
    margin: 0 auto;
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 28px;
    background: var(--rk-white);
    box-shadow: 0 22px 70px rgba(16, 37, 54, .09);
  }

  #rk-layout-guide a {
    color: #007fae;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 3px;
  }
  #rk-layout-guide a:hover { color: #005d82; }
  #rk-layout-guide a:focus-visible,
  #rk-layout-guide button:focus-visible,
  #rk-layout-guide summary:focus-visible,
  #rk-layout-guide label:focus-visible {
    outline: 3px solid rgba(37, 199, 216, .52);
    outline-offset: 3px;
  }

  #rk-layout-guide h2,
  #rk-layout-guide h3,
  #rk-layout-guide h4,
  #rk-layout-guide p,
  #rk-layout-guide ul,
  #rk-layout-guide ol,
  #rk-layout-guide blockquote { margin-top: 0; }
  #rk-layout-guide h2,
  #rk-layout-guide h3,
  #rk-layout-guide h4 { color: var(--rk-dark); line-height: 1.18; }
  #rk-layout-guide h2 {
    margin-bottom: 18px;
    font-size: clamp(1.7rem, 3.6vw, 2.55rem);
    letter-spacing: -.035em;
  }
  #rk-layout-guide h3 {
    margin: 30px 0 12px;
    font-size: clamp(1.18rem, 2.3vw, 1.48rem);
    letter-spacing: -.018em;
  }
  #rk-layout-guide h4 { margin: 22px 0 8px; font-size: 1.05rem; }
  #rk-layout-guide p { margin-bottom: 18px; color: var(--rk-text); }
  #rk-layout-guide strong { color: var(--rk-ink); }
  #rk-layout-guide ul,
  #rk-layout-guide ol { margin-bottom: 22px; padding-left: 1.3em; color: var(--rk-text); }
  #rk-layout-guide li { margin-bottom: 8px; }
  #rk-layout-guide section[id] { scroll-margin-top: 24px; }

  #rk-layout-guide .rk-lg-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(34px, 6vw, 76px) clamp(24px, 6vw, 74px) clamp(30px, 5vw, 58px);
    background:
      radial-gradient(circle at 10% 120%, rgba(255, 106, 61, .20), transparent 38%),
      linear-gradient(128deg, #102536 0%, #123d51 55%, #0c6971 100%);
  }
  #rk-layout-guide .rk-lg-hero::before,
  #rk-layout-guide .rk-lg-hero::after {
    position: absolute;
    z-index: -1;
    content: "";
    border: clamp(22px, 4vw, 48px) solid rgba(255, 255, 255, .055);
    border-radius: 50%;
    pointer-events: none;
  }
  #rk-layout-guide .rk-lg-hero::before { right: -115px; bottom: -185px; width: 390px; height: 390px; }
  #rk-layout-guide .rk-lg-hero::after { right: 125px; bottom: -238px; width: 290px; height: 290px; }
  #rk-layout-guide .rk-lg-kicker,
  #rk-layout-guide .rk-lg-eyebrow {
    display: block;
    margin-bottom: 13px;
    color: var(--rk-orange);
    font-size: .76rem;
    font-weight: 900;
    letter-spacing: .13em;
    text-transform: uppercase;
  }
  #rk-layout-guide .rk-lg-hero-title {
    max-width: 1040px;
    margin-bottom: 20px;
    color: var(--rk-white);
    font-size: clamp(2.05rem, 5.1vw, 4.45rem);
    font-weight: 950;
    line-height: .99;
    letter-spacing: -.06em;
  }
  #rk-layout-guide .rk-lg-hero-title span { color: #5ee1ee; }
  #rk-layout-guide .rk-lg-lead {
    max-width: 1050px;
    margin-bottom: 24px;
    color: #d9ebf0;
    font-size: clamp(1.03rem, 2vw, 1.32rem);
    line-height: 1.65;
  }
  #rk-layout-guide .rk-lg-hero-tags,
  #rk-layout-guide .rk-lg-byline {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 12px;
  }
  #rk-layout-guide .rk-lg-hero-tag {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 6px 15px;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 999px;
    background: rgba(255, 255, 255, .07);
    color: var(--rk-white);
    font-size: .78rem;
    font-weight: 850;
  }
  #rk-layout-guide .rk-lg-byline { margin-top: 23px; color: #e2f1f4; font-size: .82rem; font-weight: 760; }
  #rk-layout-guide .rk-lg-byline strong { color: var(--rk-white); }
  #rk-layout-guide .rk-lg-hero-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: 34px;
  }
  #rk-layout-guide .rk-lg-hero-metric {
    min-width: 0;
    padding: 22px;
    border: 1px solid rgba(255, 255, 255, .19);
    border-radius: 19px;
    background: rgba(255, 255, 255, .075);
    backdrop-filter: blur(3px);
  }
  #rk-layout-guide .rk-lg-hero-metric b { display: block; margin-bottom: 7px; color: var(--rk-white); font-size: 1rem; }
  #rk-layout-guide .rk-lg-hero-metric span { display: block; color: #d9edf1; font-size: .91rem; line-height: 1.55; }

  #rk-layout-guide .rk-lg-nav {
    padding: 22px clamp(18px, 4vw, 48px) 24px;
    border-bottom: 1px solid var(--rk-line);
    background: #f4fafc;
  }
  #rk-layout-guide .rk-lg-nav-label {
    display: block;
    margin-bottom: 11px;
    color: var(--rk-dark);
    font-size: .74rem;
    font-weight: 950;
    letter-spacing: .12em;
    text-transform: uppercase;
  }
  #rk-layout-guide .rk-lg-nav-track { display: flex; flex-wrap: wrap; gap: 8px; }
  #rk-layout-guide .rk-lg-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 6px 11px;
    border: 1px solid #c9e0e8;
    border-radius: 999px;
    background: var(--rk-white);
    color: #275063;
    font-size: .69rem;
    font-weight: 850;
    line-height: 1.25;
    text-decoration: none;
  }
  #rk-layout-guide .rk-lg-nav a:hover { border-color: var(--rk-cyan); background: var(--rk-cyan-soft); color: var(--rk-dark); }

  #rk-layout-guide .rk-lg-content { padding: clamp(30px, 6vw, 72px) clamp(18px, 6vw, 74px) 64px; }
  #rk-layout-guide .rk-lg-section { margin-bottom: clamp(52px, 8vw, 86px); }
  #rk-layout-guide .rk-lg-section:last-child { margin-bottom: 0; }
  #rk-layout-guide .rk-lg-intro { max-width: 940px; }
  #rk-layout-guide .rk-lg-answer,
  #rk-layout-guide .rk-lg-note,
  #rk-layout-guide .rk-lg-warning {
    padding: 22px 24px;
    border-radius: 17px;
    background: var(--rk-cyan-soft);
  }
  #rk-layout-guide .rk-lg-answer { margin: 20px 0 25px; border-left: 5px solid var(--rk-cyan); }
  #rk-layout-guide .rk-lg-note { margin: 22px 0; border: 1px solid #c9e8ed; }
  #rk-layout-guide .rk-lg-warning { margin: 22px 0; border-left: 5px solid var(--rk-orange); background: var(--rk-orange-soft); }
  #rk-layout-guide .rk-lg-answer p,
  #rk-layout-guide .rk-lg-note p,
  #rk-layout-guide .rk-lg-warning p { margin: 0; color: var(--rk-text) !important; }

  #rk-layout-guide .rk-lg-grid-2,
  #rk-layout-guide .rk-lg-grid-3,
  #rk-layout-guide .rk-lg-grid-4,
  #rk-layout-guide .rk-lg-steps {
    display: grid;
    gap: 18px;
  }
  #rk-layout-guide .rk-lg-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #rk-layout-guide .rk-lg-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #rk-layout-guide .rk-lg-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  #rk-layout-guide .rk-lg-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #rk-layout-guide .rk-lg-card,
  #rk-layout-guide .rk-lg-step {
    min-width: 0;
    padding: 24px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-white);
    box-shadow: 0 10px 28px rgba(16, 37, 54, .055);
  }
  #rk-layout-guide .rk-lg-card.is-cyan { border-top: 5px solid var(--rk-cyan); }
  #rk-layout-guide .rk-lg-card.is-orange { border-top: 5px solid var(--rk-orange); }
  #rk-layout-guide .rk-lg-card.is-green { border-top: 5px solid var(--rk-green); }
  #rk-layout-guide .rk-lg-card.is-purple { border-top: 5px solid var(--rk-purple); }
  #rk-layout-guide .rk-lg-card h3,
  #rk-layout-guide .rk-lg-step h3 { margin: 0 0 9px; font-size: 1.12rem; }
  #rk-layout-guide .rk-lg-card p,
  #rk-layout-guide .rk-lg-step p { margin: 0; color: var(--rk-text) !important; }
  #rk-layout-guide .rk-lg-card ul { margin: 12px 0 0; }
  #rk-layout-guide .rk-lg-step-head { display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 16px; align-items: start; }
  #rk-layout-guide .rk-lg-number {
    position: static;
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    min-width: 54px;
    min-height: 54px;
    margin: 0;
    padding: 0;
    border-radius: 50%;
    background: #d9f3f7;
    color: #165773;
    font-size: 1rem;
    font-weight: 950;
    line-height: 1;
    text-align: center;
  }
  #rk-layout-guide .rk-lg-step:nth-child(4n+2) .rk-lg-number { background: var(--rk-orange-soft); color: #b54c2d; }
  #rk-layout-guide .rk-lg-step:nth-child(4n+3) .rk-lg-number { background: var(--rk-green-soft); color: var(--rk-green); }
  #rk-layout-guide .rk-lg-step:nth-child(4n+4) .rk-lg-number { background: var(--rk-purple-soft); color: var(--rk-purple); }

  #rk-layout-guide .rk-lg-table-wrap { overflow-x: auto; margin: 24px 0; border: 1px solid var(--rk-line); border-radius: 20px; }
  #rk-layout-guide table { width: 100%; min-width: 780px; border-collapse: collapse; background: var(--rk-white); }
  #rk-layout-guide th,
  #rk-layout-guide td { padding: 17px 18px; border-bottom: 1px solid var(--rk-line); text-align: left; vertical-align: top; }
  #rk-layout-guide th { background: var(--rk-dark); color: var(--rk-white); font-size: .82rem; line-height: 1.35; }
  #rk-layout-guide td { color: var(--rk-text); font-size: .91rem; line-height: 1.52; }
  #rk-layout-guide tbody tr:last-child td { border-bottom: 0; }
  #rk-layout-guide td strong { display: block; margin-bottom: 4px; }

  #rk-layout-guide .rk-lg-tool {
    overflow: hidden;
    border: 1px solid #c8dfe7;
    border-radius: 24px;
    background: var(--rk-white);
    box-shadow: 0 20px 54px rgba(16, 37, 54, .09);
  }
  #rk-layout-guide .rk-lg-tool-head {
    padding: clamp(24px, 4vw, 38px);
    background: linear-gradient(128deg, var(--rk-dark), #174a60);
  }
  #rk-layout-guide .rk-lg-tool-head .rk-lg-eyebrow { color: #66deea; }
  #rk-layout-guide .rk-lg-tool-head h3 { margin: 0 0 10px; color: var(--rk-white); font-size: clamp(1.42rem, 3vw, 2rem); }
  #rk-layout-guide .rk-lg-tool-head p { max-width: 920px; margin: 0; color: #d7e9ee !important; }
  #rk-layout-guide .rk-lg-tool-body { padding: clamp(18px, 4vw, 38px); }
  #rk-layout-guide .rk-lg-state-button,
  #rk-layout-guide .rk-lg-reset {
    min-height: 42px;
    padding: 9px 15px;
    border: 1px solid #bed8e2;
    border-radius: 12px;
    background: var(--rk-white);
    color: #25495b;
    cursor: pointer;
    font-size: .79rem;
    font-weight: 850;
    line-height: 1.25;
  }
  #rk-layout-guide .rk-lg-tool-disclaimer { margin: 18px 0 0; color: var(--rk-muted); font-size: .78rem; }

  #rk-layout-guide .rk-lg-check-list { display: grid; gap: 13px; }
  #rk-layout-guide .rk-lg-check-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    padding: 17px;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    background: #fbfdfe;
  }
  #rk-layout-guide .rk-lg-check-copy { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 13px; align-items: center; min-width: 0; }
  #rk-layout-guide .rk-lg-check-copy .rk-lg-number { width: 44px; height: 44px; min-width: 44px; min-height: 44px; font-size: .88rem; }
  #rk-layout-guide .rk-lg-check-copy b { display: block; color: var(--rk-dark); font-size: .91rem; }
  #rk-layout-guide .rk-lg-check-copy span { display: block; margin-top: 3px; color: var(--rk-muted); font-size: .76rem; line-height: 1.45; }
  #rk-layout-guide .rk-lg-state-group { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
  #rk-layout-guide .rk-lg-state-button { min-width: 58px; min-height: 36px; padding: 6px 9px; border-radius: 10px; font-size: .7rem; }
  #rk-layout-guide .rk-lg-state-button[data-value="yes"][aria-pressed="true"] { border-color: var(--rk-green); background: var(--rk-green); color: #fff; }
  #rk-layout-guide .rk-lg-state-button[data-value="no"][aria-pressed="true"] { border-color: var(--rk-red); background: var(--rk-red); color: #fff; }
  #rk-layout-guide .rk-lg-state-button[data-value="unknown"][aria-pressed="true"] { border-color: var(--rk-yellow); background: var(--rk-yellow-soft); color: #704c00; }
  #rk-layout-guide .rk-lg-check-result { margin-top: 22px; padding: 22px; border: 1px solid var(--rk-line); border-radius: 18px; background: var(--rk-soft); }
  #rk-layout-guide .rk-lg-score-line { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 16px; align-items: baseline; }
  #rk-layout-guide .rk-lg-score-line b { font-size: 1.13rem; }
  #rk-layout-guide .rk-lg-score-line span { color: var(--rk-muted); font-size: .8rem; font-weight: 800; }
  #rk-layout-guide .rk-lg-progress { overflow: hidden; height: 11px; margin: 12px 0 17px; border-radius: 999px; background: #dce9ed; }
  #rk-layout-guide .rk-lg-progress-bar { width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--rk-orange), var(--rk-cyan), var(--rk-green)); transition: width .3s ease; }
  #rk-layout-guide .rk-lg-result-status { margin-bottom: 10px; color: var(--rk-dark); font-size: 1.03rem; font-weight: 900; }
  #rk-layout-guide .rk-lg-missing { margin: 0 0 16px; padding-left: 1.2em; font-size: .82rem; }
  #rk-layout-guide .rk-lg-reset { border-color: var(--rk-dark); background: var(--rk-dark); color: #fff; }

  #rk-layout-guide .rk-lg-sales-cta {
    margin: 0 0 clamp(54px, 8vw, 88px);
    padding: clamp(26px, 5vw, 44px);
    border-radius: 23px;
    background:
      radial-gradient(circle at 90% 120%, rgba(37, 199, 216, .26), transparent 36%),
      linear-gradient(130deg, #102536, #16475d);
    color: #fff;
  }
  #rk-layout-guide .rk-lg-sales-cta .rk-lg-eyebrow { color: #62deea; }
  #rk-layout-guide .rk-lg-sales-cta h3 { margin: 0 0 10px; color: #fff; font-size: clamp(1.42rem, 3.2vw, 2.1rem); }
  #rk-layout-guide .rk-lg-sales-cta p { max-width: 940px; color: #d8ebef !important; }
  #rk-layout-guide .rk-lg-cta-limit { margin: 18px 0; padding: 15px 17px; border: 1px solid rgba(255, 255, 255, .16); border-radius: 14px; background: rgba(255, 255, 255, .07); color: #e5f3f5; font-size: .86rem; }
  #rk-layout-guide .rk-lg-cta-limit strong { color: #fff; }
  #rk-layout-guide .rk-lg-cta-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 12px 20px;
    border-radius: 12px;
    background: var(--rk-orange);
    color: #fff;
    font-size: .86rem;
    font-weight: 900;
    text-align: center;
    text-decoration: none;
  }
  #rk-layout-guide .rk-lg-cta-button:hover { background: #e9552d; color: #fff; }

  #rk-layout-guide .rk-lg-process { position: relative; display: grid; gap: 16px; }
  #rk-layout-guide .rk-lg-process-item { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 17px; align-items: start; padding: 20px; border: 1px solid var(--rk-line); border-radius: 17px; background: #fbfdfe; }
  #rk-layout-guide .rk-lg-process-item h3 { margin: 3px 0 7px; font-size: 1.05rem; }
  #rk-layout-guide .rk-lg-process-item p { margin: 0; color: var(--rk-text) !important; }

  #rk-layout-guide .rk-lg-faq { display: grid; gap: 12px; }
  #rk-layout-guide .rk-lg-faq details { overflow: hidden; border: 1px solid var(--rk-line); border-radius: 15px; background: var(--rk-white); }
  #rk-layout-guide .rk-lg-faq summary { position: relative; padding: 18px 52px 18px 19px; color: var(--rk-dark); cursor: pointer; font-weight: 880; list-style: none; }
  #rk-layout-guide .rk-lg-faq summary::-webkit-details-marker { display: none; }
  #rk-layout-guide .rk-lg-faq summary::after { position: absolute; top: 50%; right: 18px; content: "+"; color: var(--rk-blue); font-size: 1.45rem; line-height: 1; transform: translateY(-50%); }
  #rk-layout-guide .rk-lg-faq details[open] summary::after { content: "−"; }
  #rk-layout-guide .rk-lg-faq-answer { padding: 0 19px 18px; }
  #rk-layout-guide .rk-lg-faq-answer p { margin: 0; color: var(--rk-text) !important; }

  #rk-layout-guide .rk-lg-sources { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
  #rk-layout-guide .rk-lg-source { min-width: 0; padding: 20px; border: 1px solid var(--rk-line); border-radius: 16px; background: #fbfdfe; }
  #rk-layout-guide .rk-lg-source strong { display: block; margin-bottom: 7px; }
  #rk-layout-guide .rk-lg-source p { margin: 0; color: var(--rk-text) !important; font-size: .83rem; }

  #rk-layout-guide .rk-lg-author {
    overflow: hidden;
    border-radius: 24px;
    background: var(--rk-dark);
    color: #fff;
  }
  #rk-layout-guide .rk-lg-author-head { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; padding: 28px 30px 20px; }
  #rk-layout-guide .rk-lg-author-head h2 { margin-bottom: 7px; color: #fff; }
  #rk-layout-guide .rk-lg-author-head p { margin: 0; color: #d4e7ec !important; }
  #rk-layout-guide .rk-lg-author-mark { flex: 0 0 auto; padding: 8px 12px; border: 1px solid rgba(255, 255, 255, .17); border-radius: 999px; color: #dff3f5; font-size: .68rem; font-weight: 850; }
  #rk-layout-guide .rk-lg-author-layout { display: grid; grid-template-columns: 280px minmax(0, 1fr); }
  #rk-layout-guide .rk-lg-author-side { padding: 30px; background: rgba(255, 255, 255, .055); }
  #rk-layout-guide .rk-lg-author-photo { width: 132px; height: 132px; overflow: hidden; margin-bottom: 17px; border: 4px solid rgba(255, 255, 255, .18); border-radius: 50%; }
  #rk-layout-guide .rk-lg-author-photo img { width: 100%; height: 100%; object-fit: cover; }
  #rk-layout-guide .rk-lg-author-name { margin-bottom: 4px; color: #fff; font-size: 1.25rem; font-weight: 950; }
  #rk-layout-guide .rk-lg-author-name a { color: #fff; text-decoration: none; }
  #rk-layout-guide .rk-lg-author-role { color: #cae0e6; font-size: .8rem; line-height: 1.5; }
  #rk-layout-guide .rk-lg-social-label,
  #rk-layout-guide .rk-lg-mini-label { margin: 22px 0 9px; color: #7ce2eb; font-size: .65rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
  #rk-layout-guide .rk-lg-social { display: flex; gap: 9px; }
  #rk-layout-guide .rk-lg-social a { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid rgba(255, 255, 255, .19); border-radius: 50%; background: rgba(255, 255, 255, .07); }
  #rk-layout-guide .rk-lg-social svg { width: 18px; height: 18px; fill: #fff; }
  #rk-layout-guide .rk-lg-author-main { padding: 30px; background: #fff; color: var(--rk-ink); }
  #rk-layout-guide .rk-lg-author-quote { margin: 0 0 22px; padding: 18px 20px; border-left: 5px solid var(--rk-orange); border-radius: 0 14px 14px 0; background: var(--rk-orange-soft); }
  #rk-layout-guide .rk-lg-author-quote p { margin: 0; color: #4d3a33 !important; font-weight: 780; }
  #rk-layout-guide .rk-lg-author-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 17px; }
  #rk-layout-guide .rk-lg-author-tab { padding: 8px 12px; border: 1px solid var(--rk-line); border-radius: 999px; color: #315264; cursor: pointer; font-size: .73rem; font-weight: 850; }
  #rk-layout-guide .rk-lg-author input[type="radio"] { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
  #rk-layout-guide .rk-lg-author-panel { display: none; }
  #rk-layout-guide #rk-lg-author-about:checked ~ .rk-lg-author-layout .rk-lg-author-panel-about,
  #rk-layout-guide #rk-lg-author-exp:checked ~ .rk-lg-author-layout .rk-lg-author-panel-exp,
  #rk-layout-guide #rk-lg-author-method:checked ~ .rk-lg-author-layout .rk-lg-author-panel-method { display: block; }
  #rk-layout-guide #rk-lg-author-about:checked ~ .rk-lg-author-layout label[for="rk-lg-author-about"],
  #rk-layout-guide #rk-lg-author-exp:checked ~ .rk-lg-author-layout label[for="rk-lg-author-exp"],
  #rk-layout-guide #rk-lg-author-method:checked ~ .rk-lg-author-layout label[for="rk-lg-author-method"] { border-color: var(--rk-blue); background: var(--rk-blue); color: #fff; }
  #rk-layout-guide .rk-lg-author-panel p { color: var(--rk-text) !important; }
  #rk-layout-guide .rk-lg-portals { display: flex; flex-wrap: wrap; gap: 8px; }
  #rk-layout-guide .rk-lg-portals a { padding: 7px 11px; border: 1px solid var(--rk-line); border-radius: 999px; background: var(--rk-soft); font-size: .71rem; font-weight: 820; text-decoration: none; }

  @media (max-width: 980px) {
    #rk-layout-guide .rk-lg-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #rk-layout-guide .rk-lg-grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (max-width: 760px) {
    #rk-layout-guide { font-size: 16px; }
    #rk-layout-guide .rk-lg-shell { border-radius: 0; }
    #rk-layout-guide .rk-lg-hero-metrics,
    #rk-layout-guide .rk-lg-grid-2,
    #rk-layout-guide .rk-lg-grid-3,
    #rk-layout-guide .rk-lg-grid-4,
    #rk-layout-guide .rk-lg-steps,
    #rk-layout-guide .rk-lg-sources { grid-template-columns: 1fr; }
    #rk-layout-guide .rk-lg-check-row { grid-template-columns: 1fr; }
    #rk-layout-guide .rk-lg-state-group { justify-content: flex-start; padding-left: 57px; }
    #rk-layout-guide .rk-lg-author-head { display: block; }
    #rk-layout-guide .rk-lg-author-mark { display: inline-block; margin-top: 14px; }
    #rk-layout-guide .rk-lg-author-layout { grid-template-columns: 1fr; }
    #rk-layout-guide .rk-lg-table-wrap { overflow: visible; border: 0; }
    #rk-layout-guide table,
    #rk-layout-guide thead,
    #rk-layout-guide tbody,
    #rk-layout-guide tr,
    #rk-layout-guide th,
    #rk-layout-guide td { display: block; width: 100%; min-width: 0; }
    #rk-layout-guide thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
    #rk-layout-guide tbody { display: grid; gap: 14px; }
    #rk-layout-guide tr { overflow: hidden; border: 1px solid var(--rk-line); border-radius: 16px; background: #fff; }
    #rk-layout-guide td { position: relative; padding: 32px 15px 13px; border-bottom: 1px solid var(--rk-line); }
    #rk-layout-guide td:last-child { border-bottom: 0; }
    #rk-layout-guide td::before { position: absolute; top: 9px; left: 15px; content: attr(data-label); color: var(--rk-blue); font-size: .59rem; font-weight: 950; letter-spacing: .06em; text-transform: uppercase; }
  }
  @media (max-width: 520px) {
    #rk-layout-guide .rk-lg-hero { padding-right: 21px; padding-left: 21px; }
    #rk-layout-guide .rk-lg-content { padding-right: 16px; padding-left: 16px; }
    #rk-layout-guide .rk-lg-nav { padding-right: 15px; padding-left: 15px; }
    #rk-layout-guide .rk-lg-nav a { font-size: .62rem; }
    #rk-layout-guide .rk-lg-tool-body { padding-right: 13px; padding-left: 13px; }
    #rk-layout-guide .rk-lg-step,
    #rk-layout-guide .rk-lg-card { padding: 19px; }
    #rk-layout-guide .rk-lg-step-head { grid-template-columns: 48px minmax(0, 1fr); gap: 13px; }
    #rk-layout-guide .rk-lg-number { width: 48px; height: 48px; min-width: 48px; min-height: 48px; }
    #rk-layout-guide .rk-lg-state-group { padding-left: 0; }
    #rk-layout-guide .rk-lg-state-button { flex: 1 1 28%; }
    #rk-layout-guide .rk-lg-cta-button { width: 100%; }
    #rk-layout-guide .rk-lg-author-head,
    #rk-layout-guide .rk-lg-author-side,
    #rk-layout-guide .rk-lg-author-main { padding-right: 19px; padding-left: 19px; }
  }
  @media (prefers-reduced-motion: reduce) {
    #rk-layout-guide *,
    #rk-layout-guide *::before,
    #rk-layout-guide *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
  }
</style>

<article id="rk-layout-guide" aria-labelledby="rk-lg-visual-title">
  <div class="rk-lg-shell">
    <header class="rk-lg-hero">
      <span class="rk-lg-kicker">Od obciążenia pomieszczenia do trasy pętli · aktualizacja 2026</span>
      <div class="rk-lg-hero-title" id="rk-lg-visual-title">Ślimak, meander czy układ mieszany? <span>Wzór nie zastępuje obliczeń</span></div>
      <p class="rk-lg-lead">Układ rury nie dobiera mocy i nie zmniejsza strat ciepła budynku. Decyduje głównie o przestrzennym rozkładzie temperatury podłogi, sposobie prowadzenia zasilania i powrotu oraz wykonalności trasy. Zobacz, kiedy ślimak jest najbardziej naturalnym wyborem, gdzie meander ma techniczny sens i dlaczego o liczbie pętli rozstrzygają obliczenia.</p>

      <div class="rk-lg-hero-tags" aria-label="Zakres poradnika">
        <span class="rk-lg-hero-tag">ślimak bifilarny</span>
        <span class="rk-lg-hero-tag">meander pojedynczy</span>
        <span class="rk-lg-hero-tag">podwójny meander</span>
        <span class="rk-lg-hero-tag">strefa brzegowa</span>
        <span class="rk-lg-hero-tag">hydraulika pętli</span>
      </div>

      <div class="rk-lg-byline">
        <span>Autor: <strong>Robert Kucharski</strong></span>
        <span>Czas czytania: około 28 minut</span>
        <span>Aktualizacja techniczna: 12 września 2026 r.</span>
      </div>

      <div class="rk-lg-hero-metrics" aria-label="Trzy poziomy prawidłowego projektu">
        <div class="rk-lg-hero-metric"><b>Moc wynika z obliczeń</b><span>Najpierw wyznacza się obciążenie pomieszczenia, powierzchnię czynną oraz możliwą moc podłogi.</span></div>
        <div class="rk-lg-hero-metric"><b>Układ rozdziela temperaturę</b><span>Trasa decyduje, gdzie sąsiadują cieplejsze i chłodniejsze odcinki oraz czy powstaje kierunkowy gradient.</span></div>
        <div class="rk-lg-hero-metric"><b>Hydraulika sprawdza wykonalność</b><span>Długość, średnica, przepływ i strata ciśnienia rozstrzygają, czy obieg da się poprawnie zasilić i wyregulować.</span></div>
      </div>
    </header>

    <nav class="rk-lg-nav" aria-label="Nawigacja po artykule">
      <span class="rk-lg-nav-label">Na skróty</span>
      <div class="rk-lg-nav-track">
        <a href="#rk-lg-szybka">Szybka odpowiedź</a>
        <a href="#rk-lg-co-zmienia">Co zmienia układ</a>
        <a href="#rk-lg-dane">Dane wejściowe</a>
        <a href="#rk-lg-porownanie">Porównanie układów</a>
        <a href="#rk-lg-jak-ukladac">Jak układać rury</a>
        <a href="#rk-lg-kontrola">Kontrola trasy</a>
        <a href="#rk-lg-slimak">Ślimak</a>
        <a href="#rk-lg-meander">Meander</a>
        <a href="#rk-lg-podwojny">Podwójny meander</a>
        <a href="#rk-lg-mieszany">Układ mieszany</a>
        <a href="#rk-lg-przeszklenia">Przeszklenia</a>
        <a href="#rk-lg-rozstaw">Rozstaw rur</a>
        <a href="#rk-lg-powierzchnia">Powierzchnia czynna</a>
        <a href="#rk-lg-hydraulika">Długość i hydraulika</a>
        <a href="#rk-lg-rozdzielacz">Rozdzielacz i dylatacje</a>
        <a href="#rk-lg-giecie">Promień gięcia</a>
        <a href="#rk-lg-pompa">Pompa ciepła</a>
        <a href="#rk-lg-bledy">Błędy</a>
        <a href="#rk-lg-procedura">Procedura</a>
        <a href="#rk-lg-podsumowanie">Podsumowanie</a>
        <a href="#rk-lg-zrodla">Źródła</a>
        <a href="#rk-lg-faq">FAQ</a>
        <a href="#rk-lg-author">Autor</a>
      </div>
    </nav>

    <div class="rk-lg-content">
      <section class="rk-lg-section" id="rk-lg-szybka">
        <span class="rk-lg-eyebrow">Decyzja w 60 sekund</span>
        <h2>Ślimak czy meander — jaki układ rur wybrać?</h2>
        <div class="rk-lg-answer rk-lg-intro">
          <p><strong>Jeżeli geometria pola grzewczego na to pozwala, ślimak jest zwykle najbardziej uniwersalnym punktem wyjścia, ponieważ cieplejsze i chłodniejsze odcinki biegną obok siebie.</strong> Meander jest przydatny wtedy, gdy potrzebny jest kierunkowy rozkład temperatury albo trzeba obsłużyć wąskie i trudne geometrycznie pole. Podwójny meander może częściowo wyrównać temperaturę, ale nie staje się właściwy tylko dlatego, że pomieszczenie przekroczyło określony metraż.</p>
        </div>
        <p class="rk-lg-intro">Prawidłowa odpowiedź nie brzmi jednak „zawsze ślimak”. Najpierw trzeba znać <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne pomieszczenia</a>, powierzchnię rzeczywiście oddającą ciepło, rodzaj okładziny oraz położenie rozdzielacza. Dopiero wtedy wybiera się rozstaw, dzieli powierzchnię na obiegi i rysuje trasę.</p>
        <div class="rk-lg-grid-3">
          <article class="rk-lg-card is-cyan">
            <h3>Najpierw moc</h3>
            <p>Straty ciepła budynku istnieją niezależnie od tego, czy rurę ułożymy spiralnie, czy równolegle. Układ ma dostarczyć policzoną moc przez dostępną powierzchnię.</p>
          </article>
          <article class="rk-lg-card is-orange">
            <h3>Potem geometria</h3>
            <p>Trasa musi ominąć wyłączone pola, respektować dylatacje, promień gięcia i połączenia z rozdzielaczem, a jednocześnie zachować przyjęty rozstaw.</p>
          </article>
          <article class="rk-lg-card is-green">
            <h3>Na końcu kontrola hydrauliczna</h3>
            <p>Każdy obieg trzeba sprawdzić pod względem długości, wymaganego przepływu, prędkości oraz straty ciśnienia. Sam rysunek nie potwierdza poprawnej pracy.</p>
          </article>
        </div>
      </section>

      <section class="rk-lg-section" id="rk-lg-co-zmienia">
        <span class="rk-lg-eyebrow">Oddziel trzy różne zagadnienia</span>
        <h2>Co sposób układania rur zmienia, a czego nie wyznacza?</h2>
        <p>Układ rur wpływa na to, gdzie znajduje się początek pętli, w jaki sposób sąsiadują odcinki zasilające i powrotne, ile powstaje ciasnych nawrotów oraz jak łatwo wypełnić nieregularne pole. Może więc zmieniać <strong>tendencję rozkładu temperatury powierzchni</strong> oraz trudność wykonania.</p>
        <div class="rk-lg-table-wrap">
          <table>
            <thead>
              <tr><th>Parametr</th><th>Czy wybiera go sam układ?</th><th>Co naprawdę rozstrzyga?</th></tr>
            </thead>
            <tbody>
              <tr><td data-label="Parametr"><strong>Straty ciepła pomieszczenia</strong></td><td data-label="Rola układu">Nie</td><td data-label="Podstawa decyzji">Przegrody, wentylacja, temperatury obliczeniowe i lokalizacja budynku. Zobacz, <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">jak oblicza się straty ciepła</a>.</td></tr>
              <tr><td data-label="Parametr"><strong>Wymagana moc podłogi</strong></td><td data-label="Rola układu">Nie</td><td data-label="Podstawa decyzji">Obciążenie pomieszczenia, powierzchnia czynna, temperatura wody, konstrukcja podłogi i opór okładziny.</td></tr>
              <tr><td data-label="Parametr"><strong>Rozkład temperatury powierzchni</strong></td><td data-label="Rola układu">Tak, częściowo</td><td data-label="Podstawa decyzji">Sąsiedztwo cieplejszych i chłodniejszych odcinków, rozstaw, przepływ, warstwy podłogi i warunki brzegowe.</td></tr>
              <tr><td data-label="Parametr"><strong>Długość pętli</strong></td><td data-label="Rola układu">Nie samodzielnie</td><td data-label="Podstawa decyzji">Powierzchnia czynna, rozstaw, droga do rozdzielacza, geometria, omijane pola i sposób podziału na obiegi.</td></tr>
              <tr><td data-label="Parametr"><strong>Przepływ i strata ciśnienia</strong></td><td data-label="Rola układu">Nie</td><td data-label="Podstawa decyzji">Moc obiegu, przyjęta różnica temperatur, średnica, długość i właściwości rury oraz opory miejscowe.</td></tr>
              <tr><td data-label="Parametr"><strong>Koszt eksploatacji</strong></td><td data-label="Rola układu">Nie wprost</td><td data-label="Podstawa decyzji">Zapotrzebowanie budynku, temperatura zasilania, sprawność źródła, regulacja, przepływy i praca pomp.</td></tr>
            </tbody>
          </table>
        </div>
        <div class="rk-lg-warning"><p><strong>Ważne:</strong> zagęszczenie rur lub wybór innego wzoru nie zmniejsza strat przez okna, ściany czy dach. Może zmienić zdolność powierzchni do oddawania ciepła oraz miejsce, w którym ta moc zostanie przekazana do pomieszczenia.</p></div>
      </section>

      <section class="rk-lg-section" id="rk-lg-dane">
        <span class="rk-lg-eyebrow">Zanim pojawi się pierwsza linia na rzucie</span>
        <h2>Jakie dane są potrzebne przed rozrysowaniem pętli?</h2>
        <p>Rysowanie ślimaka bez obliczeń zwykle zaczyna się od estetycznego wzoru, a kończy na przypadkowych długościach i przepływach. Kolejność powinna być odwrotna.</p>
        <div class="rk-lg-steps">
          <article class="rk-lg-step"><div class="rk-lg-step-head"><span class="rk-lg-number">1</span><div><h3>Obciążenie pomieszczenia</h3><p>Projektowe straty w watach dla właściwej temperatury zewnętrznej i zadanej temperatury wewnętrznej.</p></div></div></article>
          <article class="rk-lg-step"><div class="rk-lg-step-head"><span class="rk-lg-number">2</span><div><h3>Powierzchnia czynna</h3><p>Fragment podłogi faktycznie uczestniczący w oddawaniu ciepła po odjęciu świadomie wyłączonych pól i uwzględnieniu zabudowy.</p></div></div></article>
          <article class="rk-lg-step"><div class="rk-lg-step-head"><span class="rk-lg-number">3</span><div><h3>Okładzina i warstwy</h3><p>Opór cieplny wykończenia, grubość jastrychu, położenie rury oraz parametry izolacji pod systemem.</p></div></div></article>
          <article class="rk-lg-step"><div class="rk-lg-step-head"><span class="rk-lg-number">4</span><div><h3>Temperatury systemu</h3><p>Projektowa temperatura zasilania, założona różnica zasilanie–powrót i ograniczenia temperatury powierzchni.</p></div></div></article>
          <article class="rk-lg-step"><div class="rk-lg-step-head"><span class="rk-lg-number">5</span><div><h3>Rozstaw i średnica</h3><p>Parametry wynikające z wymaganej mocy, konstrukcji podłogi i hydrauliki, a nie z jednego domyślnego schematu.</p></div></div></article>
          <article class="rk-lg-step"><div class="rk-lg-step-head"><span class="rk-lg-number">6</span><div><h3>Rozdzielacz i dojścia</h3><p>Rzeczywista droga przewodów tranzytowych może istotnie zmienić całkowitą długość obiegu oraz nagromadzenie rur w komunikacji.</p></div></div></article>
          <article class="rk-lg-step"><div class="rk-lg-step-head"><span class="rk-lg-number">7</span><div><h3>Dylatacje i geometria</h3><p>Podział jastrychu, przejścia między polami, ściany łukowe, wnęki, schody i obszary trudne do wykonania.</p></div></div></article>
          <article class="rk-lg-step"><div class="rk-lg-step-head"><span class="rk-lg-number">8</span><div><h3>Przepływ i opory</h3><p>Wymagany przepływ każdej pętli, prędkość w rurze, spadek ciśnienia i możliwość zrównoważenia na rozdzielaczu.</p></div></div></article>
        </div>
        <p>Szerszy proces opisuje poradnik o tym, <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">jak zaplanować rozmieszczenie pętli grzewczych</a>.</p>
      </section>

      <section class="rk-lg-section" id="rk-lg-porownanie">
        <span class="rk-lg-eyebrow">Porównuj funkcje, nie etykiety</span>
        <h2>Ślimak, meander, podwójny meander i układ mieszany — porównanie</h2>
        <div class="rk-lg-table-wrap">
          <table>
            <thead>
              <tr><th>Układ</th><th>Rozkład temperatury</th><th>Mocna strona</th><th>Ograniczenie</th><th>Typowe uzasadnienie</th></tr>
            </thead>
            <tbody>
              <tr><td data-label="Układ"><strong>Ślimak / bifilarny</strong></td><td data-label="Rozkład">Cieplejszy i chłodniejszy odcinek sąsiadują ze sobą, co sprzyja wyrównaniu.</td><td data-label="Mocna strona">Uniwersalność i czytelny podział powierzchni.</td><td data-label="Ograniczenie">Wymaga miejsca na centralny nawrót i świadomego prowadzenia w trudnych wnękach.</td><td data-label="Uzasadnienie">Regularne i większe pola, gdy priorytetem jest równomierność.</td></tr>
              <tr><td data-label="Układ"><strong>Meander pojedynczy</strong></td><td data-label="Rozkład">Wyraźniej kierunkowy: początek pętli jest cieplejszy, koniec chłodniejszy.</td><td data-label="Mocna strona">Pozwala świadomie ustawić początek zasilania i wypełniać wąskie pasy.</td><td data-label="Ograniczenie">Wiele nawrotów 180° i większe ryzyko pasmowego rozkładu temperatury.</td><td data-label="Uzasadnienie">Wydłużona geometria lub celowy gradient potwierdzony projektem.</td></tr>
              <tr><td data-label="Układ"><strong>Podwójny meander</strong></td><td data-label="Rozkład">Cieplejsze i chłodniejsze przebiegi są częściowo przeplatane.</td><td data-label="Mocna strona">Mniejsza kierunkowość niż w pojedynczym meandrze.</td><td data-label="Ograniczenie">Trasa jest bardziej wymagająca do zaplanowania i nie rozwiązuje automatycznie hydrauliki.</td><td data-label="Uzasadnienie">Wydłużone lub nietypowe pole, w którym ślimak jest niepraktyczny.</td></tr>
              <tr><td data-label="Układ"><strong>Mieszany</strong></td><td data-label="Rozkład">Zależny od połączenia fragmentów i kierunku zasilania.</td><td data-label="Mocna strona">Najlepiej dopasowuje się do realnego rzutu, wnęk i przeszkód.</td><td data-label="Ograniczenie">Nie powinien powstawać improwizacyjnie podczas montażu.</td><td data-label="Uzasadnienie">Nieregularne pola, lokalne pasy i trasy dojścia wymagające zmiany sposobu prowadzenia.</td></tr>
            </tbody>
          </table>
        </div>
        <p>Przy tej samej powierzchni czynnej i tym samym rozstawie całkowita ilość rury będzie zbliżona. Różnice wynikają głównie z dojść, omijania przeszkód, geometrii brzegów oraz podziału na pętle — nie z samej nazwy wzoru.</p>
      </section>

      <section class="rk-lg-section" id="rk-lg-jak-ukladac">
        <span class="rk-lg-eyebrow">Praktyczny schemat bez uproszczeń</span>
        <h2>Jak układać rury ogrzewania podłogowego krok po kroku?</h2>
        <p>Jeżeli szukasz gotowego schematu ułożenia rur podłogówki, zacznij nie od wyboru efektownego wzoru, lecz od zaznaczenia rzeczywistego pola grzewczego. Na rzucie trzeba najpierw wyznaczyć powierzchnię czynną, stałą zabudowę, dylatacje, położenie rozdzielacza oraz drogę dojścia do pomieszczenia. Dopiero na tak przygotowanym planie można rozrysować ślimak, meander albo układ mieszany bez przypadkowego wydłużania pętli.</p>
        <p>Prawidłowa kolejność jest zawsze podobna: obliczenie zapotrzebowania na moc, dobór temperatury zasilania i rozstawu rur, podział powierzchni na obiegi, wyznaczenie zasilania i powrotu, rozrysowanie pełnej trasy, a na końcu kontrola długości, przepływu i straty ciśnienia. Dzięki temu sposób układania rur w ogrzewaniu podłogowym jest wynikiem projektu, a nie decyzją podejmowaną dopiero przy rozwijaniu kręgu rury.</p>

        <div class="rk-lg-grid-2">
          <article class="rk-lg-card is-cyan">
            <h3>Jak ułożyć ogrzewanie podłogowe w ślimak?</h3>
            <p>W układzie ślimakowym przewód prowadzi się od rozdzielacza do obrzeża pola, a następnie kolejnymi obwodami w stronę środka. Pierwszą część trasy rozkłada się z miejscem na przewód powrotny. Po wykonaniu centralnego nawrotu rura wraca między wcześniej ułożonymi odcinkami, dzięki czemu po wypełnieniu wolnych przestrzeni uzyskuje się docelowy rozstaw.</p>
            <p>Najwięcej uwagi wymaga środek ślimaka. Nawrót musi mieścić się w dopuszczalnym promieniu gięcia określonym dla konkretnej rury i sposobu montażu. Jeżeli pole jest zbyt wąskie, nie należy wymuszać ostrego łuku — lepiej wcześniej zmienić geometrię trasy albo zastosować fragment układu mieszanego.</p>
          </article>

          <article class="rk-lg-card is-orange">
            <h3>Jak układać rury ogrzewania podłogowego w meander?</h3>
            <p>Meander tworzą kolejne równoległe przebiegi połączone nawrotami o 180°. Zasilanie można skierować wzdłuż bardziej obciążonej krawędzi, ale tylko wtedy, gdy taki kierunek wynika z obliczeń. Samo duże okno nie jest wystarczającym powodem, aby automatycznie zaczynać tam każdą pętlę.</p>
            <p>Przed rozrysowaniem trzeba sprawdzić szerokość pola i liczbę nawrotów. Przy sztywniejszej rurze lub małej szerokości pomieszczenia łuki mogą okazać się trudniejsze do wykonania niż prosty przebieg sugerowany przez rzut. Meander ma sens szczególnie w pasach wydłużonych, lecz nie powinien być wybierany wyłącznie dlatego, że łatwo go narysować.</p>
          </article>

          <article class="rk-lg-card is-green">
            <h3>Jak rozplanować podwójny meander?</h3>
            <p>Podwójny meander wymaga zaplanowania dwóch przeplatających się sekwencji przebiegów. Celem jest takie rozmieszczenie cieplejszych i chłodniejszych fragmentów pętli, aby ograniczyć kierunkowy gradient typowy dla pojedynczego meandra. Kolejność pasów należy ustalić na rysunku przed montażem, ponieważ improwizowana zmiana kierunku łatwo prowadzi do pominięcia pola albo nadmiernego zagęszczenia rur.</p>
            <p>Ten wariant nie skraca automatycznie pętli i nie zmniejsza jej oporu. O całkowitej długości nadal decydują powierzchnia czynna, rozstaw, dojścia i geometria. Dlatego podwójny meander dobiera się ze względu na kształt pola oraz oczekiwany rozkład temperatury, a nie na podstawie jednego progu powierzchni pomieszczenia.</p>
          </article>

          <article class="rk-lg-card is-purple">
            <h3>Jak ułożyć podłogówkę w wąskim lub nieregularnym pomieszczeniu?</h3>
            <p>W korytarzu, wnęce, pomieszczeniu z wykuszem albo przy stałej zabudowie książkowy ślimak może nie wypełnić całej powierzchni. Wtedy główne pole można prowadzić spiralnie, a wąski fragment uzupełnić meandrem. Warunkiem jest zachowanie ciągłości pętli, projektowego rozstawu, promienia gięcia oraz policzonej długości całego obiegu.</p>
            <p>Nie należy „dopychać” dodatkowych odcinków w wolne miejsca już podczas montażu. Każdy taki fragment zwiększa długość i może zmienić lokalną moc podłogi. Jeżeli geometria wymaga wielu korekt, trasę warto najpierw rozrysować w skali i sprawdzić razem z <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">rozmieszczeniem wszystkich pętli grzewczych</a>.</p>
          </article>
        </div>

        <h3>Od którego miejsca zacząć układanie rur podłogówki?</h3>
        <p>Początek pętli wyznacza położenie rozdzielacza, droga dojścia do ogrzewanego pola i planowany rozkład temperatury. Trzeba uwzględnić nie tylko fragment rury widoczny w pomieszczeniu, ale również odcinki tranzytowe z szafki rozdzielaczowej. To one często przesądzają, czy obieg zmieści się w przyjętym limicie długości i czy w korytarzu nie powstanie nadmierne skupisko przewodów.</p>
        <p>W ślimaku zasilanie najczęściej dochodzi do zewnętrznego obwodu pola, a powrót wychodzi ze środka przez pozostawioną wcześniej drogę. W meandrze położenie początku mocniej wpływa na kierunek zmiany temperatury powierzchni. Jeżeli zasilanie ma przebiegać przy przeszkleniu albo ścianie zewnętrznej, powinno to wynikać z lokalnego obciążenia cieplnego, a nie z automatycznej reguły wykonawczej.</p>

        <div class="rk-lg-note">
          <p><strong>Co powinien zawierać schemat układania rur podłogówki?</strong> Oprócz samego kształtu pętli potrzebne są: średnica i typ rury, projektowy rozstaw, numer obiegu, długość wraz z dojściami, kierunek zasilania i powrotu, przejścia przez <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">dylatacje</a>, wymagany przepływ oraz nastawa na rozdzielaczu. Dopiero taki rysunek może być podstawą wykonania i późniejszej kontroli instalacji.</p>
        </div>
      </section>
      <section class="rk-lg-section" id="rk-lg-kontrola">
        <span class="rk-lg-eyebrow">Interaktywna kontrola kompletności</span>
        <h2>Sprawdź, czy plan pętli zawiera dane potrzebne do oceny</h2>
        <p>To nie jest automat wybierający ślimak lub meander. Moduł sprawdza, czy decyzja opiera się na danych technicznych, czy wyłącznie na wyglądzie rzutu.</p>

        <div class="rk-lg-tool" id="rk-lg-check-tool">
          <div class="rk-lg-tool-head">
            <span class="rk-lg-eyebrow">Narzędzie interaktywne · kontrola trasy</span>
            <h3>Oceń przygotowanie projektu przed montażem</h3>
            <p>Dla każdego punktu zaznacz „tak”, „nie” albo „nie wiem”. Wynik nie zatwierdza instalacji — wskazuje elementy, które nadal trzeba policzyć lub potwierdzić.</p>
          </div>
          <div class="rk-lg-tool-body">
            <div class="rk-lg-check-list">
              <div class="rk-lg-check-row" data-check-row data-note="Brakuje obciążenia cieplnego pomieszczenia — nie wiadomo, jaką moc ma przekazać podłoga.">
                <div class="rk-lg-check-copy"><span class="rk-lg-number">1</span><div><b>Obciążenie cieplne pomieszczenia</b><span>Czy znasz projektową stratę ciepła w watach, a nie tylko wskaźnik dla całego domu?</span></div></div>
                <div class="rk-lg-state-group" role="group" aria-label="Obciążenie cieplne"><button type="button" class="rk-lg-state-button" data-value="yes" aria-pressed="false">Tak</button><button type="button" class="rk-lg-state-button" data-value="no" aria-pressed="false">Nie</button><button type="button" class="rk-lg-state-button" data-value="unknown" aria-pressed="true">Nie wiem</button></div>
              </div>
              <div class="rk-lg-check-row" data-check-row data-note="Nie potwierdzono powierzchni czynnej i stałej zabudowy — długość oraz możliwa moc mogą być błędne.">
                <div class="rk-lg-check-copy"><span class="rk-lg-number">2</span><div><b>Powierzchnia czynna i zabudowa</b><span>Czy na rzucie oznaczono pola grzewcze, stałe wyłączenia i przewidywane wyposażenie?</span></div></div>
                <div class="rk-lg-state-group" role="group" aria-label="Powierzchnia czynna"><button type="button" class="rk-lg-state-button" data-value="yes" aria-pressed="false">Tak</button><button type="button" class="rk-lg-state-button" data-value="no" aria-pressed="false">Nie</button><button type="button" class="rk-lg-state-button" data-value="unknown" aria-pressed="true">Nie wiem</button></div>
              </div>
              <div class="rk-lg-check-row" data-check-row data-note="Nie sprawdzono konstrukcji podłogi i oporu okładziny — nie można wiarygodnie ocenić mocy powierzchni.">
                <div class="rk-lg-check-copy"><span class="rk-lg-number">3</span><div><b>Warstwy podłogi i okładzina</b><span>Czy znasz materiał, grubość i deklarowany opór cieplny całego wykończenia?</span></div></div>
                <div class="rk-lg-state-group" role="group" aria-label="Warstwy podłogi"><button type="button" class="rk-lg-state-button" data-value="yes" aria-pressed="false">Tak</button><button type="button" class="rk-lg-state-button" data-value="no" aria-pressed="false">Nie</button><button type="button" class="rk-lg-state-button" data-value="unknown" aria-pressed="true">Nie wiem</button></div>
              </div>
              <div class="rk-lg-check-row" data-check-row data-note="Brakuje ustalonego rozstawu i średnicy — sam wzór prowadzenia nie określa ilości rury ani hydrauliki.">
                <div class="rk-lg-check-copy"><span class="rk-lg-number">4</span><div><b>Rozstaw i średnica rury</b><span>Czy parametry zostały dobrane do mocy, temperatury wody i oporów hydraulicznych?</span></div></div>
                <div class="rk-lg-state-group" role="group" aria-label="Rozstaw i średnica"><button type="button" class="rk-lg-state-button" data-value="yes" aria-pressed="false">Tak</button><button type="button" class="rk-lg-state-button" data-value="no" aria-pressed="false">Nie</button><button type="button" class="rk-lg-state-button" data-value="unknown" aria-pressed="true">Nie wiem</button></div>
              </div>
              <div class="rk-lg-check-row" data-check-row data-note="Nie potwierdzono położenia rozdzielacza i długości dojść — rzeczywista długość obiegu pozostaje nieznana.">
                <div class="rk-lg-check-copy"><span class="rk-lg-number">5</span><div><b>Rozdzielacz i drogi dojścia</b><span>Czy zasilanie oraz powrót każdej pętli mają wyznaczoną realną trasę?</span></div></div>
                <div class="rk-lg-state-group" role="group" aria-label="Rozdzielacz i dojścia"><button type="button" class="rk-lg-state-button" data-value="yes" aria-pressed="false">Tak</button><button type="button" class="rk-lg-state-button" data-value="no" aria-pressed="false">Nie</button><button type="button" class="rk-lg-state-button" data-value="unknown" aria-pressed="true">Nie wiem</button></div>
              </div>
              <div class="rk-lg-check-row" data-check-row data-note="Nie sprawdzono długości i podziału na obiegi — może powstać pętla o nadmiernym oporze albo nierówny podział powierzchni.">
                <div class="rk-lg-check-copy"><span class="rk-lg-number">6</span><div><b>Długości i liczba pętli</b><span>Czy każdy obieg ma policzoną długość wraz z odcinkami tranzytowymi?</span></div></div>
                <div class="rk-lg-state-group" role="group" aria-label="Długości i liczba pętli"><button type="button" class="rk-lg-state-button" data-value="yes" aria-pressed="false">Tak</button><button type="button" class="rk-lg-state-button" data-value="no" aria-pressed="false">Nie</button><button type="button" class="rk-lg-state-button" data-value="unknown" aria-pressed="true">Nie wiem</button></div>
              </div>
              <div class="rk-lg-check-row" data-check-row data-note="Brakuje kontroli dylatacji i promienia gięcia — trasa może być niemożliwa lub ryzykowna do wykonania.">
                <div class="rk-lg-check-copy"><span class="rk-lg-number">7</span><div><b>Dylatacje i promień gięcia</b><span>Czy zaznaczono przejścia oraz sprawdzono ograniczenia producenta rury?</span></div></div>
                <div class="rk-lg-state-group" role="group" aria-label="Dylatacje i promień gięcia"><button type="button" class="rk-lg-state-button" data-value="yes" aria-pressed="false">Tak</button><button type="button" class="rk-lg-state-button" data-value="no" aria-pressed="false">Nie</button><button type="button" class="rk-lg-state-button" data-value="unknown" aria-pressed="true">Nie wiem</button></div>
              </div>
              <div class="rk-lg-check-row" data-check-row data-note="Nie obliczono przepływów i strat ciśnienia — nie wiadomo, czy pętle można zasilić i zrównoważyć.">
                <div class="rk-lg-check-copy"><span class="rk-lg-number">8</span><div><b>Przepływy i straty ciśnienia</b><span>Czy dla każdej pętli wyznaczono przepływ oraz sprawdzono opór hydrauliczny?</span></div></div>
                <div class="rk-lg-state-group" role="group" aria-label="Przepływy i straty ciśnienia"><button type="button" class="rk-lg-state-button" data-value="yes" aria-pressed="false">Tak</button><button type="button" class="rk-lg-state-button" data-value="no" aria-pressed="false">Nie</button><button type="button" class="rk-lg-state-button" data-value="unknown" aria-pressed="true">Nie wiem</button></div>
              </div>
            </div>

            <div class="rk-lg-check-result" aria-live="polite">
              <div class="rk-lg-score-line"><b id="rk-lg-score">0 z 8 punktów potwierdzonych</b><span id="rk-lg-score-percent">0% kompletności danych</span></div>
              <div class="rk-lg-progress" aria-hidden="true"><div class="rk-lg-progress-bar" id="rk-lg-progress-bar"></div></div>
              <div class="rk-lg-result-status" id="rk-lg-result-status">Plan nie zawiera jeszcze danych pozwalających ocenić trasę.</div>
              <ul class="rk-lg-missing" id="rk-lg-missing-list"><li>Odpowiedz na pytania, aby otrzymać listę elementów wymagających weryfikacji.</li></ul>
              <button type="button" class="rk-lg-reset" id="rk-lg-check-reset">Wyczyść odpowiedzi</button>
            </div>
            <p class="rk-lg-tool-disclaimer"><strong>Ważne:</strong> wynik ocenia kompletność informacji, a nie zgodność projektu z normą, dokumentacją systemu ani warunkami konkretnego budynku.</p>
          </div>
        </div>
      </section>

      <aside class="rk-lg-sales-cta" aria-label="Projekt ogrzewania podłogowego po analizie trasy">
        <span class="rk-lg-eyebrow">Schemat pokazuje kierunek — projekt wyznacza parametry</span>
        <h3>Wybrany wzór rur nie odpowie jeszcze, ile pętli potrzebuje pomieszczenie</h3>
        <p>Opis sposobu prowadzenia przewodu nie wystarcza do wyznaczenia liczby obiegów, ich długości, przepływów ani nastaw rozdzielacza. Dopiero po połączeniu OZC, powierzchni czynnej, okładziny, rozstawu i hydrauliki wiadomo, czy trasę można wykonać i prawidłowo zrównoważyć.</p>
        <div class="rk-lg-cta-limit"><strong>W projekcie otrzymujesz:</strong> rozrysowane pętle, ich długości, przyjęte rozstawy, obliczone przepływy, nastawy rozdzielacza oraz parametry potrzebne do kontroli wykonania.</div>
        <a class="rk-lg-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Sprawdź projekt ogrzewania podłogowego</a>
      </aside>

      <section class="rk-lg-section" id="rk-lg-slimak">
        <span class="rk-lg-eyebrow">Najbardziej uniwersalny punkt wyjścia</span>
        <h2>Układ ślimakowy — jak działa i kiedy ma sens?</h2>
        <p>W ślimaku, nazywanym również układem spiralnym lub bifilarnym, rura jest prowadzona od obrzeża pola w stronę środka, wykonuje centralny nawrót i wraca między wcześniej ułożonymi odcinkami. Dzięki temu przewód z cieplejszą wodą sąsiaduje z przewodem, który oddał już część energii.</p>
        <p>To sąsiedztwo pomaga wyrównać temperaturę powierzchni, ale nie gwarantuje jej automatycznie. Nadal znaczenie mają rozstaw, przepływ, różnica temperatur zasilanie–powrót, przewodzenie jastrychu i <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">opór cieplny wykończenia podłogi</a>.</p>
        <div class="rk-lg-grid-2">
          <article class="rk-lg-card is-green"><h3>Kiedy ślimak pomaga?</h3><ul><li>Gdy zależy nam na możliwie równomiernym rozkładzie temperatury.</li><li>Gdy pole pozwala zachować regularny rozstaw i centralny nawrót.</li><li>Gdy większą powierzchnię trzeba czytelnie podzielić między kilka obiegów.</li><li>Gdy chcemy ograniczyć liczbę ciasnych nawrotów 180° przy krawędziach.</li></ul></article>
          <article class="rk-lg-card is-orange"><h3>Co trzeba sprawdzić?</h3><ul><li>Miejsce rozpoczęcia i zakończenia pętli przy rozdzielaczu.</li><li>Podwójny odstęp podczas prowadzenia pierwszej części, aby później wprowadzić powrót.</li><li>Minimalny promień środkowego nawrotu.</li><li>Wypełnienie wnęk bez przypadkowego zagęszczania i krzyżowania rury.</li></ul></article>
        </div>
        <p>Szczegółowy przebieg montażowy opisujemy w poradniku <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/">instalacja ogrzewania podłogowego w układzie ślimakowym</a>.</p>
      </section>

      <section class="rk-lg-section" id="rk-lg-meander">
        <span class="rk-lg-eyebrow">Kierunkowy rozkład temperatury</span>
        <h2>Meander pojedynczy — nie „tańszy ślimak”, lecz inne narzędzie</h2>
        <p>Meander prowadzi rurę równoległymi pasami z kolejnymi nawrotami. Cieplejszy początek i chłodniejszy koniec pętli nie są przestrzennie przeplatane tak jak w ślimaku, dlatego rozkład temperatury ma wyraźniejszy kierunek.</p>
        <p>Może to być zaletą, jeżeli projekt świadomie kieruje początek zasilania wzdłuż krawędzi o większym obciążeniu. Nie należy jednak z góry przyjmować spadku temperatury, na przykład z 35 do 25°C. Rzeczywista różnica zależy od mocy przekazywanej przez obieg i przepływu. Zależność tę wyjaśnia poradnik o <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">różnicy temperatur zasilania i powrotu</a>.</p>
        <div class="rk-lg-note"><p><strong>Meander nie jest przypisany do łazienek ani pomieszczeń poniżej 20 m².</strong> Kryterium stanowią geometria pola, potrzebny rozkład temperatury, promień gięcia, długość oraz hydraulika obiegu.</p></div>
        <p>Wiele nawrotów o 180° może być bardziej wymagające dla sztywniejszej rury. Przed montażem trzeba znać dopuszczalny promień gięcia i nie zastępować go siłowym zaginaniem przewodu. Osobny materiał pokazuje <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/">układ meandrowy ogrzewania podłogowego</a>.</p>
      </section>

      <section class="rk-lg-section" id="rk-lg-podwojny">
        <span class="rk-lg-eyebrow">Przeplatanie kolejnych przebiegów</span>
        <h2>Podwójny meander — czym różni się od pojedynczego?</h2>
        <p>W podwójnym meandrze cieplejsze i chłodniejsze fragmenty są prowadzone w sposób bardziej naprzemienny. Pozwala to ograniczyć silny gradient charakterystyczny dla prostego meandra, a jednocześnie zachować układ równoległych odcinków przydatny w wydłużonym polu.</p>
        <p>Nie oznacza to jednak, że podwójny meander jest „układem do salonów powyżej 20 m²”. Duży salon może wymagać kilku niezależnych ślimaków, a niewielka nieregularna strefa może uzasadniać podwójny meander. O liczbie obiegów powinien rozstrzygnąć podział powierzchni i kontrola hydrauliczna, nie jeden próg metrażu.</p>
        <div class="rk-lg-grid-3">
          <article class="rk-lg-card is-cyan"><h3>Korzyść</h3><p>Mniejsza kierunkowość temperatury niż przy pojedynczym meandrze, jeżeli przebiegi zostały prawidłowo przeplecione.</p></article>
          <article class="rk-lg-card is-purple"><h3>Warunek</h3><p>Czytelny rysunek wykonawczy, właściwe odstępy i miejsce na nawroty bez przekroczenia promienia gięcia.</p></article>
          <article class="rk-lg-card is-orange"><h3>Ograniczenie</h3><p>Nie zastępuje podziału na pętle i nie powoduje samoczynnego zmniejszenia oporów hydraulicznych.</p></article>
        </div>
      </section>

      <section class="rk-lg-section" id="rk-lg-mieszany">
        <span class="rk-lg-eyebrow">Rzut budynku rzadko jest idealnym prostokątem</span>
        <h2>Układ mieszany — kiedy połączenie sposobów jest najlepsze?</h2>
        <p>W praktycznym projekcie pętla nie zawsze przez całą długość przypomina książkowy ślimak albo meander. Główne pole można ułożyć bifilarnie, a wąską wnękę, pas komunikacyjny lub fragment przy zabudowie wypełnić równoległymi przebiegami. Taki układ mieszany jest poprawny, jeżeli pozostaje ciągłą, policzoną trasą.</p>
        <p>Zmiana wzoru nie powinna następować spontanicznie podczas montażu. Trzeba zachować docelowy rozstaw, policzoną długość i właściwy kierunek zasilania, a po wykonaniu nanieść rzeczywisty przebieg na dokumentację powykonawczą.</p>
        <div class="rk-lg-warning"><p><strong>Układ mieszany nie oznacza dowolnego „dopychania” rury.</strong> Każdy dodatkowy pas zmienia długość obiegu, a lokalne zagęszczenie może zmienić moc powierzchni i temperaturę podłogi.</p></div>
      </section>

      <section class="rk-lg-section" id="rk-lg-przeszklenia">
        <span class="rk-lg-eyebrow">Cieplejszy początek nie naprawi słabego okna</span>
        <h2>Jak prowadzić rury przy dużych przeszkleniach?</h2>
        <p>Przeszklenie może zwiększać lokalne obciążenie, ale nie każde okno wymaga automatycznej strefy brzegowej. Najpierw należy policzyć straty danej części pomieszczenia, uwzględnić parametry stolarki, temperaturę projektową i powierzchnię aktywną. Dopiero potem można rozważyć mniejszy rozstaw albo skierowanie cieplejszego początku pętli wzdłuż krawędzi.</p>
        <div class="rk-lg-grid-3">
          <article class="rk-lg-card is-cyan"><h3>1. Policz obciążenie</h3><p>Nie przyjmuj stałego dodatku procentowego ani gotowej szerokości pasa przy każdym oknie.</p></article>
          <article class="rk-lg-card is-orange"><h3>2. Sprawdź moc powierzchni</h3><p>Zagęszczenie ma sens tylko wtedy, gdy konstrukcja i temperatura podłogi pozwalają bezpiecznie przekazać potrzebną moc.</p></article>
          <article class="rk-lg-card is-green"><h3>3. Dopiero ułóż trasę</h3><p>Zdecyduj, czy wystarczy ślimak, lokalne zagęszczenie, meander w pasie brzegowym czy oddzielny obieg.</p></article>
        </div>
        <p>Rozbudowaną analizę zawiera artykuł o <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/">ogrzewaniu podłogowym przy dużych przeszkleniach</a>.</p>
      </section>

      <section class="rk-lg-section" id="rk-lg-rozstaw">
        <span class="rk-lg-eyebrow">Geometria nie dobiera emisji</span>
        <h2>Rozstaw rur a ślimak lub meander — co wybiera się najpierw?</h2>
        <p>Rozstaw dobiera się do wymaganej mocy, temperatury czynnika, konstrukcji podłogi, okładziny oraz dopuszczalnej temperatury powierzchni. Dopiero później trzeba ułożyć trasę tak, aby ten rozstaw został zachowany w możliwie całym polu.</p>
        <p>W praktyce projektowej spotyka się między innymi 10, 15 i 20 cm, ale żadna z tych wartości nie jest automatycznie właściwa dla całego domu. Mniejszy rozstaw zwiększa ilość rury i zwykle możliwości oddawania ciepła, lecz może również zwiększyć liczbę pętli i wymagania hydrauliczne. Zobacz porównanie <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstawu 10 i 15 cm</a> oraz pełny poradnik o <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">doborze rozstawu rur</a>.</p>
        <div class="rk-lg-note"><p><strong>Praktyczna zasada rysunkowa:</strong> jeżeli ślimak ma po wprowadzeniu odcinka powrotnego osiągnąć docelowy rozstaw, pierwszą część trasy prowadzi się z miejscem na późniejsze wypełnienie. Dokładna geometria zależy od systemu mocowania, średnicy oraz rzutu.</p></div>
      </section>

      <section class="rk-lg-section" id="rk-lg-powierzchnia">
        <span class="rk-lg-eyebrow">Metraż pokoju to nie metraż grzejnika</span>
        <h2>Powierzchnia czynna, meble i pola bez rur</h2>
        <p>Podłoga oddaje ciepło tylko tam, gdzie konstrukcja może je przekazać do pomieszczenia. Dlatego powierzchnia użytkowa pokoju nie zawsze jest równa powierzchni aktywnej. Trzeba świadomie rozpatrzyć stałą zabudowę, brodzik, wannę, kominek, schody, urządzenia kuchenne oraz inne elementy przewidziane w projekcie.</p>
        <p>Nie każda szafa automatycznie wymaga wycięcia dużego pola, a rura pod meblem nie oznacza automatycznego uszkodzenia posadzki. Liczą się rodzaj zabudowy, wentylacja przestrzeni, wymagania producentów oraz temperatura powierzchni. Szczegóły omawiamy w poradnikach <a href="https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/">gdzie nie układać ogrzewania podłogowego</a> i <a href="https://projekt-ogrzewania.pl/wodne-ogrzewanie-podlogowe-a-meble-jak-polaczyc-komfort-i-aranzacje/">podłogówka a meble</a>.</p>
        <p>Po odjęciu wyłączonych pól może się okazać, że zbyt mała powierzchnia ma pokryć pełne obciążenie pomieszczenia. Wtedy nie wystarczy „zagęścić ślimaka”. Trzeba sprawdzić temperaturę powierzchni, moc możliwą do uzyskania i ewentualne dodatkowe źródło emisji.</p>
      </section>

      <section class="rk-lg-section" id="rk-lg-hydraulika">
        <span class="rk-lg-eyebrow">Rysunek musi dać się zasilić</span>
        <h2>Długość pętli, przepływ i strata ciśnienia</h2>
        <p>Orientacyjne dzielenie powierzchni przez rozstaw pozwala oszacować ilość rury w polu, ale nie daje jeszcze długości pojedynczej pętli. Trzeba doliczyć oba dojścia od rozdzielacza, lokalne korekty, łuki i rzeczywistą geometrię. Jeżeli wynik jest zbyt duży, powierzchnię dzieli się na kilka obiegów — nie układa jednej kilkusetmetrowej pętli.</p>
        <p>Dla rury 16×2 mm w projektach indywidualnych bezpiecznym punktem organizacyjnym jest zwykle utrzymywanie pętli do około 100 m. Nie jest to jednak samodzielny dowód poprawności. Należy policzyć wymagany przepływ i stratę ciśnienia. Więcej wyjaśniają poradniki: <a href="https://projekt-ogrzewania.pl/petla-grzewcza/">czym jest pętla grzewcza</a>, <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">maksymalna długość pętli</a> i <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/">objawy zbyt długiej pętli</a>.</p>
        <div class="rk-lg-grid-2">
          <article class="rk-lg-card is-cyan"><h3>Przepływ wynika z mocy</h3><p>Dla wody zależność można zapisać jako Q = P / (1,163 × ΔT), gdzie P podaje się w kW, Q w m³/h, a ΔT w K. Przyjęta różnica temperatur musi być spójna z projektem źródła i odbiorników.</p></article>
          <article class="rk-lg-card is-orange"><h3>Opór nie sumuje się między pętlami</h3><p>Pompa musi pokonać stratę najbardziej niekorzystnej drogi hydraulicznej przy jednoczesnym zapewnieniu sumy wymaganych przepływów. Pętle równoległe równoważy się na rozdzielaczu.</p></article>
        </div>
        <p>Średnica wpływa na prędkość i opory, dlatego należy ją analizować razem z długością oraz przepływem. Zobacz <a href="https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/">średnice rur w ogrzewaniu podłogowym</a>, sposób odczytu <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrów na rozdzielaczu</a> oraz zasady doboru <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompy obiegowej</a>.</p>
      </section>

      <section class="rk-lg-section" id="rk-lg-rozdzielacz">
        <span class="rk-lg-eyebrow">Pętla zaczyna się poza ogrzewanym polem</span>
        <h2>Położenie rozdzielacza, dojścia i dylatacje</h2>
        <p>Rozdzielacz wpływa na długość każdej pętli oraz liczbę rur przechodzących przez korytarze i drzwi. Centralna lokalizacja często skraca dojścia, ale musi też zapewniać dostęp serwisowy, miejsce na szafkę, armaturę i wygodne wyprowadzenie przewodów.</p>
        <p>Nie należy przypadkowo prowadzić wielu odcinków tranzytowych przez niewielkie pole, ponieważ mogą tworzyć niekontrolowaną strefę grzewczą. Jeżeli dojścia mają nie oddawać ciepła, sposób ich izolowania powinien wynikać z projektu i technologii systemu.</p>
        <p>Przejście pętli przez dylatację wymaga ograniczenia liczby przecięć, właściwego usytuowania oraz osłony rury zgodnej z rozwiązaniem konstrukcyjnym. Sam ślimak nie może „przywiązać” dwóch niezależnie pracujących pól jastrychu. Zasady omawia materiał o <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacji brzegowej i dylatacjach</a>.</p>
      </section>

      <section class="rk-lg-section" id="rk-lg-giecie">
        <span class="rk-lg-eyebrow">Łuk musi pozostać drożny</span>
        <h2>Minimalny promień gięcia i wykonanie nawrotów</h2>
        <p>Minimalny promień gięcia nie powinien być zgadywany na podstawie samego oznaczenia „rura do podłogówki”. Zależy od materiału, średnicy, konstrukcji wielowarstwowej, temperatury podczas montażu oraz tego, czy producent dopuszcza stosowanie sprężyny lub narzędzia.</p>
        <div class="rk-lg-grid-3">
          <article class="rk-lg-card is-orange"><h3>Nie załamuj rury</h3><p>Spłaszczenie lub biały ślad naprężenia wymaga oceny według instrukcji systemu; nie powinno być ukrywane w jastrychu bez decyzji technicznej.</p></article>
          <article class="rk-lg-card is-cyan"><h3>Planuj nawrót</h3><p>Centralny zwrot ślimaka i kolejne nawroty meandra trzeba dopasować do rozstawu oraz dopuszczalnego promienia.</p></article>
          <article class="rk-lg-card is-green"><h3>Mocuj bez naprężeń</h3><p>Uchwyty mają utrzymać trasę podczas wykonywania jastrychu, a nie wymuszać niemożliwy łuk punktowym dociskiem.</p></article>
        </div>
        <p>Przed zalaniem instalacji trzeba wykonać próbę szczelności i pozostawić obiegi w stanie wymaganym przez technologię. Szerzej o materiale i eksploatacji piszemy w poradnikach <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rury do ogrzewania podłogowego</a> oraz <a href="https://projekt-ogrzewania.pl/wytrzymalosc-rur-do-ogrzewania-podlogowego-kompleksowy-przewodnik/">wytrzymałość rur podłogowych</a>.</p>
      </section>

      <section class="rk-lg-section" id="rk-lg-pompa">
        <span class="rk-lg-eyebrow">Niska temperatura jest wynikiem całego projektu</span>
        <h2>Jaki układ rur przy pompie ciepła?</h2>
        <p>Pompa ciepła korzysta na możliwie niskiej temperaturze zasilania, ale nie oznacza to, że w każdym pomieszczeniu trzeba automatycznie układać rurę co 10 cm. Rozstaw powinien umożliwić pokrycie obciążenia przy założonej temperaturze wody, z uwzględnieniem wykończenia podłogi i powierzchni aktywnej.</p>
        <p>Ślimak często dobrze współpracuje z niskotemperaturowym systemem ze względu na tendencję do równomiernego rozkładu powierzchni. Jeżeli geometria uzasadnia meander, sama obecność pompy ciepła go nie wyklucza. Trzeba natomiast dopilnować temperatur, przepływów, oporów i minimalnego przepływu wymaganego przez urządzenie.</p>
        <p>Przydatne rozwinięcia znajdziesz w artykułach o <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projekcie podłogówki z pompą ciepła</a>, <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">rozstawie rur przy pompie ciepła</a> i <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">znaczeniu niskiej temperatury zasilania</a>.</p>
      </section>

      <section class="rk-lg-section" id="rk-lg-bledy">
        <span class="rk-lg-eyebrow">Najczęściej zawodzi kolejność decyzji</span>
        <h2>Najczęstsze błędy przy układaniu rur</h2>
        <div class="rk-lg-steps">
          <article class="rk-lg-step"><div class="rk-lg-step-head"><span class="rk-lg-number">1</span><div><h3>Wybór po metrażu</h3><p>Założenie, że mały pokój wymaga meandra, a duży podwójnego meandra, pomija obciążenie, geometrię i podział na obiegi.</p></div></div></article>
          <article class="rk-lg-step"><div class="rk-lg-step-head"><span class="rk-lg-number">2</span><div><h3>Rysowanie bez powierzchni czynnej</h3><p>Trasa wchodzi pod stałą zabudowę albo pozostawia zbyt małe pole, które nie może przekazać potrzebnej mocy.</p></div></div></article>
          <article class="rk-lg-step"><div class="rk-lg-step-head"><span class="rk-lg-number">3</span><div><h3>Stały rozstaw w całym domu</h3><p>Pomieszczenia mają różne obciążenia, temperatury, okładziny i powierzchnie, więc jeden rozstaw nie musi być optymalny.</p></div></div></article>
          <article class="rk-lg-step"><div class="rk-lg-step-head"><span class="rk-lg-number">4</span><div><h3>Pomijanie dojść</h3><p>Szacunkowa ilość rury w pomieszczeniu wygląda poprawnie, ale odcinki do rozdzielacza przekraczają założoną długość.</p></div></div></article>
          <article class="rk-lg-step"><div class="rk-lg-step-head"><span class="rk-lg-number">5</span><div><h3>Jedna bardzo długa pętla</h3><p>Próba pokrycia całego salonu jednym obiegiem prowadzi do wysokich oporów i problemów z uzyskaniem przepływu.</p></div></div></article>
          <article class="rk-lg-step"><div class="rk-lg-step-head"><span class="rk-lg-number">6</span><div><h3>Siłowe gięcie</h3><p>Zbyt ciasne nawroty meandra albo środka ślimaka mogą spłaszczyć lub uszkodzić rurę jeszcze przed zalaniem.</p></div></div></article>
          <article class="rk-lg-step"><div class="rk-lg-step-head"><span class="rk-lg-number">7</span><div><h3>Przecinanie dylatacji bez osłony</h3><p>Rura zostaje narażona na przemieszczenia pól jastrychu i nie ma właściwej ochrony w miejscu przejścia.</p></div></div></article>
          <article class="rk-lg-step"><div class="rk-lg-step-head"><span class="rk-lg-number">8</span><div><h3>Brak dokumentacji powykonawczej</h3><p>Po zalaniu nie wiadomo, gdzie przebiegają przewody, co utrudnia wiercenie, diagnostykę i późniejsze zmiany wyposażenia.</p></div></div></article>
        </div>
        <p>Pełne zestawienie problemów znajduje się w poradniku <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">najczęstsze błędy przy montażu ogrzewania podłogowego</a>. Jeżeli rozważasz samodzielne wykonanie, sprawdź także, <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-czy-warto-robic-to-samemu/">czy warto robić podłogówkę samemu</a>.</p>
      </section>

      <section class="rk-lg-section" id="rk-lg-procedura">
        <span class="rk-lg-eyebrow">Procedura zamiast zgadywania</span>
        <h2>Jak zaplanować układ rur krok po kroku?</h2>
        <div class="rk-lg-process">
          <article class="rk-lg-process-item"><span class="rk-lg-number">1</span><div><h3>Oblicz obciążenie każdego pomieszczenia</h3><p>Ustal projektową moc potrzebną przy temperaturze zewnętrznej właściwej dla lokalizacji, a nie średnie zużycie całego budynku.</p></div></article>
          <article class="rk-lg-process-item"><span class="rk-lg-number">2</span><div><h3>Wyznacz powierzchnię czynną</h3><p>Oznacz stałą zabudowę, dylatacje, pola wyłączone i miejsca, w których podłoga rzeczywiście może oddawać ciepło.</p></div></article>
          <article class="rk-lg-process-item"><span class="rk-lg-number">3</span><div><h3>Sprawdź warstwy oraz okładzinę</h3><p>Uwzględnij opór cieplny wykończenia, konstrukcję systemu i ograniczenia temperatury wskazane przez producentów.</p></div></article>
          <article class="rk-lg-process-item"><span class="rk-lg-number">4</span><div><h3>Dobierz temperaturę i rozstaw</h3><p>Wyznacz zestaw parametrów pozwalający pokryć obciążenie bez przekraczania dopuszczalnej temperatury powierzchni.</p></div></article>
          <article class="rk-lg-process-item"><span class="rk-lg-number">5</span><div><h3>Podziel powierzchnię na obiegi</h3><p>Uwzględnij powierzchnię, drogę do rozdzielacza, średnicę oraz przyjęty limit organizacyjny długości pętli.</p></div></article>
          <article class="rk-lg-process-item"><span class="rk-lg-number">6</span><div><h3>Wybierz sposób prowadzenia</h3><p>Zastosuj ślimak, meander, podwójny meander lub układ mieszany zgodnie z geometrią i pożądanym rozkładem temperatury.</p></div></article>
          <article class="rk-lg-process-item"><span class="rk-lg-number">7</span><div><h3>Policz przepływy i opory</h3><p>Sprawdź każdą pętlę, najbardziej niekorzystny obieg, możliwości rozdzielacza oraz punkt pracy pompy.</p></div></article>
          <article class="rk-lg-process-item"><span class="rk-lg-number">8</span><div><h3>Zweryfikuj wykonanie i udokumentuj trasę</h3><p>Skontroluj rozstaw, promienie gięcia, dylatacje i mocowanie, wykonaj próbę oraz przygotuj zdjęcia i rzut powykonawczy.</p></div></article>
        </div>
        <div class="rk-lg-note"><p>Wymagania dotyczące obliczeń i temperatur rozwija poradnik <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">PN-EN 1264 dla ogrzewania podłogowego</a>. Szacowanie ilości materiału można pomocniczo porównać z artykułem <a href="https://projekt-ogrzewania.pl/ile-rury-na-m%c2%b2-ogrzewania-podlogowego/">ile rury potrzeba na m² podłogówki</a>, ale nie zastępuje ono podziału na pętle.</p></div>
      </section>

      <section class="rk-lg-section" id="rk-lg-podsumowanie">
        <span class="rk-lg-eyebrow">Najkrótszy poprawny wniosek</span>
        <h2>Jaki układ rur ogrzewania podłogowego wybrać?</h2>
        <p><strong>Ślimak jest zazwyczaj najbardziej uniwersalny, meander pozwala uzyskać kierunkowy rozkład temperatury, podwójny meander ogranicza jego kierunkowość, a układ mieszany dopasowuje trasę do trudnego rzutu.</strong> Żaden z nich nie jest jednak poprawny tylko dlatego, że pomieszczenie ma określony metraż.</p>
        <div class="rk-lg-grid-4">
          <article class="rk-lg-card is-cyan"><h3>Ślimak</h3><p>Wybierz jako punkt wyjścia, gdy zależy Ci na równomierności i geometria pozwala przeplatać zasilanie z powrotem.</p></article>
          <article class="rk-lg-card is-orange"><h3>Meander</h3><p>Rozważ, gdy świadomie potrzebujesz gradientu albo prowadzisz rurę przez wąskie, wydłużone pole.</p></article>
          <article class="rk-lg-card is-purple"><h3>Podwójny meander</h3><p>Zastosuj, gdy układ równoległy jest praktyczny, ale chcesz lepiej przeplatać cieplejsze i chłodniejsze przebiegi.</p></article>
          <article class="rk-lg-card is-green"><h3>Układ mieszany</h3><p>Użyj w nieregularnej geometrii, o ile cała trasa, długość i hydraulika zostały wcześniej policzone.</p></article>
        </div>
        <div class="rk-lg-warning"><p><strong>Ostatecznie wybierasz nie sam wzór, lecz kompletny obieg:</strong> określone pole, rozstaw, średnicę, długość, przepływ, spadek ciśnienia, temperaturę zasilania oraz sposób regulacji.</p></div>
      </section>

      <aside class="rk-lg-sales-cta" aria-label="Końcowe zamówienie projektu ogrzewania podłogowego">
        <span class="rk-lg-eyebrow">Od rzutu do parametrów wykonawczych</span>
        <h3>Zamiast wybierać wzór na oko, zamów kompletny projekt pętli</h3>
        <p>Projekt połączy obciążenia pomieszczeń, powierzchnię aktywną, warstwy podłogi, źródło ciepła, rozstawy i hydraulikę. Otrzymasz trasy, które instalator może wykonać, a następnie ustawić na rozdzielaczu.</p>
        <a class="rk-lg-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów indywidualny projekt ogrzewania podłogowego</a>
      </aside>

      <section class="rk-lg-section" id="rk-lg-zrodla">
        <span class="rk-lg-eyebrow">Podstawa techniczna</span>
        <h2>Źródła oficjalne i zakres odpowiedzialności</h2>
        <div class="rk-lg-sources">
          <div class="rk-lg-source"><strong><a href="https://www.iso.org/standard/74682.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-1:2021 — definicje i kryteria komfortu</a></strong><p>Oficjalna karta części normy opisującej podstawowe pojęcia, symbole i kryteria komfortu dla wbudowanych systemów ogrzewania i chłodzenia płaszczyznowego.</p></div>
          <div class="rk-lg-source"><strong><a href="https://www.iso.org/standard/74683.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-2:2021 — wyznaczanie mocy</a></strong><p>Oficjalna karta metodyki określania strumienia ciepła, temperatury i równomierności powierzchni w zależności od zmiennych systemu.</p></div>
          <div class="rk-lg-source"><strong><a href="https://www.iso.org/standard/74684.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-3:2021 — projektowanie i wymiarowanie</a></strong><p>Oficjalna karta części ustanawiającej metodę projektowania i wymiarowania systemu w celu zapewnienia wymaganej mocy grzewczej lub chłodniczej.</p></div>
          <div class="rk-lg-source"><strong><a href="https://www.iso.org/standard/74685.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-5:2021 — wykonanie systemu</a></strong><p>Oficjalna karta wymagań instalacyjnych dla systemów płaszczyznowych wbudowanych w podłogi, ściany i sufity.</p></div>
          <div class="rk-lg-source"><strong><a href="https://energy.ec.europa.eu/topics/energy-efficiency/energy-performance-buildings/energy-performance-buildings-directive_en" target="_blank" rel="nofollow noopener noreferrer">Komisja Europejska — efektywność energetyczna budynków</a></strong><p>Oficjalne informacje o unijnych ramach poprawy charakterystyki energetycznej budynków. Nie zastępują obliczeń konkretnej instalacji.</p></div>
        </div>
        <div class="rk-lg-warning"><p><strong>Zakres poradnika:</strong> artykuł wyjaśnia zasady projektowe i pomaga ocenić kompletność danych. Nie jest projektem konkretnego budynku, instrukcją producenta rury ani zgodą na zmianę trasy bez przeliczenia długości, przepływów i temperatur.</p></div>
      </section>

      <section class="rk-lg-section" id="rk-lg-faq">
        <span class="rk-lg-eyebrow">Najczęstsze pytania</span>
        <h2>FAQ — układanie rur ogrzewania podłogowego</h2>
        <div class="rk-lg-faq">
          <details><summary>Który układ rur daje najbardziej równomierną temperaturę podłogi?</summary><div class="rk-lg-faq-answer"><p>Ślimak zwykle najlepiej sprzyja równomierności, ponieważ cieplejsze odcinki zasilające biegną obok chłodniejszych odcinków powrotnych. Wynik nadal zależy od rozstawu, przepływu, warstw podłogi, okładziny i warunków brzegowych.</p></div></details>
          <details><summary>Czy meander można zastosować w dużym pomieszczeniu?</summary><div class="rk-lg-faq-answer"><p>Tak, jeśli wynika to z geometrii, potrzebnego rozkładu temperatury i podziału na pętle. Nie istnieje uniwersalny próg 20 m², po którego przekroczeniu pojedynczy meander automatycznie staje się błędny.</p></div></details>
          <details><summary>Czy podwójny meander jest najlepszy do salonu z dużymi oknami?</summary><div class="rk-lg-faq-answer"><p>Nie zawsze. Najpierw trzeba policzyć lokalne obciążenie, sprawdzić moc powierzchni i zaplanować liczbę pętli. Rozwiązaniem może być ślimak, układ mieszany, lokalne zagęszczenie albo oddzielna strefa, jeżeli potwierdzają to obliczenia.</p></div></details>
          <details><summary>Jaki układ rur wybrać przy pompie ciepła?</summary><div class="rk-lg-faq-answer"><p>Nie ma układu obowiązkowego dla pompy ciepła. Ślimak często jest korzystnym punktem wyjścia ze względu na równomierność, ale rozstaw i trasa muszą wynikać z wymaganej mocy przy możliwie niskiej temperaturze zasilania oraz z hydrauliki.</p></div></details>
          <details><summary>Gdzie powinno zaczynać się zasilanie pętli?</summary><div class="rk-lg-faq-answer"><p>Początek należy ustalić razem z położeniem rozdzielacza i oczekiwanym rozkładem temperatury. W meandrze można skierować go wzdłuż krawędzi o większym obciążeniu, ale samo okno nie uzasadnia tego bez obliczeń.</p></div></details>
          <details><summary>Czy ślimak zużywa więcej rury niż meander?</summary><div class="rk-lg-faq-answer"><p>Przy tej samej powierzchni czynnej i tym samym rozstawie ilość rury w polu będzie zbliżona. Różnice powodują dojścia do rozdzielacza, kształt pomieszczenia, omijane przeszkody i rzeczywisty podział na obiegi.</p></div></details>
          <details><summary>Jak obliczyć długość rury w pętli?</summary><div class="rk-lg-faq-answer"><p>Powierzchnia podzielona przez rozstaw daje jedynie przybliżenie ilości rury w polu. Do długości trzeba dodać zasilanie i powrót od rozdzielacza, uwzględnić geometrię, łuki, wyłączenia oraz podział na kilka pętli.</p></div></details>
          <details><summary>Jaka jest maksymalna długość pętli z rury 16×2 mm?</summary><div class="rk-lg-faq-answer"><p>Nie ma jednej długości poprawnej dla każdej instalacji. W projektach indywidualnych często przyjmuje się organizacyjnie około 100 m jako górny poziom dla pętli 16×2 mm, ale ostatecznie trzeba sprawdzić przepływ, prędkość i stratę ciśnienia.</p></div></details>
          <details><summary>Czy można łączyć ślimak i meander w jednej pętli?</summary><div class="rk-lg-faq-answer"><p>Tak. Układ mieszany może dobrze wypełnić nieregularne pole, jeżeli zachowuje docelowy rozstaw, dopuszczalne promienie, policzoną długość i prawidłową hydraulikę. Nie powinien powstawać przypadkowo podczas montażu.</p></div></details>
          <details><summary>Czy pod meblami wolno układać ogrzewanie podłogowe?</summary><div class="rk-lg-faq-answer"><p>Zależy to od rodzaju zabudowy, możliwości oddawania ciepła, przewidywanej aranżacji oraz wymagań producentów podłogi i wyposażenia. Stałe, szczelnie zamknięte elementy zwykle analizuje się inaczej niż meble na nóżkach.</p></div></details>
          <details><summary>Czy przy każdym dużym oknie trzeba zagęścić rury?</summary><div class="rk-lg-faq-answer"><p>Nie. Strefa brzegowa powinna wynikać z lokalnego obciążenia cieplnego i obliczonej zdolności podłogi do oddawania mocy. Nie należy automatycznie przyjmować stałej szerokości pasa ani jednego rozstawu.</p></div></details>
          <details><summary>Czy schemat ułożenia rur wystarczy do wykonania podłogówki?</summary><div class="rk-lg-faq-answer"><p>Nie. Schemat musi być uzupełniony o obciążenie cieplne pomieszczeń, powierzchnię czynną, warstwy podłogi, rozstaw i średnicę rur, długości pętli, przepływy, straty ciśnienia oraz nastawy rozdzielacza.</p></div></details>
        </div>
      </section>

      <section class="rk-lg-author" id="rk-lg-author" aria-labelledby="rk-lg-author-heading">
        <input type="radio" name="rk-lg-author-tabs" id="rk-lg-author-about" checked>
        <input type="radio" name="rk-lg-author-tabs" id="rk-lg-author-exp">
        <input type="radio" name="rk-lg-author-tabs" id="rk-lg-author-method">

        <div class="rk-lg-author-head">
          <div>
            <span class="rk-lg-eyebrow">Opracowanie eksperckie</span>
            <h2 id="rk-lg-author-heading">Autor i weryfikacja merytoryczna</h2>
            <p>Artykuł łączy obliczenia cieplne, geometrię prowadzenia rur, hydraulikę i wymagania wykonawcze.</p>
          </div>
          <span class="rk-lg-author-mark">E-E-A-T · praktyka projektowa HVAC</span>
        </div>

        <div class="rk-lg-author-layout">
          <aside class="rk-lg-author-side">
            <div class="rk-lg-author-photo"><img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji sanitarnych" width="132" height="132" loading="lazy"></div>
            <div class="rk-lg-author-name"><a href="https://projekt-ogrzewania.pl/author/admin3399/">Robert Kucharski</a></div>
            <div class="rk-lg-author-role">Projektant instalacji sanitarnych<br>specjalista HVAC i ogrzewania podłogowego</div>
            <div class="rk-lg-social-label">Profile autora</div>
            <div class="rk-lg-social">
              <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="nofollow noopener noreferrer" aria-label="Robert Kucharski na LinkedIn"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4.98 3.5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5ZM3 9h4v12H3V9Zm6.5 0h3.84v1.64h.06c.53-1.01 1.84-2.08 3.79-2.08C21.24 8.56 22 11.23 22 14.7V21h-4v-5.59c0-1.33-.02-3.05-1.86-3.05-1.86 0-2.14 1.45-2.14 2.95V21h-4V9Z"/></svg></a>
              <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="nofollow noopener noreferrer" aria-label="Projekt Ogrzewania na Facebooku"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M22 12.06C22 6.5 17.52 2 12 2S2 6.5 2 12.06C2 17.08 5.66 21.25 10.44 22v-7.03H7.9v-2.91h2.54V9.85c0-2.52 1.49-3.91 3.77-3.91 1.09 0 2.23.2 2.23.2v2.47h-1.25c-1.24 0-1.63.77-1.63 1.56v1.89h2.77l-.44 2.91h-2.33V22C18.34 21.25 22 17.08 22 12.06Z"/></svg></a>
              <a href="https://x.com/Projekt_HVAC" target="_blank" rel="nofollow noopener noreferrer" aria-label="Projekt HVAC w serwisie X"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M18.9 2H22l-6.77 7.74L23.2 22h-6.24l-4.89-6.39L6.48 22H3.36l7.25-8.29L2.96 2H9.36l4.42 5.84L18.9 2Zm-1.1 17.84h1.73L8.42 4.05H6.57L17.8 19.84Z"/></svg></a>
            </div>
          </aside>

          <div class="rk-lg-author-main">
            <blockquote class="rk-lg-author-quote"><p>Dobry układ rur nie zaczyna się od rysowania ślimaka. Zaczyna się od pytania, ile ciepła potrzebuje pomieszczenie i jakim przepływem można je bezpiecznie dostarczyć przez dostępną powierzchnię.</p></blockquote>
            <div class="rk-lg-author-tabs" role="group" aria-label="Informacje o autorze">
              <label class="rk-lg-author-tab" for="rk-lg-author-about" tabindex="0">O autorze</label>
              <label class="rk-lg-author-tab" for="rk-lg-author-exp" tabindex="0">Doświadczenie</label>
              <label class="rk-lg-author-tab" for="rk-lg-author-method" tabindex="0">Metoda pracy</label>
            </div>
            <div class="rk-lg-author-panel rk-lg-author-panel-about">
              <p>Robert Kucharski opracowuje projekty ogrzewania podłogowego, obliczenia cieplne i hydrauliczne oraz materiały techniczne dla inwestorów i wykonawców. W poradnikach oddziela reguły orientacyjne od parametrów, które muszą wynikać z projektu konkretnego budynku.</p>
              <p>W obszarze prowadzenia rur analizuje nie tylko wygląd pętli, lecz również powierzchnię aktywną, temperatury, długości, przepływy, opory oraz możliwość wykonania trasy bez uszkodzenia przewodu.</p>
            </div>
            <div class="rk-lg-author-panel rk-lg-author-panel-exp">
              <p>Zakres pracy obejmuje bilanse cieplne pomieszczeń, dobór temperatury zasilania, rozmieszczenie i długości pętli, nastawy przepływów, opory hydrauliczne oraz wytyczne współpracy ogrzewania płaszczyznowego z pompami ciepła i kotłami.</p>
              <p>Treści są aktualizowane na podstawie norm, oficjalnych wytycznych, dokumentacji systemów oraz powtarzających się problemów widocznych podczas realizacji i uruchamiania instalacji.</p>
            </div>
            <div class="rk-lg-author-panel rk-lg-author-panel-method">
              <p>Każda pętla jest traktowana jako jednocześnie element cieplny, hydrauliczny i wykonawczy. Najpierw określa się obciążenie oraz powierzchnię, następnie rozstaw i temperatury, a dopiero potem trasę, długość, przepływ i nastawę.</p>
              <p>Artykuł nie zastępuje dokumentacji producenta ani projektu budynku. Jego celem jest pokazanie, dlaczego wybór między ślimakiem a meandrem powinien być wynikiem obliczeń i geometrii, a nie uniwersalnej tabeli metrażu.</p>
            </div>
            <div class="rk-lg-mini-label">Publikacje i serwisy autora</div>
            <div class="rk-lg-portals">
              <a href="https://projekt-ogrzewania.pl/author/admin3399/">Wszystkie wpisy autora</a>
              <a href="https://remont.biz.pl/" target="_blank" rel="nofollow noopener noreferrer">Remont.biz.pl</a>
              <a href="https://sobir.pl/" target="_blank" rel="nofollow noopener noreferrer">Sobir.pl</a>
            </div>
          </div>
        </div>
      </section>
    </div>
  </div>
</article>

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

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

  var checkTool = root.querySelector("#rk-lg-check-tool");
  if (checkTool) {
    var rows = Array.prototype.slice.call(checkTool.querySelectorAll("[data-check-row]"));
    var score = checkTool.querySelector("#rk-lg-score");
    var scorePercent = checkTool.querySelector("#rk-lg-score-percent");
    var progressBar = checkTool.querySelector("#rk-lg-progress-bar");
    var status = checkTool.querySelector("#rk-lg-result-status");
    var missingList = checkTool.querySelector("#rk-lg-missing-list");
    var reset = checkTool.querySelector("#rk-lg-check-reset");

    function updateChecker() {
      var yesCount = 0;
      var missing = [];
      rows.forEach(function (row) {
        var active = row.querySelector(".rk-lg-state-button[aria-pressed=\"true\"]");
        var value = active ? active.getAttribute("data-value") : "unknown";
        if (value === "yes") { yesCount += 1; }
        else { missing.push(row.getAttribute("data-note")); }
      });

      var percent = Math.round((yesCount / rows.length) * 100);
      score.textContent = yesCount + " z " + rows.length + " punktów potwierdzonych";
      scorePercent.textContent = percent + "% kompletności danych";
      progressBar.style.width = percent + "%";

      if (yesCount === rows.length) {
        status.textContent = "Plan zawiera podstawowy komplet danych do dalszej weryfikacji technicznej.";
      } else if (yesCount >= 5) {
        status.textContent = "Plan jest częściowo przygotowany, ale przed montażem trzeba uzupełnić wskazane elementy.";
      } else {
        status.textContent = "Na tej podstawie nie należy jeszcze zatwierdzać sposobu prowadzenia ani liczby pętli.";
      }

      missingList.innerHTML = "";
      if (missing.length === 0) {
        var completeItem = document.createElement("li");
        completeItem.textContent = "Wszystkie obszary zostały oznaczone jako potwierdzone. Nadal potrzebna jest kontrola obliczeń i zgodności z dokumentacją systemu.";
        missingList.appendChild(completeItem);
      } else {
        missing.forEach(function (message) {
          var item = document.createElement("li");
          item.textContent = message;
          missingList.appendChild(item);
        });
      }
    }

    rows.forEach(function (row) {
      var buttons = Array.prototype.slice.call(row.querySelectorAll(".rk-lg-state-button"));
      buttons.forEach(function (button) {
        button.addEventListener("click", function () {
          buttons.forEach(function (item) { item.setAttribute("aria-pressed", item === button ? "true" : "false"); });
          updateChecker();
        });
      });
    });

    reset.addEventListener("click", function () {
      rows.forEach(function (row) {
        var buttons = Array.prototype.slice.call(row.querySelectorAll(".rk-lg-state-button"));
        buttons.forEach(function (button) {
          button.setAttribute("aria-pressed", button.getAttribute("data-value") === "unknown" ? "true" : "false");
        });
      });
      updateChecker();
    });

    updateChecker();
  }

  var authorLabels = Array.prototype.slice.call(root.querySelectorAll(".rk-lg-author-tab"));
  authorLabels.forEach(function (label) {
    label.addEventListener("keydown", function (event) {
      if (event.key === "Enter" || event.key === " ") {
        event.preventDefault();
        var target = document.getElementById(label.getAttribute("for"));
        if (target) { target.checked = true; }
      }
    });
  });
})();
</script>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "inLanguage": "pl-PL",
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" }
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt Ogrzewania",
      "url": "https://projekt-ogrzewania.pl/",
      "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",
      "worksFor": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "knowsAbout": [
        "ogrzewanie podłogowe",
        "obliczenia obciążenia cieplnego",
        "hydraulika instalacji grzewczych",
        "projektowanie pętli grzewczych",
        "pompy ciepła",
        "PN-EN 1264",
        "PN-EN 12831"
      ],
      "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/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/#primaryimage",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander.webp",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander.webp",
      "width": 945,
      "height": 945,
      "caption": "Jak układać rury w ogrzewaniu podłogowym — ślimak, meander i podwójny meander",
      "inLanguage": "pl-PL"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Projekt Ogrzewania",
          "item": "https://projekt-ogrzewania.pl/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Ogrzewanie podłogowe",
          "item": "https://projekt-ogrzewania.pl/category/ogrzewanie-podlogowe/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Jak układać rury — ślimak, meander czy podwójny meander?",
          "item": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/#webpage",
      "url": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/",
      "name": "Jak układać rury w ogrzewaniu podłogowym – ślimak, meander czy podwójny meander?",
      "description": "Ślimak, meander czy podwójny meander? Zobacz, jak układać rury podłogówki oraz od czego zależą rozstaw, długość, zasilanie, przepływ i hydraulika pętli.",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
      "breadcrumb": { "@id": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/#breadcrumb" },
      "primaryImageOfPage": { "@id": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/#primaryimage" },
      "mainEntity": { "@id": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/#article" },
      "datePublished": "2025-05-16T12:48:26+00:00",
      "dateModified": "2026-09-12",
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "speakable": {
        "@type": "SpeakableSpecification",
        "cssSelector": [
          ".rk-lg-hero-title",
          "#rk-lg-szybka .rk-lg-answer",
          "#rk-lg-podsumowanie > p:first-of-type"
        ]
      },
      "potentialAction": {
        "@type": "ReadAction",
        "target": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/"
      }
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/#article",
      "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/#webpage" },
      "headline": "Jak układać rury w ogrzewaniu podłogowym – ślimak, meander czy podwójny meander?",
      "alternativeHeadline": "Ślimak czy meander? Jak zaplanować trasę pętli ogrzewania podłogowego",
      "description": "Techniczny poradnik o wyborze ślimaka, meandra, podwójnego meandra i układu mieszanego z uwzględnieniem rozkładu temperatury, powierzchni czynnej, długości pętli oraz hydrauliki.",
      "image": { "@id": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/#primaryimage" },
      "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "datePublished": "2025-05-16T12:48:26+00:00",
      "dateModified": "2026-09-12",
      "timeRequired": "PT28M",
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "articleSection": [
        "Ogrzewanie podłogowe",
        "Projektowanie instalacji",
        "Hydraulika",
        "Układanie rur"
      ],
      "keywords": [
        "jak układać rury w ogrzewaniu podłogowym",
        "jak ułożyć ogrzewanie podłogowe w ślimak",
        "jak układać rury ogrzewania podłogowego w meander",
        "schemat ułożenia rur podłogówki",
        "od którego miejsca zacząć układanie rur podłogówki",
        "jak ułożyć podłogówkę w wąskim pomieszczeniu",
        "ślimak czy meander",
        "układ ślimakowy ogrzewania podłogowego",
        "układ meandrowy ogrzewania podłogowego",
        "podwójny meander",
        "rozmieszczenie pętli ogrzewania podłogowego",
        "strefa brzegowa przy oknie",
        "długość pętli podłogówki"
      ],
      "about": [
        { "@type": "Thing", "name": "Ogrzewanie podłogowe" },
        { "@type": "Thing", "name": "Ślimak bifilarny" },
        { "@type": "Thing", "name": "Meander grzewczy" },
        { "@type": "Thing", "name": "Hydraulika pętli" }
      ],
      "citation": [
        "https://www.iso.org/standard/74682.html",
        "https://www.iso.org/standard/74683.html",
        "https://www.iso.org/standard/74684.html",
        "https://www.iso.org/standard/74685.html"
      ],
      "hasPart": [
        { "@id": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/#kontrola-trasy" },
        { "@id": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/#howto" },
        { "@id": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/#faq" }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/#kontrola-trasy",
      "name": "Kontrola techniczna planu pętli",
      "url": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/#rk-lg-kontrola",
      "description": "Interaktywna lista sprawdzająca kompletność danych potrzebnych przed zatwierdzeniem trasy rur ogrzewania podłogowego.",
      "applicationCategory": "EducationalApplication",
      "applicationSubCategory": "HVAC project checklist",
      "operatingSystem": "Any",
      "browserRequirements": "JavaScript enabled",
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "creator": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/#webpage" },
      "featureList": [
        "Kontrola obciążenia cieplnego i powierzchni czynnej",
        "Kontrola warstw podłogi, rozstawu i średnicy",
        "Kontrola długości, dylatacji i promienia gięcia",
        "Lista brakujących przepływów i strat ciśnienia"
      ]
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/#howto",
      "name": "Jak zaplanować układ rur ogrzewania podłogowego krok po kroku",
      "description": "Osiem etapów prowadzących od obciążenia cieplnego pomieszczenia do zweryfikowanej i udokumentowanej trasy pętli.",
      "inLanguage": "pl-PL",
      "image": { "@id": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/#primaryimage" },
      "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/#article" },
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Oblicz obciążenie każdego pomieszczenia",
          "text": "Ustal projektową moc potrzebną przy temperaturze zewnętrznej właściwej dla lokalizacji, a nie średnie zużycie całego budynku.",
          "url": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/#rk-lg-procedura"
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Wyznacz powierzchnię czynną",
          "text": "Oznacz stałą zabudowę, dylatacje, pola wyłączone i miejsca, w których podłoga rzeczywiście może oddawać ciepło.",
          "url": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/#rk-lg-procedura"
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Sprawdź warstwy oraz okładzinę",
          "text": "Uwzględnij opór cieplny wykończenia, konstrukcję systemu i ograniczenia temperatury wskazane przez producentów.",
          "url": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/#rk-lg-procedura"
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Dobierz temperaturę i rozstaw",
          "text": "Wyznacz zestaw parametrów pozwalający pokryć obciążenie bez przekraczania dopuszczalnej temperatury powierzchni.",
          "url": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/#rk-lg-procedura"
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Podziel powierzchnię na obiegi",
          "text": "Uwzględnij powierzchnię, drogę do rozdzielacza, średnicę oraz przyjęty limit organizacyjny długości pętli.",
          "url": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/#rk-lg-procedura"
        },
        {
          "@type": "HowToStep",
          "position": 6,
          "name": "Wybierz sposób prowadzenia",
          "text": "Zastosuj ślimak, meander, podwójny meander lub układ mieszany zgodnie z geometrią i pożądanym rozkładem temperatury.",
          "url": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/#rk-lg-procedura"
        },
        {
          "@type": "HowToStep",
          "position": 7,
          "name": "Policz przepływy i opory",
          "text": "Sprawdź każdą pętlę, najbardziej niekorzystny obieg, możliwości rozdzielacza oraz punkt pracy pompy.",
          "url": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/#rk-lg-procedura"
        },
        {
          "@type": "HowToStep",
          "position": 8,
          "name": "Zweryfikuj wykonanie i udokumentuj trasę",
          "text": "Skontroluj rozstaw, promienie gięcia, dylatacje i mocowanie, wykonaj próbę oraz przygotuj zdjęcia i rzut powykonawczy.",
          "url": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/#rk-lg-procedura"
        }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/#faq",
      "url": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/#rk-lg-faq",
      "inLanguage": "pl-PL",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/#webpage" },
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Który układ rur daje najbardziej równomierną temperaturę podłogi?",
          "acceptedAnswer": { "@type": "Answer", "text": "Ślimak zwykle najlepiej sprzyja równomierności, ponieważ cieplejsze odcinki zasilające biegną obok chłodniejszych odcinków powrotnych. Wynik nadal zależy od rozstawu, przepływu, warstw podłogi, okładziny i warunków brzegowych." }
        },
        {
          "@type": "Question",
          "name": "Czy meander można zastosować w dużym pomieszczeniu?",
          "acceptedAnswer": { "@type": "Answer", "text": "Tak, jeśli wynika to z geometrii, potrzebnego rozkładu temperatury i podziału na pętle. Nie istnieje uniwersalny próg 20 m², po którego przekroczeniu pojedynczy meander automatycznie staje się błędny." }
        },
        {
          "@type": "Question",
          "name": "Czy podwójny meander jest najlepszy do salonu z dużymi oknami?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie zawsze. Najpierw trzeba policzyć lokalne obciążenie, sprawdzić moc powierzchni i zaplanować liczbę pętli. Rozwiązaniem może być ślimak, układ mieszany, lokalne zagęszczenie albo oddzielna strefa, jeżeli potwierdzają to obliczenia." }
        },
        {
          "@type": "Question",
          "name": "Jaki układ rur wybrać przy pompie ciepła?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie ma układu obowiązkowego dla pompy ciepła. Ślimak często jest korzystnym punktem wyjścia ze względu na równomierność, ale rozstaw i trasa muszą wynikać z wymaganej mocy przy możliwie niskiej temperaturze zasilania oraz z hydrauliki." }
        },
        {
          "@type": "Question",
          "name": "Gdzie powinno zaczynać się zasilanie pętli?",
          "acceptedAnswer": { "@type": "Answer", "text": "Początek należy ustalić razem z położeniem rozdzielacza i oczekiwanym rozkładem temperatury. W meandrze można skierować go wzdłuż krawędzi o większym obciążeniu, ale samo okno nie uzasadnia tego bez obliczeń." }
        },
        {
          "@type": "Question",
          "name": "Czy ślimak zużywa więcej rury niż meander?",
          "acceptedAnswer": { "@type": "Answer", "text": "Przy tej samej powierzchni czynnej i tym samym rozstawie ilość rury w polu będzie zbliżona. Różnice powodują dojścia do rozdzielacza, kształt pomieszczenia, omijane przeszkody i rzeczywisty podział na obiegi." }
        },
        {
          "@type": "Question",
          "name": "Jak obliczyć długość rury w pętli?",
          "acceptedAnswer": { "@type": "Answer", "text": "Powierzchnia podzielona przez rozstaw daje jedynie przybliżenie ilości rury w polu. Do długości trzeba dodać zasilanie i powrót od rozdzielacza, uwzględnić geometrię, łuki, wyłączenia oraz podział na kilka pętli." }
        },
        {
          "@type": "Question",
          "name": "Jaka jest maksymalna długość pętli z rury 16×2 mm?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie ma jednej długości poprawnej dla każdej instalacji. W projektach indywidualnych często przyjmuje się organizacyjnie około 100 m jako górny poziom dla pętli 16×2 mm, ale ostatecznie trzeba sprawdzić przepływ, prędkość i stratę ciśnienia." }
        },
        {
          "@type": "Question",
          "name": "Czy można łączyć ślimak i meander w jednej pętli?",
          "acceptedAnswer": { "@type": "Answer", "text": "Tak. Układ mieszany może dobrze wypełnić nieregularne pole, jeżeli zachowuje docelowy rozstaw, dopuszczalne promienie, policzoną długość i prawidłową hydraulikę. Nie powinien powstawać przypadkowo podczas montażu." }
        },
        {
          "@type": "Question",
          "name": "Czy pod meblami wolno układać ogrzewanie podłogowe?",
          "acceptedAnswer": { "@type": "Answer", "text": "Zależy to od rodzaju zabudowy, możliwości oddawania ciepła, przewidywanej aranżacji oraz wymagań producentów podłogi i wyposażenia. Stałe, szczelnie zamknięte elementy zwykle analizuje się inaczej niż meble na nóżkach." }
        },
        {
          "@type": "Question",
          "name": "Czy przy każdym dużym oknie trzeba zagęścić rury?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie. Strefa brzegowa powinna wynikać z lokalnego obciążenia cieplnego i obliczonej zdolności podłogi do oddawania mocy. Nie należy automatycznie przyjmować stałej szerokości pasa ani jednego rozstawu." }
        },
        {
          "@type": "Question",
          "name": "Czy schemat ułożenia rur wystarczy do wykonania podłogówki?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie. Schemat musi być uzupełniony o obciążenie cieplne pomieszczeń, powierzchnię czynną, warstwy podłogi, rozstaw i średnicę rur, długości pętli, przepływy, straty ciśnienia oraz nastawy rozdzielacza." }
        }
      ]
    }
  ]
}
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/">Jak układać rury w ogrzewaniu ślimak, meander czy podwójny meander?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
